Eksperyment z HTPC: Bigscreen od KDE w miejsce LibeELEC
Od niepamiętnych czasów używałem duetu Raspberry Pi i LibreELEC jako HTPC (Home Theater PC) czyli domowego centrum multimedialnego. Zaczynałem jeszcze od RPi 3, następnie była wersja 4, a obecnie korzystam z Raspberry Pi 5. Duet ten przez lata spisuje się nad wyraz dobrze, szczególnie na RPi 5, które bez problemu radzi sobie z treściami wideo 4K przy 60Hz. Ponadto zaletami małej płytki RPi są równie niewielkie zużycie energii, bezgłośność oraz stosunkowo niska cena zakupu.
Patrząc jednak na obecne ceny Raspberry Pi 5, zdecydowanie lepszym rozwiązaniem jest zakup używanego terminala. Jako że już posiadam RPi 5, zamierzam wycisnąć go jak cytrynę, tzn. jak malinę. Dlatego zrodził się w mojej głowie pomysł przesiadki na inny system.
LibreELEC
Jak głosi hasło twórców LibreELEC: „Just enough OS for KODI" – sam bym lepiej tego nie ujął. Z tego zadania system wywiązuje się naprawdę świetnie. Można powiedzieć, że LibreELEC to lekki OS, którego interfejsem graficznym jest jedna aplikacja – KODI. Możemy w niej zbudować własną bibliotekę filmów, seriali czy muzyki, a dzięki dużej bazie wtyczek zyskujemy także dostęp do większości serwisów streamingowych. Bez problemu możemy korzystać m.in. z YouTube (oczywiście bez reklam), HBO Max, Spotify, Tidala i wielu innych serwisów. Zainteresowanych odsyłam do mojego wcześniejszego wpisu Uwolnić telewizor: LibreELEC opisującego szczegółowo instalację i konfigurację zestawu.
Największą siłą LibreELEC jest jednak jego prosty i przejrzysty interfejs w połączeniu z możliwością sterowania zwykłym pilotem od telewizora. Właśnie ta prostota idąca w parze z możliwościami stawia go wysoko ponad typowymi rozwiązaniami smartTV.
A może coś innego?
Dlaczego postanowiłem poszukać alternatywy, skoro LibreELEC jest tak dobrym partnerem? Bo czegoś jednak mi tutaj brakuje (z resztą jak zwykle) – głównie przeglądarki internetowej z obsługą DRM. Głównym jednak hamulcowym we wcześniejszych poszukiwaniach alternatyw był brak pełnoprawnego systemu posiadającego interfejs przystosowany do sterowania z pilota. To się zmieniło wraz z premierą Plasma Bigscreen, dostępnej w KDE od wersji 6.7. Jak tylko zobaczyłem newsa o premierze, od razu zaczął mi się układać w głowie plan przejścia na pełnoprawny OS i wypróbowanie nowego rozwiązania.
Dotychczas w LibreELEC brakowało mi elastyczności OS-a znanej z ekranu laptopa czy peceta. Przede wszystkim jednak najbardziej doskwierał mi brak możliwości otwierania stron internetowych jako aplikacji webowych. Dlaczego tak upieram się przy tej przeglądarce? Wtyczki streamingowe do KODI – pomimo dobrego wsparcia społeczności – potrafią odmówić działania, gdy właściciel platformy streamingowej wprowadzi jakieś zmiany w jej funkcjonowaniu. W ten sposób niedawno przestał działać Netflix. Z kolei inne serwisy potrafią całkowicie blokować korzystanie z „niecertyfikowanych" urządzeń. Jak łatwo się domyślić, LibreELEC raczej nigdy nie otrzyma takiej certyfikacji. Zwykła przeglądarka jest wolna od tego typu wad – jest to najbardziej niezawodne narzędzie do obsługi serwisów streamingowych. Jedyny warunek jest taki, że musi obsługiwać DRM wymagane do działania serwisów streamingowych.
EndeavourOS
Skoro stanęło na Plasma Bigscreen, musiałem znaleźć lekką dystrybucję ze środowiskiem KDE na architekturę ARM. Na co dzień pracuję na CachyOS, a wcześniej korzystałem z Archa (btw.), więc naturalną koleją rzeczy było pozostanie w rodzinie Arczów. Po krótkich poszukiwaniach natknąłem się na EndeavourOS – obecnie chyba najłatwiejszy sposób na zainstalowanie Archa z KDE na Raspberry Pi 5. Dlaczego nie np. Manjaro albo oficjalne Ubuntu czy Raspberry Pi OS z doinstalowanym KDE? Ponieważ mam tylko 4 GB RAM-u, więc muszę gospodarować nim dość oszczędnie, a dystrybucja oparta na Archu nadaje się do tego zadania najlepiej.
Instalacja systemu przebiegła dość sprawnie. Musiałem tylko odpowiedzieć na kilka prostych pytań instalatora, takich jak nazwa użytkownika i hasło. Po instalacji natknąłem się jednak na jeden problem – nie wiedzieć czemu, mimo wyboru języka polskiego, interfejs KDE nadal wyświetlał się po angielsku. Musiałem więc ręcznie odkomentować linię #pl_PL.UTF-8 UTF-8 w /etc/locale.gen, a następnie ponownie wygenerować lokalizacje poleceniemsudo locale-gen.
Plasma Bigscreen
Bigscreen od KDE nie jest domyślnie instalowany wraz ze środowiskiem Plasma, jednak jego dodanie ogranicza się do zainstalowania jednego pakietu – plasma-bigscreen. Po instalacji pojawiła się jako zwykła aplikacja. Nic nie stoi jednak na przeszkodzie, aby ustawić Bigscreen jako domyślny pulpit. W takim przypadku będzie uruchamiał się automatycznie podczas startu systemu zamiast klasycznego środowiska KDE, wystarczy wybrać sesję uruchamiania KODI zamist KDE Plasma w ustaweniach.
Bigscreenem od Plasmy – podobnie jak KODI – możemy sterować wyłącznie przy pomocy pilota telewizora. Dzięki obsłudze HDMI-CEC teoretycznie nie musimy nawet sięgać po dodatkową klawiaturę czy myszkę.
Bigscreen pozwala też na tworzenie aplikacji internetowych. To nic innego, jak skrót do danej strony internetowej widoczny w systemie jako osobna aplikacja posiadająca własną ikonę. Dzięki temu przełączanie się między Netflixem, HBO czy YouTube jest zbliżone do obsługi KODI.
W trakcie dodawania skrótów nie obyło się oczywiście bez problemów – strony zamiast uruchamiać się w Firefoksie, każdorazowo odpalały się w małym oknie xwayland. Każdorazowe maksymalizowanie okna było strasznie upierdliwe, tym bardziej że nie dało się włączyć pełnego ekranu. Musiałem znaleźć sposób na otwieranie skrótów w przeglądarce Firefox. Żeby tego dokonać wystarczyło edytować utworzony przez Bigscreen skrót do aplikacji znajdujący się w ~/.local/share/applications/i zmienić linijkę odpowiedzialną za przeglądarkę. Pomogło i od teraz Firefox zaczął się otwierać w pełnoekranowym oknie. Jednak wciąż nie było to rozwiązanie, na jakie liczyłem, czyli pełen ekran z wysuwanym paskiem menu po najechaniu myszy. Firefox posiada jeszcze tryb kiosk – pełnoekranowe okno bez żadnych przycisków – ta opcja niestety też odpada, ponieważ nie daje dostępu do przycisku zamknij; w tym celu musielibyśmy użyć skrótu Alt+F4, a przecież chcemy unikać używania klawiatury. Żeby to uzyskać bez klikania w klawisze, musimy zmusić Firefoksa do otwarcia się z jednoczesną emulacją naciśnięcia F11.
Po krótkich poszukiwaniach natrafiłem w AUR na pakiet kdotool, który pozwala sterować oknami z poziomu skryptów. Po jego instalacji edytujemy skrót uruchamiający naszą stronę i zmieniamy linijkę odpowiedzialną za przeglądarkę na:
firefox "https://domena.com" & sleep 3 && \ kdotool search -c firefox | xargs -I{} \ kdotool windowstate --add FULLSCREEN {}
Następnie uruchamiamy skrót i po kilku sekundach okno automatycznie przełączy się w tryb pełnoekranowy. To rozwiązuje nasz problem pełnoekranowej aplikacji internetowej z wysuwanym menu.
Dochodzimy teraz do tego, co najważniejsze – działania serwisów streamingowych w przeglądarce – i ten cel został osiągnięty. Testowo sprawdziłem HBO, Netflix czy Tidal – wymienione serwisy działały prawidłowo a filmy i muzyka odtwarzały się płynnie. Nie dało się jednak nie zauważyć braku płynności intefejsu i problemów z wydajnością takiego rozwiązania. Dla porównania: przeglądarka Chromium czy Firefox we flatpakowej wersji instalowanej w LibreELEC jako dodatek działały zauważalnie lepiej.
KODI
Próba przesiadki na Plasma Bigscreen nie oznacza rezygnacji z KODI – główny bohater pozostaje ten sam, zmienia się „tylko" to, co pod maską. Jako że KODI to narzędzie multiplatformowe, możemy bez problemu zainstalować je na każdym systemie jako aplikację. Dla RPi 5 istnieje nawet osobny pakiet o nazwie kodi-rpi, posiadający wsparcie dla dekodowania sprzętowego. Dzięki temu,że w dalszym ciągu będziemy korzystać z tej samej aplikacji, to łatwo możemy przenieść backup konfiguracji z LibreELEC do KODI zainstalowanego w EndeavourOS.
Na przeszkodzie stanął jednak jeden drobny problem – osobiście korzystam z LibreELEC w wersji nightly (czemu? nie pytajcie), mającej na pokładzie KODI 22, a kodi-rpi dostępne jest w wersji 21, co powoduje niekompatybilność wsteczną. Niby nic wielkiego, w końcu można skonfigurować system od zera – jednak jest to kolejna przeszkoda na drodze.
Następny problem, jaki się pojawił, dotyczył działania modułu CEC w KODI – raz uruchamiał się poprawnie, innym razem potrafił wyrzucić błąd. Nie jest to dla mnie akurat duży problem, ponieważ i tak korzystam z bezprzewodowego pilota-klawiatury podłączonego po USB 2,4Ghz, jednak jak zauważyliście lista problemów zaczyna się nieco wydłużać.
Innym problemem było odświeżanie ekranu. W ustawieniach KODI widniało 120 Hz, jednak płynność ewidentnie nie przypominała tej znanej z LibreELEC – wyglądało to bardziej na 60 Hz. Niby szczegół, ale ta wizualna degradacja nieco kłuła w oczy. Podejrzewam, że ma to związek z problemami wydajnościowymi samego EndeavourOS na RPi.
Ostatnie i najgorsze zostawiam na sam koniec: brak wsparcia dla Widevine w KODI na ARM. W LibreELEC istnieją dodatki odpowiedzialne za odtwarzanie treści chronionych, są one jednak utworzone typowo pod LibreELEC. KODI na ARM musi obejść się smakiem, ponieważ nie odtworzy treści zabezpieczonych DRM. Wniosek jest następujący: na LibreELEC treści wymagające DRM działają w KODI, ale nie w przeglądarce. W duecie EndeavourOS z KODI jest dokładnie na odwrót. W związku z tym musiałem zrezygnować z dodatku Tidal2 na rzecz obsługi przez przeglądarkę – było to na tyle niewygodne, że po prostu się poddałem.
Niektórzy mogą powiedzieć, że przecież teraz mogę otworzyć każdy serwis w przeglądarce i będzie to prawda. Jednak moim celem było korzystanie w dalszym ciągu głównie z KODI, a przeglądarka miała służyć tylko jako fallback w sytuacji, kiedy KODI przestaje sobie radzić z jakimś serwisem – nie zamiast niego.
Finał eksperymentu
Sam system działał, jednak ilość problemów, które trzeba było rozwiązywać, niedopracowanie całości czy brak wygody wynikającej z korzystania wyłącznie z pilota przekonały mnie do powrotu do LibreELEC. O ile działanie samego KODI na EndeavourOS było podobne do doświadczenia znanego z LibreELEC, o tyle nie towarzyszyło mu już to samo uczucie dopracowania.
Problemem nie do przeskoczenia okazało się wsparcie dla odtwarzania treści chronionych w aplikacji KODI na ARM, a raczej jego brak. Wykluczało to używanie dodatków pokroju HBO czy Tidal2. Osobiście uważam wymysły typu DRM czy Widevine za raka toczącego dzisiejszy internet, jednak nie uciekniemy przed rzeczywiśtością - niemal wszystkie serwisy streamingowe korzystają z tego rozwiązania.
Podsumowując: Pełnoprawny OS na RPi jako HTPC? Jeszcze nie teraz – trzeba poczekać na dopracowanie, a być może na gotowe rozwiązanie oparte na Plasma Bigscreen z KODI, czyli potencjalnym odpowiedniku LibreELEC. Największym zaś wrogiem przejścia z LibreELEC na EndeavourOS okazała się architektura ARM, a konkretnie powiązane z nią problemy z DRM/Widevine.
Po moich wojażach jeszcze bardziej doceniłem dopracowanie samego LibreELEC oraz wsparcie deweloperów. Teraz rozumiem, ile pracy kosztuje uzyskanie stabilnego i działającego bez żadnych niespodzianek centrum multimedialnego.
Co dalej?
Być może błędem był wybór samego systemu – w końcu EndeavourOS na pewno nie należy do najbardziej dopracowanych systemów dostępnych dla RPi 5.
Następna rzecz w kolejce do przetestowania to będzie prawdopodobnie Raspberry Pi OS z doinstalowanym samodzielnie środowiskiem KDE. RPiOS Jako dopracowany system skrojony wyłącznie pod malinkę powinien radzić sobie nieco lepiej niż EndeavourOS.
Istnieje jeszcze inna opcja – przejście na sprzęt x86. Tak się składa, że posiadam akurat w domu chwilowo kurzące się Fujitsu Esprimo Q920. Sprzęt ten powinien poradzić sobie zdecydowanie lepiej niż RPi, przede wszystkim ze względu na architekturę, moc obliczeniową czy ilość pamięci. Jest to jednak dodatkowy komputer, który będzie funkcjonował obok, a nie zamiast RPi. Malinka działa u mnie przez 24h, a sprzęt taki jak Q920 włącza się dopiero wtedy, gdy pojawi się potrzeba jego użycia.
Wychodzi na to, że jednak próbowałem wycisnąć z tej maliny więcej soku, niż była w stanie z siebie dać. No coż, być może trzeba poczekać aż nieco dojrzeje i spróbować ponownie później.