Pulseaudio: espera por dispositivos no início?

3

Baseado em este guia , eu configurei o pulseaudio no meu Raspberry Pi para rodar no modo de sistema. Aqui está como meu arquivo de serviço systemd se parece:

[Unit]
Description=PulseAudio Daemon
After=sound.target
Requires=sound.target

[Install]
WantedBy=default.target

[Service]
Type=notify
ExecStart=/usr/bin/pulseaudio --disallow-exit --no-cpu-limit --daemonize=no --system --realtime --disallow-module-loading --log-target=journal -vvvv

No entanto, eu não estou recebendo nenhum som - de acordo com os logs, quando o pulseaudio é iniciado, o udev detecta relatórios "Found 0 cards". e eu só recebo o nulo. A execução de systemctl --system restart pulseaudio.service corrige isso e meu dispositivo de áudio é detectado corretamente.

Existe alguma maneira de dizer ao pulseaudio para esperar até que um dispositivo seja detectado?

    
por fstanis 25.12.2017 / 22:55

1 resposta

6

Informar que o PulseAudio não será muito útil. Ele já pode detectar dispositivos hotplug por conta própria; no entanto, devido a --disallow-module-loading , não é mais possível usar os dispositivos, pois é proibido carregar module-alsa-card após a detecção de um dispositivo. (Indiscutivelmente módulo-udev-detect deve ser isento desta restrição ...)

Você pode systemd atrasar a inicialização do pulseaudio.service até que um dispositivo específico esteja pronto, listando o correspondente .device unit name na unidade After= , por exemplo:

[Unit]
After=sys-devices-pci0000:00-0000:00:1b.0-sound-card0.device
    
por 25.12.2017 / 23:06