標籤:
在移植madplay之前需要先將所需要的庫移植到開發板的檔案系統中。
現在每個解壓後的檔案夾中建立一個檔案夾
zlib-1.1.4.tar.gz
解壓:tar xvzf zlib-1.1.4.tar.gz
cd zlib-1.1.4
mkdir __install
配置:./configure --shared --prefix=$(PWD)/__install
修改Makefile檔案 將編譯器更換為交叉工具
make
make install
拷貝 __install/lib/* 到開發板的/lib/下
libid3tag-0.15.1b.tar.gz
解壓:tar xvzf libid3tag-0.15.1b.tar.gz
cd libid3tag-0.15.1b
mkdir __install
配置:./configure --host=arm-linux --prefix=$(PWD)/__install
make
make install
拷貝 __install/lib/* 到開發板的/lib/下
libmad-0.15.1b.tar.gz
tar xvzf libmad-0.15.1b.tar.gz
mkdir __install
配置:./configure --host=arm-linux --prefix=$(PWD)/__install
make
make install
如果出現編譯選項--fforce-mem 則開啟Makefile 刪除--fforce-mem即可
拷貝 __install/lib/* 到開發板的/lib/下
madplay-0.15.2b.tar.gz
tar xvzf madplay-0.15.2b.tar.gz
mkdir __install
配置:./configure --host=arm-linux --prefix=$(PWD)/__install
make
make install
拷貝./_install/bin/madplay 到開發板的/sbin/目錄下
然後安裝alsa庫
一、移植alsa的介面庫和工具包
1、移植alsa-lib
a.可以到http://www.alsa-project.org/main/index.php/Download下載最新版本的alsa庫(alsa-lib-1.0.29.tar.bz2)和工具包(alsa-utils-1.0.29.tar.bz2)。
b.解壓alsa-lib-1.0.29.tar.bz2
c.配置alsa-lib
./configure --host=arm-linux --prefix=/usr/local/share/arm-alsa --enable-shared --disable-python --with-configdir=/usr/local/share/alsa --with-plugindir=/usr/local/lib/alsa_lib CC=arm-linux-gcc CXX=arm-linux-g++ LD=arm-linux-ld
--host :為使用的交叉編譯工具名,直接使用 arm-linux 也可以,根據 PC上安裝的交叉編譯工具來決定;
--prefix:即 make install 時程式安裝的目錄,可以根據自己的情況進行修改,不用拘泥
--enable:開啟功能 --disable :關閉功能,使用動態庫不需要Python。
--with-configdir: alsa 設定檔所在目錄,本目錄要定好位置,交叉編譯過後,移植到板子上時要和 PC 上路徑一致。也即是說如果配置的時候指定的是/usr/local/share/alsa目錄,那麼你的設定檔在開發板上的絕對路徑也要是/usr/local/share/alsa。預設 alsa設定檔會在安裝目錄裡。這個很重要,不能PC和開發板兩邊不匹配。
--with-plugindir: alsa_lib 所在目錄,目前意義不明,可以自由定位,也可以預設安裝,先不用管。但是這裡指定的目錄會產生必要的庫檔案,放到開發板的時候也要路徑和PC一樣。
d.編譯安裝
make
make install
2、移植alsa-utils
a.解壓以後進入解壓得到的目錄
b.配置
./configure --host=arm-linux --prefix=/usr/local/share/arm-alsa CFLAGS="-I/usr/local/share/arm-alsa/include" LDFLAGS="-L/usr/local/share/arm-alsa/lib -lasound" --disable-alsamixer --disable-xmlto --with-alsa-inc-prefix=/usr/local/share/arm-alsa/include --with-alsa-prefix=/usr/local/share/arm-alsa/lib CC=arm-linux-gcc CXX=arm-linux-g++ LD=arm-linux-ld
CFLAGS:編譯工具需要要的標頭檔目錄,也就是前面編譯庫檔案得到的標頭檔
LDFLAGS:編譯工具需要要的庫檔案目錄,也就是前面編譯庫檔案得到的庫檔案
--with-alsa-inc-prefix:和CFLAGS一樣 --with-alsa-prefix:和LDFLAGS一樣。
c.編譯和配置
make
make install
3、部署檔案到開發板
進入到PC的/usr/local/share目錄(之前配置時候指定的,根據你的配置選項決定),因為我們所有的安裝目錄都在這個目錄下。
a.將/usr/local/share目錄下的alsa,arm-alsa拷貝到開發板的/usr/local/share目錄下
cp ./alsa /home/OK6410/rootfs/usr/local/share -rfa
cp ./arm-alsa /home/OK6410/rootfs/usr/local/share -rfa
b.將/usr/local/lib目錄下的alsa_lib拷貝到開發板上/usr/local/lib(自己先建立)目錄下
cp ./alsa_lib /home/OK6410/rootfs/usr/local/lib/ -rfa
c.將arm-alsa/lib目錄下的檔案拷貝到開發板根檔案系統的/lib目錄下
cp ./arm-alsa/lib/* /home/OK6410/rootfs/lib –rfa
d.將arm-alsa/bin目錄下的檔案拷貝到/sbin目錄下
cp ./arm-alsa/bin/* /home/OK6410/rootfs/bin -rfa
e.將arm-alsa/sbin目錄下的檔案拷貝到/sbin目錄下(如沒有則不拷貝)
cp ./arm-alsa/sbin/* /home/OK6410/rootfs/bin -rfa
f.添加環境變數,編輯開發板的檔案系統裡的/etc/profile,切記是開發板的檔案系統不是PC的檔案系統啊!!!在結尾添加
export ALSA_CONFIG_PATH=/usr/local/share/alsa/alsa.conf
安裝alsa後
拷貝標準函數庫
開啟友善之臂給的檔案系統 把其中的/lib/* -rf 拷貝到自己開發板的/lib/下
把其中的/etc/rc.d -rf 拷貝到自己開發板的/etc/下
修改系統初始化指令碼 把下面的添加到最後面
MODULE_PATH=/lib/modules/`uname -r`
if [ ! -f ${MODULE_PATH}/modules.dep.bb ]; then
depmod
fi
/etc/rc.d/init.d/asocd start
然後用madplay即可播放音樂
基於tiny6410的madplay播放器的移植