Habe nach eurer Ermutigung die Debian sources gepatcht, wie geplant (lief sauber durch). Hatte ja zunächst damit gewartet, weil ich diesen zentralen Schritt irgendwie in keinem Debian README gefunden hatte.
In Stichworten zum Ablauf:
~/linux-source-5.10$ cp /boot/config-5.10.0-10-rt-amd64 .config
Wollte schon länger mal "make localmodconfig" ausprobieren, was basierend auf der .config und den geladenen Kernelmodulen auch nur die nötigsten Module konfiguriert ...
make localmodconfig
In Kapitel 4.5 hatte ich Verwirrendes zu Signaturen und Keys gelesen und hatte vor dem localmodconfig noch dafuer gesorgt, daß folgende Variablen so gesetzt waren:
#CONFIG_MODULE_SIG=y
CONFIG_SYSTEM_TRUSTED_KEYS=""
Ob das so nötig war, sei dahingestellt. Das Debugging brauche ich jedenfalls nicht:
~/linux-source-5.10$ scripts/config --disable DEBUG_INFO
make nconfig
(mit nconfig habe ich meine gewünschte Kerneloption ausgewählt)
make clean
Die Variablen in der .config waren direkt vorm Kompilieren wie folgt (MODULE_SIG war irgendwie wieder zurück auf y):
CONFIG_MODULE_SIG=y
CONFIG_SYSTEM_TRUSTED_KEYS=""
# CONFIG_DEBUG_INFO is not set
Dann habe ich mit den 4 cores kompiliert:
$ make -j4 bindeb-pkg
Der erste Anlauf brach gleich ab ...
dpkg-checkbuilddeps: error: Unmet build dependencies: libelf-dev:native libssl-dev:native
Habe dann
libelf-dev und
libssl-dev nachinstalliert und den letzten Befehl wiederholt. Lief dann sauber bis zum Ende:
[...]
HDRINST usr/include/asm/resource.h
HDRINST usr/include/asm/unistd_64.h
INSTALL debian/linux-libc-dev/usr/include
dpkg-deb: building package 'linux-libc-dev' in '../linux-libc-dev_5.10.84-rt58-1_amd64.deb'.
dpkg-deb: building package 'linux-image-5.10.84-rt58' in '../linux-image-5.10.84-rt58_5.10.84-rt58-1_amd64.deb'.
dpkg-genbuildinfo --build=binary
dpkg-genchanges --build=binary >../linux-5.10.84-rt58_5.10.84-rt58-1_amd64.changes
dpkg-genchanges: info: binary-only upload (no source code included)
dpkg-source --after-build .
dpkg-buildpackage: info: binary-only upload (no source included)
Ich musste das neue Kernelpaket dann nur noch installieren:
# dpkg -i linux-image-5.10.84-rt58_5.10.84-rt58-1_amd64.deb
Grub hat diesen eigenen Kernel dann automatisch beim nächsten Boot gestartet.
Das Ziel dieses Threads eines angepassten rt-kernel mit PREEMPT_RT und 1000Hz-timer war an dieser Stelle schon erreicht.
WLAN geht, USB-Audio geht. Kleiner Wermutstropfen, ich bekomme keinen MIDI-Input von meinen Controllern. Habe aber schon gemerkt, woran es liegt. Das Modul snd_seq_midi wurde nicht gebaut. War während des make localmodconfig nicht geladen gewesen und wurde daher wohl nicht automatisch erfasst (obwohl das keyboard angeschlossen war). Ich kann den load von snd_seq_midi provozieren, indem ich meine Audiosoftware vorher starte. Eine zweite Möglichkeit wäre aber auch, es über make nconfig explizit zu setzen. Werde die Kompilation also nochmal wiederholen müssen. Ist aber kein Problem, weiß ja jetzt ungefähr, wie der Debian-way für einen speziellen rt-kernel aussieht. Die Kompilation hat auf dem lüfterlosen Mobilrechner auch weniger als eine halbe Stunde gebraucht.
Danke für eure Ermunterung!