软件移植MPlayer
在文件系统中使用mplayer进行音频和视频播放。本文讲述了如何移植mplayer及移植过程中需要的各种库。
一、 开发环境
*         虚拟机 vmware 7.0.0
*         系统:Ubuntu 9.10
*         交叉编译工具链:arm-2009q1
*         开发板CPU:am3217
*         交叉编译工具链安装路径/opt/Tools/arm-2009q1
*         移植源码存放路径:/opt/transplants
二、移植MPlayer
2.1 移植ALSA
2.1.1 获取源码
*         从网站http://www.alsa-project.org/main/index.php/Download下载alsa-lib-1.0.23.tar.bz2源码,拷贝到/opt/transplants目录下。
2.1.2 修改并配置源码
*         解压源码包
Host# cd /opt/transplants
Host# tar jxvf alsa-lib-1.0.23.tar.bz2
解压后生成目录alsa-lib-1.0.23。
*         进入目录后进行配置
Host# ./configure --host=arm-none-linux-gnueabi --target=arm-linux --prefix=/alsa-lib --enable-shared --disable-python --with-configdir=/alsa --with-plugindir=/usr/lib/alsa-lib
--host 配置交叉编译工具链;--prefix配置编译生成库的存放目录。--with-configdir配置库在开发板文件系统中的存放目录
2.1.3 编译并安装源码
*         编译安装
Host#make
Host#make install
成功后在系统根目录下生成/alsa-lib目录;在/usr/share/目录下生成alsa目录。
*         将/alsa-lib目录下所有文件拷贝到/opt/Tools/arm-2009q1/arm-none-linux-gnueabi/libc/usr目录下,为编译mplayer做准备。
Host# cp /alsa-lib/** /opt/Tools/arm-2009q1/arm-none-linux-gnueabi/libc/usr -raf
*         将/alsa-lib目录下所有文件拷贝到开发板文件系统/usr目录下
*         将/usr/share/alsa目录拷贝到开发板文件系统/usr/share目录下
*         在开发板文件系统/etc/profile添加如下内容
mkdir /dev/snd
ln -s /dev/pcmC0D0c /dev/snd/pcmC0D0c
ln -s /dev/pcmC0D0p /dev/snd/pcmC0D0p
ln -s /dev/controlC0 /dev/snd/controlC0
ln -s /dev/pcmC1D0c /dev/snd/pcmC1D0c
ln -s /dev/pcmC1D0p /dev/snd/pcmC1D0p
ln -s /dev/controlC1 /dev/snd/controlC1
ln -s /dev/seq /dev/snd/seq
ln -s /dev/timer /dev/snd/timer
ALSA库移植完毕。
NOTE开发板文件系统没有的目录请用户根据需要自行创建。
2.2 移植LIBMAD库
播放mp3文件需要libmad库支持。
2.2.1 获取源码
*         去网站http://sourceforge.net/projects/mad/files/下载libmad-0.12.1b.tar.gz源码,拷贝到/opt/transplants目录下。
2.2.2 修改并配置源码
*         解压源码包
Host# cd /opt/transplants
Host# tar jxvf libmad-0.12.1b.tar.bz2
解压后生成目录libmad-0.12.1b。
*         进入目录后进行配置
Host# ./configure --host=arm-none-linux-gnueabi --prefix=/opt/libmad
--host 配置交叉编译工具链;--prefix配置编译生成库的存放目录。
2.2.3 编译并安装源码
*         编译安装
Host#make
Host#make install
NOTE编译过程遇到与”-fforce-mem”相关的错误,打开Makefile找到CFLAGS变量,将它的-fforce-mem选项去掉即可。
成功后生成/opt/libmad目录。
*         将/opt/libmad目录下所有文件拷贝到/opt/Tools/arm-2009q1/arm-none-linux-gnueabi/libc/usr目录下,为编译mplayer做准备。
Host# cp /opt/libmad/** /opt/Tools/arm-2009q1/arm-none-linux-gnueabi/libc/usr -raf
*         将/opt/libmad目录下所有文件拷贝到开发板文件系统/usr目录下。
NOTE开发板文件系统没有的目录请用户根据需要自行创建。
2.3 移植MPlayer
2.3.1 获取源码
*         到网站http://www.mplayerhq.hu/design7/dload.html下载mplayer-export-snapshot.tar.bz2源码,拷贝到/opt/transplants目录下。
2.3.2 修改并配置源码
*         解压源码包
Host# cd /opt/transplants
Host# tar jxvf mplayer-checkout-2010-09-26.tar.bz2
解压后生成目录mplayer-checkout-2010-09-26。
NOTE源码解压生成的目录名随更新日期的变化而变化。
*         进入目录后进行配置
Host# cd mplayer-checkout-2010-09-26
Host# ./configure --host-cc=gcc --cc=arm-none-linux-gnueabi-gcc --target=arm-armv4-linux --prefix=/tmp/mplayer --disable-win32dll --disable-dvdread --enable-fbdev --disable-mencoder --enable-mad
2.3.3 编译并安装源码
*         编译安装
Host# make
成功后本目录下mplayer可执行文件。
*         将mplayer文件拷贝到开发板文件系统/opt目录下。
NOTE开发板文件系统没有的目录请用户根据需要自行创建。
2.3.4 测试验证
上述操作结束,拷贝几个mp3和mpg格式的文件,放在开发板文件系统/opt目录下。
*         启动板卡进入系统。
Target# cd /opt
*         播放mp3文件。
Target# ./mplayer –ao alsa xxx.mp3
*         耳机会听到音乐,测试成功。