平台:Fedora14 i386
arm210
写在开头:本篇博客中所用到的一些工具和源码包,都可以在我的另一篇博文“软件开发人员常用网站整理”中找到下载网站
一、交叉编译包的安装
想进行嵌入式arm移植,第一步必须有交叉编译工具,即arm-linux-gcc,
我用的版本是4.3.2的。
创建文件夹
mkdir /usr/local/arm
解压arm-linux-gcc-4.3.2.tar.gz到/usr/local/arm目录下
tar -xzvf arm-linux-gcc-4.3.2.tar.gz -C /usr/local/arm
修改配置文件(该步骤是配置arm-linux-gcc工具的环境变量)
vi ~/.bashrc
PATH=$PATH:/usr/local/arm/4.3.2/bin
更新配置文件
source ~/.bashrc
检测是否安装成功
which arm-linux-gcc 或者arm-linux-gcc -v
(如果出现arm-linux-gcc的版本信息,则安装成功!
二、移植libmad库
将libmad-0.15.1b.tar.gz拷贝到虚拟机上的Linux系统下的/share/目录下(该目录是自己建的,可更改,但要记住路径)
进入/share/目录下
#cd /share/
解压该文件生成libmad-0.15.1b文件
#tar xzvf libmad-0.15.1b.tar
进入到该文件夹中
#cd libmad-0.15.1b/
运行configure进行配置生成Makefile
#./configure CC=arm-linux-gcc --host=arm-linux --disable-shared --disable-debugging --prefix=/share/(该/share/文件夹是自己建的)
配置之后会在该文件夹下生成Makefile,删除Makefile中的--fforce-mem
#vi Makeifle
在末行模式输入g/--fforce-mem,找到该词之后,进入插入模式删除这个单词,在末行模式输入wq退出并保存
编译安装
#make
#make install
编译安装时候会生成两个文件夹,其中include文件夹下是编译Mplayer时要用到的头文件,lib下是编译时要用到的库函数。
三、 移植编译Mplayer
1、将MPlayer-1.0rc4.tar拷贝到Linux下的/share/目录下
解压该压缩文件生成MPlayer-1.0rc4文件
#tar zxvf MPlayer-1.0rc4.tar.gz
进入到MPlayer-1.0rc4目录下
#cd MPlayer-1.0rc4
运行configure进行配置,生成Makefile
#./configure --host-cc=gcc --cc=arm-linux-gcc --target=arm-linux --enable-fbdev --enable-static --disable-dvdread --disable-live --disable-mp3lib --enable-mad --disable-win32dll --disable-mencoder --disable-ivtv --disable-dvdnav --disable-dvdread-internal --disable-libdvdcss-internal --enable-libavcodec_a --prefix=/share/ 2>&1| tee logfile
2、配置之后会生成一些文件夹,需要对这些文件夹中的某些参数进行修改
(1)在刚才编译libmad库是我们生成文件夹lib下的库函数是需要使用的,但是在配置这一点并没有被修改,所以我们要将该路径指出来。
进入到config.mak文件下在-lmad所在的那一行的最后加上-L/share/libmad/lib这句话
#vi config.mak
进入到末行模式,查找-lmad这句话
g/-lmad
加上-L/usr/local /libmab/mad/lib,在末行模式输入wq退出保存。
(2)修改MPlayer-1.0rc4/libmpeg2/motion_comp_arm_s.S文件
#vi MPlayer-1.0rc4/libmpeg2/motion_comp_arm_s.S
在最前面加上
#ifndef HAVE_PLD
.macro pld reg
.endm
#endif
输入wq退出保存
(3)修改Makefile文件
#vi Makeifle
进入到末行模式
g/INSTALLSTRIP
找到该句话之后,在install部分开始的前面加上
INSTALLSTRIP := #
将其置为空
输入wq退出保存
3、编译安装
#make
#make install
4、编译安装完成之后,会生成四个新的文件夹(我的是在/share/下,一个名为“2”的文件夹中,注意上面写到的这句话--prefix=/share/ 2>&1 | tee logfile),其中bin目录下就是生成的mplyer可执行文件,
四、 开发板连接到PC机上的步骤
1、 连接开发板的串口、网线和电源,串口连接到PC机上,如果电脑是笔记本电脑,我们需要用USB转串口线,在PC机上安装PL2303这个USB转串口驱动,打开PC机上的设备管理器,更新串口的驱动,如果安装成功,出现Prolific USB-to-Serial Comm Port(COM3)这个标志,反之,会在这个串口标志出现感叹号。右键点击该设备的属性,点击端口设置,设置位/秒:115200,数据位:8,奇偶校验:无,停止位:1,流控制:无。
2、 开发板成功连接到PC机上之后打开windows下的超级终端Xshell5,点击新建,名称设置为210,协议改为SERIAL,点击SERIAL,设置同PC机串口设置参数一样,设置完成后点击确定,点击打开210,开启开发板,成功进入210终端,在PC机中打开cmd终端窗口,输入ipconfig查看PC机的ip地址,在开发板中输入ifconfig,查看开发板的ip地址,如果不在一个网段,设置开发板的ip前三位与PC机相同,如PC机ip为192.168.0.18,则设置开发板的ip为192.168.0.1。在PC机下输入ping 192.168.0.1检查PC机网络与210的连通,再在210的终端下输入ping 192.168.0.18检查是否连通。在虚拟机中查看网络是否连通也是这样,虚拟机的网络设置为桥接。
五、在开发板上挂载NFS
1、 网络连通正常后,我们打开虚拟机,配置/etc/exports(既配置nfs服务),在Linux终端输入vi /etc/exports,在该文件下输入/share/ 192.168.0.1 (rw sync )退出保存,输入/etc/init.d/iptables stop 关闭Linux上面的防火墙,输入setenforce 0关闭SElinux服务,输入/etc/init.d/nfs restart重启nfs服务
2、 回到210的终端下面,输入mounts192.168.0.11:/share/ /mnt/nfs将我们所要共享的目录挂载到开发板中,输入之后按回车,如果不打印信息,则挂载成功,进入/mnt/nfs查看该目录下面是不是挂载的目录下面的文件。
找到一个音频格式的文件,我这里找的是一个歌曲,名字为1.mp3,将该音频文件拷贝到开发板上mplayer一样的目录下,进入到210的终端中,进入到挂载的目录下面#cd /mn/nfs/有一个MPlayer的目录,进入到这个目录下面的bin/文件下,里面有mplayer和1.mp3,将耳机插入到开发板的耳机孔,在终端输入./mplayer 1.mp3,我们可以从耳机中听到这首歌,表示MP3移植成功!
注意:如果nfs操作正确,但是依然挂载不上,那就用U盘把生成的可执行文件和MP3音频文件拷贝到开发板上