Leider sind sehr viele Anleitungen schlicht falsch, deshalb hier der „korrekte“ und effiziente Weg.
Die Zeiten, daß man sich den Kernel-Quelltext holt und mit „make menuconfig“ einen Tag dasitzt, sind lange vorbei.
Jede Distribution enthält schon eine Vielzahl an Patches.
Normalerweise ist man ja ganz zufrieden, aber z.B. die VGA-Framebuffer-Konsolen-History (über „PgUp“ oder „Bild nach oben“ möchte man wieder haben.
Also, ich bin z.B. einer der „Sucker“, der dies explizit verwendet, zur Datenrettung, auf vielen alten Rechnern. Hier der entsprechende Post von Greg Kroah-Hartman:
Dies kann wieder rückgängig gemacht werden. Also muß ein Patch eingespielt werden.
Hier eine Diskussion und Anleitung dazu:
Hier somit die Vorgehensweise:
- feststellen, welcher Kernel läuft, z.B. „uname -a“, in dem Fall des Kunden: „Linux x250 6.1.0-43-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.162-1 (2026-02-08) x86_64 GNU/Linux“
Nun über „dselect“ oder einen anderen Paketmanager das entsprechende Paket heraussuchen:
- „linux-source-6.1“ wäre wohl richtig, aber man nimmt besser gleich das „meta-package“ „linux-source“, denn dann wird z.B. auch 6.2 gleich installiert.
Unter /usr/src/ findet sich nun „linux-source-6.1.tar.xz“. Mit „xz -d“ und „tar -xvf“ auspacken, vorher z.B. in einen User-Ordner verschieben, denn man muß nicht mehr „root“ sein, um ein Debian-Paket zu erzeugen.
Dann in dieses Verzeichnis wechseln: „cd linux-source-6.1“
- cp -a /boot/config-6.1.0-43-amd64 .config
Spätestens jetzt folgende Pakete nachinstallieren:
- „ncurses“,
Nun kann der Kernel konfiguriert werden:
- make menuconfig
Dann das eigentliche Kompilieren starten:
- fakeroot make -j2 bindeb-pkg
Mit zwei Kernen, 8 GB RAM und einem „core i5“ dauert es eine gute halbe Stunde.
Mögliche Fehlermeldungen:
- „dpkg-buildpackage: Fehler: Unterprozess debian/rules binary lieferte Exitstatus 2“
- make[1]: *** [scripts/Makefile.package:86: bindeb-pkg] Fehler 2
- make: *** [Makefile:1696: bindeb-pkg] Fehler 2
Lösung: Noch einmal ausführen:
- fakeroot make -j2 bindeb-pkg
Weil das meiste schon kompiliert wurde, scrollt der Fehler nicht mehr weg. Nun kommt:
- „BTF: .tmp_vmlinux.btf: pahole (pahole) is not available“
- Failed to generate BTF for vmlinux
- Try to disable CONFIG_DEBUG_INFO_BTF
Lösung: „apt-get install dwarves“.
Das kompilieren geht dann durch.
Installieren über:
- dpkg -i linux-image-6.1.162_6.1.162-3_amd64.deb
Es kommt die Fehlermeldung:
dpkg: Warnung: »ldconfig« wurde im PATH nicht gefunden oder ist nicht ausführbar
dpkg: Warnung: »start-stop-daemon« wurde im PATH nicht gefunden oder ist nicht ausführbar
dpkg: Fehler: 2 erwartete Programme nicht im PATH gefunden oder nicht ausführbar
Beachten Sie: PATH von root sollte normalerweise /usr/local/sbin, /usr/sbin und /sbin enthalten
Dieser Fehler läßt sich wie folgt beheben:
- mit „set“ prüfen, wie die Variable „Path“ belegt ist -„/usr/sbin/“ wird nicht enthalten sein
- „sudo bash“ den Rechner zwingen, noch einmal als „root“ eine Shell anzulegen
- mit „set“ prüfen, ob „/usr/sbin/“ jetzt enthalten ist.
Anschließend läßt sich das Paket installieren.
Dann also alles sichern, den Patch unter „patch“ ablegen und in „src“ testen:
- patch -p1 -R –dry-run < ../patch/scrollback-fbcon.patch
Es kommt:
checking file drivers/video/fbdev/core/fbcon.c
Hunk #1 succeeded at 129 with fuzz 2 (offset 7 lines).
Hunk #2 succeeded at 174 with fuzz 1 (offset 7 lines).
Hunk #3 succeeded at 358 with fuzz 1 (offset -15 lines).
Hunk #4 FAILED at 414.
Hunk #5 succeeded at 442 (offset -29 lines).
Hunk #6 succeeded at 991 with fuzz 2 (offset -31 lines).
Hunk #7 succeeded at 1184 (offset -36 lines).
Hunk #8 succeeded at 1375 with fuzz 2 (offset -10 lines).
Hunk #9 FAILED at 1399.
Hunk #10 succeeded at 2502 with fuzz 2 (offset 1031 lines).
Hunk #11 FAILED at 1610.
Hunk #12 FAILED at 1749.
Hunk #13 FAILED at 1771.
Hunk #14 FAILED at 2141.
Hunk #15 FAILED at 2464.
Hunk #16 FAILED at 2489.
Hunk #17 succeeded at 2680 with fuzz 2 (offset 33 lines).
Hunk #18 succeeded at 2706 (offset 33 lines).
Hunk #19 FAILED at 2716.
Hunk #20 succeeded at 2812 (offset 28 lines).
Hunk #21 FAILED at 3196.
Hunk #22 FAILED at 3430.
11 out of 22 hunks FAILED
Wenn man sich den Patch genau anschaut, sieht man, daß die Konfigurationsdateien fehlen.
Also somit von dem ursprünglichen „Post“ alles herauskopiert, und das ist eigentlich eher der, der ja eigentlich gesucht war, weil „vgacon.c“ ja die relevante sein dürfte – wobei, man müßte erst einmal feststellen, wird denn Framebuffer oder VGA geladen?
Aber erst einmal egal, auch der „Patch“ schlägt fehl:
checking file arch/powerpc/configs/pasemi_defconfig
Hunk #1 succeeded at 105 (offset -4 lines).
checking file arch/powerpc/configs/ppc6xx_defconfig
Hunk #1 succeeded at 730 (offset -42 lines).
checking file arch/x86/configs/i386_defconfig
Hunk #1 FAILED at 202.
1 out of 1 hunk FAILED
checking file arch/x86/configs/x86_64_defconfig
Hunk #1 FAILED at 197.
1 out of 1 hunk FAILED
checking file drivers/video/console/Kconfig
Hunk #1 succeeded at 23 with fuzz 2 (offset 1 line).
checking file drivers/video/console/vgacon.c
Hunk #1 succeeded at 141 with fuzz 1 (offset -24 lines).
Hunk #2 succeeded at 355 with fuzz 1 (offset -31 lines).
Hunk #3 FAILED at 573.
Hunk #4 FAILED at 864.
Hunk #5 succeeded at 1343 (offset -37 lines).
Hunk #6 succeeded at 1407 (offset -37 lines).
2 out of 6 hunks FAILED
Wie kann man feststellen, ob ALT-STRG-F3 zu einer VGA oder „fbcon“-Konsole geführt hat?
Hier Dokumentation:
Hier ein daraus leicht abgewandeltes Script:
!/bin/bash
for (( i = 0; i < 16; i++))
do
if test -x /sys/class/vtconsole/vtcon$i; then
if [ cat /sys/class/vtconsole/vtcon$i/name | grep -c "frame buffer" \
= 1 ]; then
echo FrameBuffer vtcon$i
fi
fi
done
Somit ist klar, für die „History“-Problematik müssen zwei Patches rückgängig gemacht werden. Zum einen der „Frambuffer“-Teil, zum anderen der VGA-Teil.
Das wäre doch eine Aufgabe für die KI, denkt man sich, hier der Prompt:
- „Ich möchte die console history Gunktion, also „PgUp“, unter Linux Kernel 6.1 wieder einfügen, der Patch für Kernel 5.4 läuft nicht durch, wie muß ich ihn anpassen, hier wäre er: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/patch/\?id=50145474f6ef4a9c19205b173da6264a644c7489
Und wie geht die Geschichte weiter? Bitte spenden über „PayPal“ oder wie auch immer.