LOOXRでsnd_hdaの調整

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のヘッドホンによるスピーカのミュートってソフトで制御してたんだ。あと、ジャックのマイクとヘッドホンの入れ替えとかもできるのね。インテリジェンスだ。

コメント(0)



Note

本サイトのハイパーリンクの一部は、オリジナルのサイトが閉鎖してしまったため"Internet archive Wayback Machine"へのリンクとなっています。そのようなリンクにはアイコン[archive]を付与しています。

本サイトはCookieを使用しています。本サイトにおけるCookieは以下の三種類のみであり、Cookieの内容に基づいてサイトの表示を変更する以外の用途には用いておりません。