Mijn eigen tablet OS maken: Debian GNU/Linux installeren en aanpassen op de Surface Go

9 mrt. 2020

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" 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

Let op de vele firmware-updates, je kunt ze alleen installeren vanuit Windows

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

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

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 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 "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

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

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

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

Mijn aangepaste Linux-kernel compileren

Het compileren van de Linux-kernel op een Surface Go duurt een paar uur

Het 'ingebouwde' virtuele toetsenbord

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

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)

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:

Hoe je je fotobibliotheek migreert en beheert met vrije software, ik gebruik nu mijn "WillemOS" tablet om dit te doen!

Naadloze bestandssynchronisatie instellen tussen je tablet en smartphone met behulp van open protocollen en vrije software.

Mijn tablet OS verfijnen met Surface Go 2 i3wm en 4G/LTE