Chinaunix首页 | 论坛 | 博客
  • 博客访问: 54440
  • 博文数量: 16
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 80
  • 用 户 组: 普通用户
  • 注册时间: 2016-01-21 10:05
文章分类

全部博文(16)

文章存档

2017年(1)

2016年(15)

我的朋友

分类: LINUX

2016-05-11 15:22:12

参考:
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文件。

之后重启系统即可。
阅读(846) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~