***********************************
三、定制内核
***********************************
配制内核之前请清理源代码树,如果还没有进入/usr/src/linux-2.6.0目录,请进入此目录,命令如下:
#make clean
#make mrproper (这步是为确保原代码目录下没有不正确的.o文件及文件的相互依赖,刚解开的tarball包不需此步骤)
注: 可以使用make help来查看帮助。
然后可以使用以下四个命令来配置内核:
#make gconfig (需要Gtk开发库的支持)
#make xconfig (需要Qt开发库的支持)
#make config
#make menuconfig (推荐)
配置核心选项
#make menuconfig
基本上保持默认选项就可以了,但是要注意的是必须把ext2和ext3文件系统支持编进内核,否则升级内核重新启动是会有错误:
Kernel panic: No init found. Try passing init= option to kernel
ext2和ext3文件系统配置为: (全部选择)
File systems --->
<*>Second extended fs support
Ext2 extended attributes
Ext2 POSIX Access Control Lists
Ext2 Security Labels
<*>Ext3 journalling file system support
Ext3 extended attributes
Ext3 POSIX Access Control Lists
Ext3 Security Labels
JBB (ext3) debugging support
注意:
如果你是ext3文件系统,则在定制内核配置文件时把对Ext3、Ext2文件的支持直接编译进内核,否则,等你启用新内核时机器就会当掉,出错信息如下:
kernel panic : no init found ,try passing init = option to kernel......
或者是:
kernel panic:VFS:Unable to mount root fs on unknown-block(0,0)
把对Ext3、Ext2文件系统的支持直接编译进内核,可解决此问题,还有把对“Module unloading“选项也选上,否则的话,你在新内核环境下将无法卸载
内核模块(rmmod命令不能用)。
***********************************
四、编译内核及模块
***********************************
配置完内核后,开始编译:
#make dep (编译2.6内核无需此步骤)
#make -jn (n代表同时编译的进程,可以加快编译速度,n由你的配置决定,我的配置用15-25)
注意: 此命令已完成make bzImage及make modules的工作, 生成的bzImage内核文件在arch/i386/boot目录中,你的CPU不同内核文件存放位置也不同
注: 这一步比较耗时,根据机器配置,可能会消耗30分钟或更长时间。
***********************************
五、编译可加载模块和安装新内核
***********************************
如果用户在配置内核时设置了可加载模块,则需要对这些模块进行编译,以便将来使用insmod命令进行加载。
# make modules -j25
# make modules_install (安装内核模块到/lib/modules/2.x.x下)
# make install (完成mkinitrd命令及内核(bzImage)和System.map的拷贝)
完成后,请查看/boot目录,文件名是有区别的,如是GRUB引导,make install命令已帮你自动修改了引导选项,对于LILO则要手工修改,重写引导记录。
***********************************
六、修改相应文件已适应2.6内核
***********************************
1.内核2.6 的usb 设备名与内核2.4 大不相同。所以我们要改一下哈哈。
在安装module-init-tools程序包时生成的/etc/modprobe.conf配置文件却仍然使用usb-ohci这个名字
alias usb-controller usb-ohci
alias usb-controller1 ehci-hcd
因此, 要把它改为:
alias usb-controller ohci-hcd
alias usb-controller1 ehci-hcd
2.需要改一个最重要的文件/etc/rc.sysconfig 这是一个ln 连接。正真的文件在/etc/rc.d/里
#vi /etc/rc.sysinit
把/proc/ksyms 改为如下所示(注:用于配置了HOTPLUG的支持)
KSYMS=/proc/ksyms
改为:
KSYMS=/proc/kallsyms
3.把所有mount -f -t usbdevfs usbdevfs 改为mount -f -t usbfs usbfs 我查看了就二个。
4.建立一个/sys系统这部我也不知道为啥,但你是用默认的/proc/bus/usb 下就提示找不到drivers 文件。晕死了。
# mkdir /sys
6.修改rc.sysconfig 文件
在mount -f /proc 下加入
mount -f /sys 这一行
