ルートはマスター制御にアクセスできません。

ルートはマスター制御にアクセスできません。

Master重要な要約:ルートはALSAの制御にアクセスできません。

私の質問

キーボードで音量を調節できません

私が下した診断

  • journalctl -fエラーを明らかにするamixer: Unable to find simple control 'Master', 0

  • amixer端末で実行するとうまくいった。

これは権限の問題だと思われます。

私の環境

  • 私のacpidボリュームを下げるプロファイルは次のとおりです。
events=button/volumedown
action=amixer set Master 
  • 私はArch LinuxとWindowsをデュアルブートします。

  • 以前はxfceを使用していましたが、気分に応じて削除してdwm / lxdeに切り替えました。

  • 私はBluetoothをサポートするためにPulseAudioを使用しています。

今まで試したこと

  • doasを使う(sudoのような)

    • まったく同じエラーです。ただし、その前に(私のユーザー名はvinceです)journalctl -fという行があります。root ran command amixer set Master 5- as vince from /
  • 使用pactl

    • 同じ質問

ソリューションを通じて何を得たいですか?

  • Masterコントロールへのルートアクセスを提供します。

  • sudoORは実際には複数のユーザーには拡張されないため、依存したくありません。doas(ただし、一時的な解決策として使用できます。)

  • コンソールとX

  • すべてのユーザーに機能する必要はありませんが、それが機能する場合は好みます。

(答えがこれらすべてを満足していなくても大丈夫です。ただボリュームキーを使いたいです)

答え1

私はBluetoothをサポートするためにPulseAudioを使用しています。

pacmdPulseaudioを実行している場合は、ボリューム設定に(またはスクリプト経由で)Pulseaudio APIを使用してくださいpactl

Pulseaudioにはこの「デフォルト」コントロールが含まれていますが、Pulseaudioボリューム設定にマッピングされているALSAの互換性レイヤーがあります。

また読んでくださいシステム全体ユーザー固有のPulseaudioを備えたPulseaudio。後者はデフォルト設定なので、Pulseaudioを起動したログインユーザー以外のユーザーは、ルートを含むPulseaudioにアクセスできません。

したがって、あなたの問題はALSAの問題ではありません。 ALSAでは、あなただけが普遍的な「マスター」制御を持つことはできません(ほとんどの場合にもかかわらず)。サウンドカード実際に一つがあります。これへのルートアクセスはALSAでのみ問題になりません。

答え2

この問題を正常に解決しました。疑ったように、rootパルスオーディオのため、ユーザーの受信機にアクセスできません。 @dirktの回答のため、ここで強調表示されたpulseaudioの解決策が見つかりました。pactl は i3 の root ではなくユーザー空間で動作します。

を使用していたのでに追加しなければなりませんdoasでした。次に、acpid設定ファイルを次のように編集しました。setenv {XDG_RUNTIME_DIR=/run/user/1000}doas.conf

event=button/volumedown
action=doas -u vince pactl set-sink-volume @DEFAULT_SINK@ -5%%

より良い解決策は、@dikrtの答えからわかるように、システム全体のパルスオーディオを使用することですが、これは私が今までに持っていた解決策です。

関連情報