LINUX.ORG.RU

Pipewire: нет звука у root

 , , ,


0

1

VoidLinux, systemd отсутствует совсем.
Звук у пользователя есть, но нет у root-а, а надо.
Pipewire и pipewire-pulse запускаются пользователем.
Доступ настроил как в теме Доступ к pipewire-pulse из разных юзеров? , спасибо dimgel.
Выхлопы команд:

# alsamixer 
cannot open mixer: Узел выключен
# mpg123 alarm.mp3
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layers 1, 2 and 3
	version 1.30.2; written and copyright by Michael Hipp and others
	free software (LGPL) without any warranty but with best wishes
[src/libout123/modules/alsa.c:open_alsa():181] error: cannot open device default
[src/libout123/libout123.c:check_output_module():984] error: Module 'alsa' device open failed.
[src/libout123/libout123.c:out123_open():482] error: Found no driver out of [alsa] working with device <default>.
main: [src/mpg123.c:check_fatal_output():333] error: out123 error 3: failure loading driver module
# aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
pipewire
    PipeWire Sound Server
default
    Default ALSA Output (currently PipeWire Media Server)
sysdefault:CARD=PCH
    HDA Intel PCH, ALC887-VD Analog
    Default Audio Device
front:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Analog
    Front output / input
surround21:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Analog
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Analog
    4.0 Surround output to Front and Rear speakers
surround41:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Analog
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=PCH,DEV=0
    HDA Intel PCH, ALC887-VD Digital
    IEC958 (S/PDIF) Digital Audio Output
hdmi:CARD=PCH,DEV=0
    HDA Intel PCH, X2483/2481
    HDMI Audio Output
hdmi:CARD=PCH,DEV=1
    HDA Intel PCH, HDMI 1
    HDMI Audio Output
hdmi:CARD=PCH,DEV=2
    HDA Intel PCH, HDMI 2
    HDMI Audio Output
Куда копать?

Upd.: оказалось звука нет у других пользователей c alsa-клиентами, с pulseaudio-клиентами звук есть у всех и у root тоже.
Все-таки можно это донастроить?

★★★★☆

Последнее исправление: superuser (всего исправлений: 4)

Не знаю, что за дистр и есть ли там systemd, но в арче да и в федоре, сервис запускается командой systemctl --user. Не буду утверждать, что в этом причина, но хотел упомянуть этот нюанс.

krasnh ★★★★
()

В piperwire по умолчанию настроено что звука у root нет. Либо выруби это в настройках, либо используй не piperwire

If you wish to run PipeWire as root, remove or comment this line: ConditionUser=!root

source - https://wiki.debian.org/PipeWire

vbcnthfkmnth123 ★★★★★
()
Последнее исправление: vbcnthfkmnth123 (всего исправлений: 2)
Ответ на: комментарий от superuser

Это именно в systemd.

Зашел, ради интереса, в консоль под root и проверил звук в mpv, нету. Начал запускать сервисы pipewire, pipewire-pulse, заодно и wireplumber.
Так pipewire-pulse ни в какую. А в сообщениях как раз и пишет ConditionUser=!root. Но я не стал до победного, мне звук под root не нужен.

krasnh ★★★★
()

Upd.: оказалось звука нет у других пользователей c alsa-клиентами, с pulseaudio-клиентами звук есть у всех и у root тоже.

Все-таки можно это донастроить?

Видимо pipewire монопольно захватывает устройство, из-за чего остальные не могут к нему подключиться. Вариантов тут два.

1) простой: снеси нафиг эту бесполезную прослойку и пользуйся alsa напрямую

2) в /usr/share/alsa/alsa.conf есть описания интерфейсов alsa, в частности pcm.hw - прямой доступ (который монопольно захватывает) и pcm.plughw - обычный немонопольный доступ, видел совет заменить там pcm.hw на pcm.hwoff чтобы отключить возможность монопольного доступа к звуковой карте кому бы то ни было, либо можно попытаться в конфиге pipewire где-то найти и исправить чтоб он использовал plughw а не hw.

firkax ★★★★★
()
Ответ на: комментарий от firkax

снеси нафиг эту бесполезную прослойку

если подскажешь решение как переключать в alsa вывод звука с колонок на наушники, то вероятно снесу эту пипевирю

superuser ★★★★☆
() автор топика
Последнее исправление: superuser (всего исправлений: 1)
Ответ на: комментарий от superuser

У меня само переключается когда втыкаю их в разъём. А вообще можно и вручную: в alsamixer мютишь колонки, размючиваешь наушники ну или наоборот. Только авто-мют надо выключить тогда (он там же).

firkax ★★★★★
()
Ответ на: комментарий от firkax

пардон, не то хотел я,
мне надо переключать выход звука, то на колонки, то на HDMI, то на блютуз-наушники

superuser ★★★★☆
() автор топика
Ответ на: комментарий от firkax

В alsa можно добавить свои мьютеры-переключатели чтобы пользоваться ими через alsamixer?
Упс.. ушли от изначальной темы.

superuser ★★★★☆
() автор топика
Последнее исправление: superuser (всего исправлений: 1)
Ответ на: комментарий от superuser

В вики gentoo есть такое https://wiki.gentoo.org/wiki/PipeWire#Adding_multi_user_support. Не знаю, насколько в тему и применимо для других дистров. Что-то в арчвики такого не написали.

Конфигурация по умолчанию позволяет только текущему пользователю (запустившему pipewire-pulse ) воспроизводить звук.
Для многопользовательской поддержки необходим интерфейс TCP:

krasnh ★★★★
()

нет у root-а, а надо.

Нет, не надо. У тебя XY проблема. Расскажи, чего ты хочешь добиться, тогда поможем. Зачем тебе звук под рутом?

eternal_sorrow ★★★★★
()
Ответ на: комментарий от eternal_sorrow

Зачем тебе звук под рутом?

Чтобы запускать qemu от root-а, т.к. использую проброс GPU (intel-gvt).
Пробовал давать права (chmod -R g+rw /dev/vfio) и запускать от пользователя, тогда гость даже работает, но сплошные артефакты.

superuser ★★★★☆
() автор топика
Последнее исправление: superuser (всего исправлений: 1)

systemd отсутствует совсем

Фаталити. Сначала выпилят системообразующие компоненты, а потом у них видите ли проблемы. Спасите-помогите.

ox55ff ★★★★★
()
Ответ на: комментарий от superuser

Чтобы запускать qemu от root-а

Всё, проблему решил, звук в qemu от root-а заработал, но только через pipewire-pulse

[ $UID -eq 0 ] && piper=$(ps -C pipewire-pulse -o uid= | tr -d " ") && export XDG_RUNTIME_DIR="/run/user/$piper"
qemu-system-x86_64 ... -audio driver=pa,model=ac97 ...
https://gitlab.com/qemu-project/qemu/-/blob/master/audio/paaudio.c#L835

superuser ★★★★☆
() автор топика
Последнее исправление: superuser (всего исправлений: 5)
12 декабря 2022 г.
Ответ на: комментарий от superuser

Дарова, хацкер. Где с тобой в личке пообщаться?

Gref_
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.