基于Linux的BeagleBoard-xm终端开发环境搭建

本文均属自己阅读源码的点滴总结,转账请注明出处谢谢。

欢迎和大家交流。qq:1037701636 email:[email protected]

今天在处理一些android开发的问题时,找到了去年年初做的一个基于Beagleboard-xm的项目,有个文档当初整理的不错,这个分享给大家吧。

 

基于Linux的BeagleBoard-xm终端开发环境搭建

 

PCLinux开发版本:ubuntu10.04及以上

PC主要需要安装以下软件:minicomNFS

开发板型号:Beagleboard-xm Revc

CPU型号:DM3730

软件开发包版本:DVSDK4.0.1

Linux内核版本:2.6.32

交叉编译环境版本:arm-none-linux-gnueabi-gcc (Sourcery G++ Lite 2009q1-203) 4.3.3

(注:以下有关命令行的操作均在root用户下进行)

 

一:交叉编译工具安装

 

1.1 交叉编译工具安装包的下载:

arm-2009q1-203-arm-none-linux-gnueabi.bin:

https://www.ridgerun.com/developer/wiki/index.php/Code_Sourcery_ARM_toolchain_2009q1-203

1.2 安装包的安装

执行命令如下:

./arm-2009q1-203-arm-none-linux-gnueabi.bin

完成窗口化安装,这里指定的安装目录为/opt/CodeSourcery/Sourcery_G++_Lite/

1.3 设置交叉编译器的环境变量

执行如下命令:

vim/etc/profile

在文件尾部添加如下内容:

exportPATH=/opt/CodeSourcery/Sourcery_G++_Lite/bin:$PATH

在使用时执行source /etc/profile时该环境变量全局生效。

 

.DVSDK4.0.1软件开发包获取与安装

 

2.1 DVSDK4.0.1安装包下载网址:

http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/dvsdk/DVSDK_4_00/4_01_00_09/

 

2.2 DVSDK4.0.1的安装:

依次执行如下命令:

chmod 777dvsdk_dm3730-evm_4_01_00_09_setuplinux

./dvsdk_dm3730-evm_4_01_00_09_setuplinux

完成窗口化安装过程中需要指定之前安装的编译器目录,本文目录如下:

/opt/CodeSourcery/Sourcery_G++_Lite/bin

 

.DVSDK4.0.1 打补丁操作

 

       我们知道DVSDK4.0.1TI专门用于AM/DM37xxEVM等评估板而设计的,如果要将这个DVSDK用到我们的BeagleBoard-xm板上,主要需要打补丁的内容就是xload,ubootlinux kernel

3.1补丁文件的下载

参考如下wikihttp://processors.wiki.ti.com/index.php/DVSDK_4.x_FAQ#How_to_build_and_install_DVSDK_4.01_on_BeagleBoard-xM

可以下载到适用于DVSDK4.0.1的补丁脚本setup-dvsdk-4-01-beaglexm-110126.sh,补丁脚本主要完成以下内容:

a.通过git下载xload,ubootlinux kernel源码;

b.xload,ubootlinux kernel的打补丁操作;

c. makefile做一定的修改;

d.SD卡制作脚本mksdboot.sh进行一定的修改;

(详细内容见附件)。

当然从这里可以我们可以下载到打完补丁的源码:

http://sourceforge.net/projects/dvsdkbbxm/files/DVSDK-4.01%20for%20BeagleBoard/DVSDK%20for%20BB%20xM-C/Source%20files/

 

                                                     .DVSDK4.0.1 全编译和部分编译

 

4.1 DVSDK4.0.1的全编译

执行如下命令:

make clean

make all

以上命令会完成dvsdk内部所有内容的编译,包括xload,uboot,linux kernel以及用于Davinci架构的核心驱动:cmem.ko,dsplink.ko,sdma.ko等,当然还包括其他的组件。

 

4.2 DVSDK4.0.1的部分编译

这里的部分编译指的是如果只想编译修改过的内核,只需要执行如下命令就行:

make linux_clean

make linux

