Używam Pulseaudio do udostępniania dźwięku między komputerem stacjonarnym a Raspberry Pi.
Jednak Pulseaudio potrzebuje dbus, a dbus potrzebuje sesji X. Bez sesji graficznej Pulseaudio może działać tylko w trybie systemowym, co oficjalnie nie jest zalecane.
Poza tym na Raspberry Pi koszt sesji X jest dramatycznie wysoki, więc chciałbym się go pozbyć w najbardziej wydajny (mniej kosztowny) sposób.
Jak mogę rozpocząć najmniejszą sesję X, aby Pulseaudio mogło się rozpocząć?
x11
pulseaudio
kursus
źródło
źródło
Odpowiedzi:
Możesz użyć Xvfb , czyli serwera X z wirtualnym buforowaniem ramek, tj. Serwera X, który wyświetla się tylko w pamięci i nie łączy się z żadnym sprzętem. Nie musisz uruchamiać żadnego klienta, którego nie chcesz na tym serwerze, w szczególności środowiska pulpitu lub menedżera okien.
Po tym:
Musisz poczekać chwilę po uruchomieniu,
Xvfb
aby wyświetlacz był dostępny. Możesz użyć,xinit
aby uruchomić serwer X, a następnie uruchomić klientów, gdy będzie gotowy. Umieść polecenia, które chcesz uruchomić w skrypcie (zwróć uwagę, że gdy skrypt kończy działanie, serwer X kończy działanie):Uruchom wirtualny serwer X za pomocą
Jeśli chcesz uruchomić go w czasie rozruchu, możesz uruchomić go z crona. Uruchom
crontab -e
(jako użytkownik, nie jako root) i dodaj linięJeśli chcesz zabić tę sesję, zabij
xinit
proces.źródło
@reboot
. Alanc ma rację, po uruchomieniu Xvfb musi nastąpić opóźnienie, a xinit rozwiązuje ten problem. Zobacz moją edycję.Wczoraj miałem ten sam problem, używając dźwięku Pulse dla Raspberrypi 0 W z DBusem w środowisku bezgłowym, twórz z yocto bez x11 i bez systemu, musisz uruchomić i wyeksportować dbus, zanim uruchomisz pulseaudio.
W etc / pulse / client.conf włącz enable-autospawn-for-root = yes
Uruchom,
pulseaudio -v
aby sprawdzić, czy jest inny problem w twojej konfiguracji. Nie używaj--system
przełącznika, ponieważ nie będzie poprawny.źródło
Istnieje bardziej elegancki sposób, aby zapobiec dotarciu skryptu do EOF niż użycie
sleep 99999999
!Użyj
sleep infinity
zamiast tego. Robi to, co mówi ...źródło