9 mrt. 2020
Mijn eigen tablet OS maken
Debian GNU/Linux installeren en aanpassen op de Surface Go
Al een aantal jaren gebruik ik een tablet als mijn hoofdcomputer, ik hou van de veelzijdigheid. Maar de meeste tablets hebben een gesloten besturingssysteem, zoals iPadOS, Windows 10S of Android. Omdat ik graag dingen op mijn eigen (vreemde) manier doe, vroeg ik me af of ik kon ontsnappen aan deze "softwaregevangenissen" door een vrij besturingssysteem op een tablet te installeren. Het is mogelijk, lees verder om te ontdekken hoe ik ontsnapte!
Hardware: Surface Go
Als je overweegt een ander besturingssysteem op een tablet te installeren, moet je zeker wat onderzoek doen naar tablethardware. Niet alle tablets kunnen opnieuw worden geĆÆnstalleerd met een aangepast besturingssysteem, sommige hebben vergrendelde bootloaders, eigen chips of andere hindernissen.

Maak kennis met de Surface Go, een relatief kleine tablet (10" schermformaat). Hij heeft een "normale" 64-bit Intel-processor, een bootloader die ontgrendeld kan worden en de hardware is goed bekend omdat deze vergelijkbaar is met de oudere "Surface Pro 6". Oudere hardware is een goede zaak als je denkt aan vrije besturingssystemen. Hoe ouder de hardware wordt, hoe groter de kans dat mensen manieren hebben gevonden om het te laten werken met vrije software, zoals Debian GNU/Linux.
Eerst updaten!
Voordat je het propriƫtaire besturingssysteem van de tablet wist, moet je het gebruiken om de firmware te updaten. Het updaten van firmware vanaf iets anders dan Windows is vrijwel onmogelijk. De nieuwe firmware voor de Surface heeft veel bugs opgelost en de prestaties van de tablet verbeterd - dit wil je niet missen!



Een besturingssysteem kiezen
Nadat je de tablethardware hebt geselecteerd, moet je een besturingssysteem kiezen. Om verschillende redenen raad ik je aan een vrij besturingssysteem te overwegen. Met vrije software ben je - letterlijk - vrij om het te laten werken zoals je wilt. Ik hou van Debian, een GNU/Linux-distributie.

De Debian GNU/Linux-distributie is een van de oudste beschikbare distributies. Het is speciaal omdat de beheerders een sociaal contract hebben geratificeerd, een document dat garandeert dat Debian open en vrij is. Het kan op bijna elke hardware worden geĆÆnstalleerd, vandaar hun slogan "het universele besturingssysteem".
Een opstartbare USB-stick maken
De installatie van Debian gebeurt met behulp van een opstartbare USB-stick. Ik heb een andere computer gebruikt om de installatiebestanden te downloaden van https://debian.org. Je moet een installatiemedium maken om deze installatiebestanden naar de tablet te krijgen.

Op een andere laptop heb ik een aantal terminalcommando's gebruikt om de opstartbare USB-stick te maken. Als je op Windows of Mac zit, kun je andere tools gebruiken om dit voor elkaar te krijgen, zoals Schijfhulpprogramma's, Rufus of unetbootin.
Het installatieprogramma starten
Sluit de opstartbare USB-stick aan op de Surface-tablet, ik heb een USB-C naar ethernet en USB 3.0 adapter gebruikt. De bekabelde netwerkverbinding is handig tijdens de installatie omdat Debian vaak geen firmware/drivers voor de propriƫtaire WiFi-chips kan laden.

De gemakkelijkste manier om de Surface-tablet op te starten vanaf de USB-stick is via "Geavanceerde opstartopties" in Windows-instellingen. Je computer wordt opnieuw opgestart en biedt je verschillende opstart- en herstelopties.


Kies "Een apparaat gebruiken" en selecteer vervolgens "Linpus lite". Met een beetje geluk word je begroet met het installatiemenu van Debian GNU/Linux.

Ga verder met de installatie door vragen te beantwoorden zoals welke taal je wilt gebruiken en welke toetsenbordindeling je hebt. Het installatieprogramma zal proberen je netwerkhardware te herkennen. Helaas houden veel leveranciers hun apparaatdrivers (firmware) gesloten, waardoor het voor Debian onmogelijk is om ze op te nemen in hun standaard softwarecollectie (die vrije software moet zijn).

Hoewel het mogelijk is om deze niet-vrije apparaatdrivers te laden vanaf (een andere) USB-stick, is het mijn ervaring dat het moeilijk is om precies die apparaatdrivers vooraf te laden die je nodig hebt. Mijn strategie is om de computer tijdens de installatie aan te sluiten op een bekabelde netwerkverbinding en me later zorgen te maken over ontbrekende drivers. Het is gemakkelijker om ze later toe te voegen als je systeem online is.

Grafische gebruikersinterface
Veel apps (webbrowsen, fotobewerking, tekenen) werken alleen goed via een grafische gebruikersinterface. Je kunt kiezen uit veel verschillende opties als je vrije software gebruikt. De eerste keuze die je moet maken is of je een volledige "desktopomgeving" wilt of slechts een "windowmanager".
Desktopomgeving
Een desktopomgeving geeft je een algehele gebruikerservaring, inclusief panelen, systeemmenu's en statusapplets. Het wordt geleverd met een eigen set (systeem)applicaties en look+feel. Hoewel de meeste desktopomgevingen een complete standaardconfiguratie bieden, bieden veel van hen geavanceerde opties voor aanpassing. Bekijk hun websites, lees over hun ontwerpprincipes en kies iets wat je leuk vindt. Veelvoorkomende desktopomgevingen voor Debian zijn:
- GNOME: https://www.gnome.org en https://wiki.debian.org/Gnome
- Plasma van KDE: https://kde.org/plasma-desktop en https://wiki.debian.org/KDE
- XFCE: https://xfce.org en https://wiki.debian.org/Xfce
- LXDE: https://lxde.org en https://wiki.debian.org/LXDE
- MATE: https://mate-desktop.org en https://wiki.debian.org/MATE
Windowmanager
In tegenstelling tot een volledige desktopomgeving biedt een windowmanager alleen een manier om applicatievensters te beheren. Windowmanagers worden gekozen omdat ze extreem minimaal zijn, waardoor alle extra's handmatig door de gebruiker moeten worden toegevoegd. Als je graag je eigen beslissingen neemt, kan het kiezen van een windowmanager een goed startpunt zijn voor je grafische gebruikersinterface. Veelvoorkomende zijn:
- awesome: https://awesomewm.org
- Openbox: http://openbox.org/
- i3wm: https://i3wm.org
- dwm: https://dwm.suckless.org
- xmonad: https://xmonad.org
Je moet echt de tijd nemen om je eigen beslissing te nemen, omdat het kiezen van de basis voor de grafische gebruikersinterface een grote invloed heeft op de algehele ervaring. Het is een persoonlijke keuze, gedreven door voorkeuren en je bereidheid om het handmatig aan te passen. Mijn keuze, omdat ik er jarenlange ervaring mee heb, is om de Openbox windowmanager te gebruiken in combinatie met een aantal extra tools die mijn ervaring optimaliseren.
De ervaring optimaliseren
Dit is een essentiƫle stap wanneer je een vrij besturingssysteem op een computer installeert. Na de installatie zijn de standaardinstellingen vaak niet afgestemd op je specifieke hardware, voorkeuren en gebruiksscenario's.
Dit waren enkele dingen die ik bovenop de Openbox windowmanager deed:
- Upgrade de standaard 'stabiele' release van Debian naar de meer geavanceerde 'onstabiele' branch. Dit betekent dat je sneller nieuwe softwareversies krijgt, maar dingen kunnen soms kapot gaan. Ik hou van nieuwe software (omdat ik een ontwikkelaar ben), je kunt dit heroverwegen.
- Installeer verschillende niet-vrije apparaatdrivers (firmware) om alle hardwarecomponenten te laten werken, Debian heeft hier een gedetailleerde pagina over: https://wiki.debian.org/Firmware. Het vereist mogelijk een beetje onderzoek, logbestandanalyses, om erachter te komen welke firmware je computer nodig heeft.
- Gebruik gnome-network-manager en de bijbehorende applet om de status van de WiFi te bekijken en om me snel te laten verbinden met verschillende draadloze netwerken
- Installeer Geluid op Debian om de luidspreker van de tablet te laten werken. Zorg ervoor dat je de volume-/dempingsopties controleert voordat je overweegt dat je audiosysteem kapot is (standaard is het gedempt!)
- Installeer Blueman om me in staat te stellen verbinding te maken met verschillende Bluetooth-apparaten
- Gebruik tint2 als statusbalk, taakbalk en snelstartbalk (met snelkoppelingen naar veelgebruikte apps)
- Maak een script dat het scherm automatisch roteert inhoud als ik de tablet draai
- Installeer tlp om de levensduur van de batterij drastisch te verbeteren
- Installeer Compton om 'schokken' aanzienlijk te verminderen (verbetering van de vloeiendheid) bij het scrollen met het tabletscherm in portretmodus
- Installeer mijn favoriete apps op Debian GNU/Linux: Firefox en Chromium webbrowsers, Evolution mail/kalender/contacten-app, Thunar bestandsbrowser, XFCE-terminal terminalemulator, GIMP beeldbewerking, Inkscape vectorafbeeldingen bewerken, Filezilla SFTP-client, Libre Office, Xournal pen/notities
- Installeer onboard, een virtueel toetsenbord om tekstinvoer mogelijk te maken wanneer het hardwaretoetsenbord is losgekoppeld.
- Handmatig een linux kernel fix toepassen om de Surface Pen te laten werken met de nieuwste Linux-kernel, waardoor ik mijn eigen gepatchte kernel moet compileren.
- Secure Boot uitschakelen om mijn aangepaste Linux-kernel opstartbaar te maken







Conclusie
Na vele uren experimenteren en finetunen heb ik een tablet-besturingssysteemervaring gecreƫerd die werkt. Ik kan het gebruiken om te lezen, tekenen, programmeren en ontwerpen.
Het gevoel van begrip dat je zult ontwikkelen tijdens het hele "bouw je eigen OS"-ding is ongelooflijk, zowel vanuit een technisch als een gebruikersinteractieperspectief. Het is een geweldige kans om te leren en je vaardigheden aan te scherpen!
Update:
Lees mijn vervolgartikelen over: