如何将Ubuntu编译内核过程成?
摘要:前言 使用的是ubuntu 22.04 本来的kernel:5.19.0-38-generic 编译kernel 5.19 使用虚拟机要注意存储空间的变化,避免内存爆掉。 环境配置 需要先安装配置环境 sudo apt-get instal
前言
使用的是ubuntu 22.04 本来的kernel:5.19.0-38-generic 编译kernel 5.19
使用虚拟机要注意存储空间的变化,避免内存爆掉。
环境配置
需要先安装配置环境
sudo apt-get install ncurses-dev
sudo apt-get install flex
sudo apt-get install bison
sudo apt-get install libelf-dev
sudo apt-get install libssl-dev
sudo apt install dwarves
sudo apt-get install zstd
编译kernel
下载和kernel同版本的源码。
http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/kernel/v5.x/linux-5.19.tar.gz
将自带的配置文件copy到解压的源码的顶层Makefile处。
cp -r /boot/config-5.19.0-38-generic .config
配置kernel
sudo make menuconfig
选择save,选择.config(之前copy过来的)
完成之后回到这个界面选择退出。
make
出现问题
make[1]: *** No rule to make target 'debian/canonical-certs.pem', needed by 'certs/x509_certificate_list'. Stop.
make: *** [Makefile:1843: certs] Error 2
删除.config文件中这两行中的双引号中的内容,双引号保留。
CONFIG_SYSTEM_TRUSTED_KEYS="debian/canonical-certs.pem"
CONFIG_SYSTEM_REVOCATION_KEYS="debian/canonical-revoked-certs.pem"
清除编译结果重新编译。
清除编译结果
make mrproper
安装驱动
sudo make modules_install
完成后会生成一个版本号的文件夹。生成位置是/lib/modules/5.19.0
这个文件夹要创建需要权限。
生成内核压缩镜像文件
make bzImage
./arch/x86/boot下会生成bzImage文件
安装准备
5.19.0这个名字是/lib/modules下创建的文件夹的名字。
