web-dev-qa-db-ja.com

PulseAudioの問題-pavucontrolおよびpacmdがPulseAudioに接続しない

Debian Jessie(8.3)を次のpulseaudioパッケージで実行しています。私が知る限り、すべてのサウンド関連のもの(pulseaudioを含む)はデフォルトのJessieパッケージに対応しています。何もカスタマイズしていません。また、systemdについて何もしたことがありません。

dpkg -l | grep pulseaudio
ii  gstreamer1.0-pulseaudio:AMD64    1.4.4-2               AMD64                 GStreamer plugin for PulseAudio
ii  pulseaudio                       5.0-13                AMD64                 PulseAudio sound server
ii  pulseaudio-esound-compat         5.0-13                AMD64                 PulseAudio ESD compatibility layer
ii  pulseaudio-module-gconf          5.0-13                AMD64                 GConf module for PulseAudio sound server
ii  pulseaudio-module-x11            5.0-13                AMD64                 X11 module for PulseAudio sound server
ii  pulseaudio-utils                 5.0-13                AMD64                 Command line tools for the PulseAudio sound server

古いSound Blaster Liveを交換しました!新しいAsus Xonar DXカードが付いたカード。サウンドは機能しますが、マイクは機能しません。さらに、pulseaudioに問題があります。 (少なくとも部分的に)pulseaudioの問題はカードの交換の前に発生しますが、マイクの問題を解明する前に、まずそれらを解決する必要があると思います。したがって、この質問はPulseaudioの問題に関するものです。

新しいサウンドカードの再インストール後、今日再起動するまで、少なくともpavucontrolはしばらくの間エラーが発生していましたが、少なくともpacmdは機能していました。

これは、ある種の許可の問題であるように思われますが、私にはわかりません。 pulseaudioPulse-connectの両方のグループにユーザーを追加する以外は、Pulseやその他のサウンドに関連する手動の変更は行っていません。私はそれが何かの違いを生むとは思わなかったし、何も気づかなかった。

ルートとユーザーの両方として、問題を説明するために、以下のさまざまなコマンドからの出力を追加しています。 $が前に付いているコマンドは、ユーザーが実行するコマンドを表し、#が前に付いているコマンドは、標準規則に従ってルートによって実行されるコマンドを表します。

$ pulseaudio -vv
I: [pulseaudio] main.c: setrlimit(RLIMIT_Nice, (31, 31)) failed: Operation not permitted
I: [pulseaudio] main.c: setrlimit(RLIMIT_RTPRIO, (9, 9)) failed: Operation not permitted
D: [pulseaudio] core-rtclock.c: Timer slack is set to 50 us.
D: [pulseaudio] core-util.c: RealtimeKit worked.
I: [pulseaudio] core-util.c: Successfully gained Nice level -11.
I: [pulseaudio] main.c: This is PulseAudio 5.0
D: [pulseaudio] main.c: Compilation Host: x86_64-pc-linux-gnu
D: [pulseaudio] main.c: Compilation CFLAGS: -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall -W -Wextra -pipe -Wno-long-long -Wno-overlength-strings -Wunsafe-loop-optimizations -Wundef -Wformat=2 -Wlogical-op -Wsign-compare -Wformat-security -Wmissing-include-dirs -Wformat-nonliteral -Wpointer-arith -Winit-self -Wdeclaration-after-statement -Wfloat-equal -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wmissing-noreturn -Wshadow -Wendif-labels -Wcast-align -Wstrict-aliasing -Wwrite-strings -Wno-unused-parameter -ffast-math -fno-common -fdiagnostics-show-option
D: [pulseaudio] main.c: Running on Host: Linux x86_64 3.16.0-4-AMD64 #1 SMP Debian 3.16.7-ckt20-1+deb8u3 (2016-01-17)
D: [pulseaudio] main.c: Found 6 CPUs.
I: [pulseaudio] main.c: Page size is 4096 bytes
D: [pulseaudio] main.c: Compiled with Valgrind support: no
D: [pulseaudio] main.c: Running in valgrind mode: no
D: [pulseaudio] main.c: Running in VM: no
D: [pulseaudio] main.c: Optimized build: yes
D: [pulseaudio] main.c: FASTPATH defined, only fast path asserts disabled.
I: [pulseaudio] main.c: Machine ID is 501a8b6f724c87677a6f6bb351f93f66.
I: [pulseaudio] main.c: Session ID is 55.
E: [pulseaudio] core-util.c: Failed to create secure directory (/run/user/1000/Pulse): Permission denied

