从上一贴到现在,折腾了这么久终于把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系统,而且已经可以进入控制台了:
简单测试,已经可以执行命令了:
好了,这一节就到这里,下一节介绍下如何移植根文件系统,好吧。。。