LinuxSir.cn,穿越时空的Linuxsir!

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

[惭愧惭愧]借助nALFS-1.2.4成功编译lfslivecd-x86-6.x-utf8-r0

[复制链接]
发表于 2006-1-25 12:19:08 | 显示全部楼层 |阅读模式
实在是惭愧,前面手工用LFS BOOK编译出了太多问题,又没时间排错,只好取一下巧了。借助lfslivecd-x86-6.x-utf8-r0自己带的nALFS-1.2.4成功编译;系统运行起来了,不过还有些不完美的地方;另外编译过程中还是遇到了一些问题。
    我会稍后写个小结,并把用到的配置文件传上来,以便共享。特别是希望对像我这样时间比较紧的新手 和  对UTF版本感兴趣的LINUXER有所启发。


系统配置:
CPU P3 TUALATIN 1.2G
主板 ASUS TUSL2 (集成RAID,声卡)
显卡 NVIDIA GEFORCE 2 MX400 32M
显示器 MAG XJ500T
内存 KINSTOM SDRAM 512M
网卡 3COM 10/100自适应
视卡 10MOONS TVMASTER II
主硬盘 MAXTOR PATA 80G
SCSI系统
原厂 ADAPTEC 39160 SCSI 卡
系统盘 ST336706LW

虚拟配置:
VMWare     5.0
虚拟内存   196M
虚拟硬盘   6G
虚拟接口   BUSLOGIC SCSI
 楼主| 发表于 2006-1-25 12:21:04 | 显示全部楼层
Thanks for registering, your LFS ID is: 16855

Wed Jan 25 11:27:08 +0800 2006
回复 支持 反对

使用道具 举报

发表于 2006-1-25 12:27:49 | 显示全部楼层
期待中。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-25 16:27:25 | 显示全部楼层
1. livecd文件细节
        lfslivecd-x86-6.x-utf8-r0.iso  393,697,280 字节  2005年8月5日, 13:59:50

2. 启动过程注记
        1). 启动后出现 boot:提示符,可以选择启动选项(按F1阅读帮助),这里由于我是用的VMWARE虚拟机,所以主要设置了合适的显示方式(1024×768×16):
                linux vga=791
        2). 时区选项,我选择
                Asia/Chongqing
                localtime
        3). 语言和字符,我选择
                en_US.UTF-8
                默认的键盘映射
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-25 16:31:09 | 显示全部楼层
3. 启动后环境说明
        启动后直接登录到root帐户
        1). /root目录下包括
                README - 文件:对LIVECD的简单说明
                nALFS-profile-LFS-6.1 - 目录:内含nALFS-1.2.4编译配置
                        chapter05
                        chapter06
                        chapter07
                        chapter08
                        chapter09
                        checkit.sh
                        config
                        DTD
                        LFS-6.1
                        LFS.xml
                        README
                        runit.sh
                        scripts
                        skeleton
                        tools
                在该目录下的README文件中有对nALFS的简单说明,这些配置文件理论上都是需要定制的,但我为了节约时间,只进行了最基本的编辑。
        2). /sources目录下含有全部用到的源文件包,不过需要注意的是,为在以后的编译中使用nALFS所需要的两个包
                libxml2-2.6.17.tar.bz2
                nALFS-1.2.4.tar.bz2
        并不在这个目录下,为了避免在编译中进行下载操作,可以先把这两个包下载并复制到/sources目录下。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-25 16:31:55 | 显示全部楼层
4. 对nALFS-profile-LFS-6.1目录下的配置文件进行定制
        为了节约时间,只进行了最基本的定制
        1). 为了以后能查阅原始的配置文件,可以先把整个目录备份一下;
        2). runit.sh
                在这个文件中最后一行会调用/usr/local/bin/nALFS,但在LIVECD中nALFS不在这个位置,但在PATH路径中,所以只需要去掉nALFS前的路径就可以了;
        3). config目录
                general.ent:
<!-- Timezone file
     This entity will be used as the target of the link
     /etc/localtime
     -->
<!ENTITY localtime "/usr/share/zoneinfo/Asia/Chongqing">

<!-- Password of the temporary user name &lfs;
     You should change this value and keep the present file
     secure this value has been changed or, better,
     create yourself the user in the host distribution,
     and give it a password.
     If the user exists already, its password will not be changed.
     -->
<!ENTITY lfs-password "******">

<!-- Root password.
     This is the password of root in the new LFS distribution.
     Of course, you should change it as soon as you log into
     your new LFS.
     -->
<!ENTITY password "******">

<!-- parallel build level (make flag -j). Default is unset. For faster build
     times, you might try setting this flag to 2-3 times the number of
     processors in your machine. So, for example, a single processor machine,
     you might set this entity to "-j3"
-->
<!ENTITY jlevel "">        !!!!!!注意此处:按上面的说明设置为"-j3"导致编译不能通过,而简单地将其空白反而能正常编译

