google code-beautifer

星期日, 12月 20, 2009

pulseaudio 錄音:針對skype/ intel hda及相關晶片問題

假如你是用snd_hda_intel 而且pulseaudio 錄音有問題,你可以檢查看看是不是alsa設置的問題

很多hda_intel 晶片需要給核心下額外參數,假定你只有一個音效卡,這點可以用下面命令檢查
cat /proc/asound/card0/codec#0 | grep -i codec
請參考
http://www.kernel.org/doc/Documentation/sound/alsa/HD-Audio-Models.txt

但是有一些新的codec不在上表,比如Dell vostro 1520/1720或類似用IDT ID 76d5晶片的
在https://bugs.launchpad.net/ubuntu/+source/linux/+bug/386858
討論上說對這個問題ubuntu要升級alsa 1.0.16 ,而且在給核心下參數。可是Mandriva 看來都已經比上面討論的版本要新了,我在一臺裝mandriva 2009.1 (kernel 是2.6.29.6 alsa 是1.0.19-1)的Dell Vostro 1520 上試的結果,換過/etc/modprobe.conf 加入這一行
options snd-hda-intel model=dell-s14
重開就沒問題了(用model=dell-m6參數是不會成功的),雖然內建mic 還是有問題,而且插上耳機內建喇叭也不會靜音,不過至少新版skype現在用外接mic 可以正常工作了。對一般人差不多夠用了。反正Mandriva 2010 出了,用了新版的kernel 跟alsa ,等升級我再試過。Skype 要 2.1.0.47以後的版本才支援pulseaudio,沒有powerpack的人可以到http://mib.pianetalinux.org/mib/fr/home/32-mib-rpms/414-skype-21047.html
下載。

pulseaudio這個問題其實不只出在snd_hda_intel,有很多錄音晶片(包括EMU10k) 有類似問題,此外,有很多音效軟體還不支援pulseaudio,還得給dbus 設定打個洞給特定音效卡只使用alsa錄音,那個搞起來真的就麻煩了,現在我用外接mic是可以給Audacity 錄音,選alsa pulse的話雜訊大到不能接受,選alsa hw(0,0)的話雜訊是可以接受,但CPU 用量飆到100%,錄出來像打嗝一樣不能聽。要並存的話還有一番要修補的。

結論:pulseaudio 也許是未來的主流,但是過渡期還有一段好痛苦的

參考
http://pulseaudio.org/wiki/BrokenSoundDrivers

沒有留言: