From 522f48dec07d2d4cb11bf757aed0be5a637deff3 Mon Sep 17 00:00:00 2001 From: structix Date: Sun, 12 Mar 2023 10:43:21 +0100 Subject: [PATCH] Add vortrag 7 --- vortrag7_linux4ice.md | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 vortrag7_linux4ice.md diff --git a/vortrag7_linux4ice.md b/vortrag7_linux4ice.md new file mode 100644 index 0000000..69c085e --- /dev/null +++ b/vortrag7_linux4ice.md @@ -0,0 +1,42 @@ +# 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. + +