Aus Raspberry Pi Geek 12/2021

Selbst kompilierte Firmware auf Tastaturen flashen (Seite 3)

Mit einem Klick auf das Druckersymbol bekommen Sie eine Seite mit allen von Ihnen konfigurierten Tasten auf allen Layern angezeigt, die Sie dann entweder ausdrucken (zum Beispiel in ein PDF) oder auch einfach nur als Bildschirmfoto abspeichern.

Wollen Sie allerdings den gesamten Quellcode vom QMK samt Ihrer Tastenbelegung über die Schaltfläche Full Source herunterladen, so müssen Sie dazu die Firmware vom QMK Configurator bauen lassen. Anschließend können Sie dann über die Schaltfläche Firmware die frisch kompilierte Firmware als .hex-Datei herunterladen.

Dazu müssen Sie aber nicht nur den Entwicklern vom QMK und deren Quellcode vertrauen, sondern auch deren Infrastruktur einschließlich der Build-Server und der dort installierten Compiler. Für vorsichtige Zeitgenossen ist das Kompilieren auf dem eigenen Rechner sicher die vertrauenswürdigere Variante. Inbesondere stellt dieses Vorgehen sicher, dass die Firmware auch wirklich aus dem vorliegenden Quellcode gebaut wurde. Auf das Kompilieren von QMK gehen wir später noch näher ein.

Die heruntergeladene JSON-Datei mit der Tastenbelegung lässt sich allerdings relativ gut in einem Texteditor lesen und damit auch leicht auditieren. Außerdem umfasst sie im Prinzip nur ein paar Metadaten sowie eine Matrix mit der Information, welche Tasten welchen Code an den Computer schicken sollen. Insofern können Sie diese vom Online-Dienst erstellte Datei wesentlich einfacher überblicken, verstehen und nach einem kurzen Blick guten Gewissens weiterverwenden.

Wollen Sie sich die Firmware von QMKs Build-Service bauen lassen, so klicken sie im QMK Configurator oben rechts auf die grüne Schaltfläche KOMPILIEREN. Daraufhin erscheint statt der vielleicht erwarteten Sanduhr eine im Weltall rotierende Kartoffel (Abbildung 3) – offenbar ein Running Gag der Entwickler: Auf der Webseite des QMK Configurator erscheinen oberhalb der Pulldown-Menüs auch immer wieder neue Fakten über Kartoffeln.

Abbildung 3: Während der QMK Build-Service eine Firmware kompiliert, erscheint eine rotierende Kartoffel.

Abbildung 3: Während der QMK Build-Service eine Firmware kompiliert, erscheint eine rotierende Kartoffel.

Alternativen

Es gibt nur wenige Alternativen zum QMK Configurator, darunter einige herstellerspezifische Tools. Allerdings erscheint aus Sicht des Autors keine davon zufriedenstellend.

Von QMK selbst kommt die QMK Toolbox [10] – zwar ebenfalls freie Software, aber bisher nur für Windows und Mac OS verfügbar. Im Quellcode gibt es zwar ein Verzeichnis linux, aber die Portierung auf das freie Betriebssystem wird in einem Ticket [11] als “ziemlich tot” beschrieben. Der webbasierte Keyboard Firmware Builder [12], ebenfalls Open-Source-Software [13], kann QMK konfigurieren und bauen. Allerdings hat er seit März 2021 den Status “End of Life”.

Dann gibt es da noch das berühmt-berüchtigte VIA [14], ein grafisches, lokal ausgeführtes Tool, das die Belegung von Tastaturen sogar ohne erneutes Flashen ändern kann. Es nutzt dazu eine angepasste Version von QMK, die die Belegung nicht hart einkompiliert. VIA unterstützt allerdings nur ausgewählte Keyboards, daher wohl auch der fragende Domain-Name CanIUseVIA.com. Es hatte lange den Ruf, sehr pingelig bei der Auswahl der unterstützten Tastaturen zu sein. Die Liste der unterstützten Tastaturen [15] enthält aber mittlerweile immerhin 800 Modelle, also mehr als die Hälfte der rund 1500 von QMK unterstützten Tastaturen.

Ärgerlicherweise ist VIA bisher nur teilweise Open-Source-Software. Der eigentlich interessante Kern des Quellcodes wurde bisher nicht veröffentlicht, was immer wieder zu Fragen auf Github führt. Deswegen kann man auch nicht selbst etwas daran ändern, dass es sowohl das Debian-Paket als auch das AppImage-Pendant nur für die Intel x86-64-Bit-Architektur gibt. VIA funktioniert also nicht auf dem Raspberry Pi, weswegen wir an dieser Stelle nicht weiter darauf eingehen.

Toolchain

Wollen Sie QMK lokal bauen, benötigen Sie auf jeden Fall Git zum Auschecken des Quellcodes sowie einen passenden Compiler, denn der Mikrocontroller hat eine andere Hardwarearchitektur als der Computer.

Zudem braucht der Quellcode reichlich Platz. Alleine ein Klonen des Git-Repos von QMK belegt rund 400 MByte Plattenplatz. Klonen Sie auch noch alle Git-Submodule, so wie es das Kommandozeilenwerkzeug Qmk macht, fallen etwa 1,4 GByte Datenvolumen nur für den Quellcode an – Platz zum Kompilieren nicht eingerechnet. Zusammen mit einem Raspberry-Pi-Desktop kommen so schnell 6 bis 8 Gigabyte zusammen – es empfiehlt sich daher eine mindestens 16 GByte große SD-Karte.

QMK bietet mit dem Kommandozeilen-Tool Qmk [16] einen Helfer für viele Stellen des Prozesses an, den man auf verschiedenen Wegen installieren kann. Am einfachsten scheint es, die angebotenen Debian-Pakete [17] aus dem QMK-eigenen Apt-Repository zu nutzen. Die gibt es jedoch nur für die Architekturen amd64, i386 und arm64, nicht aber für armhf, das man typischerweise auf einen Raspberry Pi nutzt. Zudem wurden die Pakete – nicht nur für Debian – mit dem in Sachen Ergebnisqualität recht umstrittenen Tool FPM [18] gebaut. Auch hier stellt sich damit die Frage nach dem Vertrauen in die Build-Infrastruktur.

Verwenden Sie eine der genannten Architekturen zum Bauen Ihrer Tastatur-Firmware und wollen diese Pakete verwenden, dann fügen Sie Ihrem System das Apt-Repository von QMK als Paketquelle hinzu (Listing 2).

Listing 2

Paketquelle hinzufügen

$ echo deb https://linux.qmk.fm/ buster main | sudo tee /etc/apt/sources.list.d/qmk.list
$ curl https://linux.qmk.fm/gpg_pubkey.txt | sudo apt-key --keyring /etc/apt/trusted.gpg.d/qmk.gpg add -
$ sudo apt update
$ sudo apt install qmk git
DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 9 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben