LinuxSir.cn,穿越时空的Linuxsir!

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

LFS编译日志

[复制链接]
发表于 2009-12-24 17:50:31 | 显示全部楼层 |阅读模式
******************************************************************
前言:
******************************************************************
这个日志记录了笔者从知道LFS到熟悉LFS的全过程.当然错误的,正确的都有,仅供参考

******************************************************************
目的:
******************************************************************
给后来新人参考.

******************************************************************
路径:
******************************************************************
我建议第一遍做LFS的人,最好去下一个官方的LiveCD.虽然它有500M,但没关系,现在网速能

达到200K.下起来2小时(我下的时间)吧!
还有就是英文问题,LiveCD中的东西,大部分都是英文的,我没过四级,但我敢看各种纯英文文

献.我不怕.对于我来说,这样就可以了.
LiveCD里面有一切自己需要的LFS原料.做一个自己的LFS挺快的.

******************************************************************
LFS编译日志
******************************************************************

2009年4月-10月         迷茫期
开始知道有LFS这种东西,那时候看了金步国的6.2版的LFS中文翻译文档。当时像个小白一


看着它,对着它发呆。那时候的我,连虚拟机和主机通信都不知道。虽然学过SQL Server,

操作
系统,网络,C语言,组装与维护。。。但我在那面前仍然是小白。那时的我,只知道文件

和目录
处理命令:ls, cd, mkdir,login,logout,exit 差 不多了。至于怎样源码安装软件 ,很不

幸地告诉你
,我根本就没听过,连怎么装软件,我也不是太清楚!小白一个。但我看到金步国的那句话

,让我
当时有了一点信心“基础不是最重要的,持之以恒的意志才是最为重要的”。可是看了不知

道有多长
时间,就觉得太难放弃了。悲剧啊!

2009/12/23        开始用心的自学LFS了
在这之前的一个星期里,我都在编译内核.编了一个星期,有点菜.呵呵.最后的错误雷死我了.

竟然是内核本身的
错误,因为这个内核不是从官网下的.所以我又到www.kernel.org中从下了一个2.6.13的内核

.也意识到Changes文件
的重要性了.
今天收集了大量的LFS资料。尤其是在Linuxsir.org上的LFS版。这是一个学习LFS不错的地

方啊,
遇到了一些问题。是英文文档,刚看的时候有点吃力,但看了几分钟,觉得还可以。
在LinuxSir上注册了个啊brauceunix.挺高兴。也在今天,我决定了做一个5M大小的Linux

,然后
再做一个50M的,500M的。做完了,估计自己的LFS水平也就上来了,不在于多,而在
于精。将这些Linux版本做得很稳定就行了。在PC上做完之后,要到各个平台做LFS。即所谓
的系统移植,为自己学习Linux机器打下个基础。还有就是要回报LinuxSir这个站点。到以


将自己做LFS的过程写进去吧!将自己做的所有的LFS稳定版的制作方法和样例都传上去吧!
对后来学LFS的人也有好处。一箭N->啊。

2009/12/24 11:06
当我把一些准备文件复制到LFS的目录中时,突然发现自己犯了一个很严重的错误:将LFS的
分区分得太小了。只有5500M,另外说一下我的平台:VMware 6.0 + LiveCD 6.2.4 + X86
(Thinkpad R51E 1.7G 512M 80G分给虚拟机8G(动态的))。现在正祈祷能将编译链编译


就行了。。到这一环编译完成之后,重新分区,分个4G的区给LFS。在这个时候有一点不是

很清楚:
本来自己的机器(LiveCD)里就一套编译链,和6.2版的LFS手册里的编译链是差不多的。为

什么就不能直接
用本机的编译链呢?为什么非要重新编译 编译链呢?
在编译GCC。。CPU使用率在100%。

2009/12/24         12:30
刚吃完饭,来编译内核,大脑一片空白啊。。还没进入状态。烦躁。进行LFS的时候应该时

刻记住自己LFS的目标:
任意平台LFS。就是这样了。记住就好了。Go!

2009/12/24        13:27
用了一个小时的时间将系统重头弄了一遍,并且把刚刚的那个虚拟机系统Delete了。到目前

为止的进度为:用Fdisk 将系统分区的工作
做完了.并且第一遍安装了Binutils了.正在安装GCC,这个装的时间好长啊.关键是make

bootstrap这命令给整的.要重复编译.金步国的
这个中文版翻译的很好.至少对我来说是这样的.每个命令讲解的很到位啊.现在是13:34.GCC

还没好..这么恐怖.我还只装了一个C语言版
的GCC啊.这一遍我有十足的信心会成功,哈哈..有一点要注意,在6.2版中的GCC-4.0.3不支持

在源代码目录中进行编译.我的这个报错,
然后看了一下,原来是这样的啊..解决方案是,在GCC-4.0.3目录之外建一个目录GCC(名字可

以任意取),在里面进行编译.现在是13:37.
黑暗时光啊!GCC编译这么长时间.太可怕了.都快和编译Linux 2.6.13内核时间差不多了.果

然耐心在这个时候还是很重要的!GCC居然还
没好!!!淡定!淡定!淡定!时间太长了,有点让我觉得...所以我刚刚看了一下,LFS文档,说GCC

