ubuntu 7.04编译内核的过程如下:
系统:ubuntu 7.04
内核:kernel2.6.22.5
编译之前要安装好下面的编译器:
sudo apt-get install build-essential bin86 kernel-package
sudo apt-get install libqt3-headers libqt3-mt-dev
sudo apt-get install bootcd-mkinitramfs
下载linux最新内核
1. 到官方网站下载内核 http://kernel.org/pub/linux/kernel/v2.6
解包到 /usr/src 目录下,命令:
sudo tar -zxvf linux-2.6.22.5.tar.gz
2. 进入到编译目录中,此后的所有操作均在该目录下进行。
cd /usr/src/linux-2.6.22.5/
配置内核,推荐使用xconfig,非常直观,图形界面,需要Qt,非常稳定.推荐新手使用这个。
sudo make xconfig
选项很多,不明白的,默认就可以了,可参考文章:
http://lamp.linux.gov.cn/Linux/kernel_options.html
配置好了,保存,在目录中会创建.config文件,编译的时候是根据此文件进行。
开始编译:
先要确认你在/usr/src/linux-2.6.22.5/目录下面
sudo make
sudo make modules_install
sudo make install
编译过程中,可能有什么警告之类的,先不要管它,只要不出什么错误就行了。
生成initrd.img文件
sudo mkinitramfs -o /boot/initrd.img-2.6.22.5-generic 2.6.22.5
注意:其中的:o不是零(0),是字母(o)。
编译后修改/boot/grub/menu.lst
title Ubuntu, kernel 2.6.22.5-generic
root (hd0,x)
kernel /vmlinuz-2.6.22.5 root=UUID=ec8c8633-d344-488a-9c73-cf9766fc2d1d ro quiet splash locale=zh_CN
initrd /initrd.img-2.6.22.5-generic
savedefault
这里你要确认vmlinuz-2.6.22.5跟你的/boot/下面产生的vmlinuz-2.6.22.*一样,还有initrd.img-2.6.22.5-generic跟你的/boot/下面产生的initrd.img-2.6.22.*一样
红色的字体是根据需要更改的,其他的是复制的别的核心启动项的。
注:1.自2.6内核开始,就不用make dep了,依赖关系会自动维护,并且命令也减少了,以往是:
sudo make dep
sudo make clean
sudo make bzImage
sudo make modules
sudo bzImage install
sudo make modules_install
现在仅需要:
sudo make
sudo make modules_install
sudo make install
2. 失败的原因可能有:1)使用的工具太老了,新kernel编译不了。
系统:ubuntu 7.04
内核:kernel2.6.22.5
编译之前要安装好下面的编译器:
sudo apt-get install build-essential bin86 kernel-package
sudo apt-get install libqt3-headers libqt3-mt-dev
sudo apt-get install bootcd-mkinitramfs
下载linux最新内核
1. 到官方网站下载内核 http://kernel.org/pub/linux/kernel/v2.6
解包到 /usr/src 目录下,命令:
sudo tar -zxvf linux-2.6.22.5.tar.gz
2. 进入到编译目录中,此后的所有操作均在该目录下进行。
cd /usr/src/linux-2.6.22.5/
配置内核,推荐使用xconfig,非常直观,图形界面,需要Qt,非常稳定.推荐新手使用这个。
sudo make xconfig
选项很多,不明白的,默认就可以了,可参考文章:
http://lamp.linux.gov.cn/Linux/kernel_options.html
配置好了,保存,在目录中会创建.config文件,编译的时候是根据此文件进行。
开始编译:
先要确认你在/usr/src/linux-2.6.22.5/目录下面
sudo make
sudo make modules_install
sudo make install
编译过程中,可能有什么警告之类的,先不要管它,只要不出什么错误就行了。
生成initrd.img文件
sudo mkinitramfs -o /boot/initrd.img-2.6.22.5-generic 2.6.22.5
注意:其中的:o不是零(0),是字母(o)。
编译后修改/boot/grub/menu.lst
title Ubuntu, kernel 2.6.22.5-generic
root (hd0,x)
kernel /vmlinuz-2.6.22.5 root=UUID=ec8c8633-d344-488a-9c73-cf9766fc2d1d ro quiet splash locale=zh_CN
initrd /initrd.img-2.6.22.5-generic
savedefault
这里你要确认vmlinuz-2.6.22.5跟你的/boot/下面产生的vmlinuz-2.6.22.*一样,还有initrd.img-2.6.22.5-generic跟你的/boot/下面产生的initrd.img-2.6.22.*一样
红色的字体是根据需要更改的,其他的是复制的别的核心启动项的。
注:1.自2.6内核开始,就不用make dep了,依赖关系会自动维护,并且命令也减少了,以往是:
sudo make dep
sudo make clean
sudo make bzImage
sudo make modules
sudo bzImage install
sudo make modules_install
现在仅需要:
sudo make
sudo make modules_install
sudo make install
2. 失败的原因可能有:1)使用的工具太老了,新kernel编译不了。
2)生成的initrd.img工具也过时了。
3)选择模块的时候出错。