[心得]USB Audio在ARM架構的Linux套件播放
全線性電源系統在x86架構下的電腦去實現,有現實上的難處。大抵就是耗電量太高,電
供體積勢必過大,散熱需非常注意。
選用ARM處理器的好處,就是省電,但是效能上就無法跟主流的x86處理器。另一個問題在
於很多USB Audio的裝置並沒有支援Linux的環境,因此使用上就會受限。不過由於智慧型
手機的興起,投入於崁入式系統的資源就變多了,也許廠商也願意投入這部分的驅動開發
也不一定。
最近開始玩起了ARM的開發板,知名的Beagleboard與Beagleboard XM是屬於Cortex-A8的
架構,Ti也把自家的DSP內建,因此可以做很多硬體的加速在訊號處理上。但是進入門檻
有點高,很多與Linux kernel的支援有關。目前尚未玩到這部分。這次用來實驗的版子其
實是Pandaboard ES,這塊使用的CPU是OMAP4460,是Cortex-A9架構的雙核心處理器,實
脈高達1.5G。並搭配1G LPDDR2記憶體。
ARM系統的開機方式與x86有很大的不同,因為沒有BIOS的關係,因此有別於傳統的開機方
式。安裝系統這邊就不詳述了,若有興趣可以私下交流。本次選用Debian的armhf架構的
套件,代號是wheezy,不屬於stable的版本,但好處是支援比較多的硬體。而電源的使用
上更是省事,只要一個5V/2A的變壓器就可以搞定整套系統。
一開始比較克難一點,我們用ALSA (Advanced Linux Sound Architecture) 的命令模式
來播放wav檔案。選用的USB Audio是 TE7022L的方案。首先把aune T1接到pandaboard的
usb。接著kernel就會檢測到有新的usb 裝置,並載入必要的模組。
列出可用的聲音裝置,TE7022L位於裝置2上,等下用aplay去撥放wav檔案時,必須使用這
個id來啟動裝置。
root@pandaes:~# cat /proc/asound/cards
0 [PandaBoardES ]: PandaBoardES - PandaBoardES
PandaBoardES
1 [OMAPHDMI ]: OMAPHDMI - OMAPHDMI
OMAPHDMI
2 [Audio ]: USB-Audio - DigiHug USB Audio
GFEC ASSP DigiHug USB Audio at usb-ehci-omap.0-1.2,
full speed
播放檔案也很簡單,使用aplay即可。
-Dhw:2,0代表指定裝置ID=2進行撥放。
aplay -v -Dhw:2,0 ./"Prologue ~ deai.wav"
播放後發現音量實在過低,使用amixer可以進行調整。
首先列出id=2有哪些mixer可調整。
root@pandaes:~# amixer -c 2 contents
numid=1,iface=MIXER,name='PCM Playback Switch'
; type=BOOLEAN,access=rw------,values=1
: values=on
numid=2,iface=MIXER,name='PCM Playback Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=110,step=0
: values=110,110
| dBminmax-min=-55.00dB,max=0.00dB
numid=5,iface=MIXER,name='PCM Capture Source'
; type=ENUMERATED,access=rw------,values=1,items=2
; Item #0 'Line'
; Item #1 'IEC958 In'
: values=0
numid=3,iface=MIXER,name='Line Capture Switch'
; type=BOOLEAN,access=rw------,values=1
: values=on
numid=4,iface=MIXER,name='Line Capture Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=104,step=0
: values=0,0
| dBminmax-min=-40.00dB,max=12.00dB
調整音量為100%的指令。
amixer -c 2 cset numid=2 100% 100%
接著再用aplay去撥放即可得到正常的音量。
這樣的過程實在有點煩人,最方便的就是裝上桌面套件,這樣就可以透過GUI介面去撥放
。有如使用windows系統的便利性。
版上有些對x86系統的調整,不外乎就是讓系統單純化,電源全線性化,在ARM系統下,自
由度更高,線性化更為簡單。只不過硬體支援度不夠高,進入門檻高。尤其是要打這麼多
指令,會讓更多人怯步。
接下來會找XMOS的晶片來試試。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.124.168.214
※ 編輯: dnaspirit 來自: 59.124.168.214 (01/28 17:14)
推
01/28 17:25, , 1F
01/28 17:25, 1F
→
01/28 17:26, , 2F
01/28 17:26, 2F
→
01/28 17:26, , 3F
01/28 17:26, 3F
→
01/28 17:49, , 4F
01/28 17:49, 4F
→
01/28 17:50, , 5F
01/28 17:50, 5F
推
01/28 17:58, , 6F
01/28 17:58, 6F
→
01/28 18:19, , 7F
01/28 18:19, 7F
推
01/28 18:39, , 8F
01/28 18:39, 8F
→
01/28 18:40, , 9F
01/28 18:40, 9F
推
01/28 19:17, , 10F
01/28 19:17, 10F
推
01/28 20:41, , 11F
01/28 20:41, 11F
→
01/28 20:41, , 12F
01/28 20:41, 12F
推
01/28 20:49, , 13F
01/28 20:49, 13F
→
01/28 21:23, , 14F
01/28 21:23, 14F
→
01/28 21:32, , 15F
01/28 21:32, 15F
推
01/28 22:51, , 16F
01/28 22:51, 16F
推
01/28 22:53, , 17F
01/28 22:53, 17F
→
01/28 22:54, , 18F
01/28 22:54, 18F
推
01/28 23:29, , 19F
01/28 23:29, 19F
→
01/28 23:30, , 20F
01/28 23:30, 20F
→
01/28 23:31, , 21F
01/28 23:31, 21F
→
01/29 07:44, , 22F
01/29 07:44, 22F
→
01/29 07:56, , 23F
01/29 07:56, 23F
→
01/29 10:15, , 24F
01/29 10:15, 24F
※ 編輯: dnaspirit 來自: 1.34.102.250 (04/27 20:56)
→
08/18 06:39, , 25F
08/18 06:39, 25F
→
10/05 05:12, , 26F
10/05 05:12, 26F
Headphone 近期熱門文章
PTT數位生活區 即時熱門文章