准备工作
之前已经利用git命令把IMX6ULL开发板的BSP克隆到Ubuntu中了,详情见
https://blog.youkuaiyun.com/wenhao_ir/article/details/144325141
之前也已经配置好gcc交叉编译器了,详情见
https://blog.youkuaiyun.com/wenhao_ir/article/details/144326545
关于zImage文件、设备树文件(dtb)、内核模块(ko)文件的介绍
关于zImage文件、设备树文件(dtb)、内核模块(ko)文件的详细介绍见:
https://blog.youkuaiyun.com/wenhao_ir/article/details/144422140
当然通过一个完整的移植u-boot、设备树、内核、驱动的完整过程能更好的理解这些文件,详情请在优快云博客的“内容管理”中搜索“移植。”
Linux-4.9.88源码来源及百度网盘下载地址
Linux-4.9.88源码来源请参考博文 https://blog.youkuaiyun.com/wenhao_ir/article/details/144325141
通过上面这篇博文利用git得到的Linux-4.9.88源码我打包了一份,压缩包下载地址:
https://pan.baidu.com/s/1yjIBXmxG9pwP0aOhW8VAVQ?pwd=e9cv
注意:只能在大小写敏感的文件系统中解压,比如ext4文件系统中解压,否则会出现因大小写不敏感而导致重名的问题,详见 https://blog.youkuaiyun.com/wenhao_ir/article/details/144871115
配置Linux源码
不同的开发板有不同的配置文件,配置文件位于内核源码arch/arm/configs/
目录,如下图所示:
确认有配置文件100ask_imx6ull_defconfig
后,切换到Linux的源码目录:
cd /home/book/100ask_imx6ull-sdk/Linux-4.9.88
然后执行下面的命令:
make mrproper
make mrproper 是清理编译环境的命令,用于移除内核源码目录中可能遗留的编译产物和配置文件,确保一个干净的编译环境。
再执行下面的命令:
make 100ask_imx6ull_defconfig
100ask_imx6ull_defconfig 是为特定硬件平台(例如这里的 100ASK IMX6ULL 开发板)提供的预定义配置文件。这个命令会将该设备的默认配置复制到内核源码目录的 .config 文件中,作为后续编译的配置基础。
内核(Kernel)的zImage文件的编译生成
上面的准备工作做好后, 执行生成zImage文件的命令即可生成zImage文件: