+ -
当前位置:首页 → 问答吧 → 突然想到一个很BT的问题……关于从stage3到stage1的转换

突然想到一个很BT的问题……关于从stage3到stage1的转换

时间:2005-07-04

来源:互联网

有点想试试gcc 4.0.1编译的系统是不是真的快一些,另外,想为我的Duron优化一下下,所以打算从Stage1编译一个系统,现在的系统是stage3装的,是否可以通过直接emerge -u world来编译捏?这样好像会重新编译整个系统的说……不知道可行不?

作者: Zer4tul   发布时间: 2005-07-04

no,绝对不行!!!在BOOTSTRAP后BINUTIL,GLIBC,GCC会用到你的优化,而装完后就不行呐

作者: jjj311   发布时间: 2005-07-04

emerge -e 就可以了,呵呵

作者: wangxudong   发布时间: 2005-07-04

引用:
作者: jjj311
no,绝对不行!!!在BOOTSTRAP后BINUTIL,GLIBC,GCC会用到你的优化,而装完后就不行呐
emerge -e system 就是了。有什么不行?
bootstarp是什么东西来的?好像只是stage1 里面才有,gentoo包里是没有这一个。

emerge -e system 会重新编译整个系统基本的东西,除内核。

作者: zxb   发布时间: 2005-07-04

以前看到:不记得哪里的了,在此先向原作者表示歉意

代码:
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 正在欢迎你!

作者: zxb   发布时间: 2005-07-04

谢一个先……

作者: Zer4tul   发布时间: 2005-07-05

热门下载

更多