[問題] ARM平台的ALSA問題

看板LinuxDev作者 (灰雁)時間14年前 (2011/06/06 19:01), 編輯推噓1(102)
留言3則, 1人參與, 最新討論串1/1
大家好 我在arm平台上想測試錄音和放音 (板子預設沒有內建麥克風,需要外接麥克風) 我的音效介面: [root@WinFast310 /root]#cat /proc/asound/cards 0 [zylonite ]: WM9713 - zylonite zylonite (WM9713) 聲音裝置: [root@WinFast310 /root]#cat /proc/asound/devices 0: [ 0] : control 16: [ 0- 0]: digital audio playback //應該是內建喇叭 17: [ 0- 1]: digital audio playback //外接孔所連的喇叭 24: [ 0- 0]: digital audio capture //內建的麥克風路徑 不過這台沒有內建麥克風 25: [ 0- 1]: digital audio capture //這個應該就是我的外接麥克風 33: : timer PCM: [root@WinFast310 /root]#cat /proc/asound/pcm 00-01: PCM Voice WM9713 Voice-PCM-1 : : playback 1 : capture 1 00-00: AC97 HiFi AC97 HiFi-AC97-0 : : playback 1 : capture 1 //第一個 用arecord 指令錄音 [root@WinFast310 /root]#arecord -vv -fdat foo.wav Recording WAVE 'foo.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo Plug PCM: Hardware PCM card 0 'zylonite' device 0 subdevice 0 Its setup is: stream : CAPTURE access : RW_INTERLEAVED format : S16_LE subformat : STD channels : 2 rate : 48000 exact rate : 48000 (48000/1) msbits : 16 buffer_size : 24480 period_size : 2040 period_time : 42500 tick_time : 10000 tstamp_mode : NONE period_step : 1 sleep_min : 0 avail_min : 2040 xfer_align : 2040 start_threshold : 1 stop_threshold : 24480 silence_threshold: 0 silence_size : 0 boundary : 1604321280 Max peak (4080 samples): 23932 (0x5d7c) ############### 73% Max peak (4080 samples): 00065 (0x0041) # 0% Max peak (4080 samples): 00033 (0x0021) # 0% Max peak (4080 samples): 00034 (0x0022) # 0% Max peak (4080 samples): 00030 (0x001e) # 0% Max peak (4080 samples): 00029 (0x001d) # 0% Max peak (4080 samples): 00032 (0x0020) # 0% .. . //(後面都是0%,所以沒有錄) 我的麥克風應該是 Hardware PCM card 0 'zylonite' device 1 subdevice 0 可是我不知怎麼改...用-D hw:0,1或是-D plughw:0,1都怪怪的 狀況1 [root@WinFast310 /root]#arecord -D hw:0,1 -vv -fdat foo.wav Recording WAVE 'foo.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo arecord: set_params:864: Channels count non available 狀況2 [root@WinFast310 /root]#arecord -Dplughw:0,1 -vv -fdat foo.wav Recording WAVE 'foo.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo Plug PCM: Route conversion PCM (sformat=S16_LE) Transformation table: 0 <- 0 1 <- 0 Its setup is: stream : CAPTURE access : RW_INTERLEAVED format : S16_LE subformat : STD channels : 2 rate : 48000 exact rate : 48000 (48000/1) msbits : 16 buffer_size : 24480 period_size : 4080 period_time : 85000 tick_time : 10000 tstamp_mode : NONE period_step : 1 sleep_min : 0 avail_min : 4080 xfer_align : 4080 start_threshold : 1 stop_threshold : 24480 silence_threshold: 0 silence_size : 0 boundary : 1604321280 Slave: Hardware PCM card 0 'zylonite' device 1 subdevice 0 Its setup is: stream : CAPTURE access : MMAP_INTERLEAVED format : S16_LE subformat : STD channels : 1 rate : 48000 exact rate : 48000 (48000/1) msbits : 16 buffer_size : 24480 period_size : 4080 period_time : 85000 tick_time : 10000 tstamp_mode : NONE period_step : 1 sleep_min : 0 avail_min : 4080 xfer_align : 4080 start_threshold : 1 stop_threshold : 24480 silence_threshold: 0 silence_size : 0 boundary : 1604321280 //到這邊就停住了,沒有在錄音,我只好Ctrl+C離開剛剛的指令 內建喇叭放音狀況: [root@WinFast310 /root]#aplay -Dplughw:0,0 mic-test.wav 可以正常從內建喇叭放音 外接喇叭放音狀況: [root@WinFast310 /root]#aplay -Dplughw:0,1 mic-test.wav Playing WAVE 'mic-test.wav' : Unsigned 8 bit, Rate 8000 Hz, Mono aplay: set_params:912: Unable to install hw params: ACCESS: RW_INTERLEAVED FORMAT: U8 SUBFORMAT: STD SAMPLE_BITS: 8 FRAME_BITS: 8 CHANNELS: 1 RATE: 8000 PERIOD_TIME: 124000 PERIOD_SIZE: 992 PERIOD_BYTES: 992 PERIODS: 4 BUFFER_TIME: 496000 BUFFER_SIZE: 3968 BUFFER_BYTES: 3968 TICK_TIME: 10000 [root@WinFast310 /root]# //沒有放音 有人懂ALSA嗎? 我該去調整什麼參數? -- ~剝好了,小心燙喔~ ◢◤ 喔喔~ ˋ◢██◣ ◢██◣◢ 哇~ ◢◤ ◣◢██◥█ ρ ██ █◥◥◥ ◤◤ █ ˊ你好體貼喔~ ◢◤ █ ◥◥◥██ ● ● ◢◤唉呀! ● <ζ◥◣ ◥██ ▼"█◤ ◢◤好燙~ˋ ◥█"/▊█◣ ◣██ ◢◤ ◢██ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.127.208.147

04/26 14:44, , 1F
用其他arm板子遇過"類似"問題~原因可能為os沒porting好
04/26 14:44, 1F

04/26 14:46, , 2F
ALSA初始化參數沒設定好、ALSA driver有問題等等...
04/26 14:46, 2F

04/26 14:47, , 3F
後來是重編kernel+設定好ALSA(amixer)參數解決~希望有幫助
04/26 14:47, 3F
文章代碼(AID): #1DxBDiHi (LinuxDev)
文章代碼(AID): #1DxBDiHi (LinuxDev)