This commit is contained in:
104
README.md
Normal file
104
README.md
Normal file
@@ -0,0 +1,104 @@
|
||||
# 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).
|
||||
Reference in New Issue
Block a user