虽然是在 Ubuntu 18.04 上的实验,但是其他版本应该也适用。
安装环境
安装 linux 和 linux image 依赖
sudo apt-get build-dep linux linux-image-$(uname -r)
在能成功运行上面的命令之前,可能需要编辑/etc/apt/sources.list
,把其中deb-src
的行的注释都去掉,然后
sudo apt-get update
继续安装
sudo apt-get install linux-source kernel-package
sudo apt-get install libncurses-dev
准备代码
-
进入
/usr/src/linux-source-4.15.0
目录,其中,linux-source-4.15.0
也是当前 Ubuntu 18.04 默认使用的内核版本,这可以通过uname -r
来进行确认。 -
解压缩文件
linux-source-4.15.0.tar.bz2
:
sudo tar jvcf linux-source-4.15.0.tar.bz2
- 复制当前的配置文件到源码目录
sudo cp /boot/config-4.15.0-99-generic .config
- 把上面复制的旧的配置文件应用到内核代码中
sudo make oldconfig
- 配置内核
make menuconfig
编译内核
运行下面的命令开始编译代码。其中,deb-pkg
参数会在/usr/src/
下生成几个 deb 安装包,之后可以通过 dpkg -i linux-*.deb
来安装内核。
sudo make clean
sudo make -j2 deb-pkg LOCALVERSION=-custom
-custom
参数可以自己设定,会在内核版本后面添加该字符串,也就是运行uname -r
看到的 generic 这样的字符串。
如果需要编译模块,可以运行:
sudo make modules
sudo make modules_install
make modules_install
是模块编译完成后进行安装到对应目录。
安装内核
编译好的内核文件默认放在上一级目录,共有4个 deb 文件。安装命令入下:
cd ..
sudo dpkg -i linux-*.deb
安装后,新的内核文件会出现在/boot
目录下,同时/boot/grub/menu.lst
中还会添加新的内核启动入口,在系统启动的时候按住shift
键可以选择使用哪个内核,默认使用新内核。
网友评论