建立
LFS
过程的常见问题及解答
1.
有乱码
,
试试将
LC_ALL
设置为
en_US
看看
/etc/profile
文件内容如下:
export LC_ALL="en_US"
export LANG="en_US"
export INPUTRC=/etc/inputrc
2
. gcc 4.3.2 编译错误
编译产生如下错误
/usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h: No such file or directory
make[5]: *** [_muldi3.o] Error 1
make[5]: Leaving directory `/mnt/lfs/sources/gcc-build/x86_64-unknown-linux-gnu/32/libgcc'
make[4]: *** [multi-do] Error 1
make[4]: Leaving directory `/mnt/lfs/sources/gcc-build/x86_64-unknown-linux-gnu/libgcc'
make[3]: *** [all-multi] Error 2
make[3]: Leaving directory `/mnt/lfs/sources/gcc-build/x86_64-unknown-linux-gnu/libgcc'
make[2]: *** [all-stage1-target-libgcc] Error 2
make[2]: Leaving directory `/mnt/lfs/sources/gcc-build'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/mnt/lfs/sources/gcc-build'
make: *** [all] Error 2
起因:LFS宿主系统是64位的,做GCC的交叉编译会出错。
解决:更换宿主系统为32位或采用CLFS
3.chroot
后glibc- 2.5.1 make出错
编译产生如下错误
no gen-translit.pl < C-translit.h.in > C-translit.h.tmp
/bin/sh: no :command not found
make[2]:*** [C-translit.h] Error 127
make[2]:Leaving directory '/sources/glibc- 2.5.1 /locale'
make[1]: ***[locale/others] Error2
make[1]:Leaving directory '/sources/glibc-.2.5.1'
make : *** [all] Error2
起因:�]安perl或者perl不能正常工作(用perl -V可以进行简单测试。如一切正常就应无报错信息)。经检查编译的perl并没有问题,后发现是未正确复制perl的库造成
解决: 1. 将PERL相关的LIB Copy过去(cp -Rv lib/* /tools/lib/perl5/ 5.8.8 )。2.重编Glibc前必须重新生成Makefile文件(必须)。
4. chroot "$LFS" /tools/bin/env -i HOME=/root TERM="$TERM" PS1='\u:\w\$ ' PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin /tools/bin/bash --login +h
上面命令输入后就报这个错误
chroot: cannot run command `/tools/bin/env': No such file or directory
原因
是
gcc
第二遍的时候漏打了
gcc- 3.4.3 -specs-2.patch,
打上补丁
,5.11
之后的步骤重来
,chroot
就没出问题了
,
如再不行,整个第五章重做
.
5
. 其它错误
除开上面的两个比较严重的错误外,基本是就是一些输入错误而引起的
如:由于当时做符号链接时ln -sv $LFS/tools / 时少打了后面那个/,把符号链接生成在root目录里面了,导致后面用lfs用户编译时出现Permision denied。重启修改后正常进行。
6
.最后一步出错:
启动的最后一步提示:
/etc/rc.d/rcsysinit.d/S80localnet:line 22 ip :command not found
/etc/rc.d/rcsysinit.d/S80localnet:line 23 ip :command not found
一般就是因为:这个
iproute2- 2.6.20 -070313.tar.gz
包有问题,重装就能解决问题
.
Interface eth0 doesn't exist
估计是没有把虚拟网卡编进内核,查看了一下,需要
pcnet32
模块,在内核树
drivers/net
下面有
pcnet32.c
文件
,
按照如图选择就
o
了!
最后说一下
LFS
虽然整个构建过程比较烦琐,只要你打好了基本功,多练几遍你就神了,注意理解。推荐你可以参考这两个文档《手把手教你如何建立自己的
Linux
系统》孙海勇老师的博客
和《
Linux From Scratch
官方手册》
。看附件。。。。。。。