このガイド に基づいて、RaspberryPiでpulseaudioをシステムモードで実行するように設定しました。私のsystemdサービスファイルは次のようになります。
[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
ただし、音が出ません。ログによると、pulseaudioが起動すると、udev-detectは「0枚のカードが見つかりました」と報告します。そして私はヌルシンクしか得られません。ランニング systemctl --system restart pulseaudio.service
これを修正し、オーディオデバイスが正しく検出されます。
デバイスが検出されるまで待つようにpulseaudioに指示する方法はありますか?
PulseAudioはあまり役に立たないだろうと言う。ホットプラグされたデバイスは、それ自体ですでに問題なく検出できます。ただし、--disallow-module-loading
が原因で、デバイスが検出された後にmodule-alsa-card
をロードすることが禁止されているため、デバイスを使用できなくなりました。 (おそらくmodule-udev-detectはこの制限から免除されるべきです…)
このユニットの.device
に対応するAfter=
ユニット名をリストすることで、特定のデバイスの準備ができるまでpulseaudio.serviceの開始を遅らせるようにsystemdに指示できます。例:
[Unit]
After=sys-devices-pci0000:00-0000:00:1b.0-sound-card0.device