上次编译Linux内核的时候,出现了 "mkimage" command not found - U-Boot images will not be built 的错误,百度上搜了一下,说是可以通过安装 u-boot-tools 解决,我就来试一下。
运行 sudo apt-get install u-boot-tools ,安装该工具。还有一个问题,上次我直接使用 make menuconfig 来配置了内核,我当时以为华清远见会把默认的.config文件给配置好,但是后来看了根目录下的 build.sh,发现他配置的时候使用的是 fs4412_defconfig 这个配置文件,所以我们上次的步骤有问题,要重新来一次。
1)执行 make distclean ,然后执行 make fs4412_defconfig 重新配置内核。
2)上次我们使用了 build.sh 这个脚本来编译,这个脚本其实就是执行了几个make命令,还有复制编译后的内核镜像等操作。我们只需要编译即可,所以直接执行命令,不用脚本了。
3)执行 make uImage ,编译内核镜像,时间有点久,这次编译没有问题了。
4)执行 make dtbs ,编译设备树文件(如果你不知道什么是设备树,就自行去了解一下啦)
编译生成的内核镜像(uImage)位于 arch/arm/boot 目录下,设备树(exynos4412-fs4412.dtb)位于 arch/arm/boot/dts 目录下,后面测试Linux运行的时候会用到。
好了, Linux内核编译好了,还剩下根文件系统。根文件系统我就直接使用华清远见提供的吧,反正用来测试嘛,就不自己去做了,那接下来就是进入Linux系统的运行测试了,我会从SD卡启动UBoot,然后通过TFTP从服务器上加载Linux内核和DTB设备树到板子,通过NFS从服务器上挂载文件系统,如果没有问题,那就可以进入正题,研究UBoot和Linux内核的移植适配了。
今天就到这里了,下回继续。