Linux内核编译
编译环境为Ubuntu 14.04 LTS 32 Bit 内核版本3.13.0-24
1、 下载内核:
下载一个最新版本的linux内核,我选择下载linux-3.15.1.tar.gz
2、 安装工具:
编译内核需要特定的依赖,这样才能运行menuconfig进行配置
sudo apt-get install build-essential kernel-packagelibncurses5-dev
注:
build-essential (基本的编程库(gcc, make等)
kernel-package (Debian 系统里生成 kernel-image 的一些配置文件和工具)
libncurses5-dev (meke menuconfig要调用的)
3、 解压内核:
解压内核到/usr/src下
cd /usr/src
sudo tar xjf linux-3.15.1.tar.gz
4、 净化内核:
cd/usr/src/linux-3.13.6/
sudo make mrproper
注:
makemrproper
删除之前编译所生成的文件和配置文件,备份文件,如.config配置文件。如果你是第一次编译,可不执行。
5、配置内核
对于内核配置可不是那么熟练什么的,可以用原来系统中存在的配置文件。原来系统中的配置文件,位置有两种情况:一是放在/boot下面的,一个是放在/usr/src/linux-headers-xxxxx-generic/下面.
本机是把/usr/src/linux-headers-xxx-generic/下面的.config复制到要编译的内核路径下
sudo cp../linux-headers-3.2.0-59-generic/.config ./
或者 sudo cp/boot/config-3.2.0-59-generic ./.config
6、清理编译中间文件
sudo make clean
注:删除绝大多数编译生产的文件并保留配置文件。如果你是第一次编译,可不执行
7、在menuconfig中配置内核
sudo make menuconfig
默认会加载.config的配置,也可根据自己的需求在界面中修改。然后 Exit --->Yes
8、编译
sudo make -j4
注:make命令可以理解为 make bzImage(编译内核) 和make modules (编译模块)
-j4 表示jobs=4,同时最多跑4个进程。make自己会协调,如果CPU等资源不够可能小于4个。不过一般瓶颈都在硬盘,所以一般能看到4个进程一起跑。
9、安装模块,将编译好的模块安装到/lib/modules/下
sudo make modules_install
10、创建创建initrd 文件
sudo mkinitramfs -o/boot/initrd.img-3.13.6-generic
注:如果linux系统安装在scsi磁盘上,这步是必须的,否则可以跳过。
11、安装内核
sudo make install
注:此步包含如下操作
cp/usr/src/linux-3.13.6/arch/x86/boot/bzImage /boot/vmlinuz-3.13.6-generic
cp/usr/src/linux-3.13.6/System.map/boot/System.map-3.13.6-generic
12、更新grub
update-grub2
到此完成内核编译安装完成
使用命令查看grub添加的信息 3.13.6 为新编的内核
sudo gedit /boot/grub/grub.cfg
查看信息中包含如下配置描述
linux /boot/vmlinuz-3.15.1root=UUID=134de9a9-4006-4b1c-9903-7f2e125f37a5 ro quiet splash $vt_handoff
initrd /boot/initrd.img-3.15.1
查看内核版本: