基於tiny6410的madplay播放器的移植

來源:互聯網
上載者:User

標籤:

在移植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播放器的移植

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.