摘要
本文简要记录两种编译内核的方法:
- 打包成deb模块安装(推荐);
- 直接make install安装;
更推荐使用——打包成deb模块安装,因为可以方便的拷贝下次其他机器使用。
1. 编译环境准备
系统:linux衍生系统都行,我用的是银河麒麟系统。
# 更新apt软件源
sudo apt update # 安装编译软件环境
sudo apt install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison liblz4-tool debhelper -y
2. 内核源码下载
内核下载:
- 官方链接:https://www.kernel.org/
- 其它链接:http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/kernel/
如下图所示,下载tarball,源码格式通常都是 linux-x.x.x.tar.gz 形式。
3. 按需修改内核编译配置
下载后,解压,并进入源码目录
tar -xvf linux-6.9.2.tar.gzcd linux-6.9.2
使用当前系统的.config文件作为模板
cp -v /boot/config-5.8.2-genertic .config
配置内核,如果没什么需求就直接save,然后exit
make menuconfig
。。。中间你可以加入自己需要的源码补丁。
重要:
sudo vim .config
将CONFIG_SYSTEM_TRUSTED_KEYS和CONFIG_SYSTEM_REVOCATION_KEYS的内容删除(保留双引号),如果本身就是空的双引号就不用管。
不然的话会编译报错。
保存。
4. 编译 && 安装
4.1 方法1——deb包安装(推荐)
# 使用make bindeb-pkg进行编译
sudo make bindeb-pkg -j16
执行完成之后,在源码目录的上层会生成3个文件
- linux-headers-6.9.2_6.9.2-4-arm64.deb
- linux-image-6.9.2_6.9.2-4-arm64.deb
- linux-libc-6.9.2_6.9.2-4-arm64.deb
# 安装新内核
sudo dpkg -i *.deb# 更新grub
sudo update-grub
4.2 方法2——make installl安装
# 编译和安装
sudo make -j16
sudo make modules -j16
sudo make modules_install -j16
sudo make install -16# 更新grub
sudo update-grub
5. 重启
sudo reboot now
执行清理命令,就能够释放我们刚才编译内核时候生成占用的空间。
make clean
6. 卸载内核
查看自己安装过的内核版本,在里面我们可以找到对应的headers与image。
dpkg --get-selections | grep image
先卸载headers:
sudo apt-get purge linux-headers-6.9.2
接着卸载image:
apt-get purge linux-image-6.9.2
更新grub
sudo update-grub
参考文章
编译deepin主线内核https://bbs.deepin.org/post/262451
内核打包- Community - Deepin Technology内核打包https://bbs.deepin.org/zh/post/270582