Gentoo安装笔记

2012年12月31日 分类:学习笔记Linux

最近在本本上装了个Gentoo,过程真是相当复杂,这里做个笔记,给有需要的人。安装Gentoo真的很需要耐心,Gentoo的可定制化非常强,从内核到完整的桌面系统,都可以根据自己来设置,期间会遇到各种各样的问题,但整个过程下来后,你会学到很多东西。下面的图片就是我的Gentoo的最终完成图,桌面:openbox+feh+fbpanel,登录管理:slim,终端:Sakura,文件管理:pcmanfm,还有一些小问题没解决,我会慢慢更新。

GentooOpenbox

0.准备工作

0.1.下载minimal镜像文件

我现在最新的是install-x86-minimal-20121213.iso,选择最新的版本。
官网地址:http://distfiles.gentoo.org/releases/x86/autobuilds/current-iso/
网易地址:http://mirrors.163.com/gentoo/releases/x86/current-iso/
选择速度快的下载,如果网速比较慢的话可以把portage和stage3都下载到U盘里,用到的时候挂载U盘从里面拷,我这边网络比较好,选择在安装的过程中从网上下载。

0.2.制作引导U盘

把iso刻录到U盘里,用来启动引导,这里推荐使用UltraISO,启动->写入硬盘镜像。

0.3.记录电脑的硬件配置

因为在安装的过程中要自己编译内核,需要配置一些硬件驱动信息,主要是CPU、显卡、网卡和声卡,可以用鲁大师或驱动精灵查看,配置选好的话可以节省很多编译时间和内核资源。
PS:Gentoo的官方文档做得很详细,我这里说的他上面都有,最好看英文版的,比较新。Gentoo Linux x86 Handbook

1.安装基本系统

插入上面做好的U盘,选择从U盘启动,之后他会引导进入命令行模式,接下来我们就来安装基本系统。

1.1.分区

使用fdisk分区,我这里就分了一个sda9,用来挂载根目录。也没有分swap,我的内存应该足够使用了。*第一块sata硬盘是sda,第二块是sdb,U盘一般是sdc*。

fdisk /dev/sda

p是打印当前分区表,n是创建新分区,q不保存退出,w写入分区表。分好后格式化为ext4。

mkfs.ext4 /dev/sda9

一些分区类型的格式化命令:
类型命令
ext2mke2fs
ext3mke2fs -j
ext4mkfs.ext4
reiserfsmkreiserfs
xfsmkfs.xfs
jfsmkfs.jfs
swapmkswap
格式化后挂载分区到/mnt/gentoo,有swap的话使用swapon加载。

mount /dev/sda9 /mnt/gentoo

1.2.配置网络

连上网主要是用来下载portage和stage,如果已经在U盘里的话这步可以省略,直接挂载U盘拷过来就是了。配置网络有很多种方法,在其他Linux用的方法在这里一般也可以,官方推荐的是用net-setup来配置,命令如下:

之后会出现简单的图形化界面,分自动和手动两种,但是我用它配置完后使用ifconfig看到的还是没变化,看来还是用传统的命令靠谱点。

配置IP,广播和子网掩码

ifconfig eth0 192.168.0.3 broadcast 192.168.0.255 netmask 255.255.255.0

添加网关

route add default gw 192.168.0.1 nano -w /etc/resolv.conf

resolve.con中写入DNS信息,比如我的是:

nameserver 202.101.172.35 search baidu.com

<em>具体可以参考官网的handbook,<a href="http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=1&chap=3" title="Configuring your Network" target="_blank" rel="external nofollow">Configuring your Network</a>,里面还有无线网络的设置方法。</em>
配置好后可以用ping来测试网络,然后用links把portage和stage下载到/mnt/gentoo里。

cd /mnt/gentoo links mirrors.163.com/gentoo

stage在releases/x86/current-iso/里

portage在snapshots/里

解压

tar xvjpf stage3-i686-20121213.tar.bz2 tar xvjf portage-latest.tar.bz2 -C /mnt/gentoo/usr/

<h3>1.3.配置make.conf</h3>
为了优化Gentoo,必须在软件编译的时候指定某些参数,这样编译出来的程序运行效率将非常高,系统在编译用到的参数就在make.conf里,文件路径是/mnt/gentoo/etc/portage/make.conf,Gentoo给了我们一个配置的sample在/mnt/gentoo/usr/share/portage/config/make.conf.example,他里面讲的很详细,下面的是我的make.conf。

USE=“X dbus” CHOST=“i686-pc-linux-gnu” CFLAGS=“-march=native -O2 -pipe” CXXFLAGS=“${CFLAGS}” GENTOO_MIRRORS=“http://mirrors.163.com/gentoo" SYNC=“rsync://mirrors.163.com/gentoo-portage” MAKEOPTS=“-j5” INPUT_DEVICES=“evdev synaptics” VIDEO_CARDS=“radeon”

