关于上次《菜鸟编译内核》贴的更正
2.6内核的编译安装过程记得上次写过一篇关于内核安装的帖子,不过前几天看了《Linux Kernel Development 2nd Edtion》后,
发现,在编译和安装方面2.6的内核要比2.4的简单一些,针对上次帖子的一些问题,这次做一些修正。
1. 关于/usr/src/linux更正
记得在上次的帖子里我说了要改动/usr/src/linux的指向,在这里更正一下,大家不要这么做,也没必要
这么做,因为根据内核编译的C库会链接到这个目录树来,修改后就会造成版本不一致,存在这潜在的问题。
2. 内核配置方法的补充
首先是配置内核方面出了上次说的那些方法外,还有一种是make defconfig,这是根据你的机器的类型
对内核进行默认的配置,免去了你配置内核的烦恼,有人说这是Linus本人默认的配置,我不知道是不是。
另外这个配置中没有对NT文件系统的支持,各位想自己动手的,还是要执行完这个命令后手动改一下。
另外,在你进行了内核配置后,编译内核前一定要先执行make oldconfig
3. 编译的一些技巧
如果你不想看到编译内核时的很多输出,但仍想关注警告和错误,你可以把输出重定向到一个文件里
make > your_own_dir_and_file。这样,当你想关心一下编译过程的是后,去看那个文件就是了。其实
一般情况下,我们不许要关心那些警告和错误,把它们重定向到 /dev/null就OK了。
make > /dev/null
另外,你可以利用make进行并行编译,这样可以提高你编译内核的速度,由于内核文件并不存在着由于编译
先后顺序带来的错误,所以你可以放心的使用并行编译,基本原则是一个CPU可以分配两个jobs
make -j2
开启两个job同时编译内核。
第三,在编译内核前,我们不再用执行make dep,也不用区分什么bzImage,modules等问题,默认的Makefile
规则会为我们处理,我们只要简单的执行make就OK了
4.安装
对于模块的安装,和上次说的一样,make modules_install,这样所有的模块就会被安装到/lib/modules/<kernel version>
目录中,但是对于内核本身的安装,我们完全可以自己来。
首先,把编译好的arch/i386/boot/bzImage复制到/boot中,并命名为vmlinuz-<your own version>,例如vmlinuz-2.6.11.7
之后,执行
mkinitrd initrd-2.6.11.7.img 2.6.11.7
这样,你的/boot目录下就会有个名为initrd-2.6.11.7.img的文件了。
最后,按照上次说的编辑grub.conf就OK了
reboot
让你的新内核顺利工作吧。
Re: 关于上次《菜鸟编译内核》贴的更正
2. 内核配置方法的补充
首先是配置内核方面出了上次说的那些方法外,还有一种是make defconfig,这是根据你的机器的类型
对内核进行默认的配置,免去了你配置内核的烦恼,有人说这是Linus本人默认的配置,我不知道是不是。
另外这个配置中没有对NT文件系统的支持,各位想自己动手的,还是要执行完这个命令后手动改一下。
另外,在你进行了内核配置后,编译内核前一定要先执行make oldconfig
看来也许make defconfig也许不是一个好选择
我的机器是个amd 独龙+vi kt133a的老机器。用ml1.2默认的内核源码执行make defconfig的结果就是这个样子。我的机器成了p4.
选项是剔除了一些,不过好像数量有些多了。要是按照这个内核编译,我的摄像头和u盘都没有戏了
而我的笔记本是mdv 2005,执行之后的结果是那是一个奔腾pro
而且好像在那个下面所有的选项都没有被剔除 的却是这样的,make defconfig的却不是一个好的选择,我用这东西配置完内核也是问题多多,所以建议大家还是自己动手比较好。
页:
[1]