要8.2个SBU啊.这样可以精确的计算出一个
SBU在我的电脑里的时间是多少啊..挺好.编译要的是CPU运行速度.我的只有Petium 1.7GHz

的.现在是13:50. GCC编译完成.编译用时23
分钟.

2009/12/24 14:02
Linux-Libc-Headers-2.6.12.0已经完成,正在编译Glib C中.出现问题!configure配置的选

项是GCC还是Make的?..不知道..上午的问题
:为什么不用本机的工具链,而要产生一个新的工具链这个问题已经解决.原因是:我们的目的

是编译一个新的系统环境,以适应新
的应用.理解这一个就好办了,而不同于本机的新的系统环境是无数的,学过集合的人都知道.

我们是一,剩下的机器环境是全集减一.呵呵.
当然了,在我们环境中,一是不能完成全集减一的工作的.因为各种环境千变万化.所以为了编

译不同的平台.就必须为不同的平台单独
定制一套独特的系统开发环境.这就像,再强的一个人,也不能代表一个集体一样.一个平台再

好,也不能代表所有平台.这是哲学问题,
从实践中得出来的哲学!很相信邓小平爷爷的话>实践是证明真理的唯一条件.我认为,如果是

真理,就一定会在实践中实现,反之,
实践之中,必能产生真理...太哲学了..我是搞技术的..不能说了,越说越不专业了..STOP了.

到将哲学搞透再来说吧!LFS时间很长啊
也挺无聊的,我倒建议有心人将过程.感受写下来,指导后来人,也为开源社区做点贡献.想写

什么就写什么,管别人怎么说呢?这就真实的我
不管是善良的还是邪恶的不管是纯洁的还是肮脏的,我无所谓.自己觉得不好的就改,觉得好

的就保持.
现在时间:14:23 Glib C编译完成,用时20分钟.make check也挺耗时间啊!这个时候体会到一

了一句话:打命令的时间是短的,可是执行命令
的时间是很长的.有点像:说话容易,做事难.管理容易,开发难!再后面,也许就是:解决问题容

易,创造问题难了.而他们所花的平均时间都是
快速增长的.思考出操作系统的人将会是一种什么样的人!可能一个个都是怪物!只不过,这些

怪物,不吃人,而是帮助人们的善良的敲钟人.
现在是14:41.检查完毕.用时17分钟.同上面的话一样,可能创造只是为了更好的应用!思想的

改变只是为了更好的开发软硬件,改变开发软
硬件的方式 只是为了让管理更加容易.这一切都是一个完整的整体.不可分割,只不过,我在

很多时间都不曾意识到这个问题,以前甚至产生
这么一个很极端的观念:做管理的就是不用大脑的,像我这种人怎么会去做管理呢?要做开发.

做理论的不如做实践的.因为做理论的只会说
不会做.很垃圾.想一想,这话在不同的场景中是不一样的.它们是一个整体,在Windows下体会

不是很深,但在Linux下就完全改变了,做开发的
必须会管理,做管理的也要会一点开发.

2009/12/24 15:08
出现了一些问题,自己现在想做的是一个5M的内核,可是发现和金前辈的步数有点不合,所以

就舍弃了金前辈的步数了.走自己的步数了,我
是第一次做LFS,听过前辈说,自己做的时候要跟着文档走,要不然很容易出错...希望待会儿

不会出现当机现象.
2009/12/24        16:01
调整工具链时出错重大Bug,还没过去呢....努力中...
现在是16:25问题解决了....方法是将SPECFILE=$(gcc --print-file specs) &&
sed 's@ /lib/ld-linux.so.2@ /tools/lib/ld-linux.so.2@g' $SPECFILE > tempspecfile

&&
mv -f tempspecfile $SPECFILE &&
unset SPECFILE
这个语句分解..像英文中的分解从句一样.先运行 gcc --print-file -> ls -> vim specs

-> /tools/lib... ===>
/mnt/lfs/tools/tools...(不同人目录可能不一样)->wq 思想是这样的:遇到 这个困难时,

像个小白一样看着它.过了二十几分钟,想想这步完不成,下面的就没
法进行了,所以产生了一定要解决它的方法,而我看的文档中说的是把specs文件中的/tools

换成/mnt/lfs/tools/,所以我就想找出specs文件
在哪儿?但没有眉目啊..于是就想到了把那个复合命令分开执行,我就先执行第一个,一看到

specs,立马沸腾了.发现它了.我就没有继续
执行下面的语句,而是用Vim打开它.找到相应的/tools这一句,将它改成自己的目录(不同的

人可能不一样).然后验证它.成功啦!!!
兴奋啊!!哈哈哈哈哈哈哈哈哈
有点累了..但很Happy做了一天LFS了..

17:39 2009-12-24
今天是平安夜.没注意,这个事...平安夜快乐...作为班长,刚刚和同学出去买了一点好吃的

东西庆祝一下..呵呵....
现在开始工作了.
发表于 2009-12-24 19:26:58 | 显示全部楼层
旧版本的 LFS 跟现在的有很多不同之处,不要再怀念过去式了

还有,请[color="Red"]详细阅读 LFS 手册才好动手
回复 支持 反对

使用道具 举报

发表于 2009-12-25 16:47:48 | 显示全部楼层

呵呵

小伙子有前途阿,
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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