Door omstandigheden is het de afgelopen jaren drie keer keer nodig geweest mijn workstation in te richten. De eerste keer ging het enkel om uitwisselen van opslagruimte, zoals eerder beschreven.
De al wat oudere C7SIM-Q met eerste generatie i3 voldeed in vrijwel alle opzichten, alleen het maximum geheugen van 16 GB zat zo nu en dan in de weg. Ik heb het bord kunnen vervangen door een X11SSH-LN4F. Ook met i3, maar wel 6e generatie, en 32 GB RAM met uitbreidingsmogelijkheid tot 64 GB. Bovendien is het nu DDR4 ECC geheugen, waar het eerst DDR3 zonder ECC was.
Toen ik het moederbord verving zat er in een van de bestaande volumes iets scheef (ze het eerdere verhaal); de kortste weg naar een werkend systeem was een nieuwe installatie – met UEFI.
Installeren op UEFI geeft me vaak problemen bij het inrichten van de UEFI-partitie, meestal kom ik niet weg zonder installatie naar ‘removable storage’, maar het werkt uiteindelijk wel. Bij dit moederbord niet. Daarbij komt dat het moederbord, met remote management, wat geavanceerder is. Nadeel is dat boot voorbij ‘BIOS’ een stuk langer duurt; troubleshoot kost heel veel tijd.
Uiteindelijk heb ik Debian volledig automatisch laten installeren, met alle opties op default en minimale ingreep in het partitioneren. Daarmee werkte het eindelijk, maar ik had voor een kleine /var-partitie gekozen, waar vrij veel optionele pakketten in terechtkwamen. Zoveel, dat er voor Apt geen ruimte was om nieuwe programma’s te downloaden. Bovendien stond alles op defaultwaarden, met voeten in Fahrenheit en een Amerikaanse tijdzone. Daarnaast stond alles op een SSD die ik niet voor het systeem in gedachten had.
Snel was het wel! Door tien jaar upgrades over te slaan, merk je bij een upgrade veel meer van de vooruitgang. Niet alleen ruim voldoende geheugen (de 16 GB was niet dagelijks een bottleneck), maar vooral sneller geheugen. De CPU heeft geen veel hogere kloksnelheid, maar kan wel sneller schakelen en heeft geavanceerdere functies waardoor bestanden uitpakken bijvoorbeeld veel sneller gaat. Het systeem draaide nu niet op SSD-cached LVM-volumes, maar op LVM-volumes rechtstreeks op een (ouder model, SATA2) SSD.
Het nieuwe moederbord heeft plaats voor een NVMe-reepje. In tegenstelling tot mijn eerste ingeving, 2e-hands een zo klein en goedkoop mogelijk reepje aanschaffen, heb ik er een nieuwe ingeprikt: in veel gevallen zijn de 2e-hands exemplaren duurder dan een nieuwe. Met een paar euro extra bovenop de laagst geprijsde SSD heb ik me verwend met een ouder model Samsung. Met krap 2 TB aan 3-bits TLC NAND is er voldoende ruimte voor systeempartities, home partities, databasepartities en partities voor caching van datavolumes.
Met minimale moeite is de installatie, met UEFI, in een keer geslaagd. Daar zit je dan, in een mum van tijd met een kale installatie. Want snel dat ging het wel! Een flink deel van het TLC NAND wordt als SLC NAND ingezet, om snel de gigabyte aan DDR-geheugen te vereeuwigen. Waarschijnlijk haal ik het maximum er niet uit: de SSD heeft een 4xPCIe3 interface, terwijl de aansluiting op het moederbord er slechts 2 kanalen biedt.
Aanvullende instellingen / applicaties / packages
Todo’s: er zijn wat instellingen te doen en aanvullende packages te downloaden. Installeer eerst de programma’s, anders kun je ze niet inrichten natuurlijk.
Packages installeren:
apt update
apt upgrade
apt install openssh-server screen tmux links htop powertop dstat sysstat nicstat curl sshfs gpm # altijd handig
apt install lvm2 thin-provisioning-tools # systeem-onderdelen
apt install speedometer iftop nethogs bmon tcptrack # bandbreedte-utils
apt install firefox dolphin dolphin-nextcloud nextcloud-desktop nextcloud-desktop-cmd kdeconnect konsole vlc subtitlecomposer # in grafische omgeving (ook NC-cmd!)
apt install growlight # diskmanagement, onderweg tegengekomen
Overige software
Niet alle software is beschikbaar via Apt, of is de AppImage-versie net wat nieuwer dan de versie in Apt.
- DigiKam; even kijken hoever Apt achter loopt –> Apt heeft v7, laatste appimage is v8
- Chrysalis; nog niet in Apt
Firefox
- Firefox sync instellen
- Sync-server aanpassen in about:config ; zoeken naar
token
en vindidentity.sync.tokenserver.uri
, zet die ophttps://ffs.osba.nl/ffsync/token/1.0/sync/1.5
- Eventueel synchronisatie van autoscroll uitzetten, omdat de defaultwaarde op verschillende platforms niet gelijk is,
services.sync.prefs.sync.general.autoScroll
opfalse
- Inloggen via de sync-instellingen in Firefox. De eerste keer gebeurt er waarschijnlijk niets (alleen tabs kunnen dan naar een ander apparaat gestuurd worden, maar synchronisatie vindt niet plaats). Tot nu toe kunnen oplossen door alle synchronisatievinkjes uit te zetten, Firefox te restarten, uitloggen uit het Firefox-account, Firefox restarten, en dan weer inloggen. De tweede keer is het niet nodig een bevestigingscode door te geven, maar start de synchronisatie wel. Foutlogs zijn te vinden via
about:sync-log
, er is ook eensync
-extension die daarna info weergeeft opabout:sync
- Als de sync eenmaal draait, komt er steeds meer mee. Ondertussen niet alleen de wachtwoorden en bookmarks, maar ook open tabs, extensies en inrichting van extensies (zoals bijvoorbeeld de benoemde containers voor de containerplugin).
- Momenteel zit nog niet in de sync:
- instellingen voor temporary containers
- blokkeren van de “login met Google” popup op allerlei websites via uBlock Origin. Om die popups te blokkeren, open ‘My filters’ in de uBlock-instellingen, en voeg daar toe:
accounts.google.com/gsi/*
Nextcloud sync instellen
- app-password instellen via personal settings –> security –> nieuwe entry maken onderaan de pagina ; de ingevoerde omschrijving zie je later pas, je hebt nu je eigen (getoonde) gebruikersnaam nodig en het random wachtwoord. Houdt ’t wachtwoord even in beeld, niet op ‘Done’ klikken
- Nextcloud desktop openen en verbinden met https://online.osba.nl/nextcloud
- Kopieer de link (hij opent vanzelf, maar het kan zijn dat de timeout te snel verstrijkt)
- Open de link in een incognito-venster (om te voorkomen dat er automatisch ingelogd wordt met de reguliere gebruikersnaam)
- Klik op ‘use an app token’, oid (de onderste optie)
- Gebruik de eerder aangemaakte credentials
- Als het niet werkte, nog een keer proberen. Als het wel werkte volgt er een melding, “Account connected”
Met de sync-client op Android gaat het nog makkelijker: in plaats van handmatig de gegevens invullen en overnemen: maak het app password aan, klik op ‘Show QR code for mobile apps’ en scan de code met je telefoon.
Dolphin
Met de Nextcloud Desktop client wordt synchronisatie geregeld, maar geen integratie. Installeer dolphin-nextcloud
om vanuit Dolphin bestanden via Nextcloud te delen.
Voeg onder het Remote-kopje in de “Places” zijbalk een link naar Nextcloud toe via WebDAV en SSHFS. SSHFS geeft snellere toegang en betere integratie aan deze kant van de verbinding, maar wijzigingen worden niet door Nextcloud opgemerkt. WebDAV wordt aan deze kant echt als remote gezien, wat soms voor caching of vertraging zorgt, maar loopt via de Nextcloud-logica. Wijzigingen, verwijderingen en toevoegingen zijn meteen in Nextcloud beschikbaar.
De WebDAV link geeft Nextcloud via de web-interface, bij het kopje met settings linksonderin bij bestanden: https://online.osba.nl/nextcloud/remote.php/dav/files/wbk
Pas de link aan naar webdavs://online.osba.nl/nextcloud/remote.php/dav/files/wbk om hem in Dolphin te gebruiken. Meteen plakken in de adresbalk, en dan de locatie opslaan werkt het eenvoudigst; het werkt ook via Knetattach (de knop rechtsbovenin het scherm als je in Dolphin op Network klikt, onder remote).
Op welke manier dan ook: soms werkt het in ene keer, soms werkt het totaal niet. Deze keer is het een “totaal niet”-geval. Troubleshoot gaat erg moeizaam; Dolphin noch Knetattach geven enige feedback naast “The file or folder … does not exist” (Dolphin) of “Unable to connect to server. Please check your settings and try again.”
Een enkele keer lijkt het proces een stap verder te komen: dan volgt er een vraag of ik zeker weet dat ik wil inloggen op Nextcloud, om vervolgens alsnog te vertellen dat de file or folder does not exist.
De “bookmark” in Dolphin’s places-balk heb ik uit de settings van de oude installatie gehaald (~/.local/share/user-places.xbel
)
Mogelijk zit de KWallet-entry voor Nextcloud-Desktop in de weg. Die client logt in met een app-password, maar in KWallet lijkt het een reguliere user/pass combinatie. Misschien geeft KWallet onder water het verkeerde wachtwoord (of het goede wachtwoord, maar via het verkeerde mechanisme) aan Dolphin en Knetattach door, zonder daar feedback over te geven. Na sluiten van zowel de wallet als de NC-client lukt het echter nog steeds niet. Wordt vervolgd.
Vervolg op een nieuwe laptop: inloggen op Nextcloud via Dolphin werkt op bovenstaande wijze meteen, althans, als ik het adres rechtstreeks invoer in de locatiebalk van Dolphin. Deze keer heb ik voor Nextcloud Desktop (expres) geen app-password gebruikt.
Toevoegen als “Network” entry via knetattach
loopt nu op een andere manier stukt: het proces hangt een kleine minuut (popup “examining”), geeft dan “Failed, application closed unexpectedly”. Als ik knetattach
uitvoer in een konsole venster, zie ik fouten en waarschuwingen voorbijkomen. Die specifieke meldingen zijn misschien geen probleem, maar er zijn wel eerder bugs gemeld op bugs.kde.org die spelen in mijn versie. Met Debian stable zit ik niet direct op de bleeding edge wat betreft KDE-ontwikkelingen, ik laat een bugmelding achterwege.
De genoemde workaround werkt echter ook voor WebDAV! Dus:
- Open een tweede tab in Dolphin
- Log daarmee in op Nextcloud, in de
webdavs://user@domain
-notatie - Bevestig dat je inderdaad als die gebruiker wil inloggen, en zet het vinkje om niet herinnerd te worden; geef je wachtwoord en wacht tot de directory geladen is
- Start nu de knetattach-activiteiten om een locatie toe te voegen
- Waar initieel de boel bleef hangen door de in de bugmelding genoemde loop, ontstaat nu die loop niet meer omdat we al akkoord gegeven hebben
GUI / gebruikersinstellingen
Fonts ophalen
- De fonts Linux Biolinum en Linux Libertine zijn na 2012 gefork’d; releases van de vork zijn te vinden onder Libertinus op Github.
- Pak het release file uit en (in het geval van KDE) gooi de bestanden in de fontmanager om ze te installeren.
Mountpoints inrichten
Voorheen waren datapartities zoals voor foto’s en video’s rechtstreeks in m’n home-directory gemount. Ik mount ze nu in een gebruiker-agnostische directory, en bind-mount ze lokaal.
De eerder o-zo-mooi ingerichte LVM is goed over te dragen, ware het niet dat:
- ik een van de fysieke volumes een beetje verziekt heb
- de tools om LVM te beheren na x jaar anders verpakt zijn en sommige binaries lijken te ontbreken;
vgchange -ay data
had LVM klachten:
root@fractal:~# vgchange -ay data
/usr/sbin/cache_check: execvp failed: No such file or directory
WARNING: Check is skipped, please install recommended missing binary /usr/sbin/cache_check!
/usr/sbin/thin_check: execvp failed: No such file or directory
WARNING: Check is skipped, please install recommended missing binary /usr/sbin/thin_check!
14 logical volume(s) in volume group "data" now active
Het ontbrekende pakket blijkt thin-provisioning-tools
(Eenmalige todo’s: boeken en bieb naar data, geenmuziek naar home)
Keyboard
Ctrl+Alt+Backspace om X de nek om te draaien: advanced keyboard tab in KDE settings:
Alternatief: Alt+SysRq+k
Systeeminstellingen
Netwerk
Twee NIC’s samen laten werken als bond0. Met het vernietigen van de root-directory is de configuratie in /etc/network/interfaces
helaas verloren gegaan. Er staat nog een todo op het lijstje, “/etc in git onderbrengen”, maar dat helpt nu niet.
De nieuwerwetse huidige installatie heeft autoconfig voor netwerk, waarschijnlijk via networkmanager. nmcli
kan bonding interfaces aanmaken. De man
-pages van nmcli zijn erg uitgebreid maar daar kan ik niet eenvoudig de bond-syntax terugvinden. Er is onder andere documentatie te vinden bij Red Hat en bij Gnome; die bij Red Hat heeft meer diepgang, die bij Gnome geeft passende voorbeelden.
# nmcli connection add type bond con-name bond0 mode 6
Connection 'bond0' (cf29cf16-692b-4925-95fd-0102aa758cc0) successfully added.
# nmcli device status
DEVICE TYPE STATE CONNECTION
eno2 ethernet connected Wired connection 1
eno1 ethernet disconnected --
eno3 ethernet unavailable --
eno4 ethernet unavailable --
lo loopback unmanaged --
# nmcli connection add type ethernet slave-type bond con-name bond0-port1 ifname eno1 master bond0
Connection 'bond0-port1' (1a8cdccb-1363-40f5-b9aa-072936ca1544) successfully added.
# nmcli device status
DEVICE TYPE STATE CONNECTION
eno2 ethernet connected Wired connection 1
nm-bond bond connected bond0
eno1 ethernet connected bond0-port1
eno3 ethernet unavailable --
eno4 ethernet unavailable --
lo loopback unmanaged --
Aanmaken van een bonded interface ondersteund de networkmanager-GUI (nog?) niet, maar onderhoud/beheer ervan wel. Nadat eno1 aan bond0 gehangen was hierboven, maakte nm
de verbinding actief. In de GUI heb ik ‘Wired connection 1’ verwijderd om geen verrassingen te krijgen bij het koppelen van eno2 aan bond0:
# nmcli device status
DEVICE TYPE STATE CONNECTION
nm-bond bond connected bond0
eno1 ethernet connected bond0-port1
eno2 ethernet disconnected --
eno3 ethernet unavailable --
eno4 ethernet unavailable --
lo loopback unmanaged --
# nmcli connection add type ethernet slave-type bond con-name bond0-port1 ifname eno2 master bond0
Warning: There is another connection with the name 'bond0-port1'. Reference the connection by its uuid '67af71f7-f7b5-4f50-a02e-0fcfa4910960'
Connection 'bond0-port1' (67af71f7-f7b5-4f50-a02e-0fcfa4910960) successfully added.
# nmcli device status
DEVICE TYPE STATE CONNECTION
nm-bond bond connected bond0
eno1 ethernet connected bond0-port1
eno2 ethernet connected bond0-port1
eno3 ethernet unavailable --
eno4 ethernet unavailable --
lo loopback unmanaged --
Oepsie… opdracht hergebruikt, maar slechts deels aangepast (Warning: there is another connection with the name 'bond0-port1'
). Bij de eerste poging om de poort uit bond0
te trekken, heb ik de volledige bond verwijderd. Na opnieuw toevoegen is de status nu:
# nmcli device status
DEVICE TYPE STATE CONNECTION
nm-bond bond connected bond0
eno1 ethernet connected bond0-port1
eno2 ethernet connected bond0-port2
eno3 ethernet unavailable --
eno4 ethernet unavailable --
lo loopback unmanaged --
Losse todo’s:
- SSH sleutels kopieren – het wordt afgeraden om dezelfde sleutels op meerdere systemen te gebruiken, maar hier wordt het oude systeem uit de vaart gehaald. Na overzetten van het private/public keypair werken de SSH-verbindingen meteen weer.
- Toegang tot seriele interfaces, zoals /dev/ttyACM0 voor Arduino, ESP of toetsenbord
- …
- Blogpost nalopen op slordigheden en bijwerken met de laatste inzichten; eerst maar uit concept halen om er makkelijk bij te kunnen. Bij deze!