本文档主要讲解在iTOP-iMX6Q/D/PLUS 开发板的设备树内核(4.1.15)的缺省文件配置。 这里以 imx6q(imx6d 和 plus 的类似)的 qt 系统内核编译为例,Ubuntu16 的内核和 qt 通用,android6.0 的配置和 qt 的类似。 1 内核源码中默认缺省文件的位置 如下图所示,进入源码的“kernel_imx”目录,可以看到两个脚本 “build_android_kernel.sh”和“build_qt_kernel.sh”,分别用来编译 android 和 qt 的内 核和设备树,这部分在用户手册上有介绍,根据不同参数即可完成编译。 打开“build_qt_kernel.sh”文件,如下图所示,是脚本的一部分。
注意上图中的“make imx_v7_linux_defconfig”,这一句脚本是用来配置却文件的,这 是 linux 内核编译的一个默认用法,它表示内核的配置 config 文件,使用 “arch/arm/configs/”路径下一个叫“imx_v7_linux_defconfig”的缺省文件。如下图所 示,我们可以找到这个缺省文件。
另外还有 android 的缺省文件,使用命令“ls arch/arm/configs/imx_v7_android_defconfig”,如下图所示。 2 配置缺省文件 知道了默认缺省文件之后,接下来我们来通过 menuconfig 修改缺省文件,检验到底对 不对。 启动开发板,如下图所示,可以看到有一个设备节点“/dev/leds_ctl”,这是 led 小灯的 设备节点。 我们现在要配置缺省文件,去掉这个驱动,让内核不能生成这个设备节点。首先,备份一 下默认的缺省文件,以免修改错误,使用命令“cp arch/arm/configs/imx_v7_linux_defconfig imx_v7_linux_defconfig” 如下图所示,如果配置失败无法编译内核,可以用备份在 kernel_imx 路径下的 imx_v7_linux_defconfig 缺省文件覆盖掉 arch/arm/configs/路径下的 imx_v7_linux_defconfig 缺省文件。
接着配置配置需要使用.config 文件,如下图所示,使用命令“cp arch/arm/configs/imx_v7_linux_defconfig .config”覆盖掉.config 文件。 启动 menuconfig,使用“export ARCH=arm”,然后使用“make menuconfig”命 令,进入 menuconfig 界面,如下图所示,一定要确保进入的是 arm 4.1.15 界面。
选择“Device Drivers->”->“Character devices->”,找到“Enable LEDS
config”,如下图所示。
敲回车,然后去掉 led 驱动的配置,如下图所示。
最后退出,保存修改,这样我们就得到新的.config 文件,选择 Yes。
使用新的.config 文件覆盖掉“arch/arm/configs”目录下的 imx_v7_linux_defconfig 文件,使用命令“cp -r .config arch/arm/configs/imx_v7_linux_defconfig”,如下图所 示。 最后编译执行“./build_qt_kernel.sh”脚本(其它版本核心板,需要传递参数,参考用 用户手册对应章节),编译 imx6q 的 qt 的内核,烧写到开发板。 会发现 led 的设备节点“/dev/leds_ctl”没有了,表明.config 和 menuconfig 以及缺省 文件使用方法正确。
|