2015年3月24日火曜日

HDMIオーディオを無効にする。Disabling ATI, NVIDIA and Intel HDMI Audio

HDMIオーディオを無効にする方法:2017年7月の冴えた方法を追記


結論:1行書き足すだけです。

ブラックリスト定義ファイルを編集、最後に一行付加します。

sudo gedit /etc/modprobe.d/blacklist.conf
をエディターで開いて、最終行に次を書き込む。保存。
blacklist snd_hda_intel


終わり。再起動で確認。デジタル出力が無効になります。

以下、饒舌な余談ともう一つの方法:こちらが冴えてる


さてここで問題です。DisplayportまたはHDMIケーブル で4Kモニターに出力しています。もともとHDMIオーディオはマザーボード(APU/AMDなので)に搭載されています。そして、さらに外付けRADEON R7 360を出力に使うわけですから、

単純に、HDオーディオは内蔵とGPUのそれとのふたつになります。

後者のみまたは前者のみを無効にする方法を知りたくありませんか。当方の結論としては、ありませんでした。いまんところですが。もし方法がわかったらぜひ教えてください。追記:わかりました。
alsa/pulse のドキュメントを読んでいてやっとひらめいた。世界でこのページだけです。このソリューションを書いてあるのは。ソースコードみればなんでもわかる人にはわかるのでしょうけれど。



この状態の時 aplay -l
**** ハードウェアデバイス PLAYBACK のリスト ****
カード 0: Generic [HD-Audio Generic], デバイス 0: ALC892 Analog [ALC892 Analog]
サブデバイス: 1/1
サブデバイス #0: subdevice #0
カード 0: Generic [HD-Audio Generic], デバイス 1: ALC892 Digital [ALC892 Digital]
サブデバイス: 1/1
サブデバイス #0: subdevice #0

こうなれば勝ち cat /proc/asound/cards
0 [Generic ]: HDA-Intel - HD-Audio Generic
HD-Audio Generic at 0xfeb00000 irq 16
 

当方の場合は、S/PDIFは使うため、100%デジタルが否定されると困る。Displayport経由の音声のみ無効になればいい、というわけです。
勝ちでなければ、ずらずらーーーとHDMI音声のリストが並びます


結論はこれ。1行書き足す!! modprobe.conf

options snd-hda-intel enable=1,0

sudo gedit /etc/modprobe.d/modprobe.conf
大抵、空ファイルだと思いますので、上記の行を環境に合わせて貼り付けてから、再起動してください。

そのうち丁寧に手順書きますがこれでわかっていただけるかと。今の時代こそ、知りたい方が多いと思うので書いておきます。音声がユーザーの制御下にないと深夜の悲劇を生みますものね。笑)

ちなみに、W10のAMDドライバインストーラーはアホなので、無効にしていたモニターをオンにして、再起動するバカさかげんですね。誰かクレームつけてください。世界で100万人は被害者がいると思う。

蛇足::この頁は2年前に書いた頃はほとんどアクセスがなかったのですが毎日急にアクセスが増えてきたのでびっくりしています。HDMI接続が増えてきたことと、4Kモニター利用者が増えてきた傍証になる気がします。

0)状況:最近HDMI接続で4Kモニター使う人が増えてきたかもなので、ニーズが目立ってきた気がする。


モニターにHDMI接続しているものの、音声は使いたくない。音は出したくない。(Muteでは安心できない。深夜の自宅で何らかのはずみで音がでるのは困るなど...)


自分の場合、USB DACがメインです。DAC電源を必要に応じてonにして使います。それ以外は無音または、A2DPで使います。


当然ですがマザーボードBIOSでオンボードサウンドデバイスは無効にしHDMIオーディオも無効の設定にしています。このBIOS設定で、Windows7ではHDMIオーディオが意図通りに無効にできます。しかし、ubuntu/mintでは、デフォルトで有効でした。これがどうしても美意識的に好ましくなかったわけです。 ATIのマザーボードです。美意識的にです。

1)ファイルを編集します。


ブラックリスト定義ファイルを編集して最後に一行付加します。
sudo gedit /etc/modprobe.d/blacklist.conf
以下を最終行に付け加えます。(最終行の必要性はないと思いますが)
blacklist snd_hda_intel

2)効果の確認


リブートします。サウンド設定で確認。何もなければ「ダミー出力」になっていると思います。それが期待通りです。

3)蛇足


もともと
cat /proc/asound/modules
では、snd_hda_intel


という文字列が見えているはず。
上記手順(1)を踏んでリブートし、かつUSB DACを電源onすると

cat /proc/asound/modules

1 snd_usb_audio


という具合に、USB DACが自動認識されます。他のデバイスはありません(ダミー出力状態)。これが求めていた状態です。Bluetooth A2DPも使っているので、使わないデバイスがあるとうまくないのです。サウンド出力の切り替えは、数秒でも手間。

※但し、当方の、USB DAC ではサウンドの出力先がふたつになるのは以前からです。
デジタルS/PDF、とアナログ出力が加わります。後者も同じ意図からなんとかしたいです。(現在はどうでもいいですが)

ここに限らず、

http://techgage.com/news/disabling_nvidias_hdmi_audio_under_linux/
askubuntuなどでもまったく同じ解決策が提示されています。典型的なニーズなのでしょうね。


※当方のUSB Audioは以下の通りです。WindowsはもちろんLinuxでもドライバ追加は不要です。間違いなくMAC OSXでも不要のはずですね。

cat /proc/asound/cards

1 [PCM2702 ]: USB-Audio - Burr-Brown Japan PCM2702

旧いチップだなぁ。

0 件のコメント:

コメントを投稿