Files
USB-AIO/README.md
Denis Stoecklmeier 81f06cf6b4
Some checks failed
Tests / test (push) Has been cancelled
USB-AIO für automatische Geräteprüfung
2026-10-14 20:14:36 +02:00

105 lines
4.0 KiB
Markdown

# 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
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
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:
```bash
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:
```text
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](WERKSTATT-ABLAUF.md).