参考:
http://www.cnblogs.com/dkblog/archive/2011/06/28/2092428.html
linux内核代码比较好下载,网址 可找到自己所需要的版本代码(代码中已经存在编译规则)。
一、编译
1、首先将代码解压(tar Jxvf 文件名)到类Linux系统(自己使用的ubuntu系统)目录,比如 /code 目录。
2、进入目录,make menuconfig,不需要修改直接保存退出即可。此处的目的是为了得到 .config文件,编译必须的配置文件。
3、make dep ,设置关联文件。一般提示不需要此步。
4、编译内核
大内核(需要SCSI支持),make bzImage
小内核,make zImage
5、编译内核模块
进入模块目录,make -C 规则目录 M=模块目录 modules。例如, make -C /code/build M=/code/linux.3.14/net/bridge modules 。
二、内核(模块)的使用
1、安装模块
a)、将生成的模块ko文件放入 /lib/modules 下,运行 make modules_install。在进行这步之前,最好备份/lib/modules下文件,以防文件修改。
b)、另一种方法,insmod 模块ko文件;卸载,rmmod 模块。
2、安装内核
a)
更换内核
mv /code/linux.XXX/system.map /boot/system.map
mv /code/linux.XXX/arch/x86/boot/bzImage /boot/vmlinux
修改 /etc/lilo.cong文件,加一个启动选项,使用新内核bzImage/zImage启动。
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
linear
default=linux-new #缺省使用新内核#
append="men=256M"
image=/boot/vmlinux-2.2.14-5
label=linux
read=only
root=/dev/hda5
image=/boot/bzImage(zImage)
label=linux-new
read=only
root=/dev/hda5
保留旧有的启动选项可以保证新内核不能引导的情况,还可以进入linux进行其他操作。
保存退出后,不要忘记了最重要的一步,运行/sbin/lilo,使修改失效。
b)
更换内核,方法如a
修改引导管理程序grub,/etc/grub.conf
#boot=/dev/had
default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title Red Hat Linux(2.4.20.8)
root(hd0,0)
kernel /vmlinux-2.4.20.8 root =LABEL=/
INITRD /INITRD-2.4.20.8.img
c)修改启动配置文件
现在大多数使用的都是grub启动,需要修改/boot/grub/grub.conf,添加相应的启动信息,添加内容的最简单格式:
title 显示在启动菜单上的名称
root 根文件系统挂载分区
kernel 压缩过的内核文件名
initrd 根文件系统文件名
title new kernel
root (hd0,2)
kernel /boot/vmlinux-XXX
initrd /boot/initrd-XXX
如果系统中的 /etc/lilo.cong没有使用ram磁盘选项initrd,略过
如果使用,运行命令 mkinitrd initrd-内核版本 内核版本号 重新生成ram磁盘文件。
之后把/etc/lilo.conf中的initrd指向新生成的文件。
ram磁盘能使系统性能尽可能的优化,具体参考 Documents/inird.txt文件。
之后重启系统即可。
阅读(955) | 评论(0) | 转发(0) |