2022. november 28., hétfő

Gyorskeresés

PostmarketOS , Nexus 7 2012, SXMO

Írta: | Kulcsszavak: postmarketos . grouper . nexus7 . alpine . linux . tablet . android

[ ÚJ BEJEGYZÉS ]

Hogy mik ezek? Az kiderül :D

A PostmarketOS egy Linux disztribúció, ami Alpine Linuxra épül, és a célhardverek nagyrészt mobileszközök. Az Alpine amúgy is sok beágyazott dolog alapja, mert nagyon minimál, nagyon kicsi, és amúgy funkcionális OS, elég gyakori RAM-ból működő cuccokon is, az ólajtón is elfut. Egy mezei Alpine telepítés x86-ra kb. 130-150MB. Nem méret. (Igaz, ebben semmi nincs, kapsz egy parancssort, esetleg megy a háló - de ugyanez Debianból pl. sokkal nagyobb, úgy egy nullával.)

A PostmarketOS, pl. a Pinephone-ok egyik hivatalos rendszere, többféle GUI-val, minden földi jóval. És még jó sok mindenre létezik ilyen-olyan készültségi fokban. Na ez utóbbi az érdekes. :) A Community support alatt levő eszközökön (elég kevés) elég jól megy már, és rengeteg cucc van Testing státuszban, ami bármit takarhat, leginkább azt, hogy a jól és a sehogyan sem közötti tartományban működik rajta a PostmarketOS. Nekem mákom volt, a Nexus 7 2012 tabletem (alias Grouper) egész jól támogatott PostmarketOS-el, pedig még csak community support sincs rá.

És hogy miért jobb ez, mint egy Android? Az Android főverzióit a Google elég sokáig támogatja, azaz ad ki hozzájuk biztonsági javításokat, azonban a Nexus7 2012-re a terméktámogatásnak már sok éve vége van. Cyanogenmod/LineageOS hivatalos támogatás a 14.1-el véget ért erre úgy öt éve. Az XDA-n AndDiSa csinál még hozzá AOSP alapú ROM-ot, amin elvileg rajta vannak a legújabb security patchek, de ez már helyből ott gyanús, hogy az a ROM 7.1 droid alapú, aminek pár éve megint csak véget ért a Google általi támogatása. Azt már nem is mondom, hogy ahogyan a többi 7-es droid, úgy ez is elég lassúka ezen a 4 magos Tegra platformon, meg egy giga RAM-on, főleg Play áruházzal. Nem mellesleg egy ennyire outdated dolgon pl. nem szívesen adom meg a Play fiókom.

A Postmarket pedig pont ezeket oldja meg. Ugyan hatalmas kompromisszumot kell kötni, de az én esetemben ez teljesen rendben volt. Az Alpine Linux ugyanis kb. a végtelenig updatelve lesz, főleg hogy a Nexus 7 2012 mainline kernellel megy. Tehát biztonság olyan szinten, hogy a szoftverhibák javítva lesznek, és nem fog szénné lassulni a cucc, pipa. Hogy friss böngészde lesz, az is.

A fő ok, amiért a többi elviselhető, hogy ez a tablet amúgy sem átlagos felhasználásban van. A fő területe e-book olvasás volt, de amúgy sem ezen az eszközön élnék; online cikkek olvasására, levelezésre, stb. lenne még használva. Tehát kb. soha nem látott volna online telefonálást, vagy Facebookozást. Amit meg csinálok vele, arra meg is felel a PmOS. (Ha meg lenne valami csillivilli új tabletem sok tízezerért, azon se nagyon csinálnék mást ezeken kívül, szóval nincs is ilyenem. És akkor arra is lenne mennyi support? 2-3 év?)

Hogy milyen macerákon kell a fentiekért cserébe átesni, az hamarosan kiderül majd :D


Megy ezen még a KDE Desktop is...

Települ (legalábbis a Nexus 7 2012-re)

