DM365IPNC开发环境搭建

DM36xIPNC  ubuntu12.04环境搭建整理(rev.B)(原创,转载请注明作者) 

环境:ubuntu12.04LTS

目标板卡:TMS320DM36x IPNC 或者DVR 

  • tftp服务器 

1. 安装相关的软件包:

sudo apt-get install tftpd-hpa tftp-hpa 

2. 修改配置

配置文件在 /etc/default/tftpd-hpa,内容如下:

# /etc/default/tftpd-hpa

TFTP_USERNAME=”tftp”
TFTP_DIRECTORY=”/tftpboot
TFTP_ADDRESS=”0.0.0.0:69″
TFTP_OPTIONS=”-l -c -s”

/tftpboottftp服务的目录,如果事先不存在的话我们需要创建它

sudo mkdir /tftpboot

chown user /tftpboot

这里的user需换成你开发时所用的用户 

3. 重新启动TFTP服务:

sudo service tftpd-hpa restart 

4. 测试

$ cd /tftpboot

$ echo “hello tftp service”>>a.txt

$ tftp localhost

tftp> get a.txt

如果这一步执行成功的话说明从tftp服务器下载东西已经成功! 

  • nfs服务器 1、安装Ubuntu nfs

Ubuntu上默认是没有安装Ubuntu nfs服务器的,因此我们首先安装Ubuntu nfs服务器端:

$sudo apt-get install nfs-kernel-server 

2。配置/etc/exports

Ubuntu nfs允许挂载的目录及权限在文件/etc/exports中进行了定义例如,我们要将根目录下的rootfs目录共享出来,那么我们需要在/etc /exports文件末尾添加如下一行:/rootfs *(rw,sync,no_root_squash)

其中:/rootfs是要共享的目录,*代表允许所有的网络段访问,rw是可读写权 限,sync是资料同步写入内存和硬盘,no_root_squashUbuntu nfs客户端分享目录使用者的权限,如果客户端使用的是root用户,那么对于该共享目录而言,该客户端就具有root权限

本人的配置如下:

/rootfs *(rw,sync,no_subtree_check)

注意:在使用之前请将挂载的目录权限全部设置成777即执行sudo chmod 777 /rootfs。另外请把/rootfs替换成你希望挂载的目录

注意:rw sync等之间是不能有空格的,否则报exportfs: /etc/exports:1: syntax error: bad option list 

3Ubuntu nfs重启服务

$sudo service portmap restart

$sudo service nfs-kernel-server restart

如果出现如下错误:

mount: wrong fs type, bad option, bad superblock on xxxxxx,

missing codepage or helper program, or other error

(for several filesystems (e.g. nfs, cifs) you might

need a /sbin/mount. helper program)

In some cases useful info is found in syslog – try

dmesg | tail or so

解决方法:sudo apt-get install nfs-common 

4、测试Ubuntu nfs

此时可以运行以下命令来显示一下共享出来的目录:
$showmount -e
或者可以使用以下命令把它挂载在本地磁盘上,例如将/rootfs挂载到/mnt下:
$ sudo mount -t nfs localhost:/rootfs /mnt
可以运行df命令查看是否挂载成功。查看后可以使用以下命令卸载:
$ sudo umount /mnt

  • 下面是开发软件建立

5,板子烧写测试(请参照官方说明文档)

我的总结见txt

6.编译环境搭建(原版见User_guide_IPNC_dm36x.pdf

0).首先安装交叉编译链:(1.1G)解压后,接着解压缩到/opt/mv_pro_5.0

添加环境变量(三种方法,这里只说修改全部用户的方法)

export PATH=/opt/mv_pro_5.0/montavista/pro/devkit/arm/v5t_le/bin:/opt/mv_pro_5.0/montavista/common:$PATH

然后重启,或者source /etc/profile

成功后可以使用arm_v5t_le_*命令

1) Copy the file “dvsdk_2_10_01_18_ipnc_dm36x_xxx.tar.gz” from

