tl;dr: X11 forwarding je cool a dovolí spouštět vzdáleně programy z RPi bezešvě (třeba) na Windows. Ale v základní konfiguraci to není vhodné pro provozování grafických programů na pozadí.
DietPi je lehká distribuce bez grafického rozhraní pro jednodeskové počítače. Jejich repozitář obsahuje slušnou porci optimalizovaných programů, většinou s webovým rozhraním. Ale co když je třeba nějaký program, vyžaduje grafické rozhraní?
V mém případě to bylo nějaké stahovátko typu Freerapid Downloader – bohužel dále nevyvíjené, takže jsem sáhl po dalším programu takového zaměření, kterým je JDownloader. Oba programy spojuje, že jde o grafické aplikace psané v Javě, které se nedají provozovat jen z příkazové řádky. A zároveň nevím o ničem, co by fungovalo stejně a šlo rozumně rozběhat na RPi.
Začal jsem tedy zkoumat, jak by se daly tyto programy spustit na DietPi. Z letmého pátrání my vypadly dva způsoby:
- Instalace desktopového prostředí (pravděpodobně) a přístup přes VNC
- Instalace X serveru a přístup přes X11 forwarding
VNC jsem dříve používal pro ovládání původním Raspbianu, ale nelíbila se mi myšlenka instalace desktopového prostředí. Začal jsem tedy zkoumat druhou možnost.
Spoiler alert: Tato část bude o X11 forwardingu, následující díl pravděpodobně o VNC.
Takže prvně jsem si nainstaloval Xserver do RPi s DietPi
$ sudo apt install xorg
Poté Javu
$ sudo apt install default-jre
Na dalším počítači jsou Windows. Tam je potřeba VcXsrv X Server (nezapomeňte povolit komunikaci v síti, ve které se chcete spojit s RPi)
Teď už stačí jen spustit XcXsrv
A připojit se přes SSH (já používám Putty) s X11 forwardingem.
A teď se už stačí nalogovat a spustit aplikaci z terminálu
java -jar /mnt/disk/dietpi_userdata/jdownloader/JDownloader.jar
A hle, na ploše máte okno aplikace, která ale běží na jiném stroji (všimněte si podpory náhledů oken na liště ve Windows – wow!)
Má to ale malý háček. Pokud zavřete aplikaci na klientském (Windows) systému, dojde k jejímu ukončení i na hostitelském (RPi). Takže pokud chceme stahovat na pozadí, musíme na to trochu jinak.
A o tom zase někdy příště.