Skip to content

Qubes-OS für Microsoft Surface

Ich bin großer Liebhaber von freien Betriebssystemen, idealerweise mit Open Source erstellt. Daher teste ich auch gerne mal Grenzfälle aus und bin neugierig, wie Geräte mit anderen Betriebssystemen reagieren.

Ich habe seit einiger Zeit ein Microsoft Surface Pro 8 - ich wollte was Tablet-ähnliches mit sinnvoller Tastatur und sinnvoller Shell. Windows kann sowas, aber ich wollte gerne mit Linux arbeiten.

Es scheint mehr Personen zu geben die so denken, weil Du für das Softcover (Tastatur, die auch das Display schützt) spezielle Treiber für den Linuxkernel benötigst, weil das keine Standard-USB-Tastatur ist. linux-surface ist dafür das Stichwort, für die üblichen Distributionen gibt es Pakete.

Debian kann mit Secureboot umgehen, liess sich auch gut installieren. Damit war der erste Schritt da.

Nun wollte ich aber auch Qubes-OS installieren. Qubes-OS ist eine Linux-Variante wo Du quasi nur mit virtuellen Maschinen arbeitest. Damit separierst Du Deine Arbeit und deine verschiedenen Tätigkeiten voneinander - und zwar so, das Du kontrollierst, welches Programm welche Informationen bekommt. Der Browser startet zum Beispiel in einer Umgebung die nichts weiss - der Browser kennt Deine Bookmarks, aber alles andere ist für ihn so als wäre der ganz neu installiert, und zwar bei jedem Neustart.

Auch Qubes-OS ist Open-Source, aber sie haben bei Linux viel für sich angepasst (sie arbeiten mit Xen als Host-System und erstellen dann viele verschiedene virtuelle Maschinen). Und der Treiber für das Surface-System (damit die Tastatur auch beim Starten schon funktioniert) muss für den Xen-Host bereits verwendet werden.

Das Qubes-OS-Projekt hat inzwischen auf Github einen Qubes-Builder Version 2 veröffentlicht, mit dem man seine eigene Qubes-OS-DVD erstellen kann. Da das alles mit git-Mitteln geht ist es auch einfach, das ganze selbst zu machen und zu modifizieren.

Was habe ich also gemacht?
Erst einmal auf Github das originale Qubes-OS qbuilder-v2-Repository geforkt und heruntergeladen. Dann habe ich dafür notwendige Änderungen gemacht, bei dem Paket linux-kernel-latest die Patche von Linux-Surface eingepflegt und dann die DVD erstellt.

Im Einzelnen sah das dann so aus:

im Hauptverzeichnis:

git clone https://github.com/QubesOS/qubes-builderv2
cd qubes-builderv2
git submodule update --init


in einem anderen Verzeichnis:

git clone https://github.com/linux-surface/linux-surface/
cd linux-surface/
cd patches/
ls
cd 6.4
ls
mv 00*patch ~/qubes-builderv2/artifacts/sources/linux-kernel-latest/


Das sorgt dafür, das die notwendigen Patches im Qubes-Builderv2-Tree abgelegt sind, und zwar beim Paket linux-kernel-latest.


cd ~/qubes-builderv2/artifacts/sources/linux-kernel-latest
vi series.conf


In der series.conf stehen die einzupflegenden Patches in der Reihenfolge in der sie eingepflegt werden sollen - falls es da Abhängigkeiten gibt.

Natürlich muss dem Builder noch gesagt werden, was er mit den Surface-Modulen machen soll. Ein reines einbinden reicht ja nicht - der Linux-Kernel muss mit den Modulen gebaut werden und dracut bzw. die initramfs-Umgebung muss davon wissen und es einbinden.
Dies passiert, indem man noch weitere Quellen für den Build angibt, genauer gesagt für die Linux-Utils.

Dafür muss die qubes-os-r4.2.yml in "example-configs" angepasst werden:


- linux-utils:
url: https://github.com/grince/qubes-linux-utils
- linux-kernel:
branch: stable-6.1
timeout: 21600
- linux-kernel-latest:
url: https://github.com/QubesOS/qubes-linux-kernel
branch: main
timeout: 21600
- linux-surface:
url: https://github.com/linux-surface/linux-surface
branch: main


(ich habe das linux-utils geforkt, weil ich natürlich keine Schreibrechte zu qubes-os haben möchte ;-)

Danach kann mit


qb installer init-cache all


das DVD-Image erstellt werden.

Trackbacks

No Trackbacks

Comments

Display comments as Linear | Threaded

No comments

Add Comment

E-Mail addresses will not be displayed and will only be used for E-Mail notifications.
To leave a comment you must approve it via e-mail, which will be sent to your address after submission.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA

Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
Standard emoticons like :-) and ;-) are converted to images.
Form options