LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 7863|回复: 20

安装疯狂优化的LFS(新鲜出炉)!

[复制链接]
发表于 2002-11-22 10:10:06 | 显示全部楼层 |阅读模式
这是我第三次装了,所以要做一点不同的事,如果你有足够的勇气,就一起尝试一下吧!我准备用reiserFS的文件系统,并用grub来引导系统,当然主题还是怎么用疯狂优化参数。
我用的是doooom的ftp上那个大包,版本是cvs-20021023(doooom欢迎大家用各种变态方式下载哦!)。书的版本就是我们翻译的那个,是20021030,其实doooom那里的包好像也是这个版本的,因为增加的patch都有。
环境:
redhat 8
KDE 3
konsole  
GCC-3.2-7

说点闲话:安装LFS的时候一边听歌一边装是最好的选择,在编译的时候,可以做一下记录,或者看一下软件包的说明,很有意思的。当然如果你不想,那就再准备一张体坛周报。要听歌,不能用XMMS,太耗资源。我用的是mp3blaster,呵呵,不错!

优化参数:
CC='gcc -s'
CHOST="i686-pc-linux-gnu"
CFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer -fforce-addr -falign-functions=4 -fprefetch-loop-arrays"
CFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer -fforce-addr -falign-functions=4 -fprefetch-loop-arrays"
你的CPU可能和我的不同,在这里可以找到详细的优化参数:http://www.freehackers.org/gentoo/gccflags/flag_gcc3opt.html
对设置优化参数的解释:在bash做为登陆进程时,是读/etc/profile(如果有的话)。在这之后,按顺序找~/.bash_profile,~/.bash_login, 和 ~/.profile文件,找到了就执行相关的操作。如果不是登陆进程(比如新开了一个konsole),它就找~/.bashrc,所以你要在相关的文件里设置参数。我习惯在/etc/profile里设置,所以在打开了一个konsole后,我要用source /etc/profile来找回一些没有读到的设置。当你用su命令成为root后,有些路径可能也没有,也用这个命令可以找到。
在/etc/profile里面加入:
CHOST="i686-pc-linux-gnu"
CFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer -fforce-addr -falign-functions=4 -fprefetch-loop-arrays"
CXXFLAGS="${CFLAGS}"
CC='gcc -s'
export CHOST CFLAGS CXXFLAGS CC


在/root/.bashrc中加入export LFS=/mnt/lfs
source /etc/profile
 楼主| 发表于 2002-11-22 10:10:37 | 显示全部楼层
下面是创建文件系统,我已经有一个3G大的分区了,是上次装LFS分的。
fdisk -l /dev/hdc
umount /dev/hdc4
mkreiserfs /dev/hdc4
mount /dev/hdc4 $LFS

下面确认一下:
[root@localhost tram]# echo $LFS
/mnt/lfs

mkdir $LFS/static
mkdir $LFS/static/src

把包拷贝过去:
cp doc/lfs-packages-cvs-20021023-1707.tar $LFS/static/src

增加用户:
useradd -s /bin/bash -m lfs &&
passwd lfs

chown -R lfs $LFS/static

su - lfs

bash_profile
cat > ~lfs/.bash_profile << "EOF"
umask 022

LFS=/mnt/lfs
LC_ALL=POSIX
CC='gcc -s'
export LFS LC_ALL CC
EOF
source ~/.bash_profile

在安装bash时:
cd /usr/lib
ls | grep libcurses
ls | grep libncurses
都有。


安装binutils:
unset CFLAGS
unset CXXFLAGS
安装好后:
source /etc/profile


安装 Fileutils-4.1
没有用patch,安装后,测试:
$LFS/static/bin/ls
正常

安装 GCC-3.2
unset CFLAGS
unset CXXFLAGS
安装后:
source /etc/profile

安装 Util-linux-2.11w
出了问题,不能编译。unset环境变量CFLAGS和CXXFLAGS后,就好了。
 楼主| 发表于 2002-11-22 10:11:23 | 显示全部楼层
第六章
在这里设置优化参数:
chroot $LFS /static/bin/env -i \
    HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
    PATH=/bin:/usr/bin:/sbin:/usr/sbin:/static/bin \
    CC='gcc -s' \
    CHOST="i686-pc-linux-gnu" \
    CFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer -fforce-addr -falign-functions=4 -fprefetch-loop-arrays" \
    CXXFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer -fforce-addr -falign-functions=4 -fprefetch-loop-arrays" \
    /static/bin/bash --login

