make-kpkg命令--linux内核头文件生成过程并填坑

    科技2022-07-16  137

    前言

    编译Linux驱动,内核头文件是必不可少的,这里根据开发经验,介绍生成linux headers的过程.

    操作步骤( 在root帐号,以ARM64平台为例):

    1. 解压内核源码

    2. 执行make my_defconfig  生成.config,这里我把交叉编译工具配置好了,也就是CONFIG_CROSS_COMPILE,同时CONFIG_ARM64=y

    3.执行make -j32 编译内核

     

    4.执行make-kpkg --initrd --cross-compile aarch64-linux-gnu- --arch arm64 kernel_headers

    5.在内核源码的上级目录会生成一个deb文件(假设文件名字未linux-4.4.0-112-headers.deb),这个deb文件就是linux headers,与我们用apt-get install *linux-*headers*一样.

    6.执行dpkg -X linux-4.4.0-112-headers.deb ./my_headers/  解压

    7.设置Makefile中linux内核头文件路径,发现如下问题:./arch/arm64/include/asm/opcodes.h:5:43:fatal error ../../arm/include/asm/opcodes.h No such file or directory

    通过grep命令,发现的确没有,那怎么办呢?怀疑我用的是arm64架构,但是没有把arm32架构的头文件打包,这就不合理了,果断把源码中arch/arm  这个文件夹拷打my_headers/arch 目录中.

    编译成功.

    Processed: 0.013, SQL: 8