Ubuntu13.04 内核重编与定制

时间:2021-05-07 17:24:52

一直在Android平台下做Kernel开发,对于Kernel的编译已经烂熟于心,

今天突然想自己编译一下PC上的Kernel,看起来过程类似,定制内核所需的也就是时间了。。。

废话少说,过程记录如下。


1. 本人的环境如下:

Ubuntu 13.04 虽然13.10已经发布了,但暂时还不想升级。。。

由于已经安装过了Android的开发环境,所以我已经不再需要安装其他环境即可编译内核。


Android开发环境的安装可以参考这篇文章: 重装Ubuntu13.04后需要做的事情


2. 下载Kernel源码

2.1 获取当前系统的内核版本

通过命令:
uname -srv

可以获取到当前系统的Kernel版本,如:
Linux 3.8.0-32-generic #47-Ubuntu SMP Tue Oct 1 22:35:23 UTC 2013

2.2 根据当前内核版本下载对应的内核代码

通过命令:
sudo apt-get install linux-source-3.8.0

可以获取到对应版本的内核代码

3. 编译内核

3.1 获取当前系统的内核配置

通过命令:
cp /boot/config-3.8.0-32-generic .config

可以将当前系统的内核配置copy到你的linux源代码目录下并重命名为.config
这个.config里面就是当前系统的内核配置。
通过命令:
make menuconfig
可以自己配置定制内核,menuconfig的用法非常简单,这里就不介绍了。

3.2 重新编译内核

通过命令:
make bzImage -j6

可以实现6线程编译,最终得到内核镜像,保存为 arch/x86/boot/bzImage

3.3 编译内核模块

通过命令:
make modules -j6

可以实现6线程编译所有内核模块

4. 安装内核

4.1 安装内核模块

通过命令:
sudo make modules_install

可以安装刚刚编译出来的内核模块


4.2 安装内核镜像

通过命令:
sudo make install

可以安装刚刚编译出来的内核镜像

注意:
安装内核的命令会自动更新grub配置,执行完成后重启即可进入新内核。
如果新内核有问题,在启动时也可以选择使用旧内核启动。


5. 删除编译安装的内核

- 删除/boot 以及 /lib/modules 下新内核相关的文件或目录
- 使用命令:
sudo update-grub
即可更新grub启动菜单