Ubuntu环境下制作kernel deb包

1.kernel下载与解压

linux kernel下载地址:

https://www.kernel.org/pub/linux/kernel/

我下载的是linux-5.4.146.tar.xz 解压:

tar -xf linux-5.4.146.tar.xz

2.环境

编译前需做好准备工作,安装必要的工具:

sudo apt install build-essentialsudo apt install kernel-packagesudo apt install dwarves

3.配置

可copy一份本机原来对应内核版本的配置文件,并在此基础上进行修改。

cd linux-5.4.146cp /boot/config-5.4.0-146-generic .config

4.编译

sudo make-kpkg --initrd --revision 001 --append-to-version -20230524 kernel_image kernel_headers --config menuconfig

编译选项解释如下: --initrd:选项会让make-kpkg自动帮我们生成initramfs。 --revision:会给生成的deb文件加上一个版本信息,这个参数只是影响到文件名,如果不指定,默认会是“10.00.Custom”。 --append-to-version:是一种版本信息,它不仅出现在deb安装包的文件名里,也会影响到kernel的名称,比如本例中,内核更新完成之后,用“uname -r”察看会得到“5.4.146-20230524”。 kernel_image:表示生成内核和默认模块的安装包。 kernel_headers:表示生成一个内核头文件的安装包;如果不生成这个deb包,那么我们就无法在/usr/src目录下生成linux-headers-x.x.x,这样就无法编译自己的内核模块(虽然可以通过apt-get来安装,但是通过这个方式安装的不一定是自己正在使用的内核版本)。 --config=menuconfig:表示以menuconfig的方式编译。

编译完成后,会在linux-5.4.146的上一级目录生成2个文件,一个是image的,一个是headers的,如我生成的2个文件为:linux-image-5.4.146-20230524_001_amd64.deb,linux-headers-5.4.146-20230524_001_amd64.deb

至此,kernel的deb包就生成完成了。


比丘资源网 » Ubuntu环境下制作kernel deb包

发表回复

提供最优质的资源集合

立即查看 了解详情