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.

Microsoft Surface Go - een ultra-draagbare 10
Microsoft Surface Go - een ultra-draagbare 10" touchscreen tabletcomputer (met type cover, pen en USB-C naar ethernet en USB 3.0 adapter)

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!

Updates handmatig controleren met Windows Update
Updates handmatig controleren met Windows Update
Let op de vele firmware-updates, je kunt ze alleen installeren vanuit Windows
Let op de vele firmware-updates, je kunt ze alleen installeren vanuit Windows
Het kan even duren, wees geduldig of neem foto's :-)
Het kan even duren, wees geduldig of neem foto's :-)

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.

Debian GNU/Linux - Het universele besturingssysteem
Debian GNU/Linux - Het universele besturingssysteem

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.

Je kunt een andere computer gebruiken om een opstartbare USB-stick te maken, ik gebruikte mijn ThinkPad X1
Je kunt een andere computer gebruiken om een opstartbare USB-stick te maken, ik gebruikte mijn ThinkPad X1

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 opstartbare USB-drive aansluiten op de Surface tablet met behulp van de USB-C naar USB 3.0 en ethernet dongle
De opstartbare USB-drive aansluiten op de Surface tablet met behulp van de USB-C naar USB 3.0 en ethernet dongle

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.

"Geavanceerde opstartopties" vanuit Windows-instellingen stelt je in staat om een USB-drive als opstartmedium te gebruiken
Kies
Kies "Linpus Lite" om het installatieprogramma op te starten

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

Debian GNU/Linux Installer Menu op Surface Go - blije ik
Debian GNU/Linux Installer Menu op Surface Go - blije ik

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).

Ontbrekende firmware maakt hardware onbruikbaar tijdens de installatie
Ontbrekende firmware maakt hardware onbruikbaar tijdens de installatie

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.

Installatie bezig - let op de aangesloten netwerkkabel
Installatie bezig - let op de aangesloten netwerkkabel

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:

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:

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:

Mijn aangepaste Linux-kernel compileren
Mijn aangepaste Linux-kernel compileren
Het compileren van de Linux-kernel op een Surface Go duurt een paar uur
Het compileren van de Linux-kernel op een Surface Go duurt een paar uur
Het 'ingebouwde' virtuele toetsenbord
Het 'ingebouwde' virtuele toetsenbord
Peninvoer werkt met mijn aangepaste linux-kernel en de Xournal-app
Peninvoer werkt met mijn aangepaste linux-kernel en de Xournal-app
Het aangepaste besturingssysteem op de tablet gebruiken om content te maken voor deze blog
Het aangepaste besturingssysteem op de tablet gebruiken om content te maken voor deze blog
Een artikel lezen op mijn tablet in portretmodus
Een artikel lezen op mijn tablet in portretmodus
De aangepaste Surface Go (rechts) gebruiken voor programmeren, vergelijkbaar met hoe ik werk met een iPad Pro (links)
De aangepaste Surface Go (rechts) gebruiken voor programmeren, vergelijkbaar met hoe ik werk met een iPad Pro (links)

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: