• v1.2.0 016d4dc94d

    dduarte released this 2026-09-11 23:38:28 +02:00 | 16 commits to main since this release

    Diese Fassung macht aus dem Kiosk ein Gerät, das eine Videokonferenz übersteht,
    drucken kann und sich vor Ort bedienen lässt — ohne dabei zum Arbeitsplatz zu
    werden.

    Meeting-tauglich

    Kamera, Mikrofon, Ton und Bildschirmfreigabe sind für die eingestellte Adresse
    vorab freigegeben. Bisher fragte Chromium bei jedem Start nach — in einem
    Vollbild ohne Bedienleiste ist so ein Dialog schlecht zu treffen, und wer
    einmal „Blockieren" erwischt, sperrt das Gerät für die Anwendung aus.

    Die Richtlinien werden aus KIOSK_URL erzeugt, nicht fest eingetragen.
    Sonst liefen sie auseinander, sobald ein Gerät eine andere Adresse bekommt.

    Ton gab es bisher gar nicht. Jetzt pipewire mit wireplumber, und
    KIOSK_LAUTSTAERKE setzt bei jedem Start einen festen Wert und hebt eine
    Stummschaltung auf
    — ein Kiosk hat niemanden, der vor dem Meeting nachsieht,
    warum nichts zu hören ist.

    Werkzeugmenü auf der Super-Taste

    OxCampusOS
    ├─ Einstellungen ──→ Lautstärke
    │                    Netzwerk ──→ WLAN suchen und verbinden
    │                    Drucker ──→ suchen, einrichten, Testseite
    ├─ Verbindungstest
    ├─ Neu starten
    └─ Ausschalten
    

    Ein zweiter Druck schließt es wieder. Abschaltbar über KIOSK_MENUE="nein".

    Nicht darin: Dateimanager, Editor, Terminal. Der Maßstab ist nicht die Zahl
    der Werkzeuge, sondern ob eines einen Dateiauswahldialog mitbringt — der
    ist ein Dateimanager mit „Öffnen mit …" und damit ein Weg aus dem Kiosk
    heraus. Aus demselben Grund kein nm-connection-editor: Der Netzwerkdialog
    kann genau eines, ein WLAN aussuchen und sich verbinden.

    Drucken, treiberlos

    Über IPP Everywhere — kein einziges Treiberpaket, nichts, was bei einem
    Modellwechsel nachgezogen werden müsste. Bedingung ist, dass der Drucker
    AirPrint beherrscht; das können praktisch alle Geräte der letzten zehn Jahre.

    Eingerichtet wird entweder über TacticalRMM aus dem Custom Field der Site
    (drucker-einrichten.sh) oder vor Ort über das Menü.

    Die Konsole verrät nichts mehr

    Strg+Alt+F2 zeigte bisher sofort den Einrichtungsdialog. Damit kam jeder mit
    einer Tastatur am Gerät an die Anmeldung bei TacticalRMM. Jetzt steht dort ein
    gewöhnlicher Login; der Dialog startet erst auf Zuruf. Nach dem Anmelden
    begrüßt Fastfetch mit Gerätename, Adresse und dem Zustand von Kiosk,
    TacticalRMM und Abschottung.

    Behobene Fehler

    Mauszeiger im Kiosk unsichtbar -nocursor lag fest in der .bash_profile; jetzt KIOSK_CURSOR
    „Take Control" zeigte ein schwarzes Fenster dem Agenten fehlten DISPLAY und XAUTHORITY, dazu drei Bibliotheken
    Neustart aus dem Menü tat nichts polkitd fehlte im Image, und bei mehreren Sitzungen greift reboot-multiple-sessions
    Erste Lautstärke auf 100 % statt auf dem eingestellten Wert gesetzt wurde PipeWires Platzhalter, bevor der echte Ausgang da war
    Zwei Journaleinträge je Reload systemd-ssh-generator versuchte SSH über AF_VSOCK
    oxcampus-setup.sh brach ohne Terminal sofort ab clear scheiterte, set -e beendete das Skript
    Hinweiskasten ein Zeichen zu breit Auffüllung von Hand abgezählt

    Verwaltung über TacticalRMM

    Neu in TRMM-Scripts/: drucker-einrichten, fernsteuerung-reparieren,
    deckelschalter, lautstaerke, setup-nachziehen, verschluesselung-pruefen
    — dazu die vorhandenen für WLAN, Filter-DNS, Netzdiagnose, Zustandsbericht und
    Updates.

    Dokumentation

    Neue Bildschirmfotos in screens/, aufgenommen an einer frischen Installation.
    In docs/betrieb.md ein Abschnitt „Kleinigkeiten, die Absicht sind":
    Verhalten, das niemandem auffällt, solange es stimmt — Ton an nach Neustart,
    Bildschirmschoner aus, zufällige Gerätenamen, Downloads nach 30 Tagen weg, und
    warum jedes davon so ist.

    Was noch offen ist

    • Der Druckerdialog im Menü ist der einzige Teil, der noch nicht am Gerät
      lief. Die Befehle darunter sind dieselben wie im TacticalRMM-Skript, das von
      Anfang bis Ende erprobt ist.
    • GRUB_TIMEOUT=2: Das Bootmenü des installierten Systems steht zwei
      Sekunden sichtbar im Weg. Bewusst unverändert — eine Entscheidung über das
      Bootverhalten gehört nicht nebenbei getroffen.
    • Netzwerk-Allowlist, Festplattenverschlüsselung und ein Wechsel des
      Root-Passworts stehen weiter aus.
    Downloads
  • v1.1.0 25d8cdee5a

    dduarte released this 2026-09-10 15:49:44 +02:00 | 34 commits to main since this release

    Aufbauend auf v1.0.0.

    Neu

    • SSH auf Port 2222 mit Root-Login. Ein Geraet, an dem Tastatur oder Netzwerk klemmen, ist sonst nicht zu untersuchen. Der Preis ist eine groessere Angriffsflaeche - vor dem Produktivgang gehoert das auf ein Schluesselverfahren umgestellt.
    • TacticalRMM-Anbindung: Agent im Image, Anmeldung erst beim Erstboot ueber einen Dialog auf tty2 oder per SSH. Der Auth-Token steht bewusst nirgends im Image, sondern wird bei der Einrichtung abgefragt und nicht gespeichert.
    • Kernel 7.1 und Firmware 20260622 aus trixie-backports statt 6.12 / 20250410. Bei Geraeten, deren Chipsatz juenger ist als der stable-Kernel, hilft kein Firmware-Paket - der Treiber selbst fehlt dann.
    • Heruntergeladene Dateien werden nach 30 Tagen entfernt.

    Behoben

    • Chromium zeigte eine weisse Seite. Debian erzwingt --enable-gpu-rasterization; ohne echte GPU wird dann nichts gezeichnet, ohne Fehlermeldung und ohne Logeintrag.
    • Die Hostname-Vergabe lief nie. ConditionFirstBoot=yes prueft auf eine leere /etc/machine-id, die der Installer aber neu schreibt. Alle Geraete behielten den Platzhalter oxcampusos-setup.
    • Das Bootmenue brach beim Start jedes Eintrags mit "null src bitmap" ab und wartete auf einen Tastendruck. Ursache: ein GRUB-Theme ohne desktop-image liefert init_background() einen NULL-Zeiger.
    • Das Bootmenue hatte keinen Timeout und wartete unbegrenzt auf eine Auswahl.

    Ungetestet

    Die TacticalRMM-Anmeldung hat noch nie mit einem echten Server gelaufen.

    Image

    Ohne Anhang: Das ISO ist 2467 MB gross, und Uploads oberhalb von 2 GiB scheitern auf dieser Forgejo-Instanz mit HTTP 502 - unabhaengig von client_max_body_size und attachment MAX_SIZE.

    Das Image ist aus diesem Quellstand reproduzierbar:

    sudo lb clean && lb config && sudo lb build
    

    Der damit gebaute Stand hatte die Pruefsumme

    sha256  3610c08df511d887d5d6a64ca18e7a443cde52d4c81219d0ec1644d1e8b8955d
    

    Abweichungen sind normal, sobald Debian Pakete aktualisiert - der Bau ist nicht bit-reproduzierbar.

    UEFI-only mit Secure Boot. Getestet: Bootmenue, Installation, Hostname-Vergabe, Kiosk-Start, SSH.

    Downloads
  • v1.0.0 e4c96e4c2a

    dduarte released this 2026-09-09 13:33:11 +02:00 | 36 commits to main since this release

    Startet ohne Login direkt in Chromium auf ivicos-campus.app.

    • Debian 13 Trixie, UEFI-only mit Secure Boot
    • Der Installer kopiert das fertige System per live-installer, kein Netz noetig
    • Installation fragt nur nach Sprache, Land und Tastatur
    • Plymouth mit Logo und Ladekringel
    • Alle Interfaces per DHCP ueber NetworkManager
    • Hostname oxcampusos-<8 Hex> beim Erstboot

    Anhang: fertiges ISO. Reproduzierbar aus dem Quellstand mit lb clean, lb config, lb build.

    Downloads