|
发表于 2005-7-4 12:23:36
|
显示全部楼层
以前看到:不记得哪里的了,在此先向原作者表示歉意
- Stage 1 NPTL on a Stage 3 Tarball Guide
- 1、起动到一个 linux 环境,不管是已有的 linux 系统或是 Ibox 等 LiveCD 都可以,我是在 debian 上开始的。
- 2、打开硬盘 DMA
- hdparm -d1c1u1m16 /dev/hda
- 3、分区、建立文件系统、挂载 swap,不多言了,版中兄弟应该驾轻就熟了
- 4、挂载 gentoo 分区
- mount /dev/hda9 /mnt/gentoo
- mkdir /mnt/gentoo/{boot,home}
- mount /dev/hda6 /mnt/gentoo/home
- mount /dev/hda7 /mnt/gentoo/boot
- 5、弄个 stage3 tarball 解开到 gentoo root 分区
- wget http://gentoo.ccccom.com/releases/x86/2004.3/stages/pentium4/stage3-pentium4-2004.3.tar.bz2
- tar -xvjpf stage3-pentium3-2004.3.tar.bz2 -C /mnt/gentoo
- 6、安装 portage 树
- wget http://gentoo.ccccom.com/snapshots/.tar.bz2
- tar -xvjf .tar.bz2 -C /mnt/gentoo/usr
- 7、安装 gentoo 基本系统
- 7.1 拷贝 DNS 信息
- 7.2、挂载 proc
- mount -t proc none /mnt/gentoo/proc
- 7.3、Chroot 进 gentoo 系统
- chroot /mnt/gentoo /bin/bash
- env-update && source /etc/profile
- 7.4、设置系统时间
- rm /etc/localtime
- ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
- 7.5、设置 make.conf
- mkdir -p /var/log/portage
- mkdir -p /home/ftp/pub/gentoo/distfiles
- mkdir -p /usr/local/{portage,glc}
- 下面是我的 make.conf
- CFLAGS="-O3 -march=pentium4 -fomit-frame-pointer"
- CHOST=“i686-pc-linux-gnu"
- CXXFLAGS="${CFLAGS}"
- ACCEPT_KEYWORDS="x86"
- DISTDIR="/home/ftp/pub/gentoo/distfiles"
- PORT_LOGDIR="/var/log/portage"
- PORTDIR_OVERLAY="/usr/local/portage /usr/local/glc"
- #FETCHCOMMAND="/usr/bin/proz –no-getch –no-search -k=5 –retry-delay=1 ${URI} -P ${DISTDIR}"
- GENTOO_MIRRORS=?http://gentoo.ccccom.com http://ftp.gentoo.or.kr/
- ftp://mirror.averse.net/pub/gentoo http://mirror.pacific.net.au/gentoo/"
- RSYNC_RETRIES="3"
- FEATURES="sandbox ccache distlocks"
- CCACHE_SIZE="512M"
- USE="glc nls cjk apache2 mysql maildir imap acpi truetype nptl freetype pam pthreads python userlocales screensaver"
- 请根据本机实际更改。
- 7.6、为构建 gcc 3.4.3 平台作准备
- echo "sys-devel/gcc ~x86" >> /etc/portage/package.keywords
- echo "sys-devel/gcc-config ~x86" >> /etc/portage/package.keywords
- echo "sys-libs/libstdc++-v3 ~x86" >> /etc/portage/package.keywords
- echo "sys-libs/glibc ~x86" >> /etc/portage/package.keywords
- 7.7、更新 portage 树
- emerge --sync
- 7.8、安装 prozilla 为 emerge 加速
- 目前 prozilla 被 mask 了,只好如此:
- echo "www-client/prozilla ~x86" >> etc/portage/package.keywords
- echo “>=www-client/prozilla-1.3.6-r1″ >> /etc/portage/package.unmask
- emerge prozilla
- 取消 /etc/make.conf 中的 FECHCOMMAND 一行注释。
- 7.9、打开 user locales ,为 glibc 减肥
- echo "sys-libs/glibc userlocales" >> /etc/portage/package.use
- 修改 /etc/locales.build ,设置需要编译的 locales :
- en_US.ISO-8859-1
- en_US.UTF-8/UTF-8
- zh_CN/GB18030
- zh_CN.GB2312/GB2312
- zh_CN.UTF-8/UTF-8
- 8、构建新工具链
- 8.1、重新编译 glibc 及 gcc
- 为了打开 nptl ,我们不得不卸载 linux-headers。
- env-update && suorce /etc/profile
- emerge -C linux-headers
- emerge linux26-headers
- emerge gcc-config glibc binutils gcc
- 这是个比较漫长的过程,不过值得等待…
- 8.2、现在我们用 gcc 3.3.4 及其工具链重新编译了 gcc 3.4.3,下面我们需要启用新的 gcc 来重新构建整个工具链和系统。
- 8.2.1。首先我参考 Bob P 的帖子修改了 make.conf,目前没发现什么问题,不喜欢的朋友可以不修改。
- CFLAGS="-O3 -march=pentium4 -mtune=pentium4 -fforce-addr -momit-leaf-frame-pointer -fomit-frame-pointer -ftracer -pipe"
- CXXFLAGS=“${CFLAGS} -fvisibility-inlines-hidden -fvisibility=hidden”
- 8.2.2。切换到 gcc 3.4.3
- gcc-config -l
- [1] i686-pc-linux-gnu-3.3.4 *
- [2] i686-pc-linux-gnu-3.4.3
- [3] i686-pc-linux-gnu-3.4.3-hardened
- [4] i686-pc-linux-gnu-3.4.3-hardenednopie
- [5] i686-pc-linux-gnu-3.4.3-hardenednossp
- 我们看到,虽然我们安装了 gcc 3.4.3,但系统默认的编译器仍然是 gcc 3.3.4,如果没什么疑问,我们来切换到 gcc 3.4.3。
- gcc-config 2
- env-update && source /etc/profile
- gcc -v 看一下,现在默认的编译器应该是 gcc 3.4.3 了。
- 8.2.3。重新编译工具链
- emerge glibc binutils gcc portage
- 8.2.4。现在我们的工具链是最新的了,下面我们要用这个工具链来重新编译整个系统,这是个更为漫长的过程,作好思想准备 [微笑]
- emerge -e system
- 8.3。完成系统的其他安装工作
- 8.3.1。安装基本工具
- emerge syslog-ng grub vixie-cron reiserfsprogs sysfsutils udev dhcpcd hotplug coldplug gentoolkit gentoolkit-dev genlop esearch telnet-bsd vim
- rc-update add syslog-ng default
- rc-update add vixie-cron default
- rc-update add sshd default
- rc-update add hotplug default
- rc-update add coldplug default
- rc-update add acpid default
- 8.3.2。修改 rc.conf
- CLOCK="local"
- EDITOR=”/usr/bin/vim”
- 9。安装内核
- 我准备采用 2.6.10-nitro4,下载 ebuild 到 PORTDIR_OVERLAY。
- emerge nitro-sources
- 内核配置不多讲了,目前大家普遍关注的如 udev,gensplash,reiser4,win4lin 这个内核都有,如果需要 unicon 支持,找到
- sunmoon 提供的补丁 patch 一下即可。
- 需要注意的是要开启 udev 支持,要修改 /etc/conf.d/rc 脚本,加入
- RC_DEVICES="udev"
- RC_DEVICE_TARBALL=”no”
- 10。配置系统
- 10.1。配置网络
- 我的网络连接是 pppoe adsl,所以先来安装 rp-pppoe
- USE="-X" emerge rp-pppoe
- adsl-setup
- rc-update add rp-pppoe default
- 10.2。配置主机及域名服务
- echo "microweb" >> /etc/hostname
- echo “3322.org” >> /etc/dnsdomainname
- echo “microweb.3322.org” >> /etc/nisdomainname
- rc-update add domainname default
- 10.3。安装和配置 gensplash
- 如果不喜欢 gensplash 可跳过。
- emerge splashutils
- splash_geninitramfs -v -g /boot/fbsplash-emergence-1024x768 -r 1024x768 emergence
- rc-update add splash default
- 10.4。安装配置 grub
- 这个不多说了,下面是我的 grub.conf
- # For booting Gentoo
- title Gentoo 2004.3
- root (hd0,6)
- kernel (hd0,6)/vmlinuz-2.6.10-nitro4 ro root=/dev/hda9
- video=vesafb:mtrr,ywrap,mpipal,1024x768-16@85 splash=silent
- initrd (hd0,6)/fbsplash-emergence-1024x768
- 安装 grub 到 MBR
- grub
- grub> root (hd0,6)
- grub> setup (hd0)
- grub> quit
- 10.5。配置 fstab。
- /dev/hda7 /boot ext3 noauto,noatime 1 1
- /dev/hda9 / reiserfs noatime 0 0
- /dev/hda6 /home reiserfs noatime 0 0
- /dev/hda8 none swap sw 0 0
- /dev/hdb7 none swap sw 0 0
- /dev/cdroms/cdrom0 /mnt/cdrom iso9660 noauto,ro 0 0
- 10.6。配置 hdparm
- nano -w /etc/conf.d/hdparm
- disc0_args=”-d1c1u1m16″
- cdrom0_args=”-d1c1u1″
- rc-update add hdparm boot
- 10.7。设置用户信息
- 设置 root 密码
- passwd
- New password: (Enter your new password)
- Re-enter password: (Re-enter your password)
- 增加一个普通用户
- useradd -m -G users,wheel,audio,video,tty,portage,games,cdrw max
- passwd max
- New password: (Enter max’s password)
- Re-enter password: (Re-enter max’s password)
- 10.8。设置 numlock 状态服务
- rc-updae add numlock default
- 10.9。退出 chroot 环境。
- exit
- cd ~
- umount /mnt/gentoo/proc /mnt/gentoo/home /mnt/gentoo/boot /mnt/gentoo
- 11。重启系统,一个崭新的 gentoo box 正在欢迎你!
复制代码 |
|