🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
虽然我们在2.1.1小节中为驱动程序freg编写了一个Kconfig文件,但是在默认情况下,在执行make menuconfig命令配置内核编译选项时,编译系统是无法找到这个Kconfig文件的。这时候,我们需要修改内核的根Kconfig文件,使得编译系统能够找到驱动程序freg的Kconfig文件。 当执行make menuconfig命令时,编译系统会读取arch/$(ARCH)目录下的Kconfig文件,其中,$(ARCH)指向编译的目标CPU体系架构。在前面的1.4.2小节中,我们将$(ARCH)的值设置为arm,因此,就需要修改arch/arm目录下的Kconfig文件,使得编译系统可以找到驱动程序freg的Kconfig文件。打开arch/arm/Kconfig文件,找到以下两行内容: ~~~ menu "Device Drivers" ...... endmenu ~~~ 在这两行内容之间添加下面一行内容,将驱动程序freg的Kconfig文件包含进来。 ~~~ menu "Device Drivers" source "drivers/freg/Kconfig" ...... endmenu ~~~ 这样,当我们执行make menuconfig命令来配置内核编译选项时,编译系统就可以找到驱动程序freg中的Kconfig文件了,这时候,我们就可以配置驱动程序freg的编译方式了。 一般来说,各个CPU体系架构目录下的Kconfig文件都会通过source "drivers/Kconfig"命令把drivers目录下的Kconfig文件包含进去。例如,x86体系架构下的Kconfig文件有下面一行内容: ~~~ ...... source "drivers/Kconfig" ...... ~~~ 这意味着当我们在内核中新增了一个驱动程序时,只需要将它的Kconfig文件包含在drivers目录下的Kconfig文件就可以了。但是arm体系架构比较特殊,它没有将drivers目录下的Kconfig文件包含到自身的Kconfig文件中,而是将drivers/Kconfig文件的内容原封不动地拷贝到它的Kconfig文件中。因此,考虑到兼容其他体系架构,我们最好也以同样的方式来修改drivers/Kconfig文件,即在里面添加一行:`source "drivers/freg/Kconfig"`。