USE用于控制软件的安装,后面我要安装X-Windows,只加了X和dbus,详细的USE列表在/mnt/gentoo/usr/portage/profiles/use.desc中,参考<a href="http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=2" title="USE flags" target="_blank" rel="external nofollow">USE flags</a>。CFLAGS中的march我用的是native,这是gcc从4.2.3后引入的一个参数,他可以自动判断cpu的类型,具体参考<a href="http://en.gentoo-wiki.com/wiki/Safe_Cflags" title="Safe Cflags" target="_blank" rel="external nofollow">Safe Cflags</a>。Gentoo镜像和同步源我选择网易的,我这就他比较快。MAKEOPTS用于指定gcc同时编译的数量,一般是cpu核数+1,后面的是xorg相关的,evdev用于鼠标和键盘,synaptics是触摸板,radeon是ati显卡的开源驱动,这部分可以参考<a href="http://www.gentoo.org/doc/en/xorg-config.xml" title="The X Server Configuration" target="_blank" rel="external nofollow">The X Server Configuration</a>。
<h3>1.4.进入新环境</h3>
接下来就可以进入新的环境/mnt/gentoo,在chroot前需要做一些设备的挂载和DNS信息的复制。

cp -L /etc/resolv.conf /mnt/gentoo/etc/ mount -t proc none /mnt/gentoo/proc mount –rbind /sys /mnt/gentoo/sys mount –rbind /dev /mnt/gentoo/dev

然后使用chroot进入新环境,并更新环境变量

chroot /mnt/gentoo /bin/bash env-update >> Regenerating /etc/ld.so.cache… source /etc/profile

为了使portage里的软件保持最新,最好同步一下,

emerge –sync

Gentoo中除了USE和CFLAGS用于优化外还有一个重要的profile,这个是Gentoo自带的配置文件,我们只要选择合适的就行了。

eselect profile list Available profile symlink targets: [1] default/linux/x86/10.0 [2] default/linux/x86/10.0/selinux [3] default/linux/x86/10.0/desktop * [4] default/linux/x86/10.0/desktop/gnome [5] default/linux/x86/10.0/desktop/kde [6] default/linux/x86/10.0/developer [7] default/linux/x86/10.0/server [8] hardened/linux/x86 [9] hardened/linux/x86/selinux [10] hardened/linux/uclibc/x86

选择桌面系统

eselect profile set 3

<h3>1.5.编译内核</h3>
首先下载内核,Gentoo使用emerge来管理包的,就像Debian的aptitude一样,转软件很方便。

emerge gentoo-sources

进入内核源码

cd /usr/src/linux

配置内核

make menuconfig

内核的配置可以参考官方文档<a href="http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=1&chap=7" title="Configuring the Kernel" target="_blank" rel="external nofollow">Configuring the Kernel</a>,主要是处理器、文件系统(ext4和ntfs记得选上)以及一些驱动的选择,如果要安装开源驱动的话参考<a href="http://www.gentoo.org/doc/en/xorg-config.xml" title="The X Server Configuration" target="_blank" rel="external nofollow">The X Server Configuration</a>,最后别忘记保存。配置好了就可以编译了。

编译并安装modules

make && make modules_install

把内核镜像拷到/boot,用来引导

cp arch/x86/boot/bzImage /boot/kernel-3.5.7-gentoo

因为我的本本上装了Debian,grub已经装在Debian里了,所以我不需要再安装grub了,只要修改那边的grub来引导Gentoo即可,grub的安装参考<a href="http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=1&chap=10" title="Configuring the Bootloader" target="_blank" rel="external nofollow">Configuring the Bootloader</a>和<a href="http://en.gentoo-wiki.com/wiki/Grub2" title="Gentoo Grub2" target="_blank" rel="external nofollow">Gentoo Grub2</a>
<h3>1.6.配置系统</h3>
现在一个基本的系统已经有了,这里做的只是些配置工作。首先是文件系统,也就是fstab文件。

nano -w /etc/fstab

我没有/boot和swap,只需挂载根目录就行了,下面是我的fstab

/dev/sda9 / ext4 noatime 0 1 /dev/cdrom /mnt/cdrom auto noauto,user 0 0

接下来是网络,在系统启动时配置好IP,修改/etc/conf.d/net。

nano -w /etc/conf.d/net

手动设置

config_eth0=“192.168.0.3 netmask 255.255.255.0 brd 192.168.0.255” routes_eth0=“default via 192.168.0.1”

如果安装了DHCP,就可以让他自动获取

config_eth0=“dhcp”

添加到系统启动项中。

cd /etc/init.d ln -s net.lo net.eth0 rc-update add net.eth0 default

设置系统本地化,这里你可以添加中文支持。

nano -w /etc/locale.gen

把需要的项前面的#号去掉

en_US ISO-8859-1 en_US.UTF-8 UTF-8

建立locale

locale-gen

修改时区为上海

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime echo “Asia/Shanghai” > /etc/timezone

设置硬件时间为本地,不然会多8个小时

hwclock -w –localtime

添加日常管理账号gentoo

useradd -m -G users,wheel,audio -s /bin/bash gentoo passwd gentoo

设置root密码

passwd root

安装系统日志工具

