Intel HD Audio (ALC889) のデジタルアウトから音を鳴らす
ドータカードだからデジタル出力されないのかなとか言ってましたが、良く考えたらアナログだってドータカード経由で繋がってるわけでw じゃぁ鳴らないのは他に原因がある! ググった感じだと鳴らないわけでもなさそうだってことでチャレンジしてみました。
google:alsa snd-hda-intel とかやってみて、見つけたのがこちらです。
SDB:Intel-HDAで音が出ない問題 - openSUSE Wiki
↑ 作業中。とっても目にやさしいです!w
作業手順
載っているチップを確認する
$ lspci -v | grep Audio 00:1b.0 Audio device: Intel Corporation Ibex Peak High Definition Audio (rev 05) 03:00.1 Audio device: ATI Technologies Inc Device aa50 $ cat /proc/asound/cards 0 [Intel ]: HDA-Intel - HDA Intel HDA Intel at 0xfbaf8000 irq 22 1 [Generic ]: HDA-Intel - HD-Audio Generic HD-Audio Generic at 0xfbbbc000 irq 17
2つ載っています。1つは Intel HD Audio で、1つは Radeon HD5870 の HDMI ですね。
$ head -n 1 /proc/asound/card0/codec* Codec: Realtek ALC889
card0 には ALC889 が使われています。
$ head -n 2 /proc/asound/card1/codec* Codec: ATI ATI R6xx HDMI
/etc/modprobe.d/alsa-base.conf を眺める
$ less /etc/modprobe.d/alsa-base.conf とか $ cat /etc/modprobe.d/alsa-base.conf | grep intel とか
ubuntu (Debian) の設定ファイルの配置を全く把握してないのですが、昨日チラッと見た限りだとここであるらしい。自分の環境だと、 snd-hda-intel に関する記述はありません。
カーネルソースの ALSA のドキュメントからオプションを探す
$ less /usr/src/linux/Documentation/sound/alsa/ALSA-Configuration.txt
「/ALC8」とか押して調べてみると、ALC889 に関する記述はありません。 ALC883/888 ならあるんですが。
ALC883/888 3stack-dig 3-jack with SPDIF I/O 6stack-dig 6-jack digital with SPDIF I/O 3stack-6ch 3-jack 6-channel 3stack-6ch-dig 3-jack 6-channel with SPDIF I/O 6stack-dig-demo 6-jack digital for Intel demo board acer Acer laptops (Travelmate 3012WTMi, Aspire 5600, etc) acer-aspire Acer Aspire 9810 medion Medion Laptops medion-md2 Medion MD2
ALSA Project から、最新の ALSA ドライバのソースを拾ってきてドキュメントを眺めてみる
Download - AlsaProject ここから最新の alsa-driver を落として、 ALC889 に関する記述がないか確認してみます。
- とりあえず、 ALC883/888 と共通のスイッチが使えるか知りたい
- ALC883/888 と共通のスイッチで鳴るならそれで OK
- ALC883/888 と共通のスイッチで鳴ならないなら、このドライバを別途組み込むことも考える
alsa-driver のドキュメントを読む
落としてきたファイルは alsa-driver-1.0.22.1.tar.bz2 。この中のドキュメントを読んでみます。HD-Audio に関する記述は /alsa-driver-1.0.22.1/alsa-kernel/Documentation/HD-Audio-Models.txt にありました。
$ tar vfx alsa-driver-1.0.22.1.tar.bz2 $ cd alsa-driver-1.0.22 $ grep -l -r ALC889 . ./alsa-kernel/Documentation/HD-Audio-Models.txt ./alsa-kernel/pci/hda/patch_realtek.c ./sound/Documentation/HD-Audio-Models.txt ./sound/pci/hda/patch_realtek.c
HD-Audio-Models.txt の中身を見るとこんな感じで書いてありますね。
ALC882/883/885/888/889 ====================== 3stack-dig 3-jack with SPDIF I/O 6stack-dig 6-jack digital with SPDIF I/O arima Arima W820Di1 targa Targa T8, MSI-1049 T8 asus-a7j ASUS A7J asus-a7m ASUS A7M macpro MacPro support mb5 Macbook 5,1 mbp3 Macbook Pro rev3 imac24 iMac 24'' with jack detection imac91 iMac 9,1 w2jc ASUS W2JC ・ ・ ・
ALC883 と同じオプションでいける感じがします。
/etc/modprobe.d/alsa-base.conf を編集する
どのオプションをつければいいか迷いましたが、自分のカード (Big Bang-Trinergy 付属カード)の場合『 6-jack digital with SPDIF I/O 』でいい気がします。SDB:Intel-HDAで音が出ない問題 - openSUSE Wiki にならって、次の一行を書き加えます。
options snd-hda-intel model=6stack-dig enable=1 index=0
自分の環境の場合も、index=0 でいいはず。昔 Gentoo でやった記憶をたどると、確かカードの優先順位とかそんな感じだった気がする。
書き加えたらサービスを再起動すればいいはずなんですが、面倒くさいので PC ごと再起動します。
デスクトップ (GNOME) 上のミキサーをいじる
いくつか方法がありますが、簡単な方法で。
- デスクトップ上部の音量調節ボタンを押す。
- ボリューム調節の下に『音量調節ツール』ボタンがあるので押す。
- デバイスで『 HDA Intel (Alsa mixer) 』を選択。
- 音量コントロール下の『設定』ボタンを押す。
- 音量コントロールの設定が立ち上がります。
- 『IEC958』スイッチを有効にして閉じます。自分の場合はいろいろチェック入れてみたけど。
- 音量コントロールに戻って、スイッチタブの『IEC958』を有効にする。自分の場合はry
- システム→設定→サウンドを開く。
- もしくは端末から『 gnome-sound-properties &』 でもOK。
- 出力関係を『 HDA Intel ALC889 Digital (ALSA) 』にする。
- あとはテストボタンを押して音が鳴れば成功。