A lényeg, hogy egyáltalán nem úgy kell feltenni, mint bármi mást, mivel a lehető legeltérőbb eszközökre létezik. Általában valamilyen módon ugyanúgy fel kell flashelni, mint egy ROM-ot egy telefonra, tabletre. Kivéve az x86 alapú eszközök, mert ezekre a legegyszerűbb feltenni egy sima Alpine-t, és felvenni a PostmarketOS tárolóit. A telefonon általában követelmény egy, az adott eszközre való recovery megléte.

A PostmarketOS letölthető a hivatalos és a Communtiy eszközökhöz, ezt csak fel kell flashelni. A Testing státuszhoz ez nem jár :D Van viszont egy kiváló, Pmbootstrap nevű script, ami legyártja nekünk a legfrissebb image-t. Az adott eszközhöz való image készítés pedig az eszköz Wiki-oldalán (ld. fent az eszközlistát) van leírva. Maga a Pmboostrap nem űrtechnika; beállíthatjuk a kívánt kiadást, a grafikus felületet, usernevet, jelszót, ilyesmi. Ezt szépen végigkérdezi. A telepítést általában egy image file-ba végzi, ami majd a telefonra jut a végén.

A Nexus7-re való telepítés kb. úgy néz ki, hogy (nyilván előtte beállítottuk a Pmbootstrap-et, így az rendben működik, és a tableten van egy TWRP is) (van egy remek videó is, amiben pont benne van az, ami a hivatalos leírásban nincs...)

- pmbootstrap init , végigmegy a leendő image beállítása

- pmbootstrap install --filesystem f2fs , itt már csak kb. a jelszót fogja megkérdezni, itt települ egy image-be

- tablet recoverybe, wipe minden partíciót, USB kábel bedug

- a recovery-ből reboot bootloader

- pmbootstrap flasher flash_kernel , felflasheli a kernelt

- tableten bemenni a recoverybe, wipe data, system, cache

- a számítógépen kiadni ezeket :
adb devices (ezzel megnézzük, megy-e a recovery felé az ADB kapcsolat)
adb shell (shell a recoverybe, innentől a recoveryn dolgozunk)
df (nem a szabad helyre vagyunk kíváncsiak, hanem hogy a /data és a /sdcard mountolva van-e, és hova?)

- A df kimenetéből látszik, hogy hova. A lényeg, hogy a /data és /sdcard partícióra kell majd tolni a tulajdonképpeni OS imaget. Ezt jegyezzük meg, melyik eszközön volt ( /dev/block/mmcblk0p9 lesz amúgy). Adjuk, ki, hogy :
umount /sdcard;umount /data (leválasztani a partíciót)
df megint, ha nincs /sdcard és /data, akkor rendben van
exit (kijövünk a tabletről, vissza a PC-re)

- pmbootstrap export , már újra PC-n

