主机平台:UBUNTU16.04
硬件平台:MYZR-IMX8M-EVK
内核版本 :linux-4.14.98
交叉编译链:aarch64-linux-gnu-gcc
文件系统:fsl-image-validation-myimx8m.tar.bz2
source /home/jj/my-work/03_toolchain/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.env
编译zlib
mplayer依赖zlib,
先下载zlibhttp://www.zlib.net/,
解压zlib-1.2.11.tar.gz并编译:
CC=aarch64-linux-gnu-gcc ./configure --prefix=/home/jj/my-work/transplant/zlib/zlib64 –static
make
make install
编译alsa-lib
mplayer需要alsa-lib实现对alsa声音的支持,
下载alsa-libhttps://www.alsa-project.org/wiki/Main_Page,
解压alsa-lib-1.2.2.tar.bz2 并编译:
./configure --host=aarch64-linux-gnu --prefix=/home/jj/my-work/transplant/alsa/alsa64/alsa-lib --enable-shared --disable-python
make
make install
alsa-lib默认安装在/usr目录,避免安装在宿主机/usr目录中。
编译mplayer
在mplayer源码目录可以通过./configure –h来查看配置选项。
configure中指定–enable-alsa支持alsa,–disable-ossaudio禁用过时的oss,加入zlib、alsa-lib的头文件、库路径。
./configure --cc=aarch64-linux-gnu-gcc --enable-cross-compile --ar=aarch64-linux-gnu-ar --as=aarch64-linux-gnu-as --ranlib=aarch64-linux-gnu-ranlib --host-cc=gcc --target=aarch64-linux-gnu --disable-ossaudio --enable-alsa --prefix=/home/jj/my-work/transplant/mplayer/mplayer-install64 --extra-cflags="-I/home/jj/my-work/transplant/alsa/alsa-lib/include -I/home/jj/my-work/transplant/zlib/zlib64/include -DHAVE_ARMV8=0" --extra-ldflags="-L/home/jj/my-work/transplant/zlib/zlib64/lib -lz -L/home/jj/my-work/transplant/alsa/alsa-lib/lib -lasound"
make
make install
make install会提示strip错误:
修改MPlayer-1.3.0源码目录下的Makefile如下:
使用/查找$(INSTALL)
#$(INSTALL) -d $(BINDIR) $(CONFDIR) $(LIBDIR)
aarch64-linux-gnu-strip $<
$(INSTALL) -m 755 $< $(BINDIR)
编译成功后,会在目录中/home/jj/my-work/transplant/mplayer/mplayer-install64生成mplayer可执行文件,把mplayer拷贝到板端/usr/bin目录。
网上下载MP3与MP4文件作为测试文件并拷贝到开发板(我的文件名为test.mp3与test.mp4)
开发板插上耳机与屏幕
$ mplayer test.mp3
$ mplayer -slave -quiet -input file=/mypipe -zoom -x 1024 -y 600 test.mp4