下载源码包
https://kernel.org/
解压源码包
tar -xvf linux-xxx.tar.xz
安装依赖
apt install make gcc ncurses-dev flex bison libelf-dev build-essential libssl-dev 可根据错误提示安装
编译menuconfig
make menuconfig
编译源码包(最好是在init 3 无GUI模式)
make -j
安装模块
make modules_install
安装内核
make install
遇见报错如下:
command make not found 找不到make命令 安装make
apt install make
gcc: not found 找不到gcc 安装gcc
apt install gcc
unable to find the ncurses package 没有找到ncurses这个包 安装ncurses-dev 或libncurses-dev
apt install ncurses-dev
flex : not found 没有找到flex 安装flex
apt install flex
biaon:not found 没有找到bison 安装bison
apt install bison
缺少gelf.h
apt install libelf-dev
缺少opeen/opensslv.h
apt install libssl-dev
no ruler to maketarget “debian/canonical-certs.pem”,needed by “certs/x509_certificate_list”。
禁用冲突的安全证书 参考自https://askubuntu.com/questions/1329538/compiling-kernel-5-11-11-and-later
scripts/config --disable SYSTEM_TRUSTED_KEYS
scripts/config --disable SYSTEM_REVOCATION_KEYS
或修改.config文件 将对应的值删除 如下图所示
有些情况下make后使用make modules_install安装模块会报错 使用make modules编译模块
make modules
安装内核报错 Missing file :arch/x86/boot/bzImage 可以使用make bzImage生成压缩的内核镜像文件
make bzImage
从源码编译安装内核耗时过长 建议使用apt直接联网安装
apt search linux-image 搜索内核
apt install linux-image-x.xx.xxx-xxx-generic 安装内核
apt purge linux-image-x.xx.xxx-xxx-generic 卸载内核