- adb push /tmp/postmarketOS-export/asus-grouper.img /dev/block/mmcblk0p9 (ezzel az ADB áttolja a tulajdonképpen oprendszert a tabletre, persze ha nem a 9. MMC partíción volt a /data, akkor azt kell megadni... (de a wifis Nexus 7 2012-n valószínűleg azon van)

- Készüljünk hideg élelelmmel, irgalmatlan lassan flashel :O

- reboot to system a recoveryből

Ezután el kell indulnia a tabletnek. (Amúgy a teljes rendszer ilyen 1GB körül szokott foglalni, Gnome/KDEmax. 2-t, persze még anélkül, hogy belaktuk volna.)

De mi legyen rajta?

Korábban említve volt, hogy lehet választani felületet, illetve hogy sokféle van.
Viszont nem mindegy, melyik eszközön mit választunk. Alapvetően Wayland és X alapú asztali(? de hát ez mobil :F :DDD ) környezetek vannak. Az alapvető eltérés az, hogy ami Wayland alapú (és ezek a jobbak) az vagy igényli a 3D kompozitálást, vagy ha szoftver renderrel eldöcög, akkor lassú. Meg van pár, ami teljesen asztali kivitel, pl. az XFCE.

Amiket lehet választani, a teljesség igénye nélkül

X11 alapú :
- XFCE (teljesen asztali környezet, egy 10" tableten talán értelmezhető)
- LXQT (ez is asztali)
- i3wm (tiling window manager... szögegyszerű)
- SXMO (ez is tiling, de meglepően jól használható)
Utóbbi kettő értelmes érintőképernyőn is. Asztali környezet tableten nagyon macerás, nagyon kicsi minden, nincs felugró billentyűzet support (xvkbd-al valami hasonlót lehet, de az se túl jó), nincs DPI kezelés, stb.
- Mate (ez is asztali, Gnome2 fork)

Wayland alapú :
- KDE (ez elmegy SW render módban is a csak X11-et támogató, meglepően hatékony különben, és tableten is jól használható - telefonra nem ajánlatos)
- KDE Plasma Mobile (mobil KDE felület, ez mindenre frankó, de csak működő 3D mellett)
- Gnome Mobile - tök jó kis cucc, de szoftver rendeben használhatatlanul lassú
- Phosh - Gnome alapú mobilos felület, nagyon jó, de csak 3D-vel működik jól
- Weston - nem egy működő környezet, csak demó
- Fbkeyboard, Console - terminál alapú UI-k, nincsenek grafikus ablakok

Működik az is, hogy egy Fbkeyboard/Console-ot telepít a user, és később húz rá asztali környezet. Jóval rövidíti a flashelés idejét :)

A telepítés pl. egy Samsung telefonra csak két flashelés, meg ugyanígy kipucolni a data, system, stb. partíciókat (de nem kell lecsatolni pl.). (Az S5-ömre próbáltam, amin szépen menne is minden GUI, csak már nem gyári rajta a kijelző, és egyszerűen nincs rajta kép mással, csak Androiddal :D Egyszerűen nem értem :D )

Hogyan lehet elérni?

Trükkös kérdés. A PmOS alapvető eleme, hogy felhúz egy USB hálózatot, így SSH-n elérhető a mobileszköz (a mobileszköz általában a 172.16.42.1 -en, vagy hasonló címen van). Így pl. telepíteni egyszerűbb egy normális billentyűzetről, mint a legtöbb esetben fapados alapkörnyezeten. Az Alpine csomagkezelője az apk, amivel egyszerű sudo apk add csomagnév és sudo apk del csomagnév jelleggel el lehet lenni (apk update a csomaglista frissítése és apk upgrade a full frissítés). Mondjuk nem olyan szofisztikált, mint egy apt, ami rengeteg mindenre gondol a user helyett; nem kérdez, hanem csinálja, amit mondtak neki :D (És apk list a csomaglista, grep-pel szépen kereshető :) Meg hát ízlés szerint feltesz a user GUI csomagkezelőt.)

Persze az apk működéséhez szükség van hálózatra; ha az asztali környezeten nincs hálózatkezelő (pl. az XFCE, LXQT, a tiling WM-ek...) akkor azt terminálból, a nmtui parancs karakteres menüjéből egyszerű felhúzni (az USB hálózat csak a tablet és a PC között él, azon alapból nem kap Internet-hozzáférést a tablet).


Végül SXMO került rá

SXMO

Jópár GUI kipróbálása után az SXMO-nál kötöttem ki (ez a mondat kb. egy hetet ölel fel... :D ). A XFCE és a LXQT jól működtek, gyorsak (már amennyire ezen a hardveren), de nehézkesen használhatóak; 7"-on, állítható DPI nélkül elég kicsik az UI elemek, jobb kattos menü nincs, az ablakok sem igazán ujjakhoz valók, stb. A KDE nagyon jó, de 3D nélkül gyenge hozzá az eszköz. Gnome, Phosh hasonló, hiába a Phosh az ajánlott. Maradnak a tiling WM-ek. Ezektől alapvetően fáztam, ugyanis a SXMO pl. gesztusvezérelt, bár van menüje...

