移植mplay播放器:
ubuntu 的CRT下:
# cd /home/wangxc/linux/myprogram
# tar xjvf MPlayer-1.0rc2.tar.bz2
# tar xzvf libmad-0.15.1b.tar.tar
# cd MPlayer-1.0rc2 //是应用程序
注意:
1,MPlayer-1.0rc2是开源的,我们要去编译它,但是源码里面没有 makefile文件,
要先生成makefile 文件。
2,其中 configure 是一个可执行文件,这个应用程序的 makefile 文件是通过 configure 来生成的。
3,configure 可以把代码配置成X86架构下可编译的环境来编译。
也可以配置成ARM架构下可编译的环境来编译。
# ./configure --help /*查看配置的选项。*/
只有下面的选项是需要注意的,其他的不用关心。
--prefix=DIR /*make install:编译生成的文件,最后安装的位置,不指定的话,会有一个默认的路径/usr/local*/
--with-extraincdir : 编译时所需要的头文件,包括 libmad库的头文件,也包括交叉编译器自己的头文件。
--with-extralibdir :编译时所需要的库文件,包括 libmad库的库文件,也包括交叉编译器自己的库文件。
# cd /home/wangxc/linux/toolchain/crosstools_3.4.1_softfloat
# find ./ -name include
1,/home/wangxc/linux/toolchain/crosstools_3.4.1_softfloat/arm-linux/gcc-3.4.1-glibc-2.3.3/arm-linux/include
2,/home/wangxc/linux/toolchain/crosstools_3.4.1_softfloat/arm-linux/gcc-3.4.1-glibc-2.3.3/include
3,/home/wangxc/linux/toolchain/crosstools_3.4.1_softfloat/arm-linux/gcc-3.4.1-glibc-2.3.3/lib/include
//4,/home/wangxc/linux/toolchain/crosstools_3.4.1_softfloat/arm-linux/gcc-3.4.1-glibc-2.3.3/lib/gcc/arm-linux/3.4.1/include //是libmad的include文件。
5,/home/wangxc/linux/toolchain/crosstools_3.4.1_softfloat/arm-linux/gcc-3.4.1-glibc-2.3.3/lib/gcc/arm-linux/3.4.1/install-tools/include //这个可以不要了
# cd /home/wangxc/linux/toolchain/crosstools_3.4.1_softfloat
# find ./ -name lib
1,/home/wangxc/linux/toolchain/crosstools_3.4.1_softfloat/arm-linux/gcc-3.4.1-glibc-2.3.3/arm-linux/usr/lib
2,/home/wangxc/linux/toolchain/crosstools_3.4.1_softfloat/arm-linux/gcc-3.4.1-glibc-2.3.3/arm-linux/lib
3,/home/wangxc/linux/toolchain/crosstools_3.4.1_softfloat/arm-linux/gcc-3.4.1-glibc-2.3.3/lib
//4,/home/wangxc/linux/toolchain/crosstools_3.4.1_softfloat/arm-linux/gcc-3.4.1-glibc-2.3.3/lib/lib //是libmad的lib文件。
#### my config
./configure --enable-cross-compile --cc=arm-linux-gcc --as=arm-linux-as --host-cc=gcc --target=arm-linux --with-extraincdir=/home/wangxc/linux/toolchain/crosstools_3.4.1_softfloat/arm-linux/gcc-3.4.1-glibc-2.3.3/arm-linux/include:/home/wangxc/linux/toolchain/crosstools_3.4.1_softfloat/arm-linux/gcc-3.4.1-glibc-2.3.3/include:/home/wangxc/linux/toolchain/crosstools_3.4.1_softfloat/arm-linux/gcc-3.4.1-glibc-2.3.3/lib/include:/home/wangxc/linux/toolchain/crosstools_3.4.1_softfloat/arm-linux/gcc-3.4.1-glibc-2.3.3/lib/gcc/arm-linux/3.4.1/include:/home/wangxc/linux/toolchain/crosstools_3.4.1_softfloat/arm-linux/gcc-3.4.1-glibc-2.3.3/lib/gcc/arm-linux/3.4.1/install-tools/include --with-extralibdir=home/wangxc/linux/toolchain/crosstools_3.4.1_softfloat/arm-linux/gcc-3.4.1-glibc-2.3.3/arm-linux/usr/lib:/home/wangxc/linux/toolchain/crosstools_3.4.1_softfloat/arm-linux/gcc-3.4.1-glibc-2.3.3/arm-linux/lib:/home/wangxc/linux/toolchain/crosstools_3.4.1_softfloat/arm-linux/gcc-3.4.1-glibc-2.3.3/lib:/home/wangxc/linux/toolchain/crosstools_3.4.1_softfloat/arm-linux/gcc-3.4.1-glibc-2.3.3/lib/lib --enable-static --enable-ftp --enable-radio --enable-network --enable-libavutil_a --enable-libavcodec_a --enable-libavformat_a --enable-libavcodec_mpegaudio_hp --enable-mp3lib --disable-debug --disable-crash-debug --enable-alsa --disable-mencoder --disable-gui --disable-largefiles --disable-linux-devfs --disable-termcap --disable-termios --disable-iconv --disable-langinfo --disable-lirc --disable-lircc --disable-joystick --disable-vm --disable-xf86keysym --disable-radio-capture --disable-radio-v4l2 --disable-tv --disable-tv-v4l1 --disable-tv-v4l2 --disable-tv-bsdbt848 --disable-pvr --disable-rtc --disable-winsock2 --disable-smb --disable-live --disable-dvdnav --disable-dvdread --disable-cdparanoia --disable-bitmap-font --disable-freetype --disable-fontconfig --disable-unrarlib --disable-menu --disable-sortsub --disable-fribidi --disable-enca --disable-macosx --disable-maemo --disable-macosx-finder-support --disable-macosx-bundle --disable-inet6 --disable-gethostbyname2 --disable-vstream --disable-ass --disable-rpath --disable-gif --disable-png --disable-jpeg --disable-libcdio --disable-liblzo --disable-w32threads --disable-qtx --disable-xanim --disable-real --disable-xvid --disable-x264 --disable-libnut --disable-libpostproc_a --disable-libavutil_so --disable-libavcodec_so --disable-libavformat_so --disable-libpostproc_so --disable-tremor-internal --disable-tremor-low --disable-tremor-external --disable-libvorbis --disable-speex --disable-theora --disable-faad-external --disable-faad-internal --disable-faad-fixed --disable-faac --disable-ladspa --disable-libdv --enable-mad --disable-toolame --disable-twolame --disable-xmms --disable-liba52 --disable-libmpeg2 --disable-musepack --disable-libamr_nb --disable-libamr_wb --disable-vidix-internal --disable-vidix-external --disable-gl --disable-dga1 --disable-dga2 --disable-vesa --disable-svga --disable-sdl --disable-aa --disable-caca --disable-ggi --disable-ggiwmh --disable-directx --disable-dxr2 --disable-dxr3 --disable-ivtv --disable-dvb --disable-dvbhead --disable-mga --disable-xmga --disable-xv --disable-xvmc --disable-vm --disable-xinerama --disable-x11 --disable-xshape --disable-fbdev --disable-mlib --disable-3dfx --disable-tdfxfb --disable-s3fb --disable-directfb --disable-zr --disable-bl --disable-tdfxvid --disable-tga --disable-pnm --disable-md5sum --enable-ossaudio --disable-arts --disable-esd --disable-polyp --disable-jack --disable-openal --disable-nas --disable-sgiaudio --disable-sunaudio --disable-win32dll --disable-w32threads --disable-win32waveout --disable-select --disable-mmx --disable-mmxext --disable-3dnow --disable-3dnowext --disable-sse --disable-sse2 --disable-altivec --disable-fastmemcpy --disable-profile --disable-sighandler --disable-dynamic-plugins --enable-ossaudio
//执行 configure 生成makefile文件
# make clean;
# make
第1次编译会报错:arm-linux-gcc 找不到,
注意要把arm-linux-gcc命令放在PATH路径下,让系统能自动找到这个命令。
或者 把 arm-linux-gcc 的路径 写死在PATH中,保存到.profile文件中,用source .profile 来使环境生效。
或者 临时生效:
2.6.13内核用下面的编译器编译的:
export PATH=$PATH:/home/wangxc/linux/toolchain/crosstools_3.4.1_softfloat/arm-linux/gcc-3.4.1-glibc-2.3.3/bin
2.6.30内核用下面的编译器编译的:
export PATH=$PATH:/home/wangxc/linux/toolchain/crosstools_4.4.3_softfloat/bin
第2次编译还会报错:mad.h : No such file or directory //报库文件找不到
# tar xzvf libmad-0.15.1b.tar.tar
# cd libmad-0.15.1b
接下来,要编译这个库文件,所以,这个库的编译,在MPlayer之前也行。
### my configure
./configure --enable-fpm=arm --host=arm-linux --disable-shared --disable-debugging --prefix=/home/wangxc/linux/toolchain/crosstools_3.4.1_softfloat/arm-linux/gcc-3.4.1-glibc-2.3.3/lib CC=arm-linux-gcc
注意:--prefix :指定 libmad库文件的安装目录。
这个lib目录也要加到 mplayer 的配置文件的配置参数里面。
# make clean;
# make //编译库文件
# make install //安装库文件
# find ./ -name mad.h //可以找到mad.h文件已经存在
# cd /home/wangxc/linux/toolchain/crosstools_3.4.1_softfloat/arm-linux/gcc-3.4.1-glibc-2.3.3/lib/lib
//可以看见 libmad.a libmad.la 文件
# cd MPlayer-1.0rc2
# make clean;
# make //再次编译 mplayer
# cp /home/wangxc/linux/myprogram/MPlayer-1.0rc2/mplayer /home/wangxc/linux/rootfs/nfs_2.6.13/wxc/myprogram/mplayer
//将ubuntu下编译生成的执行文件 mplayer,拷贝到 板子的网络文件系统目录下来。
//mp3是压缩的声音文件,使用mplayer工具,去解压这个声音文件成原来的声音文件,再发送到2440的IIS,再发送给编解码芯片code,最后发送给耳机
在serial CRT目录下:
# ./mplayer -ac mad test.mp3 //可以播放MP3音乐。
在ubuntu CRT目录下:
# ./mplayer -ac mad test.mp3 //交叉编译器编译的可执行文件,不能在ubuntu下执行
如何设置 mplayer 开机启动?即linux下开机自启动应用程序 ?
ubuntu CRT目录下:
/*linux启动之后,即,tftp 32000000 uImage,成功加载操作系统和文件系统之后,在bootm成功完成操作系统启动之后
会首先执行这个脚本文件:/home/wangxc/linux/rootfs/nfs_2.6.13/etc/init.d/rcS
*/
# cd /home/wangxc/linux/rootfs/nfs_2.6.13/etc/init.d/rcS
在这个文件里面加入下面一句:
/wxc/myapp/mplayer -ac mad /wxc/myapp/mymusic.mp3
这样在bootm成功之后,会播放一首歌曲,歌曲播放完毕之后,可以激活控制台,进入开发板的文件系统根目录。
如果加入的是下面一句:
nohup /wxc/myapp/mplayer -ac mad /wxc/myapp/mymusic.mp3 &
这样就可以直接激活控制台,歌曲会在后台播放。
阅读(618) | 评论(0) | 转发(0) |