<install dir>/Application/src/ to <installDir>/ directory in your Linux

desktop.

2) Extract DVSDK using following command.

tar -zxvf dvsdk_2_10_01_18_ipnc_dm36x_xxx.tar.gz

This will install the standard DVSDK package needed for IPNC

application under directory dvsdk_2_10_01_18

3) Make an IPNC code application folder for convenience of code

arrangement

mkdir ipnc

cd ipnc

4) Copy following files from <install dir>/Application/src/ to

<installDir>/ipnc directory in your Linux desktop.

This should copy following files to your Linux Directory:

• ipnc_app_dm36x_priv_xxx.tgz

• ipnc_app_dm36x_open_xxx.tgz

• ipnc_app_dm36x_appro_xxx.tgz

• lsp_ipnc_dm36x_xxx.tgz

5) Extract linux kernel tar file using the following command.

tar -zxvf lsp_ipnc_dm36x_xxx.tgz

This will install the standard Linux package needed for IPNC

application under directory ti-davinci

6) Extract the ipnc application using the following command:

tar -zxvf ipnc_app_dm36x_priv_xxx.tgz

This will install ipnc_app, av_server directory, Makefile and

Rules.make file.

7) Extract all the open source components file using the following

command:

tar -zxvf ipnc_app_dm36x_open_xxx.tgz

This will install all the open source components to ipnc_app folder.

8) Extract the 2A component file using the following command:

tar -zxvf ipnc_app_dm36x_appro_xxx.tgz

This will install all 2A related files to av_server directory.

9) Create a TFTP directory for generating file system and linux kernel.

mkdir tftp

mkdir ./target

10)安装cramfs工具:

http://sourceforge.net/projects/cramfs/下载cramfs-1.1.tar.gz。然后执行

tar zxvf cramfs-1.1.tar.gz

进入解包之后生成cramfs-1.1目录,执行编译命令:

make

编译完成之后,会生成mkcramfscramfsck两个可执行文件,其中mkcramfs工具是用来创建cramfs文件系统的,而cramfsck工具则用来进行cramfs文件系统的释放以及检查。将这两个文件拷贝到/usr/local/bin目录下,方便使用.

11sudo cramfsck -x /home/guo/dm365ipnc/ipnc/target/filesys cramfsImage_ipnc_dm365_2.6.0

这条指令将官方的文件系统解压到开发目录

7.开始编译

编译前需要对makefilerules进行更改

1)修改根目录下的/ipnc/Rules.make,根据实际调整以下选项

MVTOOL_DIR :=

/opt/dm36x/mv_pro_5.0/montavista/pro/devkit/arm/v5t_le

IPNC_INSTALL_DIR := /home/<user>/DM36x/

HOME := $(IPNC_INSTALL_DIR)/ipnc

DVSDK_BASE_DIR := $(IPNC_INSTALL_DIR)/dvsdk_2_10_01_18

TFTP_HOME :=

TARGET_FS :=

KERNELDIR :=

AVSERVER_DIR

$(HOME)/tftp

$(HOME)/target/filesys

$(HOME)/ti-davinci

:= $(HOME)/av_capture/build

SYSTEM := IPNC

HARDWARE := DM368

2)进入./ipnc目录make sysall进行编译(这里有官方文档不会提到的错误及解决方案)

编译时的错误:

cp: 无法获取"/home/guo/dm365ipnc/ipnc/ti-davinci/arch/arm/boot/uImage" 的文件状态(stat): 没有那个文件或目录

解决办法:使用make uImage编译生成的内核能由uboot引导,编译时会用到mkimage工具

sudo apt-get install u-boot-tools

make menuconfig 出错:scripts/kconfig/lxdialog/dialog.h:31:20: 致命错误: curses.h:没有那个文件或目录编译中断。

解决办法:ubuntu系统中缺少一个套件ncurses devel ,把此套件安装下即可

$ sudo apt-get install libncurses5-dev

你可能感兴趣的:(DM365IPNC开发环境搭建)