purnukka

Koodinsekaisia kirjoituksia virityksistä ja kokeiluista.

Debianista Hattupingviiniin

Tähän syksyyn asti olin vankkumattoman tyytyväinen Debianin käyttäjä useiden vuosien hyvien kokemuksien jäljiltä. Nyt alkoi kuitenkin jurppimaan pakettien päivittymättömyys ja etenkin X11:n haasteet moninäyttösetupissa. Haluaa Waylandia ja hattulinuxia, nyt heti!

Toimituksen huomautus: Tästä postauksesta tuli nyt jonkinlainen sekasikiö asennusvaiheiden dokumentointia, skriptien esittelyä ja kaikkea muuta ajatuksenvirtaa. Tämä ei myöskään ole mikään yleispätevä Liinuks-ohje...riko itse oma koneesi ja lue omalla vastuulla!

Oi ihana rakas Debian.

Eri DPI:n näyttöjen yhdistelmän takia koko työpöytä renderöidään kaksinkertaisella resoluutiolla ja skaalataan alas. X11:n oikut ja wanha Java aiheuttavat Tekkit Classicissa shiftklikkausongelmia. Tietyt AppImaget ja softat eivät aukea tai käänny wanhojen kirjastojen takia. Ja pakettikirjastossa kaikki on kyllä enemmän ja vähemmän vanhaa...

Ja tietysti iänikuiset haasteet saada Firefox käyttämään dGPU:ta kiihdyttelyyn :') Siis tässä pari ärsyttäneintä asiaa hyvin palvelleen Debianin viimeisiltä ajoilta.

Vanhassa setupissa kaksi FullHD-näyttöä piti renderöidä kaksinkertaisella resolla jotta kolmas korkeampiresoinen näyttö piirtyi natiivilla resoluutiolla...
Vanhassa setupissa kaksi FullHD-näyttöä piti renderöidä kaksinkertaisella resolla jotta kolmas korkeampiresoinen näyttö piirtyi natiivilla resoluutiolla...

Oikeastaan jo noin viimeisen vuoden ajan olin haaveillut päivittäissetupin päivittelystä. GNU/Linuxia olen kuitenkin ylipäätään käyttänyt päivittäisajossa jo vuodesta 2018, mutta Debian on ollut vankkana sotaratsuna alusta asti. Windows on aina ollut asennettuna toisella kovolla joihinkin välttämättömiin lisätoimintoihin (tietyt pelit, tietyt softat ja tällä masiinalla myös natiivi Nvidian dedikoidun GPU:n virtaohjaus akkukäytössä).

Asentelinpa sitten huvikseni opiskeluissa mukana kuskaamaani pikkuläppäriin Fedora KDE:n joskus kesällä. Aiemmin samalla masiinalla olin ajanut Windowsin rinnalla muun muassa Linux Mintiä, mutta se ei pitkästä Debian-taustasta huolimatta tuntunut omalle. Fedorasta sen sijaan olin lukenut paljon hyvää, ja kokonaisuus ainakin vaikutti paljon viimeistellymmältä, etenkin jos haluaa käyttää tietokonettaan eikä vain konffailla rikkinäisiä palikoita joka välissä.

