从上一贴到现在,折腾了这么久终于把uboot、kernel、busybox根文件系统配置好了,现在终于可以通过uboot启动,通过tftp下载内核,进而加载nfs根文件系统了,这节就简单介绍下如何获取、编译、配置内核,下一节再详解如何制作根文件系统以及bbb如何挂载nfs好吧,这几天过的,过程太特么折腾人了。。。 首先,得有源码对吧,准备好下面三者的源码:
解压之后,对应得到三者的文件夹:
首先对uboot进行测试: 执行下列命令,来对uboot进行编译与配置: make CROSS_COMPILE= ARM-linux-gnueabihf-distclean make CROSS_COMPILE=arm-linux-gnueabihf-am335x_boneblack_config make CROSS_COMPILE=arm-linux-gnueabihf- -j4 结果发现无法配置,后来发现里面源码不对,就下载了2015-10的uboot,然后进行编译,编译结束,会得到MLO、u-boot.img、u-boot.bin可执行文件,这三者可供我们测试,但是,如果将板载uboot毁坏,烧入这里的uboot的话,内核启动不了,提示机器ID不对,这还需要我花点时间来搞定这个问题,其实,我们原机内核就是这里面的源码的内核,我们把内核配置编译好,就相当于有了现行内核的源码树,可以开发驱动了,下面对内核进行初步配置与测试: 执行下面代码,对内核进行编译: make ARCH=armCROSS_COMPILE=arm-linux-gnueabi- bb.org_defconfig make ARCH=armCROSS_COMPILE=arm-linux-gnueabi- -j4 make ARCH=armCROSS_COMPILE=arm-linux-gnueabi- uImage dtbs LOADADDR=0x80008000 -j4 然后,我们可以通过板载uboot启动这个内核看看能否运行了:
板子一上电,立马按下回车,可以进入到uboot的命令行模式,这里的uboot倒计时只有1s,很快就没了,所以手一定要快。。。 设置好本机ip 和服务器ip ,然后将内核目录中arch/arm/boot/dts 下面的am335x-boneblack.dtb 拷贝到tftp 目录下重命名为:am335x.dtb ,将编译好的uImage 格式内核也拷贝到该目录下,在开发板uboot 中输入:
然后准备启动该内核:
然后,可以看到内核启动输出信息,从这里可以看出,这确实是我们刚刚编译好的内核:
从下面,就可以看到我们已经挂载好了nfs系统,而且已经可以进入控制台了:
简单测试,已经可以执行命令了:
好了,这一节就到这里,下一节介绍下如何移植根文件系统,好吧。。。
|