このコマンドのルートとしての出力は同じでした。

$ pacmd
Failed to create secure directory (/run/user/1000/Pulse): Permission denied
No PulseAudio daemon running, or not running as session daemon

# pacmd
Daemon not responding.

Pavucontrolが与える(最初に、ターミナルで)

$ pavucontrol 
Failed to create secure directory (/run/user/1000/Pulse): Permission denied
Failed to create secure directory (/run/user/1000/Pulse): Permission denied

そして、次のボックスがポップアップします。 (このグラフィックは、terdon からスワイプされました)PulseaudioがArchで壊れました:pa_stream_writable_size()が失敗しました:接続が終了しました 、それは私が見るものとまったく同じです。) Pavucontrol popup box display

ルート上

# pavucontrol 

[A popup box appears with]
Establishing connection to PulseAudio. Please wait.

findは、~/.configディレクトリで「ulse」のヒットを検出しません。

~/.config$ find . -name '*ulse*'

何も返しません。

Pulseaudioは実行中のようです

# ps aux | grep Pulse
faheem    5057  0.1  0.0 376208 10432 ?        S<l  13:54   0:35 /usr/bin/pulseaudio --start --log-target=syslog
faheem    5065  0.0  0.0 122904  5164 ?        S    13:54   0:00 /usr/lib/pulseaudio/Pulse/gconf-helper

systemdも同様です。

# ps aux | grep systemd
root       273  0.0  0.0  33092  6864 ?        Ss   13:50   0:00 /lib/systemd/systemd-journald
root       290  0.0  0.0  41644  3864 ?        Ss   13:50   0:00 /lib/systemd/systemd-udevd
root      1067  0.0  0.0  28268  2968 ?        Ss   13:50   0:00 /lib/systemd/systemd-logind
message+  1100  0.0  0.0  43160  4432 ?        Ss   13:50   0:00 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
faheem    4435  0.0  0.0  36432  4544 ?        Ss   13:51   0:00 /lib/systemd/systemd --user

/run/user/1000/Pulse内のファイルの権限は次のとおりです。

/run/user/1000/Pulse# ls -laR
.:
total 4
drwx------ 2 root   root    80 Feb 22 13:54 .
drwx------ 6 faheem faheem 120 Feb 22 13:54 ..
srwxrwxrwx 1 faheem faheem   0 Feb 22 13:54 native
-rw------- 1 faheem faheem   5 Feb 22 13:54 pid
4
Faheem Mitha

この問題は、ルートとしてPulseaudioコマンドを実行したことが原因で発生したようです。これにより、/run/user/1000/Pulseの権限が変更されたようです。再起動すると問題が修正されました。

これらは今

$ ls  -lah /run/user/1000/Pulse/
total 4.0K
drwx------ 2 faheem faheem 100 Feb 22 21:50 .
drwx------ 6 faheem faheem 120 Feb 22 21:41 ..
srwxrwxrwx 1 faheem faheem   0 Feb 22 21:50 cli
srwxrwxrwx 1 faheem faheem   0 Feb 22 21:41 native
-rw------- 1 faheem faheem   5 Feb 22 21:41 pid

私の質問に表示される結果との違いに注意してください:

/run/user/1000/Pulse# ls -laR
.:
total 4
drwx------ 2 root   root    80 Feb 22 13:54 .
drwx------ 6 faheem faheem 120 Feb 22 13:54 ..
srwxrwxrwx 1 faheem faheem   0 Feb 22 13:54 native
-rw------- 1 faheem faheem   5 Feb 22 13:54 pid

つまり/run/user/1000/Pulseはrootが所有しています。

しかし、これが簡単に壊れると、非常に壊れやすくなります。

3
Faheem Mitha