Viszont a fapadossága ez esetben előny. Tablet méretben (7") minden pixel számít, és nálam amúgy is igen egyszerű felhasználás a cél. Tehát tudjak nyitni egy PDF/Mobi/akármi olvasót, böngészőt, stb. Ez meg megy.
Alapvetően annyit elég tudni, hogy fentről lefele húzva egyet a menü jön, lentről felfele a billentyűzet (és van rendes beépített billentyűzet, amihez méreteződnek az ablakok...!) , két ujjal a bal oldalon középről lefelé húzva pedig az aktuális ablakot zárja be. Aztán az ember pillanatok alatt felszívja a többi mozdulatot (pl. bal középről fel vagy le a hangerő, fent középről jobbra-balra fényerő...) A fizikai gombok is használhatóak, a hangerőgombok a menü és a billentyűzet, a bekapcsgomb terminál, többször megnyomva pedig más funkciókat is el lehet érni (pl. a képernyő kikapcolása 3x a bekapcsoló).

Van 4 workspace-ünk, amit bal oldalt felül lehet váltani, ezekre lehet ablakokat nyitogatni. Az ablakkezelő magától rendezi az ablakokat, az elrendezések válthatóak a workspace lista mellett. Jobb oldalt felül a mobil és wifi térerő, óra, stb. van. Mivel a 7" elég kicsi, nekem elég az 1 ablak/workspace, mind teljes képernyőn.
A menüben amúgy rendes érintőkijelzős módon lehet böködni az elemeket. Van főmenü (System menü), alkalmazásmenü, meg script menü, amiben a saját scriptjeink lehetnek.

A rossz hír az SXMO-val kapcsolatban, hogy míg a többi környezet hellyel-közzel működő állapotban kerül fel, a SXMO egyáltalán nem biztos, hogy out of the box működik. Az egész környezet shell scriptekre (és a dwm ablakkezelőre) épül, és rengeteg eszközre egyszerűen még senki nem írta meg a scripteket (mert mondjuk egy fejlesztőnek sincs ezerféle telefonja :D ) . Egyszerű kideríteni, hogy mi a helyzet : ha van Deviceprofile a cuccodhoz, vagy szerepel a supportált listán, akkor azt már valaki belőtte.
Na, a grouper-hez (a Nexus 7) nem volt :D Se a gombok nem működtek, se semmi.

Némi Gitlab-os hiszti után leírták a fejlesztők, hogy egy Deviceprofile file-ra lesz szükség, ami az eszközre jellemző. Ez gyak. egy bash script, ami alapján az SXMO a gombokat kezeli.

Ez a Nexus 7 2012-re ennyi :

#!/bin/sh
export SXMO_POWER_BUTTON="0:168"
export SXMO_VOLUME_BUTTONS="0:130 0:131"
#export SXMO_TOUCHSCREEN_ID="6"

(Ezek a gombok GPIO címei, ami persze a SXMO dokumentációjában sehol nincs leírva, hogy mi is kéne oda - mondjuk nem is minden eszközön GPIO-n vannak ezek, de azért valami útmutatás jó lett volna... A libgpiod csomagot felrakva lesz gpioinfo parancs az Alpine-n, aminek a kimenetében ott lesznek az egyes gombok nevei (ha elneveze őket a tablet gyártója), és címei. Van, ahol két külön hangerőgomb van, és van, ahol az érintőt is meg kell adni pl. az xinput parancs kimenetéből kiszedve... Nekem nem kellett, az érintő működött magától. Érdemes a többi, már létező Deviceprofile-t nézegetni.)

A Deviceprofile-t a megfelelő könyvtárba kell lerakni : pl.
/usr/bin/sxmo_deviceprofile_asus,grouper.sh , ahol az asus,grouper az eszköz gyártója,eszköz kódneve formátumban van megadva.
Ezzel még csak a fele van meg, mert a gesztusok nem jutnak el az SXMO-hoz az érintőről. Mivel nincs input handler script a tablethez, kellene írni egyet... És ugyan tudok valamennyire scriptelni, ennyire nem...! :D
Viszont ez a script már nem annyira eszközfüggő, mivel csak az érintőről jövő eseményeket dolgozza fel. Nosza, próba a xiaomi,beryllium.sh input handlerrel (a /usr/share/sxmo/default_hooks/xiaomi,beryllium/ könyvtárból másolni a sxmo_hook_inputhandler.sh scriptet a /usr/share/sxmo/default_hooks/asus,grouper/ könyvtárba (ezt létre kell hozni)). És működik! Mellépakoltam még a "one_button_e_reader" postwake és suspend scriptjeit, így a képernyő lezárása is működik.

Van még mit reszelni ezeken, pl. a képernyő kikapcsolása nagyn helyesen tényleg csak a képernyőt kapcsolja ki (3 power gomb nyomásra), minden más megy tovább, és a default idle daemon ténykedése miatt előb-utóbb mélyebb alvásba megy a tablet, ahol kifagy. (Ez viszont nem a Xiaomi-s input handler hibája.)
Workaroundként a Xiaomi-s inputhandlerben átírtam a case-s elágazásban a Power gombra 3 gombnyomás eseményét a suspend scriptre, így most egy nyomásra (???!!! de hogy miért) elsuspendel, és rendben fel is éled kb. 1mp alatt. (Képernyőzár nincs, implementálva se nagyon még az SXMO-ban, meg szükségem sincs rá ezen az eszközön.) Mondjuk a suspend előnye annyi, hogy így nem fogyaszt, ha nincs használva - ilyen mód pl. sem a gyári szoftverben, sem a Lineage-ben nincs. A forgatás sem tökéletes még, de az is aközött a pár probléma között van, amit a fejlesztőknek jeleztem a Pmaports Gitlab-on :D Ez még mindig bőven olyan, amivel együtt tudok élni.

Megéri-e?

Nézőpont kérdése. Az én speciális felhasználásomra, egy olyan cucc esetén, aminek már működnie sem lenne szabad, nem hogy up to date OS-t futtatva használatban lennie, simán. (Jó fogyasztó már simán elhasznált volna 2 másik új táblát, nem ám megveszi ezt bagóért vagy 5 éve, és használja tovább... :DDD ) A beletolt idő? Ha ismerem a felsorolt UI-kat, akkor kevesebb kellett volna (pl. nem rakom fel az összeset kíváncsiságból :DDD ), de egy használható új Android tablet árát így sem teszi ki órabérben. És asszem ez az első olyan tabletem, amin friss OS van :DDD

Persze ha reálisan nézem, nagyon nem való mindenkinek a PostmarketOS, főleg nem egy Community support alatt álló eszközön. A Pinephone-król is vannak érdekes hírek bugokról, de ha minden igaz, az egész projekt célja inkább életet lehelni olyasmikbe, amiken az Android támogatásnak már vége. Erre viszont teljesen jó.

Amit bukik az eszköz
- Nincsenek Android appok, Linuxra meg sok minden nincs, ami Androidon alapcucc
- Sok szenzor nem működik az egyes eszközökön
- Asztali környezettől függően nehezebb kezelhetőség (bár ha van egy Phosh, Gnome Mobile, KDE Desktop, vagy egy Plasma Mobile... akkor nem)
- Eszköztől függően lehetnek bugok, bár az is benne van, hogy ezek megoldhatóak - és na, azért ez nem egy nagy pénzből fejlesztett cucc, annak is örülni kell, hogy valakik ezen dolgoznak.
(Esetleg a telepítés macerája, de mondjuk egy Android ROM csere is el tud fajulni ;] )

