如何将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下创建的文件夹的名字。
阅读全文