一、alsa-lib移植
alsa-utils工具通過調用到alsa-lib庫來對ALSA架構下的聲霸卡進行操作。
1. 下載下傳源碼
下載下傳位址:http://www.alsa-project.org/files/pub/lib/alsa-lib-1.2.7.1.tar.bz2
2. 移植
(1)建立alsa-lib存放的目錄
需要在開發闆和ubunut中建立一個路徑和名字一樣的目錄,為/usr/share/arm-alsa。
在ubuntu中建立:
sudo mkdir
在開發闆根檔案系統中建立:
mkdir
(2)解壓alsa-lib源碼
tar
(3)配置編譯
mkdir alsa-lib-1.2.7.1-build
cd alsa-lib-1.2.7.1
./configure --host=arm-linux-gnueabihf --prefix=/home/mculover666/develop/alsa/alsa-lib-1.2.7.1-build --with-configdir=/usr/share/arm-alsa CC=arm-linux-gnueabihf-gcc
其中
--prefix
用來設定install的路徑,
--with-configdir
用于設定alsa-lib編譯出來的配置檔案存放位置,
CC
用來設定交叉編譯器。
(4)編譯
make
(5)安裝
sudo su
source
確定root使用者能找到編譯器,再繼續:
make install
切換回普通使用者:
su mculover666
檢視編譯目錄:
檢視安裝目錄:
(6)拷貝lib檔案
将編譯目錄下的lib目錄中的所有檔案都拷貝到開發闆根檔案系統的/usr/lib目錄下:
cd ../alsa-lib-1.2.7.1-build
sudo cp
檢視拷貝結果:
(7)拷貝配置檔案
cd /usr/share/arm-alsa
sudo cp
二、alsa-utils移植
alsa-utils是ALSA的一些小工具集合,可以通過這些小工具測試聲霸卡。
1. 下載下傳源碼
axel http://www.alsa-project.org/files/pub/utils/alsa-utils-1.2.7.tar.bz2
2. 移植
(1)解壓源碼
tar
(2)編譯配置
建立編譯檔案夾:
mkdir
編譯配置:
cd alsa-utils-1.2.7
./configure --host=arm-linux-gnueabihf --prefix=/home/mculover666/develop/alsa/alsa-utils-1.2.7-build --with-alsa-inc-prefix=/home/mculover666/develop/alsa/alsa-lib-1.2.7.1-build/include/ --with-alsa-prefix=/home/mculover666/develop/alsa/alsa-lib-1.2.7.1-build/lib/ --disable-alsamixer --disable-xmlto CC=arm-linux-gnueabihf-gcc
(3)編譯
make
遇到問題:
解決方法:建立兩個空檔案。
touch alsaconf/po/t-ja.gmo
touch
再次make,可以編譯成功。
(4)安裝
sudo make install
安裝完可以看到安裝檔案夾下的檔案:
看看alsa-utils提供的工具:
一定要使用file檢查一下可執行檔案的類型,看看是不是交叉編譯的。
(5)複制到開發闆根檔案系統
cd alsa-utils-1.2.7-build
sudo cp -rfa bin/* ~/develop/imx6ull/rootfs-busybox-imx6ull/source_busybox/bin
sudo cp -rfa sbin/* ~/develop/imx6ull/rootfs-busybox-imx6ull/source_busybox/sbin
sudo cp
(6)設定配置檔案路徑
進入開發闆根檔案系統,編輯檔案:
vim
添加以下内容:
export ALSA_CONFIG_PATH=/usr/share/arm-alsa/alsa.conf
至此,移植完成,看一下根檔案系統大小:
打包根檔案系統:
tar
燒錄進去之後測試。
三、聲霸卡設定與測試
1. amixer使用方法
(1)檢視幫助資訊
amixer --help
(2)檢視設定項
amixer scontrols
(3)檢視設定值
amixer scontents
2. 播放音樂
(1)設定聲霸卡
設定耳機雙聲道的音量:
amixer sset Headphone 100,100
設定揚聲器雙聲道的音量:
amixer sset Speaker 120,120
檢視左右聲道PCM格式混合是否開啟:
開啟:
amixer sset 'Right Output Mixer PCM' on
amixer sset 'Left Output Mixer PCM'
(2)播放音樂
aplay test.wav
此時開發闆插耳機會從耳機播放,拔出耳機會從揚聲器播放。
參考資料
- 正點原子-I.MX6U 嵌入式 Linux 驅動開發指南
- alsa lib和utils交叉編譯與移植