今天编译了linux-2.6.18内核,耗了老半天,终于可以了。
1、下载要编译的内核源代码在usr/src文件夹下
如我下载的是linux-2.6.18.tar.bz2,执行命令 tar -xvjf linux-2.6.18.tar.bz2,进行解压。
注意此处不要在windows下解压后才拷贝过来,因为源文件中有一些文件是名字相同,需要区分大小写,如opt_ots.c和opt_OTS.c,而 windows的文件系统FAT是对文件名不区分大小写,LINUX的文件系统EXT是区分大小写的。倘若要是在windows下进行压缩的话,会使一些 文件丢失。
解压后在/usr/src 的文件下就出现了 linux-2.6.18
创建一链接 ln -s linux-2.6.18/linux-2.6.18 linux
2、cd /usr/src
rm -rf asm linux scsi (最好先对它们进行备份)
ln -s /usr/src/linux/include/asm-i386 asm
ln -s /usr/src/linux/include/linux linux
ln -s /usr/src/linux/include/scsi scsi
接下来检杳一下源代码目录下是事有不正确的.o文件以及文件的互相依赖
cd /usr/s
3、做好了准备工作,现在就可以对内核进行配置了
有几种方式
make config(基于文本的最为传统的配置界面,不推荐使用)
make menuconfig(基于文本选单的配置界面,字符终端下推荐使用)
make xconfig(基于图形窗口模式的配置界面,Xwindow下推荐使用)
make oldconfig(如果只想在原来内核配置的基础上修改一些小地方,会省去不少麻烦)
最简单的应该是xconfig ,是图形界面,由于我没有装QT包,QT包也比较大,所以我就选择了make menuconfig
要运行make menuconfig,机器上必须已安装了Ncurses和ncurses_devel包。
这一部分是编译内核最为重要的部分,最好参照一下网上的资源。
4、开始编译内核
make bzImage
5、make install
这个命令的目的是把bzImage System.map 拷贝到/boot目录下,并修改了相应的参数
6、编译模块
make modules
make modules_install
7、哈哈,到这一步的话,可以说已经成功了一大半
执行下面这个命令来清除编译过程中产生的一此垃圾文件,当然也可以不清除
make clean
8、重新启动系统,应该就可以发现grub 菜单中多了一项,linux-2.6.18-default
选择这一项,进入系统。
若不能顺利地进入系统,可能是intird没做好,或者grub没设好。
可以用mkinitrd 来产生intird
在我的系统中,grub设置是在 /boot/grub/menu.lst
对于linux-2.6.18-default的设置是如下
title 2.6.18-default
root (hd0,9)
kernel /boot/vmlinuz-2.6.18-default root=/dev/hda10 vga=0x317 resume=/dev/hda9 splash=silent showopts
initrd /boot/initrd-2.6.18-default
1、下载要编译的内核源代码在usr/src文件夹下
如我下载的是linux-2.6.18.tar.bz2,执行命令 tar -xvjf linux-2.6.18.tar.bz2,进行解压。
注意此处不要在windows下解压后才拷贝过来,因为源文件中有一些文件是名字相同,需要区分大小写,如opt_ots.c和opt_OTS.c,而 windows的文件系统FAT是对文件名不区分大小写,LINUX的文件系统EXT是区分大小写的。倘若要是在windows下进行压缩的话,会使一些 文件丢失。
解压后在/usr/src 的文件下就出现了 linux-2.6.18
创建一链接 ln -s linux-2.6.18/linux-2.6.18 linux
2、cd /usr/src
rm -rf asm linux scsi (最好先对它们进行备份)
ln -s /usr/src/linux/include/asm-i386 asm
ln -s /usr/src/linux/include/linux linux
ln -s /usr/src/linux/include/scsi scsi
接下来检杳一下源代码目录下是事有不正确的.o文件以及文件的互相依赖
cd /usr/s
3、做好了准备工作,现在就可以对内核进行配置了
有几种方式
make config(基于文本的最为传统的配置界面,不推荐使用)
make menuconfig(基于文本选单的配置界面,字符终端下推荐使用)
make xconfig(基于图形窗口模式的配置界面,Xwindow下推荐使用)
make oldconfig(如果只想在原来内核配置的基础上修改一些小地方,会省去不少麻烦)
最简单的应该是xconfig ,是图形界面,由于我没有装QT包,QT包也比较大,所以我就选择了make menuconfig
要运行make menuconfig,机器上必须已安装了Ncurses和ncurses_devel包。
这一部分是编译内核最为重要的部分,最好参照一下网上的资源。
4、开始编译内核
make bzImage
5、make install
这个命令的目的是把bzImage System.map 拷贝到/boot目录下,并修改了相应的参数
6、编译模块
make modules
make modules_install
7、哈哈,到这一步的话,可以说已经成功了一大半
执行下面这个命令来清除编译过程中产生的一此垃圾文件,当然也可以不清除
make clean
8、重新启动系统,应该就可以发现grub 菜单中多了一项,linux-2.6.18-default
选择这一项,进入系统。
若不能顺利地进入系统,可能是intird没做好,或者grub没设好。
可以用mkinitrd 来产生intird
在我的系统中,grub设置是在 /boot/grub/menu.lst
对于linux-2.6.18-default的设置是如下
title 2.6.18-default
root (hd0,9)
kernel /boot/vmlinuz-2.6.18-default root=/dev/hda10 vga=0x317 resume=/dev/hda9 splash=silent showopts
initrd /boot/initrd-2.6.18-default