构建LFS过程遇到的问题

建立 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 .最后一步出错:
 构建LFS过程遇到的问题_第1张图片
启动的最后一步提示:
/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 官方手册》 。看附件。。。。。。。

你可能感兴趣的:(职场,构建,休闲,lfs)