<!-- grub settings (these need to be in grub's notation) -->
<!ENTITY grub-root "hd0,1">
<!ENTITY grub-install-location "hd0">        !!!!!!注意此处:这里所给的是我引导区的位置,由于设置不当曾经导致不能引导编译后的系统

        4). skeleton目录
                在README文件中,nALFS建议将目录名改为按你给系统所取名称来作目录名,这里设为 myLinux;
                ① 将linux内核源码解开到适当位置,然后进入源码目录:make menuconfig对内核进行配置,并将最后的配置文件保存到 myLinux 目录下的linux-kernel-config 文件;
                ② 定制 myLinux/boot/grub目录下的 menu.lst文件,我的修改如下:
# Default Entry for LFS
title LFS ([LFS-version] kernel [linux-version])
root ([grub-root])
kernel /boot/lfskernel-[linux-version] root=/dev/sda2        !!!!!!注意此处:这是编译后系统的分区位置   

                ③ 定制 myLinux/boot/etc目录下的 fstab 文件,我的修改如下:
/dev/sda2         /                 ext3         defaults         1 1
/dev/sda1         swap                 swap         pri=1                 0 0

                ④ 定制 myLinux/boot/etc目录下的 profile 文件,我的修改如下:
export LANG=zh_CN.UTF-8

                ⑤ 定制 myLinux/boot/etc/sysconfig 目录下的 clock 文件,我的修改如下:
UTC=0

        5). chapter05 和 chapter06 目录下的 glibc.xml,增加 locale:
      <execute command="localedef -i zh_CN -f UTF-8 zh_CN.UTF-8" />
      <execute command="localedef -i zh_CN -f GB2312 zh_CN.GB2312" />
      <execute command="localedef -i zh_CN -f GB18030 zh_CN.GB18030" />
      <execute command="localedef -i zh_TW -f BIG5 zh_TW" />
      <execute command="localedef -i zh_HK -f UTF-8 zh_HK" />
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-25 16:43:36 | 显示全部楼层
5. 准备最终系统的分区
        因为我是用 VMWare 5.0,所以建立两个虚拟硬盘:
                一个 6G,用于编译系统,分为两个区:sda1 - swap - 384M,sda2 - ext3 - 其余空间;
                一个300M,用于保存编译信息,一个区:sdb1;
        挂接这些分区:
                mkdir /mnt/lfs
                mkdir /root/.nALFS        !!!!!!注意此处:之所以这样命名,是因为nALFS默认建立 /root/.nALFS 目录,并将编译信息写入这个目录,如果你不想这样作,就需要定制相关部分
                swapon -v -p1 /dev/sda1
                mount -v -t ext3 /dev/sdb1 /root/.nALFS
                mount -v -t ext3 /dev/sda2 /mnt/lfs
               
6. 进入 nALFS-profile-LFS-6.1 目录,执行
        ./runit.sh  myLinux
nALFS-1.2.4将启动,并读入配置文件,然后出来一个二分窗口界面:上部分是从第五章到完成的所有编译步骤,可以通过光标键浏览;下部分是信息窗口。

操作说明:在任何时候都可以通过 "?" 键查阅帮助信息,包括相关命令;按 "Insert" 键标记要执行的项目,按 "s""m" 键执行所有已标记的项目,按 "q" 键退出程序。如果没问题的话,你可以标记所有项目并运行,nALFS会自动地完成所有编译及安装工作。

运行成功完成后,退出nALFS,umount所有设备,然后重启系统。如果 grub 安装正确,系统将正确引导。

7. 遇到的问题
        1). 所需 libxml2-2.6.17.tar.bz2 和 nALFS-1.2.4.tar.bz2 两个文件不在 /sources 目录下,解决方法前已提及;
        2). <!ENTITY jlevel ""> 的问题,解决方法前已提及;
        3). 在glibc的编译中,与 clock 相关的部分在 make check 中会失败,用 google 搜索,结论是由于 linus 对内核进行了某种修正所导致的,只能忽略它。
为了解决这个问题,我在前面的两次试编译中,采用手工的方式,遇到失败就停下来,再强行执行下一个步骤,确认只有该问题出现而没有别的编译问题后,在nALFS中关闭了第五、六章中glibc的make check执行选项,最后一遍完整地编译完成(也就是说我实际上编译了三遍)。
回复 支持 反对

使用道具 举报

发表于 2006-1-25 19:06:52 | 显示全部楼层
还要记得处理 /boot 和 /etc/fstab 的东西。:)。
回复 支持 反对

使用道具 举报

发表于 2006-1-26 12:57:02 | 显示全部楼层
楼主在虚拟机上用nALFS自动编译花了多长时间,我的C2.0/512MRAM/ST380021A80G的机子上要花5小时30分,因为虚拟机太慢了受不了,所以是在主机上编译完成后再移植到虚拟机上。
回复 支持 反对

使用道具 举报

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

本版积分规则

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