LOOXRでsnd_hdaの調整
- 公開日: 2009/05/09(土) 19:54[JST]
snd_hdaのマニュアル の内容も分かったので、調整を行ってみる。
まず、
# sysctl dev.hdac.0.pindump=1
で/var/log/messagesに現在の設定を出力させる。結果は以下の通り。
hdac0: Dumping AFG cad=0 nid=1 pins: hdac0: nid 18 0x411111f0 as 15 seq 0 Speaker None jack 1 loc 1 color Black misc 1 [DISABLED] hdac0: Caps: IN hdac0: nid 20 0x03211020 as 2 seq 0 Headphones Jack jack 1 loc 3 color Black misc 0 hdac0: Caps: IN OUT HP Sense: 0x00000000 hdac0: nid 21 0x90170110 as 1 seq 0 Speaker Fixed jack 7 loc 16 color Unknown misc 1 hdac0: Caps: IN OUT HP Sense: 0x00000000 hdac0: nid 22 0x411111f0 as 15 seq 0 Speaker None jack 1 loc 1 color Black misc 1 [DISABLED] hdac0: Caps: OUT hdac0: nid 24 0x03a11040 as 4 seq 0 Mic Jack jack 1 loc 3 color Black misc 0 hdac0: Caps: IN OUT HP VREF Sense: 0x00000000 hdac0: nid 25 0x411111f0 as 15 seq 0 Speaker None jack 1 loc 1 color Black misc 1 [DISABLED] hdac0: Caps: IN OUT HP VREF Sense: 0x00000000 hdac0: nid 26 0x411111f0 as 15 seq 0 Speaker None jack 1 loc 1 color Black misc 1 [DISABLED] hdac0: Caps: IN OUT HP VREF Sense: 0x00000000 hdac0: nid 27 0x2121101f as 1 seq 15 Headphones Jack jack 1 loc 33 color Black misc 0 hdac0: Caps: IN OUT HP VREF Sense: 0x00000000 hdac0: nid 28 0x411111f0 as 15 seq 0 Speaker None jack 1 loc 1 color Black misc 1 [DISABLED] hdac0: Caps: IN hdac0: nid 30 0x411111f0 as 15 seq 0 Speaker None jack 1 loc 1 color Black misc 1 [DISABLED] hdac0: Caps: OUT hdac0: nid 31 0x411111f0 as 15 seq 0 Speaker None jack 1 loc 1 color Black misc 1 [DISABLED] hdac0: Caps: IN hdac0: NumGPIO=4 NumGPO=0 NumGPI=0 GPIWake=0 GPIUnsol=1 hdac0: GPIO: data=0x00000000 enable=0x00000000 direction=0x00000000 hdac0: wake=0x00000000 unsol=0x00000000 sticky=0x00000000
ここで、ヘッドホンのコネクタを差し込むと、
hdac0: nid 20 0x03211020 as 2 seq 0 Headphones Jack jack 1 loc 3 color Black misc 0 hdac0: Caps: IN OUT HP Sense: 0x80000000
と、nid20のSenseの値が変化した。つまり、nid20がヘッドホン端子。で、内蔵スピーカはnid21。ヘッドホン端子がas2で内蔵スピーカがas1。問題はこの辺にありそうだ。nid20のlocもマイク端子(nid24)と同じ3だしね。しかしnid27のヘッドホン端子が謎。locも33と謎の位置だし。とりあえず、nid20とnid27のasを入れ替えればいいのかな。
ええと、/boot/device.hintsに以下の行を追加すればいいのかな。
hint.hdac.0.cad0.nid20.config="as=1 seq=15 device=Headphones" hint.hdac.0.cad0.nid27.config="as=2 seq=0"
device.hintsを編集して再起動したところ、ヘッドホンが機能するようになった。よかった。
しかし、HDAudioのヘッドホンによるスピーカのミュートってソフトで制御してたんだ。あと、ジャックのマイクとヘッドホンの入れ替えとかもできるのね。インテリジェンスだ。