软件准备:
gcc-3.2.2-5.i386.rpm :用来编译
ncurses-5.6.tar.gz:用来配合make menuconfig 命令配置内核
bison-2.4.tar.gz :语法解析器
flex-2.5.35.tar.bz2 :词法解析器
m4-1.4.9.tar.gz:
modutils-2.4.26.tar.bz2 :
module-init-tools-3.2.2.tar.bz2: 2.6配套工具包
linux-2.6.15.5.tar.bz2 : 内核源码包
第一步:
将上面所有软件都拷贝到虚拟机中(非/mnt下)
第二步:
将内核源码包linux-2.6.15.5.tar.bz2 放入/usr/src目录中,并用 tar -jxvf linux-2.6.15.5.tar.bz2 将其解压
,然后用命令将linxu符号连接映射到linux-2.6.15.5 :ln -s linux-2.6.15.5 linux
第三步:rpm -ivh gcc-3.2.2-5.i386.rpm 安装GCC
第三步:安装ncurses-5.6.tar.gz
tar zxvf ncurses-5.6.tar.gz
进入解压后目录 ./configure
make
make install 安装
第四步:安装bison-2.4.tar.gz
./configure --prefix=/usr
make
make check :本软件包自带测试套件,能执行一些测试,以确定它是否编译正确
make install
第五步:安装flex-2.5.35.tar.bz2
./configure --prefix=/usr &&
make &&
make install
一些程序并不知道flex而是试图寻找lex程序(事实上,flex是实现lex功能的另一种也是更好的选择)。为了满足少数一些程序的需要,我们将创建一个lex脚本,这个脚本调用flex并通过它来模仿lex的输出文件命名惯例。
通过下面的命令创建一个新文件 /usr/bin/lex :
cat > /usr/bin/lex << "EOF"
#!/bin/sh
# Begin /usr/bin/lex
exec /usr/bin/flex -l "$@"
# End /usr/bin/lex
EOF
chmod 755 /usr/bin/lex
第六步:升级m4
首先要卸载原来的m4,然后再安装新的m4
./configure --prefix=/usr
make
make check :本软件包自带测试套件,能执行一些测试,以确定它是否编译正确
make install
第七步:安装modutils-2.4.26.tar.bz2 (如果原来安装了modutils 需要将其卸载:rpm -e --nodeps modutils)
./configure &&
make &&
make install
(参照:http://docs.huihoo.com/lfs/lfs-4.0/chapter06/modutils.html)
第八步:安装module-init-tools-3.2.2.tar.bz2
tar -jxvf module-init-tools-3.2.2.tar.bz2
./configure --prefix=/sbin
make
make install
./generate-modprobe.conf /etc/modprobe.conf
第九步:配置内核
make menuconfig
第十步:编译内核
make bzImage (生成使用gzip压缩的内核,生成的文件位于/usr/src/linux/arch/i386/boot目录)
make modules modules_install(编译内核模块并安装到/lib/modules/2.6.15.5目录)