Nehéz összehasonlítani, mert a Weston-t használom, ami egy kicsi program a Gnome-hoz, vagy akár az XFCE-hez képest is.
Gyors a rendszer, egy Raspberry PI 4B 4Gb-os lapkán sem rossz.
Na most gyorsan el lehet oda jutni, ha valaki ezt elkezdi megnézni, hogy akkor van ennek csak értelme, ha valaki:
- Ismerkedni akar ezzel
- Valami embedded dolgot csinál, kis/egyedi hardware-en kell futnia.
Egyébként nagyon nagy szívás, hogy fordítgatni kell, layereket vadászni, tehát nehezebb vele elindulni. Meg 1000 best practice lehet, amit meg kell ismerni. Egy-egy apró beállítással több órát küzdöttem (mert többféle módon meg lehet csinálni), és kiderült, hogy ki van vezetve egy opcióba, pl csak a local.conf-ba kell egy sor. :)
Másik példa:
Oké, hogy van egy alap rendszerem, de hogy teszek rá fel bármit is? Hiába van apt-om, rpm-em, vagy pkg-m, nem tudok rá felerőltetni pl egy böngészőt csak úgy, pl a C library verziója is eltérhet, meg kismillió függőség lehet, ami kell. Ilyenkor újabb csomagok/rétegek, stb... ez egy elég bonyolult dolog.
Én a fentit úgy oldottam meg, hogy kitaláltam, hogy flatpak-ozok. Ekkor derült ki, hogy ezt nem is én találtam ki, mert eleve embedded rendszerekben használják ezeket a sandbox-os csomagokat. A flatpak-hoz most úgy látom (de nem biztos, hogy jól látom), hogy ahhoz három éve nem commitoltak, és a yocto oldal is figyelmeztet, hogy ez valószínűleg egy régebbi, elhagyott layer.
Majd megtaláltam a SNAP-et (az Ubuntus-t). Az Canonical SNAP layere pöccre fordul, és működik, a yocto disztribúciómba betettem a meta-snapd réteget (plusz a beállítások), és snap install -lal fel tudtam tenni pl a Brave böngészőt.
Közben a SNAP-pel a szívás:
- Ugye itt sandbox-ban (readonly squashfs-sel+konténerben) futnak a programok. Interfészekkel csatlakozik egy-egy alkalmazás a host géphez, hogy pl legyen hang, elérje az USB drive-ot, stb... Telepítéskor ezeket a snap megkeresi, és összekapcsolja a környezettel.
- Egyrésztől ez tök jó, mert kb úgy futhat egy alkalmazás, ahogy Android alatt is, nem látják egymást, biztonságos, immutable csomagok, atomi update, stb... Nincs az a probléma, ami embedded linux alatt lehet, hogy Te fordítottad, és minden-minden függőség hiányzik.
- De fel kellett tennem a pulse-audio-t a Yocto-ba, mert a SNAP, és a Brave ahhoz akart kapcsolódni, egyébként nem volt hang. Az ALSA-val simán nem működött, ami alapból a Yocto-ban volt (mindenféle plusz beállítás nélkül)
Tehát ott tartok, hogy van egy Yocto rendszerem, de benne van minden, ami ellen ágálni szoktak itt az emberek, meg bloat-osnak mondják, meg hogy a Canonical elrabolta a linuxot, és eltéríti, stb...: systemd, pulseaudio, canonical snap. Közben az a zavarba ejtő dolog, hogy ezt embedded linux területen nyomatja pl a Canonical (is), és szerintem ezt sokan félreértik, mert én úgy látom, hogy itt még van is értelme.
Gondolatok még a snapről: Ezt zseniálisan csinálta a Canonical, egy pillanat alatt rávilágított azzal, hogy a SNAP yocto réteget megcsinálták, hogy lehet hogy nekem az Ubuntu Core kellene, nem a Yocto, ami szintén embedded/IOT-s fejlesztésekhez van.
Én meg most kicsit zavarban vagyok, hogy nem is tudtam, hogy a systemd, pulseaudio, snap, és társainak pont hogy IOT/embedded developmentnél is van értelme, és erre is használják.
Tehát nekem a fő cél ezzel főleg a hobbizás és a tanulás, egy kicsit a területemtől eltérő ismeretek szerzése volt. Érdekes ebbe így belecsöppenni. Én nem annyira gyakorlati hasznot keresek vele, de el tudom képzelni, hogy csináljak pl most akár egy TV-BOX-ot (ami nem android, de fut rajta a YT, Moonlight (game streaming), Plex (szintén böngészővel), stb... Azt is el tudom képzelni, hogy home automatizációban felhasználjam. De közben én teljesen más területen vagyok (más jellegű fejlesztés), ennek a hobbin kívül nekem más előnye nincs.
Most kb van egy 20 pontból álló listám, amit ki kellene próbálni még a Yocto-val, és meg kellene nézni ezt az Ubuntu Core-t.
Gyakorlati tapasztalatok egyébként az RPI4-gyel: úgy hogy leszedtem a felbontást 4k-ról (TV-n néztem) 1920x1080@60hz-re a youtube videók (a nagyok is) teljesen jól mennek 720p60hz-val, amit a youtube választott ki, mint optimális felbontást ebben a környezetben (RPI4B 4Gb).
A YT videó nézés közben kereken 1Gb memória van használatban (mindenestől), ami azért elég jó.
A snappel, pulse-audióval, stb.. ki tudom egészíteni majd a leírást, ha esetleg valakit érdekel.