Beaglebone虽然有制作u-boot和kernel工具,但是在驱动开发时,并不能通过工具添加进各模块,所以我们还是要对u-boot和内核进行编译,此时就涉及到环境搭建。
在linux中,搭建开发环境是非常重要的一步,选对相应的linux,sdk版本是成功的关键。我开始选用的是TI官网上如下版本
开发平台:ubuntu-10.04.4-desktop-i386
Sdk:ti-sdk-am335x-evm-05.04.00.00-Linux-x86-Install
源码:am335x-evm-sdk-src-05.04.00.00
am335x-evm-sdk-bin-05.04.00.00
在编译u-boot的时候并没有多大问题,但是在编译内核的时候,总是找不到am335x_evm_defconfig文件夹,也就是不支持am335x。非常郁闷。尝试很多方法,都没用。
后来实在没辙,改成文档中使用的版本ti-sdk-am335x-evm-05.03.02.00-Linux-x86-Install(可以在该网站下载:http://buyvm.isfate.com/),这样也保险。
按照指导文档sitara-linuxsdk-sdg-05.04.00.00.pdf中所说的,进行安装。
安装完sdk,然后开始编译u-boot,因为beaglebone是以这个版本的sdk来做测验的,所以,里面已经有了beaglebone的u-boot源码。我们可以采用如下步骤编译u-boot。
1、进入u-boot源码目录
cd <sdk安装目录>/board-support/u-boot-2011.09-psp04.06.00.03
2、如果你没有使用专门的目录,清除安装过程产生的中间文件
make CROSS_COMPILE=arm-arago-linux-gnueabi- ARCH=arm distclean
3、如果你之前使用’O=am335x’作为你的目标目录,删除该目录
rm -rf am335x/
4、编译MLO和u-boot文件
上面的make_target_from_table_baove根据不同的开发板board,使用不同的make target。
我们这里是BeagleBone,所以用am335x_evm,如下:
make O=am335x CROSS_COMPILE=arm-arago-linux-gnueabi- ARCH=arm am335x_evm
最后目标文件MLO和u-boot将出现在 <sdk安装目录>/board-support/u-boot-2011.09-psp04.06.00.03/am335x/目录下。