如果我想把一个驱动编译进内核应该怎么做首先看一下内核的结构内核下有很多文件夹进入驱动文件夹driver下其中char文件夹下都是字符文件驱动打开该目录下的Makefile其中对于obj-$(CONFIG_TTY_PRINTK) ttyprintk.o而言如果$(CONFIG_TTY_PRINTK)是y则编译进内核是M则编译为ko文件如何设置该变量的值在内核根目录下有个.config文件该文件内定义了每个驱动的状态如何生成.config文件在 kernel/arch/arm/configs/目录下有个rockchip_defconfig和rockchip_linux_defconfig文件,这两个文件里面定义了每个驱动是否编译到内核或者单独编译在编译内核过程中会将这种属性复制为.config文件可以通过make menuconfig修改.config文件如果在执行make menuconfig过程中报错例如scripts/Kconfig.include:40: linker arm-buildroot-linux-gnueabihf-ld not found make[1]: *** [scripts/kconfig/Makefile:29menuconfig] 错误 1 make: *** [Makefile:630menuconfig] 错误 2大概率是因为没有设置好export ARCHarm64 export CROSS_COMPILEaarch64-none-linux-gnu-设置完成之后执行该命令后会看到如下界面待打印完成