モニター、HDMIオーディオを無効にする方法
(2017年7月の[冴えた方法]を追記) オススメ 2020年夏改稿
CaseA 方法と結論:1行書き足すだけです。
ブラックリスト定義ファイルを編集、最後に一行付加します。
sudo gedit /etc/modprobe.d/blacklist.conf
をエディターで開いて、最終行に次を書き込む。保存。
blacklist snd_hda_intel
#AMDチップセットでも、intelです。ドライバの名前です。
をエディターで開いて、最終行に次を書き込む。保存。
blacklist snd_hda_intel
#AMDチップセットでも、intelです。ドライバの名前です。
終わり。再起動で確認。デジタル出力が無効になります。図でみるとわかりやすいと思います。ubuntu系もArchlinux系も同じです。
(Before)➡1と2がUSB-DAC、3 Displayport(モニターのオーディオ/内部オーディオ)、4 S/PDIF
(After) ➡3と4がなくなっています。何かの弾みでも切り替わりようがないです。
多くの方はこれで問題ないはずですが、S/PDIFを活用している人はどうなるでしょうか。それも無効になってしまいます。ほとんどいないとは思いますが当職には問題です。
CaseB も、ひとつ攻める。饒舌な余談ともう一つの方法:
こちらがあきらかに冴えてる?!
さてここで問題です。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経由の音声出力のみ無効にできればいい、というわけです。
「勝ち」でなければ、ずらずらーーーとHDMI音声のリストが並びます
**** ハードウェアデバイス 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経由の音声出力のみ無効にできればいい、というわけです。
「勝ち」でなければ、ずらずらーーーとHDMI音声のリストが並びます
モニターの音声出力を無効にしつつ、デジタル出力(光デジタル)は有効のまま活用する(当方の理想)
結論はこれ。次のファイルに1行書き足す!! modprobe.conf
編集するファイル
sudo gedit /etc/modprobe.d/modprobe.conf
具体事例1) AMD APU/A8でRADEON R7_360の場合(かつての環境)
options snd-hda-intel enable=1,0
サウンドデバイス構成が下記と異なります。
具体事例2) AMD Ryzen7 でRADEON R7_360の場合 ※当方環境ではubuntu,archlinux,manjaro 共通。
options snd-hda-intel enable=0,1
編集するファイル
sudo gedit /etc/modprobe.d/modprobe.conf
具体事例1) AMD APU/A8でRADEON R7_360の場合(かつての環境)
options snd-hda-intel enable=1,0
サウンドデバイス構成が下記と異なります。
具体事例2) AMD Ryzen7 でRADEON R7_360の場合 ※当方環境ではubuntu,archlinux,manjaro 共通。
options snd-hda-intel enable=0,1
HDMI audio が消えました。antergosの場合。 |
大抵、空ファイルだと思いますので、上記の行を環境に合わせて貼り付けてから、再起動してください。番号は調整してください。カーネルパラメータに食わせる方法があるようです。
そのうち丁寧に手順書きますがこれでわかっていただけるかと。今の時代こそ、知りたい方が多いと思うので書いておきます。音声がユーザーの制御下にないと深夜の悲劇を生みますものね。笑)
ちなみに、W10のAMDドライバインストーラーはアホなので、無効にしていたモニターをオンにして、再起動するバカさかげんですね。誰かクレームつけてください。世界で100万人は被害者がいると思う。
蛇足::この頁は2年前に書いた頃はほとんどアクセスがなかったのですが毎日急にアクセスが増えてきたのでびっくりしています。HDMI接続が増えてきたことと、4Kモニター利用者が増えてきた傍証になる気がします。
以下蛇足。いまでも通用しますが、ここまでの通りにすればうまくいくので読む必要はありません。当方の記録です。
状況::最近HDMI接続で4Kモニター使う人が増えてきたかもなので、ニーズが目立ってきた気がする。
モニターにHDMI接続しているものの、音声は使いたくない。音は出したくない。(Muteでは安心できない。深夜の自宅で何らかのはずみで音がでるのは困るなど...)
自分の場合、USB DACがメインです。DAC電源を必要に応じてonにして使います。それ以外は無音または、A2DPで使います。
当然ですがマザーボードBIOSでオンボードサウンドデバイスは無効にしHDMIオーディオも無効の設定にしています。
このUEFI/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
旧いチップだなぁ。