LinuxSir.cn,穿越时空的Linuxsir!

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

在Ubuntu7.04下成功安装LFS6.2.0

[复制链接]
发表于 2007-7-19 20:02:46 | 显示全部楼层 |阅读模式
经过近3天的折腾,终于在Ubuntu7.04下成功安装了LFS6.2.0。

确实不容易。在看了论坛无数帖子以后,知道有大侠说在Ubuntu下LFS,比较困难,但没办法。就装了Ubuntu了。
不过总算是成功了。其中遇到了几个问题,在这里总结一哈,希望能对在Ubuntu7.04进行LFS的同志们有点帮助。

1. 软件包

软件包比较多,如果挨个下载比较麻烦。在Ubuntu7.04可以直接下载LFS6.2.0的LiveCD。将镜像挂载。

  1. mount -t iso9660 -o loop /yourpath/yourfilename.iso /mnt/iso
复制代码

然后在将镜像中的root.ext2挂载

  1. mount -o loop root.ext2 /mnt/ext2
复制代码


2.编译binutils报错unrecognized option '--hash-style=both'或类似。

这是由于GCC版本较高导致的问题。
参考http://www.linuxfromscratch.org/lfs/errata/stable/
编译binutils在。./configure 前加上CC="gcc -B/usr/bin/"
整个编译命令应为:

  1. CC="gcc -B/usr/bin/" ../binutils-2.16.1/configure --prefix=/tools --disable-nls
  2. make
  3. make install
  4. make -C ld clean
  5. make -C ld LIB_PATH=/tools/lib
复制代码

同样,编译GCC的时候也要这样做。

3.编译Glibc-2.3.6时出错

错误如下所示。

  1. ……
  2. /mnt/lfs/sources/glibc-build/csu/version-info.h:2: error: missing terminating " character
  3. /mnt/lfs/sources/glibc-build/csu/version-info.h:3: error: missing terminating " character
  4. /mnt/lfs/sources/glibc-build/csu/version-info.h:4: error: expected ',' or ';' before string constant
  5. make[2]: *** [/mnt/lfs/sources/glibc-build/csu/version.o] Error 1
  6. make[2]: Leaving directory `/mnt/lfs/sources/glibc-2.3.6/csu'
  7. make[1]: *** [csu/subdir_lib] Error 2
  8. make[1]: Leaving directory `/mnt/lfs/sources/glibc-2.3.6'
  9. make: *** [all] Error 2

复制代码

搜了半天发现是由于文件中换行符的问题。
将version-info.h修改成如下所示。


  1. "Compiled on a Linux 2.6.12 system on 2007-07-15.\n"
  2. "Available extensions:\n"
  3. "\n"
  4. "       GNU libio by Per Bothner\n"
  5. "       crypt add-on version 2.1 by Michael Glad and others\n"
  6. "       Native POSIX Threads Library by Ulrich Drepper et al\n"
  7. "       BIND-8.2.3-T5B\n"
  8. "       NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk\n"
复制代码


4.内核编译

内核编译的时候要注意驱动的问题。
我的机器是Intel的板子,第一遍编译内核时无法挂载主文件系统。
搜了半天才知道要在内核中加入对Intel PIIXn chipsets support
注意要编译进内核,而不是编译成模块。即[]中是*而不是M。
另外还要注意模块对ext3文件系统的支持,最好编译进模块。
然后就是网卡驱动的问题,在编译内核要加入对网卡的支持。
否则会出现eth0 doesn't exist
首先在宿主机上使用lspci查看网卡型号
如果要使用nvidia的驱动,在编译内核时不要编译对nvidia framebuffer的支持

5.grub问题

安装Ubuntu时已经安装了grub,所以,我在LFS时没有安装grub直接使用宿主机的grub。
我在LFS时分区没有处理好,我是直接对fat分区进行操作,似乎有问题。后来又将分区删掉
重新划分结果导致grub引导出问题。如果没有一张使用grub引导的光盘,那么麻烦就大了。
如果电脑上还装了Windows的话,可以先用DOS启动盘引导使用fdisk /mbr修复引导区。
进入Windows后,安装wingrub,重新启动,在wingrub中使用命令启动Ubuntu。
进入Ubuntu后,运行

  1. sudo grub
  2. root (hd0,7)
  3. setup (hd0)
复制代码

重新安装grub
其中root中的 (hd0,7)是宿主机的文件系统所在的分区。
setup中的(hd0)代表将grub安装在第一个硬盘上。

因为我现在有两台电脑可以用。
所以,我主要使用ssh远程登录进行操作感觉蛮爽。
LFS成功以后,如果要进行BLFS,最后也采用ssh的方式。
应首先在LFS中装上openssh。
我是在Windows下通过putty远程登录,如果有软件包需要下载,就用迅雷,然后通过psftp上传的LFS中。

LFS只是个开始。BLFS将更复杂。
我在BLFS时,编译pango时没有生成libpangoxft-1.0.so,很是奇怪。
不知道是什么问题。
我安装了xft后,又重新编译,还是没有libpangoxft-1.0.so,真是郁闷呢。
总之,提醒各位欲进行LFS的同志们,错误是难免的,重在过程。
预祝各位编译成功。
发表于 2007-7-19 20:12:35 | 显示全部楼层
UB 做旧版 LFS 的确问题多多,做 SVN 应该是没有多少问题的

Openssh 的安装在 BLFS 手册上已有记载了
回复 支持 反对

使用道具 举报

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

本版积分规则

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