Debian SIDコンピュータでdistアップグレードを実行したところ、音が消えました。
ルートでオーディオファイルを再生できますが、通常のユーザーとしてはできません。私が「オーディオ」グループに属していることを確認しました。 alsamixerを実行して何かがミュートされているかどうかを確認しましたが、すべての回線が稼働しています。
ここに私がコンピュータに持っているオーディオ出力があります:
$ lspci | grep Audio
00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 05)
01:00.1 Audio device: NVIDIA Corporation GK107 HDMI Audio Controller (rev a1)
未接続のHDMI出力があります(NVIDIAコントローラー)。オーディオヘッダーがIntelコントローラーに接続されています。 alsamixerを実行すると、このドライバーが表示されますが、pavucontrolでグラフィックカードからのHDMI出力しか表示されません出力デバイス。
オーディオシンクを一覧表示すると、nullデバイスが1つしか表示されません。
$ pacmd list-sinks
1 sink(s) available.
* index: 2
name: <auto_null>
driver: <module-null-sink.c>
flags: DECIBEL_VOLUME LATENCY FLAT_VOLUME DYNAMIC_LATENCY
state: IDLE
suspend cause:
priority: 1000
volume: front-left: 56362 / 86% / -3,93 dB, front-right: 55706 / 85% / -4,23 dB
balance -0,01
base volume: 65536 / 100% / 0,00 dB
volume steps: 65537
muted: no
current latency: 5,63 ms
max request: 6 KiB
max rewind: 6 KiB
monitor source: 2
sample spec: s16le 2ch 44100Hz
channel map: front-left,front-right
Stéréo
used by: 0
linked by: 1
configured latency: 40,00 ms; range is 0,50 .. 2000,00 ms
module: 20
properties:
device.description = "Sortie factice"
device.class = "abstract"
device.icon_name = "audio-card"
Debianでサウンドシステムがどのように機能するかはよくわかりませんが、通常のユーザーにはIntelチップにアクセスする権利がないことを理解しています。ここからは行き詰まって、どうすればいいかわからない...
Alsamixerでオートミュートを無効にすることで、なんとか音を取り戻すことができました。この設定は、システムの更新中に何らかの形で変更されました。
しかし、再起動後、問題は再発しましたが、自動ミュートはまだオフでした。
Dirkt回答のおかげで、この問題の原因を見つけたと思います:aplay -Lを通常のユーザーとrootユーザーとして実行すると、いくつかの違いに気付きました:
$ aplay -L
default
Playback/recording through the PulseAudio sound server
sysdefault:CARD=PCH
HDA Intel PCH, ALC887-VD Analog
Default Audio Device
$ Sudo aplay -L
default:CARD=PCH
HDA Intel PCH, ALC887-VD Analog
Default Audio Device
sysdefault:CARD=PCH
HDA Intel PCH, ALC887-VD Analog
Default Audio Device
単純なユーザーとして実行すると、デフォルトのカードは同じではないようです。通常のdefaultカードの代わりにsysdefaultを選択すると、音が聞こえるユーザー。
$ aplay -D sysdefault sound.wav
しかし、今、私は少し行き詰まっています。私は問題の原因を特定していると思いますが、それを解決する方法を見つけることができません...
次のコマンドを実行して、この問題を解決しました。
Sudo apt-get remove --purge timidity
timidityとtimidity-daemonのみが削除されることを確認してください。私が理解している限り、デーモンは起動時にいくつかのリソースを取得し、他のサービスがサウンドカードを見つけるのを防ぎます。気弱さはMIDIファイルと関係があるので、パッケージをアンインストールするときにこれが必要ないことを確認し、何をアンインストールするかを確認してください。
これで一部のユーザーの問題が解決することを願っています。上記の問題が解決されたら、将来、臆病者を再インストールすることをお勧めします。
サウンドの概要:サウンドハードウェアはカーネルドライバー(以前のALSAの一部)によって管理され、ALSAはカーネルドライバー(これはalsamixerで表示されるもの)にアクセスするためのライブラリを提供し、PulseaudioはALSAの上で実行されます。その理由の1つは、余分な労力なしでは、ALSAデバイスは単一のプログラムでしか使用できないのに対し、Pulseaudioではトランスポート層を提供することで複数のプログラムがハードウェアを使用できるようになるためです。
Pulseaudioのシンクがないということは、PulseaudioがALSAデバイスの取得に失敗したことを意味します。これは、(1)権限が間違っている、(2)他の何かがすでに使用している、(3)まったく別のものが間違っていたためと考えられます。
したがって、最初のステップは、Pulseaudioを停止してから、aplay -L
を使用してALSAデバイスを表示し、aplay -D ... audio_file.wav
を試して、デバイスに直接アクセスできるかどうかを確認します。その結果に応じて、次のステップは、デバイスをブロックしているもの(他の何かが以前に開始してそれを使用しているもの)を調べるか、PulseaudioがALSAデバイスを使用していない理由を見つけます(例:load module-alsa-cardpacmd
を使用して直接、エラーメッセージ/ログエントリを確認してください)。 Pulseaudioを停止する方法は、おそらくsystemdを使用して、デスクトップシステムのログインを介して、Pulseaudioを開始した方法によって異なります。
ps axu
などを使用して実行中のプロセスのコマンドラインを検査すると、上記のポイントに関するヒントが得られる可能性があり、Pulseaudioが適切に停止されており、再起動していないことも確認できます。
問題は解決しました:アップグレード後、理由はわかりませんが、出力は自動ミュートになりました。 alsamixerで変更する必要がありました。
深く掘る必要がない場合もあります。
実際には、問題はPulseAudioとblob付きのNVidia GPUを持っているという事実から来ています。
解決策は、/ etc/Pulse/daemon.conf(ファイルの最後の1文字のみ)にゴミを挿入してPulseAudioが起動しないようにすることです。次に、AlsaMixerを介してのみボリュームを設定できますが、少なくともサウンドは戻ります。
この問題に関するチケット#918522を募集しました。貢献してください。