# Linux4ICE - Linux auf den Innenanzeigern der ICE Flotte der DB - Wie cool ist es für den ICE zu entwickeln? - Sind von der DB Systel - Die bauen Innenanzeigen Images - Was wollen wir nicht: Die Teile sollen booten und im Optimalfall auch richtige Anzeigen liefern. - Herstellerbereich: Essentielle Funktionen des Fahrzeugs - Betreiberbereich: Komfort für den User - Alles was der User braucht um sich zurecht zu finden - Innenanzeiger - Die ganzen Systeme laufen in verschiedenen VMs: Telemetrie VM, Service VM usw. - ZIP: Zug ITK Plattform. Verkabelung sieht wild aus, ist aber anscheinend nicht wild - Reisenden Informations Systeme: RIS - Innenanzeiger ist einfach nur ein Linuxrechner, welcher einen Browser startet und darin den Innenanzeiger darstellt - Über IP wird die Anzeige individualisiert. - Bei mehreren Displays pro Anzeiger wird mit URL Parameter unterschieden. - Hardware der Geräte: - sechs verschiedene Lieferanten, sind aber alle x86 - Manche haben ssd, manche eMMC - Herstellerspezifische Controllerboards. Die wollen Darkboot, damit man den PXE Bootvorgang nicht sieht. - Watchdog: Wird scharf geschalten. Alle paar Sekunden wird geschaut, ob Gerät reagiert. Wenn nicht, Gerät rebooten. - Nutzen Yocto Linux. - Viele Hersteller haben bereits Yocto Layers, wodurch man die sehr leicht integrieren kann - Mit Yocto lässt sich ein kleines Image bauen. - Ein Target Image für alle Geräte - Zentrale Gitlab CI/CD Pipeline - Haben "dicke Kiste": 16 Cores, 48GB RAM - Team ist hinter Corporate Proxy, brauchen 125 Freischaltungen, damit ihre Pipeline läuft - Sinn der Pipeline: Reproducible builds (es gibt Timestamps im image, aber binär sind sie gleich) - Schmeißt einige Artefakte aus der Pipeline, bspw. OTA Updates und flashable images - Nutzen VS Code und ssh remote. Auf Linux Maschine sind alle Sachen ausgecheckt - Nutzen docker crops image, um identische Build Umgebung zu bekommen - Haben mehrere coole Anzeiger daheim im Home Office rumfliegen - virtuelle Anzeiger laufen in Proxmox - Rollout: Im Testlabor gibt es jedes dämliche Display einmal aufgebaut. - Robuste Over the air upgrades mit RAUC - Haben zwei rootfs. Beim Update wird bootloader umgelegt, sodass man immer einen validen Stand hat, auch bei fehlgeschlagenem Update. Analog zu Android OTA - Systemd markiert boot als erfolgreich. - Watchdogs schauen systemd logs durch, sodass zur Not ein reset/reboot direkt getriggert werden kann. - Bevor dem Kunden was falsches angezeigt wird, schaltet Display ab. - Optimierung der Softwarearchitektur. Sprechen sich mit anderen DB Unternehmen ab.