emerge syslog-ng rc-update add syslog-ng default

现在基本系统安装完成,卸载分区,重启。

exit cd umount -l /mnt/gentoo/dev umount -l /mnt/gentoo/proc umount -l /mnt/gentoo/sys umount -l /mnt/gentoo reboot

<h2>2.安装X Windows Server</h2>
<h3>2.1.安装xorg-server</h3>
重启后会进入命令行界面,用root登录,安装xorg-server,或者xorg-x11,后者要多一些字体文件,也很费时。这一部分参考<a href="http://www.gentoo.org/doc/en/xorg-config.xml" title="The X Server Configuration" target="_blank" rel="external nofollow">The X Server Configuration</a>。首先在USE中添加udev,然后

echo “x11-base/xorg-server udev” >> /etc/portage/package.use emerge xorg-server

更新环境

env-update source /etc/profile

<h3>2.2.配置xorg</h3>
使用xorg自动生成配置文件xorg.conf.new

Xorg -configure

测试配置文件

Xorg -config xorg.conf.new -retro

成功的话会出现黑白相间的屏幕,鼠标也能看到,使用ctrl+alt+F1退回命令行,ctrl+C退出测试。一般分辨率会不对,只要修改配置文件,在Section Display下加入DefaultDepth,SubSection Display中添加Modes。

Section “Screen” Identifier “Screen0” Device “Card0” Monitor “Monitor0” DefaultDepth 24

SubSection “Display” Viewport 0 0 Modes “1366x768” Depth 24 EndSubSection EndSection

测试完成后把配置文件复制到X11目录下,重命名为xorg.conf使他生效。

cp xorg.conf.new /etc/X11/xorg.conf

<h2>3.安装桌面环境</h2>
<h3>3.1.安装openbox+feh+fbpanel</h3>
我的桌面使用的是openbox+feh+fbpanel,使用emerge安装,参考<a href="http://www.gentoo.org/doc/en/openbox.xml" title="The Openbox Configuration" target="_blank" rel="external nofollow">The Openbox Configuration</a>。

emerge openbox feh fbpanel

安装过程会比较长,需要编译qt库。
<h3>3.2.配置桌面</h3>
因为配置文件会在用户的Home目录下,所以现在我们使用日常管理用的gentoo登录,注销root,登录gentoo。创建openbox的配置文件。

mkdir ~/.config/openbox nano -w ~/.config/openbox/autostart.sh

autostart.sh是openbox运行后的执行脚本,在里面我们可以把fbpanel和feh加进去,参考<a href="http://openbox.org/wiki/Help:Autostart" title="Help:Autostart" target="_blank" rel="external nofollow">Openbox Autostart</a>。我的配置如下

killall fbpanel > /dev/null 2>&1 fbpanel &

killall feh > /dev/null 2>&1 feh –bg-scale ~/background/Stripes.jpg &

<h3>3.3.安装登录管理器</h3>
这里我选择轻量级的slim作为系统的登录管理器,具体参考<a href="http://en.gentoo-wiki.com/wiki/SLiM" title="SLiM" target="_blank" rel="external nofollow">Gentoo SLiM</a>。

emerge xdm slim dbus

添加到系统启动项中

rc-update add xdm default rc-update add dbus default

修改xdm的配置文件,让他使用slim。

nano -w /etc/conf.d/xdm

把DISPLAYMANAGER改为slim

DISPLAYMANAGER=“slim”

修改slim的配置文件/etc/slim.conf,把小键盘设为关闭,不然对于笔记本的话会很难受。

numlock off

在current_theme后面是slim的主题,修改为自己喜欢的,可用主题在/usr/share/slim/themes中。现在重启后就会进入slim登录管理器,这里有个小问题,你必须按F1来选择openbox,不选的话会黑屏,解决办法是定义一个默认的session,方法在上面的Gentoo SLiM中有,我这选择在home目录建一个link。

ln -s /etc/X11/Sessions/openbox ~/.xsession

如果碰到slim登录后autostart脚本没有执行的话,把/etc/X11/Sessions/openbox里的命令openbox改为openbox-session。
<h2>4.安装桌面工具</h2>
下面是我所使用的一些工具。
文件管理:pcmanfm
终端:sakura
文本编辑器:vim leafpad
主题管理:obconf gtk-theme-switch
浏览器:firefox
前面几个直接用emerge安装就行了,安装的是稳定版,firefox的话我想用最新版的17.0,也就是使用测试分支,需要修改/etc/portage/package.keywords。

emerge pcmanfm sakura vim leafpad obconf gtk-theme-switch echo “www-client/firefox ~x86” >> /etc/portage/package.keywords emerge firefox

需要上网看视频的话,安装adobe-flash

emerge adobe-flash ``` 使用gtk-theme-switch可以方便的切换主题,所有主题在/usr/share/themes里,obconf可以更换窗口的主题。

就这么多了,以后想到了再更新。

作者:wuyuan 本文来自Wuyuan's Blog 转载请注明,谢谢! 文章地址: https://wuyuans.com/2012/12/gentoo-installation