linux如何更新内核
转载
linux如何更新内核
|
|
|
在更新核心之前,可以执行uname -r或uname -a检查系统中目前使用的Kernel版本。
编译核心可按下面步骤来:
Step1 备份旧版Kernel
#cd /usr/src
# mv linux linux.old
#mv /boot/vmlinuz vmlinuz.old
Step2 取得Kernel源程序代码
我以Kernel2.6.15为例来完成。
将linux-2.6.15.tar.gz复制到/usr/src/这个目录下。
Step3 将Kernel解压缩
在/usr/src/这个目录下解压缩,会看到linux/这个目录。
tar zxvf linux-2.6.15.tar.gz
Step4 make mrproper
在/usr/src/linux/下执行 make mrproper
Step5 make config
在/usr/src/linux/下执行 make config,这是编译整个核心的所在,是最复杂的地方。你需要一个一个选择要编译的功能。
/usr/src/linux/# make config
Step6 make dep
在上一步设置完配置文件后,就可以开始编译核心了。
/usr/src/linux/# make dep
Step7 make clean
清除以前编译出来的旧的系统核心与旧的driver
/usr/src/linux/# make clean
Step8 make zImage
制作系统核心文件。
/usr/src/linux/# make zImage (注意 I 为大写,其余均为小写)
Step9 取得Linux核心文件zImage
编译成功后,真正的系统核心文件Kernel Image放在
/usr/src/linux/arch/i386/boot/ zImage
应将此目录的zImage复制到/boot/vmlinuz
#cd /usr/src/linux/arch/i386/boot
#cp zImage /boot/vmlinuz-2.6.15
#cd /boot
# ln ?s /boot/vmlinuz-2.6.15 /boot/vmlinuz
Step10 编译系统模块
如果在make config中设置将某些功能或硬件驱动程序编译成模块modules,且想安装这些模块,执行下面步骤。
/usr/src/linux/# make modules (编译模块)
/usr/src/linux/# make modules_install (安装模块)
编译成功的模块会被放置在/lib/modules/2.6.15/这个目录,若以后想载入模块就执行
#insmod /lib/modules/2.6.15/xxx.o (xxx.o是模块名称)
# modprobe /lib/modules/2.6.15/xxx.o
Step11 更新System.map
# cp /usr/src/linux/System.map /boot/System.map-2.6.15
# cd /boot
# ln ?s System.map-2.6.15 System.map
Step12 编辑lilo.conf
编辑lilo.conf,使开机能选用新Kernel或旧Kernel启动,然后执行 lilo ?v ?v ?v,将编辑好的lilo.conf设置写入系统核心文件,最后执行sync;sync;sync将在内存中的数据写回硬盘,再执行shutdown ?r now 或reboot重新启动。
|
|