其余模块单独编译也类似。

 . 文件系统SD卡启动和NFS启动

 

        Beagleboard-xm板支持内核从SD卡启动,但是文件系统也可以配置为NFS文件系统启动。

5.1 制作SD卡文件系统启动

DVSDK 自带的脚本可以设置SD卡启动,制作SD卡(最好是4G),需要如下步骤来完成:

a: 插入sd卡,执行fdisk -l命令查看SD卡的磁盘号,如/dev/sdd

b: 进入DVSDK所在目录,执行命令 ./bin/mksdboot.sh --device /dev/sdd --sdk `pwd`

c:选择显示设备LCD还是 DVI,最终完成SD卡的文件系统启动,需要一段时间。

 

5.2 制作SD卡从NFS启动

       第一步:配置内核启动NFS文件系统,需要在本地建立一个文件系统,文件系统以DVSDK自带的dvsdk-dm37x-evm-rootfs.tar.gz(在DVSDK安装目录的filesystem目录中)为核心,这里执行如下命令完成文件系统的解压:

tar xzvf dvsdk-dm37x-evm-rootfs.tar.gz -C/home/BeagleBoard/rootfs

再在DVSDK安装目录下执行make intall

完成DVSDK所有模块的文件安装,安装目录在由Rules.make(这个文件很重要,指定了DVSDK中各个组件所在的目录,方便Makefile的编译)的EXEC_DIR变量来指定

注:后者的操作很有必要,因为这里会将最新编译出来的驱动模块cmem.ko,dsplink.ko,sdma.ko等对解压出来的文件系统进行覆盖,如果不这样会造成驱动在启动加载时不能和内核相匹配而出现错误。

 

         第二步:修改 mksdboot.sh的内容,其实修改的最终结果是替换bootargs参数的内容,这里配置成文件系统通过NFS来完成挂载:

直接从启动文件的参数代码如下:

setenv bootargs ‘console=ttyS2,115200n8root=/dev/mmcblk0p2 rw ip=off mem=55M@0x80000000 mpurate=1000  omap_vout.vid1_static_vrfb_alloc=yomapfb.vram=0:8M mem=384M@0x88000000 omapfb.mode=lcd omapdss.def_disp=lcdrootwait vram=8M‘

这里我提供的修改代码如下:

setenv bootargs ‘console=ttyS2,115200n8 rwmem=55M@0x80000000 mpurate=1000 mem=384M@0x88000000omap_vout.vid1_static_vrfb_alloc=y omapfb.vram=0:8M omapfb.mode=lcd

 

omapdss.def_disp=lcd rootwait root=/dev/nfsnfsroot=192.168.1.55:/home/BeagleBoard/rootfsip=192.168.1.56:192.168.1.55:192.168.1.255:255.255.255.0,off‘

最终形成boot.scr,该文件的内容会被xload读取作为uboot的环境变量。

注意:以上的参数个别变量符号不能写错如vram,否则内核提取时会发生错误,导致系统不能正常启动

 

       第三步:本地NFS配置

执行如下命令:

vim /etc/exports

写入文件系统所在目录到该文件中如:

/home/BeagleBoard/rootfs*(rw,nohide,insecure,no_subtree_check,async,no_root_squash)

重启NFS服务,执行如下命令

exportfs -a

/etc/init.d/nfs-kernel-server restart

        最后,进入DVSDK所在目录,执行命令 ./bin/mksdboot.sh --device /dev/sdd --sdk`pwd`完成SD卡制作。

       

 

 

. 自己参考设计的脚本文件

 

       通过这段时间的学习,尤其是在对DVSDK4.0.1DVSDK4.0.3做实验对比时,对重复敲打的一些命令写成了脚本,用于方便整个软件开发环境的搭建。

1.setup_sd.sh脚本:主要用于配置SD启动文件系统是通过NFS还是SD卡直接启动。

2.setup_nfs.sh脚本:用于完成PC机上文件系统的制作,主要是融合了上面提到的一些命令。

 

 

       

 

 

 

 

 

 

基于Linux的BeagleBoard-xm终端开发环境搭建,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。