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来配置,命令如下: 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 BootloaderGentoo 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.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

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可以更换窗口的主题。

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

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