펄스 오디오 문제 - pavucontrol 및 pacmd가 펄스 오디오에 연결되지 않았습니다.

펄스 오디오 문제 - pavucontrol 및 pacmd가 펄스 오디오에 연결되지 않았습니다.

저는 pulseaudio다음 패키지와 함께 Debian Jessie(8.3)를 실행하고 있습니다. 내가 아는 한, 사운드와 관련된 모든 것(포함 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에 관한 것입니다.

새 사운드 카드를 다시 설치한 후 오늘 재부팅하기 전까지는 한동안 나를 괴롭혔 pavucontrol지만 적어도 작동했습니다 .pacmd

이것은 부분적으로 일종의 권한 문제인 것 같지만 무엇인지 모르겠습니다. 및 그룹 pulseaudio에 사용자를 추가하는 것 외에는 pulse수동으로 변경하거나 관련된 내용을 적용하지 않았습니다 pulse-connect. 나는 그것이 어떤 변화를 가져올 것이라고 생각하지 않았고 어떤 것도 눈치 채지 못했습니다.

문제를 설명하기 위해 아래의 다양한 명령의 출력을 루트 및 사용자로 추가했습니다. 표준 규칙에 따르면 앞의 명령은 $사용자가 실행하는 명령을 나타내고 앞의 명령은 루트가 실행하는 명령을 나타냅니다.#

$ 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에서 가져온 것입니다.Arch에서 Pulseaudio가 손상됨: pa_stream_writable_size() 실패: 연결이 종료됨, 제가 ​​본 것과 똑같거든요. ) Pavucontrol 팝업 상자 표시

뿌리에

# pavucontrol 

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

find디렉토리에서 'ulse'와 일치하는 항목을 찾을 수 없습니다 ~/.config.

~/.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

답변1

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루트가 소유합니다.

하지만 그렇게 쉽게 깨질 수 있다면 너무 약할 것입니다.

관련 정보