Linux 内核编译
1.编译环境
主机环境:Unbuntu 10.04
使用内核版本:2.6.32-21
待编译内核版本:2.6.38
gcc版本号:4.4.*
注意:安装的内核版本要和本机内核版本接近,否则会出现编译不兼容问题。
原因:编译内核的版本和发行版的内核版本不一致,内核是和各个功能模块分开的,内核升级,但文件
系统没有升级,导致内核与之相关的文件系统不匹配。所以尽量使用与主机系统接近的内核版本号。
2.内核编译步骤【准备内核源代码】
1.内核源代码,linux-2.6.38.tar.bz2
2.*.tar.bz2格式的压缩包解压到指定目录下:tar -xjvf linux-2.6.38.tar.bz2 -C /usr/src
3.cd /usr/src/linux-2.6.38【解压文夹所在目录】
4.使用boot目录下主机系统的配置文件,将其拷贝到当前目录下并重命名 cp /boot/config2.6.32-21-generic /.config
3.配置内核&编译内核&安装内核
1.$ make menuconfig 可能出现的问题
因为这种配置方式是基于ncurse库的图形工具界面,可能环境缺少此功能模块
解决:sudo apt-get install libnucurses5-dev
默认所有选项保存退出
2.$ make 编译内核【此过程时间最长机器配置差需数小时】
3.$ make modules 模块模块
4.$ make modules_install 安装模块
5.$ make 安装内核
4.生成启动【借鉴网上资源】
1.sudo mkinitramfs -o /boot/initrd.img-2.6.38
2.sudo update -initamfs -c -k 2.6.38
3.sudo update-grub2 //自动修改系统引导配置,产生grub.cfg启动文件,此文件中增加了新内核的启动项
5.修改grub配置中的 timeout
1.vi /etc/grub.d/30_os-probe 中三处set timeout = 0 改为set timeout = 10
2.sudo update -grub