CS-R USB-AIO

Der USB-Stick unterstützt die Annahme und technische Prüfung gespendeter Computer. Er startet als eigenständiges Arch-Linux-Livesystem, erkennt das aktuelle Gerät über seine Hardware-ID und verbindet es mit der zentralen Inventarverwaltung.

Ablauf in der Werkstatt

  1. Vom USB-Stick starten.
  2. Beim ersten Einsatz unter Einstellungen das Werkstatt-WLAN verbinden und WLAN speichern aktiviert lassen.
  3. Das Gerät wird über DMI-UUID oder Hersteller und Seriennummer erkannt.
  4. Die Inventarverwaltung liefert die vorhandene Gerätenummer oder vergibt eine neue.
  5. Geräte im Status Eingang erhalten automatisch einen Kurzscan mit Modell, CPU, RAM und Datenträgern.
  6. Danach kann der Techniker das Gerät ausschalten oder die Inspektion starten.
  7. Prüfstände und Ergebnisse werden als Inspektion synchronisiert. Offline gespeicherte Ergebnisse bleiben in der Warteschlange und werden später erneut gesendet.

Die Oberfläche konzentriert sich auf Gerät, Inspektion und Einstellungen. Reparaturen, Berichte und die Synchronisationswarteschlange sind über das Menü erreichbar.

Funktionen

  • automatische Hardware-ID und serverseitig vergebene Gerätenummer
  • Schutz vor doppelten Datensätzen
  • gespeichertes Werkstatt-WLAN mit geschütztem Passwort
  • geräteabhängige Tests für Akku, Touchpad, Webcam und mehrere Laufwerke
  • getrennte Ergebnisse für Hardwarefehler, nicht verfügbaren Test, Einrichtungsproblem, nicht geprüft und nicht vorhanden
  • Wiederaufnahme nach Neustart oder Stromunterbrechung
  • Reparaturnotizen und erneute Prüfung betroffener Komponenten
  • druckbarer Abschlussbericht mit Messwerten und Freigabe
  • dauerhafte Offline-Warteschlange mit sicheren Wiederholungen
  • zentrale Sprache, Testdauer und Grenzwerte
  • verifizierbarer Build mit Versions- und Prüfsummenmanifest

Projektaufbau

Pfad Inhalt
gui/ Bedienoberfläche und geführte Tests
scanner/ Hardwareerkennung und Messwerte
controller/ Geräteklassifizierung und Auswertung
scripts/ Build, Synchronisation und lokale Datenwerkzeuge
live/ Start und Vorbereitung des Livesystems
tests/ Python- und Rauchtests
config.example/ Beispiel für die Inventarverbindung

Der Inventory-Server wird in einem eigenen Repository gepflegt. Dieses Repository enthält ausschließlich den USB-Client.

Entwicklung und Prüfung

Voraussetzungen sind Rust, Cargo und Python 3. Auf Arch Linux werden für den ISO-Bau zusätzlich archiso, GRUB, Dateisystemwerkzeuge und libarchive benötigt.

bash scripts/build-release.sh

Der Befehl führt die Rust-, Python- und Rauchtests aus, baut alle drei Programme im Release-Modus und erzeugt build/release.json mit Build-ID und SHA-256-Prüfsummen.

ISO erstellen

Das Zielverzeichnis muss neu und leer sein:

bash scripts/build-iso.sh "$PWD/build/usb-aio-2.6.0"

Der Build prüft Profil, Binärdateien, Kernelpfade und die FAT32-Größengrenze. Ein erfolgreicher Softwaretest ersetzt keinen Starttest auf echter UEFI- und BIOS-Hardware.

USB-Stick installieren

Dieser Befehl löscht den ausgewählten Datenträger vollständig:

lsblk -o NAME,PATH,TYPE,SIZE,TRAN,MODEL,SERIAL,MOUNTPOINTS
sudo bash scripts/install-usb.sh /dev/sdX /absoluter/pfad/zur.iso

Das Installationsskript akzeptiert nur ein vollständiges USB-Blockgerät, lehnt den Systemdatenträger ab und verlangt die exakte Bestätigung ERASE /dev/sdX.

Konfiguration auf INTAKE_DATA

Die dauerhaften Dateien liegen auf der Datenpartition des Sticks:

config/inventory.json
config/inventory-api-key
config/inventory-server.crt
config/workshop-wifi.json
config/workshop.json

API-Schlüssel und WLAN-Passwort gehören nie in Git. Ein privates CA-Zertifikat darf nur als öffentliches Zertifikat gespeichert werden. Die Datenpartition ist nicht verschlüsselt und muss wie ein Werkstatt-Zugang behandelt werden.

Weitere Einzelheiten stehen in WERKSTATT-ABLAUF.md.

Description
All-in-One Live-USB für Geräteannahme, Hardwareprüfung und Inventar-Synchronisation
Readme 445 KiB
Languages
Rust 81.6%
Python 15.5%
Shell 2.9%