Amit nyer
- Biztonságosabb, mivel up to date lesz az OS hosszú távon
- Szoftveresen egy asztali Linux-szal egyenértékű lesz, persze a hardver korlátain belül (ld. fent, és Linuxon is vannak dolgok, amik nincsenek Androidon :D )
- Szabadabban túrható
- Gyorsabb (ez azért eszköztől és GUI-tól is függ - de ha csak azt nézem, hogy ezen az asztali Firefox fut elfogadhatóan, míg Androidon az Opera Mini volt nagyon lassú (ennél lassabb), akkor...)
- Sokoldalúbb, pl. teljes értékű, IP alapú kameraszerver építhető egy régebbi telefonból... (ez megoldható egy outdated Androidon is, amíg arra nem gondolunk, hogy pl. távolról hozzá kéne férni az eszközhöz...)

Nekem mindenképpen pozitív, hogy egyáltalán létezik ilyen OS, mert megfelelő hozzáértéssel bőven használhatóvá lehet tenni olyan hardvereket, amik másképpen csak az e-hulladék mennyiségét növelnék. (És nem költeni el egy rakás pénzt olyasmire, amit nem használ ki az ember.) Nem is az a kérdés, hogy jobb-e, mint az Android (mert szigorúan nézve "nem jobb"), hanem maga a válasz az, hogy ez az élet az Android után.

