web-dev-qa-db-ja.com

Debian Busterのrootでないと音が出ない

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出力しか表示されません出力デバイス。

enter image description here

オーディオシンクを一覧表示すると、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

しかし、今、私は少し行き詰まっています。私は問題の原因を特定していると思いますが、それを解決する方法を見つけることができません...

4
Nicolas Appriou

次のコマンドを実行して、この問題を解決しました。

Sudo apt-get remove --purge timidity

timiditytimidity-daemonのみが削除されることを確認してください。私が理解している限り、デーモンは起動時にいくつかのリソースを取得し、他のサービスがサウンドカードを見つけるのを防ぎます。気弱さはMIDIファイルと関係があるので、パッケージをアンインストールするときにこれが必要ないことを確認し、何をアンインストールするかを確認してください。

これで一部のユーザーの問題が解決することを願っています。上記の問題が解決されたら、将来、臆病者を再インストールすることをお勧めします。

5
Ohumeronen

サウンドの概要:サウンドハードウェアはカーネルドライバー(以前の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が適切に停止されており、再起動していないことも確認できます。

3
dirkt

問題は解決しました:アップグレード後、理由はわかりませんが、出力は自動ミュートになりました。 alsamixerで変更する必要がありました。

深く掘る必要がない場合もあります。

2
Nicolas Appriou

実際には、問題はPulseAudioとblob付きのNVidia GPUを持っているという事実から来ています。

解決策は、/ etc/Pulse/daemon.conf(ファイルの最後の1文字のみ)にゴミを挿入してPulseAudioが起動しないようにすることです。次に、AlsaMixerを介してのみボリュームを設定できますが、少なくともサウンドは戻ります。

この問題に関するチケット#918522を募集しました。貢献してください。

0
Julien Aubin