DVR开发--POWERPC交叉编译环境的搭建

powerpc交叉编译环境的搭建

1安装虚拟机

2:在虚拟机上装kubuntu8.10(经测:ubuntu9.109.04版安装交叉编译器ltibrpm-build包装不了, redhat命令有些区别平时用得不习惯,对ubuntu比较熟,所以选择kubuntu。据说Ubuntu8.04也可装,未测)

       Ethernet方式选: bridge

开启root, 设置root密码:$ Sudo passwd root

             用户密码:    $ passwd usrname

虚拟机与winxp之间文件共享:

1vmware-tools 中的hgfs此处不支持kubuntu

      (2)  file manigerànetworkàsamba serversmb栏:smb://192.168.0.120120是我本机dhcp分配的地址),只要虚拟机能桥接到主机上网,网络是通的就能看见winxp上设置的共享文件夹,winxp上设置共享文件夹是开启读写权限时,虚拟机与主机能互传文件。

    (3)  openssh

 

3安装vmware-tool;

   虚拟机上:VM-àinstall vmware-tool,

   Terminal

                     $ sudo mkdir /mnt/cdrom

                     $ sudo mount /dev/cdrom /mnt/cdrom

                     $ ls /mnt/cdrom/

                     $ cp –a /mnt/cdrom/*.* /tmp

                     $ cd /tmp

                     $ ls

                     $ tar –zxvf VMware-tool…….tar

                     $ cd vmware-tool-distrib

                     $ sudo ./vmware-tools-install.pl

           

            一路enter下去

           

            $ reboot sudo shutdown –r now

 

4:     交叉编译环境的搭建

4.1:   LTIB (Linux Target Image Builder) 是可以为各种不同的平台开发和配置BSPs (Board Support Packages)的小工具。使用这个工具,用户能够为他所需的嵌入式平台开发一个GNU/Linux镜像。 Freescale公司对于不同的平台提供了不同的LTIB。使用它们,本来很麻烦的移植u-boot 、移植linux内核、制作文件系统就变得很简单了。只需要进行一些配置,LTIB就能帮我们完成其余的工作。

4.2: 安装包下载:

(1)从公司服务器192.168.0.10tools目录下载交叉编译环境所需要的镜像文件:     MPC8315ERDB_20080627-ltib.iso

(2)http://www.freescale.com/webapp/sps/site/overview.jsp?nodeId=02VS0l320822D00332

打开这个网址,就可以看到Freescale提供的所有BSPLinux Board Support Packages)。下载所对应的芯片型号的开发包就可以了,是一个几百兆的iso

      

 4.3: 镜像装入光驱后:

$ sudo mount /dev/cdrom /mnt/cdrom

然后执行安装,这里最好降为普通用户,不然会报错。参考命令如下:

$cd /mnt/cdrom

$./install

中间会有提示,输入'Y'接受install,回答'yes' 接受 EULA,还会问你安装到哪个目录,我选择的是我的home目录/home/yhguo2010/

安装完成之后,在我们刚刚安装到的目录下,会生成一个MPC8315ERDB_20080627-ltib的目录,切换到MPC8315ERDB_20080627-ltib目录下,我们把它改为ltib目录,命令如下:

$cd /home/yhguo2010

$mv MPC8315ERDB_20080627-ltib ltib

进入ltib目录下,有一个执行文件,叫ltib

配置ltib

$./ltib –c(或直接./ltib, 以后编译的时候临时配置也行)

也可以使用./ltib –h来获得帮助

这一部可能会出现两个问题:

1:提示有些包没装,那么就安装相应的包。

glibc-devel 0 not installed

libstdc++ 0 not installed

gcc-c++ 2.96 not installed

zlib-devel 0 not installed

rpm 0 not installed

rpm-build 0 not installed

ncurses-devel 0 not installed

m4 0 not installed

bison 0 not installed

patch 0 not installed

如果直接用apt-get install这些工具,会有一半的工具提示找不到。为了找齐包含这些工具的软件包,我翻遍了google上能搜到的国外网站,痛苦啊。

我将所需要安装的这些软件包列举如下:

apt-get install m4

apt-get install bison

apt-get install patch

apt-get install build-essential

apt-get install libncurses5-dev

apt-get install zlib1g-dev

apt-get install rpm

      2: 由于安装ltib需要是普通用户身份,但部分命令要超级用户权限才行,所以需要执行visudo增加普通用户的权限,按照它给出的提示进行如下操作:

      #/usr/sbin/visudo(由于这个还不好保存,可用$ sudo vi /etc/sudoers)

      根据提示,在usr priviledge添加以下内容,yhguo2010是我的用户名

      yhguo2010 ALL = NOPASSWD: /bin/rpm, /opt/freescale/ltib/usr/bin/rpm

      安装过程有相当得一段时间,现在可以先去喝杯咖啡了。

5使用LTIB进行嵌入式Linux开发

1:在上一步中,如果没有出现什么意外,应该会出现一个LTIB的菜单方式的配置菜单,里面没什么复杂的选项,按照需求选择就可以了。如果选择了配置内核,还会出现内核的配置菜单。按需求配置好后,保存退出,十多分钟过去后,LTIB就会生成相应的uboot、内核和文件系统了。

2: 有时候,我们的开发板的硬件环境不一定和LTIB的设置一样。比如使用的Flash不一定一样、LocalBus的设置也不一定一样。那我们可以将LTIB生成的源代码拷贝出来自己修改后再make。方法是观察到LTIB将解压的内核或uboot源代码解压并打补丁之后(注意 一定要在打补丁之后)按Ctrl+c终止,这样就可以在/ltib/rpm/build/下面找到源代码了。如果不按Ctrl+c终止的话,LTIB再生成image后有可能会把源代码给删掉。

3: 安装好LTIB后,交叉编译环境也就建立起来了,若想使用powerpc-linux-gcc自动补全功能,需# vi /etc/bash.bashrc,在最后添加一句:export PATH=/opt/freescale/usr/local/gcc-4.1.78-eglibc-2.5.78-1/powerpc-e300c3-linux-gnu/bin/:$PATH。也就是是添加一个环境变量即可。

3-5:用普通用户登录,配置普通用户的的环境变量:

$vi ~/.bashrc

     在这个文件下添加如下

       export LTIB_PATH=$HOME/ltib(这是我们交叉编译所在的目录)  

export CONFIG_SITE=$HOME/zion/software/zion/build/config_ppc.site(工程所在的目录)

export PATH=/opt/freescale/usr/local/gcc-4.1.78-eglibc-2.5.78-1/powerpc-e300c3-linux-gnu/bin:$PATH(这个目录是我们安装交叉编译器的时候自动生成的)。

6:下载我们的工程,我们用svn来进行版本控制,如果你所在的linux没有svn的话,安装svn客户端,不用配置:

    $sudo apt-get install subversion

进入普通用户的目录下,用svn下载工程:

进入/home/yhguo2010/zion

[yhguo2010@~] $svn checkout https://192.168.0.20/svn/zion zion

如果更新了我们的工程,进入我们的工程目录,用如下命令进行更新:

进入/home/yhguo2010

[yhguo2010@localhost] $svn update

如果你更新了工程的某个文件,那么你要提交你所更新的文件,用如下命令进行提交:

进入/home/yhguo2010/zion目录

[yhguo2010@llocalhost] $svn commint

 

5.编译项目和在板子上测试项目

1:配置tftp

配置tftp服务的步骤:

1-1、安装相关软件包:tftpd(服务端),tftp(客户端)
sudo apt-get install tftpd tftp

1-2、建立配置文件
/etc/xinetd.d/下建立一个配置文件tftp

sudo vi tftp

在文件中输入以下内容:


service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}


保存退出

1-3
、建立tftp服务文件目录(上传文件与下载文件的位置),并且更改其权限
sudo mkdir /tftpboot
sudo chmod 777 /tftpboot -R

1-4
、重新启动服务
/etc/init.d/tftp restart

至此tftp服务已经安装完成了,下面可以对其进行一下测试。(假设在当前目录下有一个测试文件test.txt
$tftp 127.0.0.1                     
tftp> put test.txt
Sent 1018 bytes in 0.0 seconds

tftp> get test.txt
Received 1018 bytes in 0.1 seconds
tftp> quit

$

 

通过get命令,可以把当前目录下的test.txt文件,通过tftp上传到它的服务文件目录。这时,在/tftpboot下面会出现test.txt文件。通过put命令,可以从/tftpboot,下载test.txt文件。这样就验证了tftp服务配置的正确性。当文件上传与下载结束后,可以通过quit命令退出。

2配置nfs服务器

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

$ sudo apt-get install nfs-kernel-server

在一些文档中,提出还需要使用apt-get来手动安装nfs的客户端nfs-common,以及端口映射器portmap,但其实这是没有必要的,因为在安装nfs-kernel-server时,apt会自动为我们把它们安装好。

 

2-2、配置/etc/exports
nfs
允许挂载的目录及权限在文件/etc/exports中进行了定义。

例如,我们要将根目录下的rootfs目录共享出来,那么我们需要在/etc/exports文件末尾添加如下一行:/rootfs *(rw,sync,no_root_squash)

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

这里,我们要将/tftpboot/ltib目录, 192.168.0.*IP共享

/tftpboot/ltib 192.168.0.*(rw, sync, no_root_squash, no_subtree_check)

其它nfs常用的参数有:

ro 只读访问
rw 读写访问sync 所有数据在请求时写入共享
async nfs在写入数据前可以响应请求
secure nfs通过1024以下的安全TCP/IP端口发送
insecure nfs通过1024以上的端口发送
wdelay 如果多个用户要写入nfs目录,则归组写入(默认)
no_wdelay 如果多个用户要写入nfs目录,则立即写入,当使用async时,无需此设置。
hide nfs共享目录中不共享其子目录
no_hide 共享nfs目录的子目录
subtree_check 如果共享/usr/bin之类的子目录时,强制nfs检查父目录的权限(默认)
no_subtree_check 和上面相对,不检查父目录权限
all_squash 共享文件的UIDGID映射匿名用户anonymous,适合公用目录。
no_all_squash 保留共享文件的UIDGID(默认)
root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squas root用户具有根目录的完全管理访问权限
anonuid=xxx 指定nfs服务器/etc/passwd文件中匿名用户的UID
anongid=xxx 指定nfs服务器/etc/passwd文件中匿名用户的GID

 

2-3重启服务
$ sudo /etc/init.d/nfs-kernel-server restart

2-4、测试nfs

此时可以运行以下命令来显示一下共享出来的目录:

#showmount -e

或者可以使用以下命令把它挂载在本地磁盘上,例如将/rootfs挂载到/mnt下:
#mount -t nfs localhost:/rootfs /mnt
可以运行df命令查看是否挂载成功。查看后可以使用以下命令卸载:
# umount /mnt

严格按照以上步骤配置tftp服务,一般都可以成功。如果出现无法get或者put的时候,可以查看一下防火墙是否关闭。

 

3.Minicom 工具
安装:
sudo apt
get install minicom

配置:

1 .
在终端中输入minicom以启动minicom

2.
先按下Ctrl + a, 放开, 再按o, 出现配置菜单.

3.
选择 Serial port setup, 此时所示图标在“Change which setting”中,键入“A”,此时光标移到第A项对应处:串口COM1对应ttyS0, COM2对应ttyS1. (注意选择)


对波特率,数据位和停止位进行配置,键入“E”,波特率选为115200 8N1 (奇偶校验无, 停止位1),硬/软件流控制分别键入“F”“G”并且都选NO。在确认配置正确之后,可键入回车返回上级配置界面,并将其保存为默认配置。(即save setup as dfl),之后重启minicom是刚才配置生效,在连上开发板的串口线后,就可在minicom中打印正确的串口信息了。

这时候可以打印串口的信息了,但是在通过串口用xmodem协议烧写内核时会提示没有xmodem协议。

所以还必须安装软件包:lrzsz
sudo apt-get install lrzsz

这时候就可以正常地用minicom通过串口烧写内核了。

 

3:通过网络启动把我们的工程代码下载到板子上,但是必须保证你的系统已经配置好ftp服务器,然后再终端设置

3-1:设置服务器的IP地址,参考命令如下:

setenv serverip IP地址

3-2: 设置板子的IP地址和子掩码,还有网关,参考命令如下:

setenv ipaddr IP地址

setenv ethaddr 子掩码

setenv gatewayip 网关

挂载u-boot,uImage,参考命令如下:

bootargs=root=/dev/nfs rw nfsroot=192.168.0.169:/rootfs/1 ip=192.168.0.188:192.168.0.103:192.168.0.1:255.255.255.0:mpc8315eRDB:eth0:off

bootcmd=tftp 2000000 uImage;tftp 600000 128-32.dtb;bootm 2000000 – 600000

然后保存我们的设置,命令如下:

saveenv

3-4:把内核镜像拷贝到tftpboot目录下和把文件系统拷贝到nfs目录下。

3-5:在终端中启动我们的工程,命令如下:

Boot

3-6:在终端进入我们的项目目录,编译我们的工程,参考命令如下:

cd /zion/software/zion/

$./debugconfppc && make clean && make

这时会在zion/software/zion/control/下生成一个可执行文件:

zion_main

zion_main文件拷贝到zion/software/ca_dvr_project 目录下

cp –r zion_main ../ca_dvr_project

进入zion/software/ca_dvr_project目录下,启动我们的工程

./ca_dvr_start

然后就可以进行测试

 

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值