Gentoo安装笔记
目录
最近在本本上装了个Gentoo,过程真是相当复杂,这里做个笔记,给有需要的人。安装Gentoo真的很需要耐心,Gentoo的可定制化非常强,从内核到完整的桌面系统,都可以根据自己来设置,期间会遇到各种各样的问题,但整个过程下来后,你会学到很多东西。下面的图片就是我的Gentoo的最终完成图,桌面:openbox+feh+fbpanel,登录管理:slim,终端:Sakura,文件管理:pcmanfm,还有一些小问题没解决,我会慢慢更新。
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
类型 | 命令 |
---|---|
ext2 | mke2fs |
ext3 | mke2fs -j |
ext4 | mkfs.ext4 |
reiserfs | mkreiserfs |
xfs | mkfs.xfs |
jfs | mkfs.jfs |
swap | mkswap |
mount /dev/sda9 /mnt/gentoo
1.2.配置网络
连上网主要是用来下载portage和stage,如果已经在U盘里的话这步可以省略,直接挂载U盘拷过来就是了。配置网络有很多种方法,在其他Linux用的方法在这里一般也可以,官方推荐的是用net-setup来配置,命令如下:net-setup eth0
之后会出现简单的图形化界面,分自动和手动两种,但是我用它配置完后使用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
具体可以参考官网的handbook,Configuring your Network,里面还有无线网络的设置方法。 配置好后可以用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/
1.3.配置make.conf
为了优化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中,参考USE flags。CFLAGS中的march我用的是native,这是gcc从4.2.3后引入的一个参数,他可以自动判断cpu的类型,具体参考Safe Cflags。Gentoo镜像和同步源我选择网易的,我这就他比较快。MAKEOPTS用于指定gcc同时编译的数量,一般是cpu核数+1,后面的是xorg相关的,evdev用于鼠标和键盘,synaptics是触摸板,radeon是ati显卡的开源驱动,这部分可以参考The X Server Configuration。
1.4.进入新环境
接下来就可以进入新的环境/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
1.5.编译内核
首先下载内核,Gentoo使用emerge来管理包的,就像Debian的aptitude一样,转软件很方便。emerge gentoo-sources
#进入内核源码
cd /usr/src/linux
#配置内核
make menuconfig
内核的配置可以参考官方文档Configuring the Kernel,主要是处理器、文件系统(ext4和ntfs记得选上)以及一些驱动的选择,如果要安装开源驱动的话参考The X Server Configuration,最后别忘记保存。配置好了就可以编译了。
#编译并安装modules
make && make modules_install
#把内核镜像拷到/boot,用来引导
cp arch/x86/boot/bzImage /boot/kernel-3.5.7-gentoo
因为我的本本上装了Debian,grub已经装在Debian里了,所以我不需要再安装grub了,只要修改那边的grub来引导Gentoo即可,grub的安装参考Configuring the Bootloader和Gentoo Grub2
1.6.配置系统
现在一个基本的系统已经有了,这里做的只是些配置工作。首先是文件系统,也就是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
2.安装X Windows Server
2.1.安装xorg-server
重启后会进入命令行界面,用root登录,安装xorg-server,或者xorg-x11,后者要多一些字体文件,也很费时。这一部分参考The X Server Configuration。首先在USE中添加udev,然后echo "x11-base/xorg-server udev" >> /etc/portage/package.use
emerge xorg-server
#更新环境
env-update
source /etc/profile
2.2.配置xorg
使用xorg自动生成配置文件xorg.conf.newXorg -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
3.安装桌面环境
3.1.安装openbox+feh+fbpanel
我的桌面使用的是openbox+feh+fbpanel,使用emerge安装,参考The Openbox Configuration。emerge openbox feh fbpanel
安装过程会比较长,需要编译qt库。
3.2.配置桌面
因为配置文件会在用户的Home目录下,所以现在我们使用日常管理用的gentoo登录,注销root,登录gentoo。创建openbox的配置文件。mkdir ~/.config/openbox
nano -w ~/.config/openbox/autostart.sh
autostart.sh是openbox运行后的执行脚本,在里面我们可以把fbpanel和feh加进去,参考Openbox Autostart。我的配置如下
killall fbpanel > /dev/null 2>&1
fbpanel &
killall feh > /dev/null 2>&1
feh --bg-scale ~/background/Stripes.jpg &
3.3.安装登录管理器
这里我选择轻量级的slim作为系统的登录管理器,具体参考Gentoo SLiM。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。
4.安装桌面工具
下面是我所使用的一些工具。 文件管理: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可以更换窗口的主题。
就这么多了,以后想到了再更新。