Alpine Linux telepítés mindenféle low-end dologra

Alpine Linux

Miután pár éve leesett, hogy az Alpine valami lehetetlenül alacsony erőforrásigényű, elkezdtem ezt tenni mindenre, amin nincs elég erőforrás :D (2 meg 4GB RAM-os gépek, 1,4 meg 1,8GHz-es Atom, meg Z-s procikkal...) Azon kívül, hogy meglepő dolgokra képes, elég macera telepíteni (csodák nincsenek, egy ilyen minimál cuccot magadnak kell összerakni). Szóval jól jön hozzá egy leírás, akár magamnak is, de akkor már miért ne olvashassa mindenki? (Persze némi, felhasználóbarátabb disztrón szerzett tapasztalat muszáj.)

Telepítsünk

A konkrét telepítés eleje minden eszközön más. Meg kell oldani, hogy bebootoljon a gép valamiről, amin az Alpine van. PXE pont nem egyszerű Alpine esetén, bár mondjuk nem is lehetetlen. Nekem nincs is megoldva az itthoni PXE szerveren, mert jellemzően azok a low-end eszközök, amikre rakom, úgysem tudnak hálózatról bootolni, és/vagy nincs is bennük vezetékes kártya.


A live környezet indulása, és bejelentkezés

Ott tartunk, hogy a "live" környzezet elindult (jó esetben nem kellett hozzá EFI-t masszírozni, de van, amin kell), és van egy prompt. Innen a setup-alpine script továbblendít minket (viszonylag hosszadalmas, de különben jól működik, szépen összelapátol egy minimál rendszert a háttértárra, ami jó esetben el is indul). Érdemes felvenni a community repo-kat (alapvetően én az edge ágat szoktam feltenni Alpine-ból, a legtöbb esetben jól működik, nincsenek olyan megepetések, mint egy Testing/testing Debian-on, viszont rolling, szóval nem kell verziókkal, meg főverzió upgradekkel szórakozni).
A csomagkezelő az apk, telepíteni az apk add csomgnév paranccsal lehet, az apk update;apk upgrade egy normál frissítést csinál. A szolgáltatásokat az OpenRC kezeli, a sima "service" parancs helyett az rc-service használatos szolgáltatás indítására, leállítására, ennyi alapvető különbség van a systemd-s, Debian-szerű disztrókhoz képest. (Gondolom Arch és egyebektől nem tér el annyira :B .)

A setup-alpine pár képen :

Grafikus felület

Szóval ott tartunk, hogy van egy gép, azon egy OS, ami login promptig bebootol, és jó esetben háló is van. Innentől kezdve még egy csomó minden kell egy GUI-s rendszerig (ha az a cél, persze). Nagyjából az fog következni, hogy én mit szoktam csinálni ehhez. (A GUI XFCE4 lesz, mert ezek jellemzően gyenge gépek, és az fut értelmesen. Lehet persze minimálabbat, fullosabbat is. Ha felveszed a PostmarketOS repóit, akkor lehet akár SXMO is, ami brutál minimál, és tényleg 0 a fogyasztása, kérdés, megéri-e? Érintőre az XFCE mondjuk nem a legoptimálisabb, de használható...)

Biztos, hogy lesz valami, ami kimarad, sry :)

A bejelentkezés után a legegyszerűbb a setup-desktop script, ezt a parancsot kiadva fel fog húzni egy egész jól belőtt környezet, a választott ablakkezelővel, ami esetemben XFCE, mert az már használható, de nem kér sokat. (Bővebben itt.) Persze nem lesz semmi kényelem, angol billentyűzet, stb.


setup-desktop - a végén visszakapod a promptot, és mehet is a reboot


És így néz ki a felrakott XFCE4

Érdemes feltelepíteni egy csomó mindent (előtte su-val menj fel rootba, mert sudo még nincs) :
apk add sudo mc xfce4-screensaver adw-gtk3 adwaita-xfce-icon-theme elogind polkit-elogind gvfs udisks2 gvfs-smb gvfs-fuse fuse-openrc pciutils pulseaudio bluez networkmanager wpa_supplicant vlc-qt gimp xfce4-pulseaudio-plugin pavucontrol samba lm-sensors acpid acpid-openrc acpi-utils acpi mupdf xpdf libreoffice tlp firefox font-terminus font-inconsolata font-dejavu font-noto font-noto-cjk font-awesome font-noto-extra ffmpeg fuse dbus udisks2 samba xfce-polkit network-manager-applet networkmanager-wifi xfce4-whiskermenu-plugin wpa_supplicant xfce4-taskmanager btop thunar-archive-plugin xarchiver pm-utils touchegg rar unzip

...meg még ennél is több mindent, majd amikor leesik, hogy kell :D

Alapdolgok (sudo, videodriver, háló...)

A sudo működéséhez a useredet hozzá kell adni a wheel csoporthoz. Azaz rootként kiadni, hogy :
adduser usernév wheel
És kiszedni a kommentet a /etc/sudoers -ből a wheel-t engedélyező sor elől.
Ez nem kötelező, de kényelmesebb így :) Reboot utána, mert logoff ilyenkor még nincs.

