ubuntu24.04 手动编译内核

修改配置开启源码仓库

nano /etc/apt/sources.list.d/ubuntu.sources

找到 Types: deb,后面添加 deb-src,修改为允许获取源码:

安装依赖

apt update
apt install build-essential libncurses-dev bison flex libssl-dev libelf-dev dwarves git dpkg-dev fakeroot debhelper libdw-dev gawk ccache linux-headers-$(uname -r) -y

下载内核官方源码

mkdir ~/kernel-build && cd ~/kernel-build

下载当前版本的源码

apt source linux-image-unsigned-$(uname -r)

或者直接下载指定版本的源码

apt source linux-image-unsigned-6.17.0-22-generic

通过Patch方式修改内核源码

创建patch文件,文件内容需自己修改,此处省略

nano ~/kernel-build/my.patch

应用patch,如果没有错误提示,说明patch成功。

cd ~/kernel-build/linux-*/
patch -p1 --dry-run < ../my.patch

配置内核

复制当前系统的配置文件作为基础

cp /boot/config-$(uname -r) .config
make olddefconfig

关闭系统信任密钥检查

scripts/config --disable SYSTEM_TRUSTED_KEYS
scripts/config --disable SYSTEM_REVOCATION_KEYS
scripts/config --set-str CONFIG_SYSTEM_TRUSTED_KEYS ""
scripts/config --set-str CONFIG_SYSTEM_REVOCATION_KEYS ""

编译与打包

网上说使用ccache可以加速第二次编译,但未验证

export CCACHE_COMPILERCHECK=content
export CCACHE_BASEDIR=$PWD
fakeroot make -j$(nproc) CC="ccache gcc" bindeb-pkg

安装新内核并重启验证

安装

cd ..
dpkg -i linux-image-*.deb linux-headers-*.deb

重启

reboot

验证,ubuntu自带的内核都是-generic结尾的,比如6.17.0-22-generic,如果内核名字变了说明成功修改了内核

uname -a

类似文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注