LFS项目总结

 

 1.这是第一次调整工具链,使得GCC可以通过/TOOLS路径下找到并加载共享库,并为第二次编译gcc+binutils+glibc作准备。

3.这是第二次调整工具链,之前是通过宿主编译工具,现在是通过新编译的工具再编译新的工具链,使得新的环境干净无污染。

之前一次我没有重视到这一块,结果到最后构建LFS系统环境时才出错,后悔死了。

当然了也可以通过顺利编译tcl_expect+dejaCNU来确保这些核心工具链的正确性的,真的很重要。

 

4.嗯,其实真的很卡呀。系统性能都发挥到极致了,但是还要等,耐心地等。

 

5.由于之前的经验和小心谨慎,所以在构建前的准备工作还算是比较顺利的,因为之前遇到很多错误,这次我知道怎么去解决了,可以避免很多了。

现在到构建LFS系统+安装系统基础软件+GLIBC软件包了。

前期工作:

 

6. Configure顺利通过,不过在make –k check 2&>1 | tee glibc-chck-log编译时却出现错误,但是呢,我查看回显时却为0,根据查看文档了解,glibc有的错误可以忽视,且这个可是结果为零,因为我做下一步了。

 

7.这是在make install时出现的错误。提示说GCC异常失败,并报告是

“-wl, -dynamic-linker=/lib/ld-linux.so.2”不能辨别。

解决尝试:

1》  可能是GCC SPECS文件错误,因此我又重新清洗一遍specs文件,未果

2》  可能是链接共享库的错误,因此我又回去更新一遍连接库,未果。

3》  首次做这个项目的时候,我怀疑是之前安装的工具链问题,结果回去重新做,结果出来了很多问题,并且问题都没有解决。

4》  最后原来是参数出错了,很难的。

-Wl(这个是小L的写法,而来是数字1,-dynamic-linker=/lib/ld-linux.so.2

结果重新编译,顺利通过测试。

有时出现问题很严重,但是往往是在某个小点造成,排查起来却十分困难,不引人注意,切记。

 

8.下图为GLIBC顺利通过测试的结果。

 

9.这是正常安装工具链时的正确结果。刚开始我没有使用-Wl,小写L,那个test.log回报没有识别-Wl ,--verbose参数,只有2018行结果。

解决方法:

1》  我把参数原来参数-W1,--verbose写成-W 1,--verbose,未果

2》  我以为是之前编译出错,就去重新编译,哈哈,结果呢,没有解决呀。

3》  最后想到那个l可能是字母小L喔,结果呢,还真是呀,以下为测试结果,有些差别。

 

10.下图是做PERL工具测试时,出现的错误,有一个测试脚本没有通过,但是我却跳过。并没有影响后果的安装,不过不知道是否影响日后使用呢。

 

10.下面在补丁时,也让我吓一跳呀,怎么没有文件的。结果让我百思不得其解,还到网上找资料看了很久,结果回来发现,原来我都没有进入到目录呀。

类似的问题有之前进入到CHROOT路径,发现没有这个文件,我看下是否没有写错吧。

没有呀,最后看了下,原来是LFS变量没值,原因是我SU用户,变量没继承呀。

 

11.之前的都做得差不多,后面的时候遇到文档不清晰,让我也费了不少神。

呵呵,终于弄好这个系统了,GRUB界面。

 

12.结果却出现下图,一波多折呀。

仔细一看,原来是那个/ETC/FSTAB文件加载时出错了,没有这个文件系统喔。

1》  我用CD盘重新牵引进入系统,把那个julian/etc/fstab /dev/sda1改回/dev/hda1

/dev/hda2 改回/dev/hda2,再重新引导。

 

13.终于能够进入系统了,可以注意到接口没有存在这个提示喔。这是那个UDEV的问题了,

原因是UDEV和网络驱动的模块化,网络设备接口的加载顺序在每次重启后可能会不同,我们可以通过MAC绑定来识别网卡。

通过grep –H . /sys/class/net/*/address通过接口的MAC地址。

再通过/etc/udev/rules.d/26-network.rules脚本来添加操作命令。

 

 

感觉LFS真的很难,很复杂,我对其中的某些原理百思不得其解。

根据之前操作,主要的问题是出在GCC+BINUTILS+GLIBC这些物件上,因为底层架构我都已经做错了,肯定会影响到之后的操作了。因此呢,我在这次操作的时候,一定要小心注意,不可掉以轻心,切记。

一切帝国主义都是纸老虎,不过这个老虎不好对付呀,给点信心给自己吧。

 

感觉这像人生的一道坎,没有越过前,觉得这坎高不可攀,但是再回头看,这只是个小泥头罢了。

Glibc 安装指南

 

编译是一个漫长的过程,需要我们去久久等待。或许盼望的最终结果,可能就是个错误。

但我还是等等乖。

 

啊,VM中途系统崩溃了。呵呵,还好,只是假死,在资源管理器还可以找到相应的进程,否则我就悲剧了。

 

刚才看了下文档,有句话不错的。

通过做这个LFS DIY LINUX系统,如果我们想了解LINUX是如何工作的,我还要了解每个包的用途,以及它对系统或用户的作用,因为我们不是为了编译而编译,而是根据需要而添加编译。

 

之前有很多挺不错的机会摆在我的面前,可是我却不懂得它的珍贵,而后才发现它的价值,有点可惜。

 

不知道结果如何,自己一个人静静地坐在电脑前编译,做到现在为止,似乎结果变得不那么重要了,而是

享受编译过程中给自己带来的乐趣。

 

上一次编译时出现了很多错误,这次却没有什么错误提示,可能是心态原因吧,现在我心平气和的。

 

现在又是回到上一次的问题,看来我不解决它,是不可能让我通过的了。

我应该怎么处理它呢?

 

嗯,之前遇到了那个因为,原来是我把那个参数弄错了。

 

终于成功弄完了LFS,突然有种如释重负的感觉。

其实这个也不难,真的不难。通过四天连日的加工,在挫折中成功地完成了这个系统,虽然遇到过很多困难,也有想过退却,但我还是坚持下来了,并且最终修成正果。

可能在别人看来这是小事一桩,但是对于最近两个月中情绪低迷的我来说,真的是鼓舞人心,当然还有更多有挑战的事等着我们去做,加油吧。

�����sJ