Zum Hauptinhalt Zur Navigation

Claude, bitte kommen!

Vor ein paar Wochen kam ich daher auf die Idee, diese einfache Aufforderung an Claude zu formulieren:

Nach mehreren Durchläufen, in denen Claude angab, es sei mit "Compobulation" und wer weiß was noch beschäftigt, hatte ich plötzlich einen Kernel-Treiber, der fehlerlos kompiliert wurde. Claude kann nämlich die Ausgabe des Compilers nehmen und wieder in sich selbst einspeisen, bis die Kompilierung korrekt funktioniert.

Eine Menge Kernel-Funktionen und -Strukturen waren in der langen Zeit zwischen Kernel-Version 2.4 und 6.8 verständlicherweise veraltet oder ersetzt worden. Erstaunlicherweise fand Claude alle veralteten Teile und ersetzte sie durch die korrekten modernen Entsprechungen, wobei nur wenige manuelle Nachbesserungen am Code erforderlich waren (dazu später mehr).

Allerdings wurde in diesem Stadium noch erwartet, dass der Kernel-Treiber als Teil eines vollständigen Kernel-Baums kompiliert wird. Ich wollte ihn aber nur als eigenständiges, ladbares Kernel-Modul haben. OK, kein Problem:

Und so war es auch, ohne weitere Aufforderung. Am Ende dieser Phase hatte ich ein ladbares Kernel-Modul (.ko), das ich nun mit echter Live-Hardware ausprobieren konnte. Wenig überraschend funktionierte das Modul noch nicht: Es wurde zwar geladen, aber irgendetwas hinderte es daran, korrekt mit dem Bandlaufwerk zu kommunizieren. Aber ich machte weiter.

Da von dort an das Laden/Entladen von Kernel-Modulen mit sudo-Rechten verbunden ist, konnte ich Claude solche heiklen Vorgänge nicht mehr selbstständig iterieren lassen. Glücklicherweise war der ftape-Treiber bereits großzügig mit Protokollmeldungen versehen (printk()-Aufrufe, die in dmesg ausgegeben werden), so dass ich das Modul selbst laden und die Ausgabe von dmesg manuell in Claude einfügen konnte, um sie mit einem "bekanntermaßen fehlerfreien" dmesg-Protokoll zu vergleichen, das ich zuvor von einem erfolgreichen Bandlesevorgang gespeichert hatte.

Nach einigen Wiederholungen dieses Vorgangs identifizierte Claude die verbleibenden Probleme, welche die Kommunikation des Moduls mit der Hardware verhinderten.

Und endlich hatte ich ein Kernel-Modul, das a) geladen werden konnte, b) das Bandlaufwerk erkannte und c) den Inhalt eines Testbandes auslesen konnte.

Die Verwendung des ftape-Treibers auf einem modernen Kernel – eine Aufgabe, die ich für unerreichbar gehalten hatte – war innerhalb von zwei Abenden möglich geworden.


Relevante Themen