(A Fuse működéséhez érdemes kiadni egy rc-service fuse start;rc-update add fuse parancsot, ezután kell majd működnie a hálózatböngészésnek az XFCE filemanagerből, és a megosztásokon levő file-ok megnyitásának is.)

Ha Intel videokártyád/IGP-d van, és nincs kép, akkor
apk add xf86-video-intel linux-firmware-intel intel-ucode linux-firmware linux-firmware-i915

Ez kellhet, ha Realtek háló vagy wifi van a gépben
apk add linux-firmware-rtlwifi linux-firmware-rtl_bt

Kelleni fog egy elogind a futó szolgáltatások közé, hogy normális sleep/kijelentkezés/stb. legyen - az elogind-t korábban feltette a sok mindent telepítő APK-s parancs :
rc-update add elogind ; rc-service elogind start

Képernyő-billentyűzet

Ha érintős, vagy egyéb okból billentyűzet nélküli gépre telepítünk, akkor jól jöhet egy képernyő-billentyűzet. A legjobb erre az Onboard.
Tehát sudo apk add onboard

A beállításai között elég könnyű megadni, hogy szövegmezőre kattintva feljöjjön, vagy pl. egy tálcaikont jelenítsen meg, és arra kattintva jelenjen meg. Magam részéről érintős gépeken inkább ez, mert nem ugrál fel, és tűnik el, ha kell, ha nem.
Ha a bejelentkező képernyőn is kell, akkor a /etc/lightm/lightdm-gtk-greeter.conf file-ban, a [greeter] szekcióban (a végén van) meg kell adni a keyboard= -nél az Onboard-ot, pl.
keyboard=onboard -e -t Droid
Ez a Droid témával indul, ami kb. az egyetlen elfogadható :D Sajnos nem jelenik meg alapból, hanem a XFCE login képernyőn az akadálymentesítési lehetőségek között kell kattintani, hogy szeretnénk on-screen keyboard-ot. (Nem láttam olyat, hogy automatikusan induljon. :( )

Networkmanager

Lehet szeretni, vagy nem szeretni, azért jól jöhet egy GUI-s wifi-csatlakozós kis alkalmazás. (Persze van Wicd és hasonlók is.)
A Networkmanager, Networkmanager-wifi és a wpa_supplicant csomagokat korábban feltette a sok mindent telepítő parancs. Nyilván ezek akkor értelmesek, ha pl. van Wi-Fi adapter a gépben.
A /etc/NetworkManager/NetworkManager.conf -ba :
[main]
dhcp=internal

[ifupdown]
managed=true

[device]
wifi.scan-rand-mac-address=yes
wifi.backend=wpa_supplicant

Aztán betenni a szolgáltatások közé, és elindítani a Networkmanagert :
rc-update add wpa_supplicant default;rc-update add networkmanager default #ezek elindulnak majd boot közben
adduser usernév plugdev #ezzel bekerül a plugdev csoportba, hogy megfelelően kezelje a csatlakoztatható eszközöket
rc-service networkmanager start;rc-service networkmanager start #el is indítjuk, hogy ne kelljen reboot

VLC

Ha csak simán feldobsz egy VLC-t, az nem fog menni (azaz : nekem nem ment egyszer sem). Vlc-Qt.
apk add vlc-qt

Érintőképernyő vs jobb katt

Az XFCE egyik hiányossága, hogy ez nincs normálisan lekezelve. Mondjuk a Linx 1010 tabletemen ez se megy, de alapvetően láttam már működni, szóval PeterCxy uinput-ra épülő progija (evdev-rce) jól jöhet (az érintő hosszan nyomására jobb kattot emulál). Vagy Touchegg, de az inkább ujjhúzós műveletekre jó, viszont be lehet vele lőni a 2 ujj=jobbkattot is, ami legalább valami, ha nem is kényelmes (update : elvileg kijavította az uinput-os progit egy jótét lélek, a linken már egy fork van). Firefoxban amúgy működik alapból is a hosszan nyomott képernyő jobb kattként.
Ami még működik : DISPLAY=:0 gsettings set org.gnome.desktop.a11y.mouse secondary-click-enabled "true"
Ez ugyanazt csinálja, mint az evdev-rce, persze be kell tenni valamelyik login scriptbe. Két ujjal egyszerre kattintva érintőképernyőn jobb kattot szimulál a feljebb levő ujjra. Később kiderült, hogy ez sem jó, a Touchegg 2 ujjasa ment közben, arra hittem, hogy az a11y beállítás működése :D
A poén, hogy az Xfce filemanagerével (Thunar) egyik sem működik normálisan :D Tehát az asztalon két ujj OK, máshol két ujj OK, filemanagerben meg NEM :W Azaz : filemanagerben is jön a helyi menü a jobb kattra, de ha egykattintós filemegnyitás van (ami érintőn kényelmes), akkor nyitja is, ha meg duplás, akkor nem lehet kettőt kattintani semmin, mert egyszerűen nem ismeri fel, hogy a két gyors nyomás egy duplakatt :D . Kell feltenni egy Nemo-t (ami sajnos magával ránt némi Cinnamon-os függőséget), de abban normálisan működik a duplakattos megnyitás + kétujjas jobbkatt, meg sokkal többet is tud.

Képernyőforgatás és érintő

Az XFCE tud képernyőt forgatni, de ez csak a dolog fele; az érintő ettől még az eredeti pozíció szerint fogja érzékelni az érintéseket. Az érintő transzformációs mátrixát kell forgatni, hogy az érintések is "elforduljanak", erre írtam két faék scriptet. Ezek nyilván nem általános érvényűek, sem az xinput eszköz, sem a transzformációs mátrix kinyerése nem feltétlenül ugyanígy zajlik. Nekem Linx1010 tableten az xinput parancs kimenetében szereplő touchscreen azonosítója kellett, méghozzá azé, amelyik nem UNKNOWN... ennek megfelelő favágó grep és cut-al ki lehet nyerni az érintő azonosítóját. Az xrandr elforgatja a képet, az xinput-tal pedig beállítható a transzformációs mátrix. Lusta módon a két scripthez két ikont tettem az asztalra, a tablet az idejét úgyis portrait állásban tölti, ritkán kell normálra váltani.

landscape.sh
#!/bin/sh

#landscape (normal)
TOUCH=$(DISPLAY=:0 xinput|grep FTSC|grep -v UNKNOWN|cut -d'=' -f2|cut -c1)
xrandr -o normal
xinput set-prop $TOUCH --type=float "Coordinate Transformation Matrix" 0 0 0 0 0 0 0 0 0

portrait.sh
#!/bin/sh

#portrait (left)
TOUCH=$(DISPLAY=:0 xinput|grep FTSC|grep -v UNKNOWN|cut -d'=' -f2|cut -c1)
xrandr -o left
xinput set-prop $TOUCH --type=float "Coordinate Transformation Matrix" 0 -1 1 1 0 0 0 0 1

Képernyő ki-be

Ha valami mobileszközön fut az Alpine, akkor igény lehet a képernyő ki-be kapcsolására. Szintén script, nekem az xset dpms force off parancs bejött, ikon a desktopon. A következő érintésre visszakapcsolja a kijelzőt... :D
screenoff.sh
#!/bin/sh
xset dpms force off

SSH, VNC elérés

SSH : sudo apk add openssh-server, és már lehet is csatlakozni
VNC : sudo apk add x11vnc
A VNC szerver pl. ezzel indítható, akár SSH-ról bejelentkezve :
sudo x11vnc -auth /var/run/lightdm/root/:0 -bg -display :0 -forever
Nyilván ezen nem lesz se jelszó, se semmi, de kezdésnek jó lesz. (Pl. érintős gép telepítése könnyebb úgy, hogy amint van háló és SSH, már rendes billentyűzetről és egérről macerálja az ember.)

Tuning

Nem úgy tuning :D Az ondemand governor gyenge gépeken érezhetően reszponzívabbá teheti a dolgokat. Tehát innen az "Automatic configuration" rész kell. (Az alapértelmezés schedutil ugyanis.)

Finomhangolás

Mivel alapvetően olyan dolgokról van szó, amikre épeszű ember el sem kezd már up to date OS-t telepíteni, érdemes kicsit tuningolni.

- XFCE kompozitálás kikapcs. Teljesen. Utána reboot, és akkor nem lesznek grafikai hibák.
- Esetleg a hinting is... :DDD :O ;]
- h264ify a böngészőbe (alapvetően Firefox)
- Ha nem megy a Youtube, akkor a hangjavító- és a "mozis világítás" effekteket is érdemes kikapcsolni, ezek nélkül megtáltosodik (a h264ify mellett, persze ;] )...
- uBlock, Ghostery
- Helyspórolási tippek a #9-es hozzászólásban Fatpingvintől
- Paranoia esetén ahogyan @Rowon is felvetette, lehet SELinuxot, Apparmort is - meg ha van erőforrás

Végszó

Lehetne még ezer apróságot írni, amik hasznosak, illetve nem egyszerű kitúrni őket, de ezek szinte mindig az adott (adott esetben valami borzalmas kókány) hardver hülyeségei (és szinte mindig valamilyen csomag hiányzik).
Viszont ha egyszer felszenvedi az ember az Alpine-t valamire, akkor egy lehetetlenül minimális HW igényű, alapvetően problémamentes OS-t kap. A legszemléletesebb, hogy egy használható rendszer GUI-val kb. 2,5GB, egy full-fullos meg 5. Egy nem hivatalos tesztemen (Core2 laptop 4GB RAM-mal) pedig úgy alakultak a viszonyok, hogy egy Ubuntu éppenhogy elszenvedett egy FullHD videót böngészőben, egy jól összerakott Debian már szépen vitte, de 100% proci mellett, egy kevésbé fullextra Alpine pedig 60% körül játszotta ugyanazt. RAM fogyasztása is olyan, hogy egy 2GB RAM-os tableten még lehet vele netezni. Szóval ha tényleg valami nagyon gyenge hardverre kell, akkor jó választás.

Még van hozzászólás! Tovább