- 论坛徽章:
- 0
|
step 1 备份旧版kernel
#cd /usr/src
#mv linux linux.old
将旧版的kerne备份成linux.old
#mv /boot/vmlinuz vmlinuz.old
将存放在/boot的系统核心文件 vmlinuz,备份成vmlinuz.old.
step 2.取得kernel源程序代码
step 3. 将kernel source的tarball压缩文件解压缩
将kernel的源程序代码,在/usr/src这个目录解压缩,会产生目录
linux/,看一下这个目录里面的readme文件非常有帮助
#tar zxvf linux-*-*.tar.gz或#gzip -cd linux-*-*.tar.gz|tar -xfv
step 4. make mrproper
清除工作,清除旧的.o等文件
step 5. make config
在/usr/src/linux/目录执行make config ,make menuconfig或
make xconfig中的任何一个.如果执行make oldconfig系统会自动
由旧的配置文件来配置内核.
step 6. make dep
在/usr/src/linux/目录下执行make dep 来正确的设置所有的附属
文件,以确保所有includes file的相依关系
step 7. make clean
执行make clean p 这个命令清除以前编译出来旧的系统核心与旧的
driver,这个步骤也可以不做,因为我们拿新源代码编译,
若是以前编译过了,再次编译此步骤不能忘
step 8.make zImage
执行make zImage可以造出一个系统核心文件zImage.若是核心过大,可以执行make bzImage
step 9.取得Linux核心文件zImage
编译成功后,真正的系统核心文件kernel Image放在
/usr/src/linux/arch/i386/boot/zImagez或bzImage应将/usr/src/
linux/arc/i386/boot这个目录的zImage复制到/boot/vmlinux
在/usr/src/linux的vmlinux是未经压缩的核心image因为省掉了解压缩的操作,所以启动速度会稍快一点,但它的文件大小都比较大,浪费内存,所以采用zImage来开机会比较好
# cd /usr/src/linux/arch/i386/boot
#cp zImage /boot/vmlinuz-*-*-8
#cd /boot
#ln -s /boot/vmlinuz-*-*-*/boot/vmlinuz
或#cp vmlinux /boot/vmlinux-*-*-*
step 10. 编译系统模块
如果在make config中设置将某些功能或硬件驱动程序编译成模块且想安装这些模块,可继续执行这个步骤,编译模块执行make modules
编译成功后执行make modules_install安装模块.编译好的模块放在
/lib/modules/*.*.*/目录,若以后想载入模块就执行
insmod /lib/modules/*.*.*/xxx.o(xxx.o是模块名称)
#modprobe /lib/modules/*.*.* (xxx.o是模块名称)
若想在开机时就载入想要的模块,可以将上述的指令直接加在
/etc/rc.d/rc.local,或依redhat的载入模块语法,在
/etc/conf/modules文件加入启动模块,以后开机就会自动载入模块
step 11.更新System.map
每一版本的系统核心都有其特有的系统映射文件System.map,用以定义该版本核心的所有功能信息
#cp /usr/src/linux/System.map/boot/System.map-*.*.*
#cd /boot
#ln -s System.map-*.*.* System.map
step 12.编辑lilo.conf
使开机时能够选择用新kernel或旧的kernel启动,然后执行lilo -v-v-v将编辑好的lilo.conf设置写入系统核心文件,最后执行sync;sync;sync将在内存的数据写回硬盘,再重启linux |
|