15 Punkte von GN⁺ 2025-09-08 | Noch keine Kommentare. | Auf WhatsApp teilen
  • Der ftape-Treiber ist der einzige Linux-Open-Source-Kernel-Treiber, mit dem sich Daten von Backup-Bändern aus den 1990er-Jahren (QIC-80) wiederherstellen lassen.
  • Allerdings wurde der Treiber seit etwa 2000 nicht mehr gewartet und ließ sich daher nur noch in alten Linux-Umgebungen verwenden.
  • Mithilfe von Claude Code wurde der alte Quellcode so refaktoriert, dass er zum aktuellen Linux-Kernel passt, und erfolgreich in ein eigenständiges Kernel-Modul umgewandelt.
  • Dabei wandelte Claude automatisch veraltete Funktionen und Strukturen in moderne APIs um, während der Nutzer die Ausgaben manuell analysierte und einige Konfigurationsfehler korrigierte.
  • Die Arbeit mit dem AI-Coding-Agenten lieferte Einblicke in die Verstärkung der Fähigkeiten von Programmierern und darin, wie man sich schnell in neue Technologien und Frameworks einarbeitet.

Hintergrund: Wiederherstellung alter Backup-Bänder und der ftape-Treiber

  • Das Wiederherstellen von Daten aus Bandkassetten wie QIC-80 ist eines der Hobbys des Autors.
  • Für diese Bänder wird meist ein spezielles Bandlaufwerk benötigt, das an einen Floppy-Controller angeschlossen ist.
    • Solche Laufwerke wurden in den 1990er-Jahren vor allem von kleinen Unternehmen oder Privatpersonen für Backups verwendet.
    • Die Nutzung des Floppy-Controllers war eine günstige Lösung ohne separaten SCSI-Adapter, hatte aber mehrere Nachteile wie Geschwindigkeitsbegrenzungen (500 Kbps) und ein nicht standardisiertes Protokoll.
  • Um mit diesen Bandgeräten zu kommunizieren, ist unter Linux der ftape-Kernel-Treiber unverzichtbar.
    • Nur mit ftape lassen sich die reinen rohen Binärdaten lesen, was für die Wiederherstellung zwingend erforderlich ist.
  • Da der ftape-Treiber jedoch seit etwa 2000 nicht mehr gepflegt wurde, ließ er sich auf modernen Linux-Kernels nicht mehr verwenden.
    • Daher musste zum Wiederherstellen der Daten jedes Mal ein veraltetes Linux-System (z. B. CentOS 3.5) direkt gebootet werden.

Beginn der Modernisierung des Kernel-Treibers mit Claude Code

  • Claude Code wurde zusammen mit einer Beschreibung des Repositorys gebeten, den Treiber so zu modernisieren, dass er auf aktuellen Kernels gebaut werden kann.
  • Claude identifizierte und ersetzte veraltete Funktionen und Strukturen passend zu den aktuellen Kernel-APIs und -Strukturen.
    • Nach mehreren Feedback-Runden und manuellen Korrekturen entstand Treibercode, der fehlerfrei kompiliert.
  • Der ursprüngliche Code ließ sich anfangs nur innerhalb des gesamten Kernel-Source-Trees bauen, doch auf zusätzliche Anfrage wurde automatisch ein eigenständiges Build-System für externe Module erzeugt.
    • Dadurch konnte das Kernel-Modul separat als .ko-Datei gebaut werden, woraufhin die Tests mit angeschlossener echter Hardware begannen.

Der Weg zur Problemlösung

  • Das Kernel-Modul wurde zwar korrekt geladen, doch es traten Probleme bei Laufwerkserkennung und Kommunikation auf.
    • Da für die Arbeiten sudo-Rechte nötig waren, konnte Claude die wiederholte Ausführung nicht selbst übernehmen; stattdessen wurden dmesg-Logs manuell weitergegeben, um die Ursache nachzuverfolgen.
  • Durch den Vergleich der Logs mit früheren erfolgreichen Fällen fand Claude Fehler bei einer nicht gesetzten Standard-I/O-Port-Adresse sowie bei der Initialisierung von Parametern.
    • Ein Standardwert wurde von -1 in 0xffff umgewandelt, wodurch die Erkennung scheiterte; nach dem Zurücksetzen auf die korrekte Adresse war das Problem behoben.
  • Am Ende wurde das Modul korrekt geladen, und ein Daten-Dump von einem Testband gelang erfolgreich.

Erkenntnisse aus der Zusammenarbeit mit einem AI-Coding-Agenten

  • Die Interaktion mit Claude Code fühlte sich an wie die „Zusammenarbeit mit einem Junior-Entwickler“ und damit wie echte Arbeit mit einem Ingenieur.
    • Der Nutzer muss Architekturentscheidungen, Problemerkennung und die Richtung weiterhin selbst aktiv vorgeben.
  • Je konkreter die Anfrage und je stärker sie domänenspezifische Schlüsselwörter enthält, desto wirksamer ist der Einsatz.
  • Die Produktivität eines AI-Agenten steigt stark an, wenn er Aufgaben des passenden Typs erhält; dafür braucht es ein Gefühl für Grenzen und Stärken.
  • Die eigene Leistungsfähigkeit wurde durch die AI vervielfacht. Eine Aufgabe, die manuell mehrere Wochen gedauert hätte, konnte mit alltäglichen Gesprächen und Feedback in wenigen Tagen abgeschlossen werden.
    • Dabei wurden auch praktisch nützliche Fähigkeiten wie moderne Praktiken der Kernel-Entwicklung, x86-Architektur und neue Command-Line-Tools gelernt.
  • Besonders hervorgehoben wird, dass sich die erste Einarbeitung und Anpassung an neue Frameworks (Rust, Flutter usw.) dadurch massiv beschleunigen lässt.

Fazit: ftape lebt wieder

  • Nach 25 Jahren lässt sich ftape wieder unter aktuellem Linux bauen und verwenden.
  • Der Autor arbeitet weiter an zusätzlichen Verbesserungen und Tests und hat neben Floppy-basierten Laufwerken auch Unterstützung für parallelportbasierte Geräte bestätigt.
  • Die physische Hardware ist nahezu dieselbe wie früher, doch das Betriebssystem hat sich von CentOS 3.5 zu Xubuntu 24.04 gewandelt.

Referenz

  • Der Quellcode des ftape-Projekts ist auf GitHub veröffentlicht.
  • Weitere Informationen, etwa zur Liste der gesammelten Geräte des Autors, finden sich im persönlichen Blog.

Noch keine Kommentare.

Noch keine Kommentare.