哈尔滨理工大学软件工程专业08-7李万鹏原创作品,转载请标明出处
http://blog.csdn.net/woshixingaaa/archive/2010/11/07/5993648.aspx
基础知识:
/boot/vmlinuz<version> 启动压缩内核
/boot/System.map<version> 内核符号的地址
/boot/initrd.img<version> 初始化RAM硬盘,存储根文件系统挂载所需的模块
/lib/modules目录
内核的模块和自己编译的模块都在这里.
/lib/modules/<kernel-version>/build
存储为该版本编译内核所需要的文件
/lib/modules/<kernel-version>/kernel
存储内核的目标文件,都是(.ko后缀),它的目录组织和内核源码中的kernel目录组织相同
/lib/modules/<kernel-version>/modules.alias 模块别名定义,模块加载工具使用它来加载
/lib/modules/<kernel-version>/modules.dep 定义了模块间的依赖关系
/lib/modules/<kernel-version>/modules.symbols 指定符号属于哪个模块
我使用的是Ubuntu8.04 默认内核是2.6.24.16
从下面的链接下载2.6.25.1内核
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.25.1.tar.bz2
默认下载到tmp目录
sudo cp /tmp/linux-2.6.25.1.tar.bz2 /usr/src/
拷贝到/usr/src
sudo tar jxvf linux-2.6.25.1.tar.bz2
cd linux-2.6.25.1
如果以前编译过就用
make clean
make mrproper
清一下
如果是第一次安装则不需要直接进行下面的操作
1.内核配置工具
(1)make config
(2)make menuconfig(常用)
在Ubuntu 8.04下需要安装 libncurses5-dev,因为menuconfig需要ncurse库的支持,其他
Ubuntu的发行版版本可能需要不同的包。
sudo apt-get install libncurses5-dev
(3)make xconfig
这里需要自己进行配置,如果是初学者,可以用现成的配置文件,这个是最适合自己电脑的,
以免自己配置错误
sudo cp /boot/config-2.6.24-16-generic /usr/src/linux-2.6.25.1/
sudo mv config-2.6.24-16-generic .config
在menuconfig中选中
General setup --->
() Local version - append to kernel release ()
默认就是.config
选中然后退出
2.编译内核
sudo make
这个需要一两个小时或以上根据机器配置。
这个相当于手工执行下面两步:
#make bzImage
#make modules(编译可加载模块)
其中make bzImage 将在/usr/src/linux-2.6.25.1/arch/i386/boot 目录下生成bzImage
然后将其复制到/boot目录下
sudo cp /usr/src/linux-2.6.25.1/arch/i386/boot/bzImage /boot/
3.sudo make install
4.sudo make modules_install
安装模块
5.制作initrd.img
编译2.6.14以后的内核需要使用mkinitramfs
sudo apt-get install bootcd-mkinitramfs
sudo mkinitramfs -o /boot/initrd-img-2.6.25.1 2.6.25.1
6.添加符号链接
ln -sf vmlinuz-2.6.25.1 vmlinuz
ln -sf System.map-2.6.25.1 System.map
ln -sf initrd.img-2.6.25.1 initrd.img
ln -sf config-2.6.25.1 config
7.然后修改grub
cd /boot/grub
chmod 777 menu.lst
sudo gedit menu.lst 添加
title Ubuntu 8.04.4 LTS, kernel 2.6.251
root (hd0,0)
kernel /boot/vmlinuz-2.6.25.1 root=UUID=db857fbd-ed11-4146-a010-7f97cc55d41d ro quiet splash
initrd /boot/initrd.img-2.6.25.1
quiet
8.重启 大功告成