mount proc /proc -t proc

安装设备:
./MAKEDEV -v generic

安装 Glibc-2.2.5:
别忘了unset环境变量!安装好了以后,也不能设置,因为下一个包还是不能用优化。
安装完GCC-3.2后,可以再设置优化参数,我嫌麻烦,就退出chroot环境(退出前不要忘了umount /proc),然后再进入(也同样不要忘了mount proc),因为命令都是粘贴的,要方便很多。

安装Binutils-2.13
unset环境变量
安装完了以后,还是老办法,退出再进入。

安装 Net-tools-1.60
用缺省的设置

没有装bin86和lilo

安装 Util-linux-2.11w
出了问题,不能编译。unset环境变量CFLAGS和CXXFLAGS后,就好了。

一个小bug:ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
没设置键盘

建/etc/fstab时,参数不一样了,见中文文档的第十章。

在编译内核时,又设置了优化参数,不过好像没什么用,它是用自己的参数编译的。颜色太难看了。
编译完内核后,就是设置grub了。我想用redhat的grub来引导系统,所以没有安装,直接把redhat下的两个文件拷贝过去了。
mkdir $LFS/boot/grub
cp /usr/share/grub/i386-pc/stage1 $LFS/boot/grub
cp /usr/share/grub/i386-pc/stage2 $LFS/boot/grub
然后在redhat中运行grub
grub
find /boot/grub/stage1
root (hd0,5)
setup (hd0)
quit
详细的可以看我写过的一篇文章,在中文文档的第十章里。
重启,进去了!
现在做最后的整理工作,看看空间,用了2.6G,我把/static/src和/usr/src里的文件都删了,只留下linux-2.4.19.tar.bz2,现在就只用了375M,如果减去/static的97M,那就只用了278M了。我为什么留着/static目录呢?因为一个/static可以编译很多的LFS,以后如果要再安装新版本的LFS,用旧的/static就行了,也就不用做第五章了。
然后再用strip,会出很多的错误,不管它,那是因为文件格式不认识,不会损坏你的系统的。现在更小了,才用了310-97=213M了!
OK,以后要装BLFS了。
发表于 2002-11-22 10:24:37 | 显示全部楼层
你用那个疯狂优化flag阿.....
我可不想作小白鼠, 因为已经有你作了. 用一端时间说说感受. 如果稳定的话. 也不好说了.你那个cpu 和我的不一样了. 我再gxgx, 现在只是pfpf

我用的是safe flag, 胆子小. 我想我一个礼拜的辛勤劳动还是值一个更加快速的CPU的. 呵呵

我上次编译lfs, 你说的几个要unset的地方, 我没有unset好像也没有错误, 但是最后turn out是不正常的.
 楼主| 发表于 2002-11-22 10:27:29 | 显示全部楼层
呵呵,其实要再安装一个很快的,我昨天从你那下的包,现在就装上了,当然装X比较麻烦了。所以我也打算备份一下,也好搞清楚x到底是怎么会事
发表于 2002-12-26 22:36:03 | 显示全部楼层

tarm兄,我没有找到AMD AthlonXP用的疯狂优化参数。。。

只找到了它用的save flag参数。。。
发表于 2002-12-26 22:49:53 | 显示全部楼层
Athlon XP (AMD)
CHOST="i686-pc-linux-gnu"
CFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer"
CXXFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer"

hgkrt兄,你装好了LFS,怎么不去英雄榜上签名呢?
发表于 2002-12-26 22:58:27 | 显示全部楼层

Re: tarm兄,我没有找到AMD AthlonXP用的疯狂优化参数。。。

tram给的链接第一页就是啊
把amd的的那项march一项改成safe flags中的就是了
自己编译测试一下好了
不是什么东西都要别人做好了,这样还不如装个发行版,失去diy的意义了,呵呵,编译出问题别找我

最初由 hgkrt 发布
只找到了它用的save flag参数。。。
发表于 2002-12-27 00:28:20 | 显示全部楼层
老大们, 什么是LFS
发表于 2002-12-27 07:50:42 | 显示全部楼层
看看置顶的贴子。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表