Ja ikään kuin sattumalta päädyin sitten myös käyttämään tuota Fedoraa päivittäisissä hommissa. Nimittäin:

  • Selainpohjaiset opiskelusysteemit (Moodlet, Office-pilvi, sähköposti) eivät sen erityisempää vaadikaan
  • Matikkasoftat (Matlab, Octave, Maxima, L'Math, jne.) toimivat pingviinillä vallan mainiosti, osa jopa täysin natiivina. Ja saipa myös TI-Nspire CX CAS -opiskelijaohjelmiston pelaamaan Winellä.
  • LaTeX-setti (texlive + TeXStudio) ovat Linuxilla kuin kotonaan, pelaavat helpommin kuin Windowsilla
  • Koodaussetit, kontit ja virtuaaliympäristöt tuottavat Linuxilla huomattavasti vähemmän tuskaa kuin Micro$oftin tuotteiden päällä

Lisäksi jatkuvasti tarjolle tulevat päivitykset tuntuivat asentuvan nopeasti, akunkesto oli erittäin hyvä ja minkään lisälaitteiden tai virtakontrollin kanssa ei tuntunut tulevan ajurihaasteita. Ainoa ongelma tuntui olevan KDE Plasman kummallinen töksähtely ja FPS:n tippuilu silloin tällöin, mutta sekin yleensä ilmaantui vain usean päivän valmiustila-päälle-valmiustila-päälle-suhailun jälkeen.

 

Operaatio Hattulinuksi

No sitten siihen hauskimpaan ja haastavimpaan osuuteen. Kaikki tapahtui suurin piirtein näin:

  1. Kaikki vanha tarpeellinen data talteen:

    • Tiedostot, virtuaalimasiinat, konttien datat
    • Kaikkien selaimien kaikkien (paikallisten) profiilien datat, salasanat, kirjanmerkit
    • SSH-avaimet, salausavaimet, avainrenkaat...
    • Oleelliset konffitiedostot, systemd-servicet ja asennettujen pakettien lista
  2. Boottausmedian kirjoitus

    • Eli käytännössä Fedoran ISO:n lataus ja siirto Ventoy-tikulle (joo, hieman kiistelty työkalu mystisten binääridatojensa takia, mutta erittäin kätevä)
  3. Vielä yksi tiedostojen tallessaolon tarkistus ja yksi perusmuotoinen varmuuskopio

  4. Secure boot hetkellisesti pois päältä

  5. Toinen M2 SSD (jolle Micro$oftin tuote on eristetty) fyysisesti irti koneesta asennuksen ajaksi

    • Ja samalla kauan kaivattu pölyjen poispuhallus!
    • Aiemman Debian-asennuksen bootloader oli sattumoisin asentunut Windowsin SSD:lle...
    • ...mutta ei se mitään, Windows jatkoi asennuksen jälkeen boottausta ihan kiltisti vaikka Debian katosikin
  6. Tikulta boottaus ja installerin läpikliksuttelu

    • Alkuun karsastin ajatusta btrfs:n käytöstä, koska ext4 on ollut tuttu ja turvallinen, mutta lopulta päädyin antautumaan jonkun muun valitsemaan defaulttiin
    • Levylle täyskryptaus hyvällä avaimella, koska kyseessä on (isosta koostaan huolimatta) kannettava masiina
  7. Secure boot takaisin päälle

  8. Boottaus uuteen synsteemiin ja loppuinstallerin läpikliksuttelu

  9. RPM Fusion -paketit käyttöön

    • Kuvailunsa mukaisesti RPM Fusion tarjoaa asennettavaksi paketteja, joita Fedora/Redhat eivät muuten jakelisi
    • Fusionista saa muun muassa suljetut ajurit ja kaupalliset koodekit
  10. MOK-avaimen sisäänajo secure bootia ajatellen

    • Secure bootin ollessa käytössä täytyy tietyt kernel-tason ajurit (mm. Nvidia) allekirjoittaa ns. "Machine Owner Keyllä" jotta suojattu kernel pystyy ne lataamaan
    • Tätä varten täytyy suorittaa tietyt rituaalit (MOKin teko ja sisäänajo)
    • Samassa yhteydessä tuli käyttöön myös akmods, joka ystävällisesti allekirjoittaa kernel-moduulit asennuksen jälkeen automaagisesti
  11. NoVideo-ajurit (Nvidia-ajurit) asennukseen

    • Tämä oli itse asiassa hyvin helppoa: sudo dnf install akmod-nvidia -y
    • Ajurit asentuivat ja allekirjoittuivat varsin nopeasti
  12. ...ja sitten käyttämään uutta systeemiä!

 

Paitsi että vielä oli tapeltava kuntoon gpu-ajureiden latautuminen ennen kryptausavaimen syöttöä. GRUB-valikko nimittäin näkyi ruudussa kiltisti, mutta tämän jälkeen näyttö pimeni siihen asti kunnes ulkoisen näytön liitti mukaan leikkiin.

Erityisesti täytyi varmistaa, että boottiparametreissa oli mukana

  • rd.driver.blacklist=nouveau,nova_core
  • modprobe.blacklist=nouveau,nova_core
  • plymouth.use-simpledrm=1

Näiden jälkeen alkoi LUKS-passukenttä ilmaantumaan ruutuun. Mutta GRUB alkoi sitten taasen katoamaan :D

 

Ja sitten niitä päivityksiä

Heh heh. Enpä ollutkaan aiemmin tottunut siihen, että Liinuksi tyrkyttää päivityksiä joka päivä enemmän tai vähemmän.

No otinpa sitten ja asensin niitä päivityksiä...ja niin seuraavan kernel-version kanssa pimenee jälleen näyttö bootissa... prkl!

Kävi ilmi, että uuden kernel-version ilmaantuessa on syytä suorittaa seuraavat rituaalit:

  • Odota että akmods rakentaa kernel-palikat uudestaan, tarvittaessa akmods --force
  • Aja dracut uudelle kernelille, jotta NoViideot pääsevät mukaan leikkiin
    • sudo dracut --force /boot/initramfs-[versio].x86_64.img [versio].x86_64
  • Ja tarkista vielä että ne moduulit tosiaan ilmaantuvat sinne:
    • lsinitrd /boot/initramfs-[versio].x86_64.img | grep -E '/extra/nvidia/nvidia(_modeset|_uvm|_drm)?\.ko'

Näiden rituaalien jälkeen sitten alkoikin taas kuvaa näkymään!

 

Työpöytäkokemuksen rakentaminen

Olen siinä mielessä kai erikoinen distrohyppijä (tai en distrohyppijä ollenkaan), että tietokone myös Pingviinillä varustettuna on minulle ensisijaisesti työkalu ja käyttövehje. En siis juurikaan ihastu eri distrojen kiiltäviin ulkonäköihin tai pöhköihin lupauksiin ties mistä, vaan pyrin valikoimaan riittävän luotettavan pohjadistron ja rakennan omannäköiseni työpöytäkokemuksen sen päälle.

KDE Plasma valikoitui Gnomen sijasta työpöytäympäristöksi juuri siksi, että se on hyvin kustomoitavissa, kun taas Gnome kai pyrkii tuottamaan jonkinlaisen kiillotetun kokonaisuuden.

Erityisen hauskalta Plasman kanssa tuntui kustomoida työpöydän paneeleita. Tykästyin myös tarjolla olevaan paneelien "kellutukseen", jossa ne leijuvat hieman näytön reunan vieressä ja kiinnittyvät taas näytön reunaan kun ikkuna tulee kosketuksiin niiden kanssa.

Tältä pohjalta aloin rakentamaan tuttua, turvallista ja ennen kaikkea juuri minulle tehokkainta työpöytäsetuppia joka on aiemmin rakennettu myös Cinnamonin, MATE:n ja XFCE:n parissa melko samalla tavalla.

Maaliskuussa 2019 olen vielä ollut tyytyväinen Gnomen käyttäjä.
Maaliskuussa 2019 olen vielä ollut tyytyväinen Gnomen käyttäjä.

Luultavasti MATE, vuodelta 2019
Luultavasti MATE, vuodelta 2019

Hyväksi todettu työpöytäjärjestely XFCE:n päällä edellisellä Debianilla.
Hyväksi todettu työpöytäjärjestely XFCE:n päällä edellisellä Debianilla.

Samanhenkinen järjestely KDE Plasman päällä, tämän postauksen kirjoitushetkellä (tosin läppäri sylikäytössä)
Samanhenkinen järjestely KDE Plasman päällä, tämän postauksen kirjoitushetkellä (tosin läppäri sylikäytössä)

Kuten tästä kuvakavalkadista voi huomata, on hyvin nopeasti pingviinikäyttäjäksi siirtymisen jälkeen työpöytäympäristö muovautunut nykyiselleen: alalaidassa avoimien ikkunoiden palkit (Windows XP -henkisesti), ylävasemmalla sovellusvalikko ja sen vieressä käytetyimmät pikakuvakkeet jonkinlaisissa ryhmissä ja oikeassa yläkulmassa statuskuvakkeet, päiväys, cpu-/ram-/levymittarit.

Kaiken tämän lisäksi täytyy systeemiin sitten aina lisätä tiettyjä omia välinevalintoja.

Ruutukaappailut

Esimerkiksi ruutukaappauksiin olen aiemmin käyttänyt kolmea simppeliä skriptiä: yksi kopioi, toinen lataa filepasteen ja kolmas dumppaa ruutukaappauskansioon.

KDE Plasman mukana tulee valmiiksi oikein mukavasti toimiva Spectacle, joka on juttelee Waylandia ja osaa kopsailla ja tallennella tiedostoja sun muuta kivaa.

Omaan filepasteen lataaminen sitten taas saatiin viritettyä erittäin helposti. Entinen maim ei nimittäin Waylandilla saa ruutukaapattua mitään, se elää vielä Xorgin aikakautta. Kuitenkin spectacle pienillä flagimuutoksilla taittui tähän käytännössä täydellisesti:

# Take a rectangle selection screenshot using maim
screenshot_file="/tmp/screenshot.jpg"
spectacle --release-capture --background --region --output "$screenshot_file"

Tämä bindattuna kivasti Ctrl+Shift+Print tuottaa sitten oivan työkalun ottaa ruutukaappauksia joita voi saman skriptin uploadaamina jaella sitten linkillä.

Kolmas aiemmista skripteistä dumppasi otetun ruutukaappauksen tiedostoon, mutta tämän Spectacle osaa tehdä varsin kivasti suoraan oletusasetuksillaan, joten skripti jääköön odottamaan muita aikoja.

KDE Plasma tarjoaa melko hyvän globaaleja näppäinkomentoja käsittelevän systeemin suoraan paketista.
KDE Plasma tarjoaa melko hyvän globaaleja näppäinkomentoja käsittelevän systeemin suoraan paketista.

Emojit

Emojeja tulee myös tungettua sinne tänne, niiden valikointiin olen tottunut käyttämään Splatmojia. Sitä kuitenkin piti hieman viritellä, jotta se suostui edes kopioimaan tavaraa Waylandilla.

rofi_command=rofi -dmenu -p '' -i -monitor -2 -dpi 96
xsel_command=wl-copy --type text/plain

Näillä säädöillä Splatmojin sai melko kiltisti ajautumaan näppisshortcutilla.

Emojivalitsimena toimii Splatmoji, jota ei tosin ole vuosiin enää päivitetty :(
Emojivalitsimena toimii Splatmoji, jota ei tosin ole vuosiin enää päivitetty :(

Vorta ja Borg backuppailemassa

Kun aikanaan vaihtelin työpöytäympäristöä pariin otteeseen, tulin huomanneeksi, että erilaisia täydellistä tuhoa aiheuttavia kaatumisia ja bugeja ilmaantui silloin tällöin.

Muistanpa eräänkin kerran, kun ilmeisesti näytönsäästäjän ilmaannuttua ruutuun oli jotain mystistä tapahtunut ilmeisesti jossain päin tiedostojärjestelmää, eikä masiina enää bootannutkaan.

Siis olen viimein käsittänyt varmuuskopioiden tärkeyden. Jo aiemmalla setupilla käytin Vorta-käyttöliittymää yhdessä Borg-varmuuskopioreposoftan kanssa. Alunperin varmuuskopiot elivät ainoastaan vaatehuoneserverillä eli Kotivuorella, mutta kun sen kirppiskovot alkoivat sekoitella bittejä oikein urakalla, totesin jonkinlaisen storage boxin tarpeen olevan oleellisesti läsnä.

Menemättä sen enempää yrityssalaisuuksiin, tunnetusti olen Hetznerin uskollinen asiakas, ja nykyisin mahdollisesti myös storage boxin onnellinen vuokraaja. Ainoa ongelma tähän mennessä on tuskallisen hidas siirtonopeus, kun vertaa gigaisen lähiverkon läpi tehtyihin kopioihin... Paras ratkaisu on siis yhdistelmä uutta ja vanhaa!

Tosin ensihidastelun jälkeen Vorta+Borg ovat hyvin nopeita päivittäisvarmuuskopioissa, sillä ainoastaan muuttunut data siirretään repoon, jossa se myös kryptauksen ohella deduplikoidaan.

(ja lapsoset, muistakaa aina säilyttää tärkeästä datastanne ainakin kolme kopiota, jotka ovat eri medioilla, ja ainakin yksi fyysisesti eri paikassa kuin kaksi muuta!)

Rakas vanha Vortaseni!
Rakas vanha Vortaseni!

Mutta ei kai siinä. Varmuuskopioita otetaan automaagisesti kaikesta tärkeimmästä. Tähän eivät kuulu esimerkiksi virtuaalikoneiden kovot, Node-moduulit, jättitiedostot tai muu turhuus.

 

Skriptiarkisto

Vuosien varrella on kertynyt jos jonkinlaista työkalua, pikkuskriptiä ja muuta sälää pitkin konetta. Tässä Debian-Fedora-siirrossa päätin viimein organisoida skriptit, AppImaget ja työstösälät selkeästi omiin kansioihinsa: ~/Work sisältää suurimman osan koodailu-, työ- ja hupiprojekteista, ~/Apps suurimman osan irtonaisista AppImageista ja ~/S kaikki entiset säläskriptit.

Ja tähän kaveriksi sitten vielä ~/.bin, joka menee suoraan PATHiin, jotta ko. kansioon voi dumpata kaikkea mitä haluaa terminaalista sitten huutaa jatkossa mistä haluaa.

Ohessa esiteltynä muutamia eri vakiotyökaluja, joita tulee käytettyä usein.

x-dirsizes

Tämä on pötkylä, joka lukee senhetkisen kansion tiedostokoot ihmisymmärrettävänä ja listaa ne sitten suuruusjärjestyksessä.

#!/bin/bash
du -sh -- ./{.[!.]*,*}/ | sort -rh

On muuten kätevä!
On muuten kätevä!

x-webptopng

Kertyykö sinunkin latauskansioosi webp-kuvia, joita et sellaisina halua käsitellä? No ei hätää! Tällä pohjalla konvertoit ne kaikki tutuiksi ja turvallisiksi kannettaviksi verkkografiikoiksi :D

Vastaavia usein käyttämiäni convert- ja myös ffmpeg-kutsuja olen taltioinut skriptiarkistoon useitakin.

#!/bin/bash
for f in *.webp; do
    echo "$f"
    convert "$f" "${f%.webp}.png"
done

x-rmfonts

Lataatko sinäkin usein fontteja mm. zip-paketteina netistä? Jäävätkö ne sinullekin pyörimään asentamisen jälkeen ympäri ämpäri?

Ei hätää: Tämä skriptinpätkä tutkii kaikki zipit läpi ja osaa ystävällisesti poistaa kaikki ttf-, otf- ja woff2-tiedostoja sisältävät ziputtimet kansiosta!

#!/bin/bash

delete=false

if [[ "$1" == "--delete" ]]; then
    delete=true
elif [[ $# -gt 0 ]]; then
    echo "Usage: $0 [--delete]"
    exit 1
fi

for zip in *.[Zz][Ii][Pp]; do
    [ -e "$zip" ] || continue

    if unzip -l "$zip" | grep -Eiq '\.(ttf|otf|woff2?)$'; then
        if $delete; then
            echo "DELETE: $zip"
            gio trash -- "$zip"
        else
            echo "WOULD DELETE: $zip"
        fi
    fi
done

if $delete; then
        echo "done!"
else
    echo "give --delete to delete!"
fi

...ja muutakin

Mutta ehkä näistä on syytä kirjoitella oma postaus sitten aikanaan. Kansiossa ~/S on sitten taas muita yllä_pädöllisiä pikareittejä muun muassa eri palvelimien ssh-yhteyksiin, verkkolevyn mounttailuun, juurikin ruutukaappauksien ottamiseen, Wacomin piirtoalustan asetuksiin, erilaisten Winellä ajettavien softien availuun oikeilla konffeilla...

Ja olipa ankeimpina aikoina käytössä muun muassa pikaskriptit Firefoxin ja Discordin päivittämiseen. Mutta toista se on nyt Hattulinuxilla...

 

Hattuliinuksi jatkoon!

Toistaiseksi tämä Hattulinuksin eli Fedoran parissa eläminen on ollut varsin tylsää ja haasteetonta. Mitä nyt pari kertaa on pitänyt vähän kirota kernelmodulien kanssa.

Muuten kaikki onkin ollut oikein maukasta:

  • Peruspelit pyörii varsin maukkaasti

  • Wanhat Tekkit Classic -shift-klikkailuongelmat ovat kadonneet

  • Wine heräsi henkiin (mutta vanhojen prefixien käytössä oli kyllä hieman haasteita DPI-asetusten kanssa)

  • Steam, Spotify, Discord, selaimet, Gimpit, OBSit ja muu yleissälä asentui ilman minkäänlaisia ongelmia

  • Qt-pohjaiset softat ovat kauniisti tyyliteltyjä <3

  • USB-C-telakan kautta kahden monitorin ajaminen toimii sekä dGPU- että iGPU-porteista! >:O

  • Lenovon muut kuriositeetit ovat toimineet moitteetta (tuuletus-/tehotilat, akun säästötila, näytön ja näppäimistön taustavalo, jne.)

  • Uudet kirjastot! Koko ajan päivityksiä! Olen siis kerrankin melkein aallon harjalla, jes.

ÄLÄ KOKO AJAN VAAN PÄIVITÄ
ÄLÄ KOKO AJAN VAAN PÄIVITÄ

Päivittäiskäyttö on siis jatkunut tässä jo parisen viikkoa, softakehitys on jatkunut saumattomasti, sähköpostin prokrastinointi läpikäynti on sujunut ja niin edelleen. Ja Tulikettu syö muistia ihan niin kuin ennenkin!

Pieniä haasteita ja tutkittavia seikkoja toki vielä on:

  • Hiiren kursori lagaa muutaman framen silloin tällöin. Ärsyttävää!

  • Kernel-päivitykset täytyy käsitellä tietyin rituaalein

  • Toisinaan GRUB näkyy ja toisinaan ei. Täytynee säätää niitä GPU-asetuksia.

  • Onnistuisikohan iGPU:n ja dGPU:n välillä vaihtelu kivasti nyt EnvyControlin tms. avulla?

Näillä sanoilla jatketaan siis tutkailua. Kokonaisuudessaan väittäisin tätä vaihdosta kuitenkin kohtalaisen onnistuneeksi! Käyttis ja osa softista vaihtuivat, mutta suuriakaan muutoksia päivittäistoimintaan ei ilmaantunut!

 

 

Kommentit

Ei vielä yhtään kommenttia!

Jätä kommentti

Kommentoidessasi ip-osoitteesi ja nimimerkkisi tallennetaan systeemiin.