(Persze említsük meg, hogy a PmOS-en kívül akad még pár, mobileszközöket célzó projekt, de egyik sincs ennyire a régi hardverekre fókuszálva, és sokkal kevesebb eszközt támogatnak.)

Update :
Hasznos oldal, pl. a 2D gyorsítás beröffentésével, a cpufreq belövésével, stb. Nexus 7-hez.

Update, SXMO specifikus :
- Kisebb kijelzőkön az asztali cuccok megnyitás/mentés ablaka kilóghat a képernyőről.
export QT_AUTO_SCREEN_SCALE_FACTOR=1 export QT_SCALE_FACTOR=0.6 sor a megoldás a home-odban a .config/sxmo/xinit file-ba. (X11-en legalábbis)
- .config/sxmo/userscripts a userscriptek könyvtára a home-odban. Ha nem létezik, hozd létre. Amit ide teszel, az megjelenik a userscripts menüben. A szokásos shell scriptek hellyel-közzel működnek, bár az Alpine ash-t használ bash helyett. Nekem volt bajom azzal, hogy a "nyiss új terminált és ott futtass scriptet" műsort két menüponthoz másképpen kellett hívni :D
- A Nexus7 a gyári screenoff scripttel fagyott, ha hosszabban ott volt hagyva (lemegy mélyebb energiatakarékossági állapotba idővel). Kiirtottam a nagy részét, csak a dpms off maradt, így jó.
- X11-en van asztali böngészőnek a Firlefranc, meg talán a Króm. Midori, Surf, Netsurf, felejtős. Vagy el se indulnak, vagy nincs benne sok köszönet. Mondjuk a FF legalább jól megy a firefox-mobile-config csomaggal.
- A Networkmanager bugos, nem szereti az OpenWRT routereimet. Kénytelen voltam wpa_supplicant-ot használni, egy kis scripttel szépen csatlakozik. (Ez a NM bugja lehet, mert ugyanez a tablet Androiddal nem csinálta, másik wifi firmware-el nem csinálja, csak a Networkmanager appjai nem csatlakoznak, de van, amihez meg tud...) (A Networkmanager bug megoldása is ott van a fenti linken, de még nem teszteltem.)

Hozzászólások

(#1) cinemazealot


cinemazealot
addikt

Hm... tetszik. :R

#visszatalálóshsz

(#2) hcl válasza cinemazealot (#1) üzenetére


hcl
félisten
LOGOUT blog

:R

Veszek _hibás_ LCD monitort,fényképezőgépet, objektívet, routert ---- Mutogatni való hater díszpinty

További hozzászólások megtekintése...
Copyright © 2000-2022 PROHARDVER Informatikai Kft.