Entwicklung eines Embedded Linux für ein Gateway Kerstin Gerhardt Klaus-Dieter Walter SSV Software Systems GmbH Heisterbergallee 72 D-30453 Hannover www.ssv-embedded.de 1 Agenda Kurze Vorstellung des Autors Was ist ein Gateway? Wo werden Gateways eingesetzt? Was kennzeichnet ein Embedded Linux? Embedded Linux./. PC Linux (Unterschiede, Probleme) Einsatzszenarien (Auszüge des EGL/2-Lastenhefts) Die Basis des Embedded Gateway Linux (EGL/2) Die wichtigsten Bausteine im Embedded Gateway Linux Kurze Vorführung eines Embedded Gateway Linux... 2
Wer ist SSV Embedded Systems? SSV Embedded Systems ist ein eigenständiger Produktbereich der SSV Software Systems GmbH mit den Produktsegmenten Single Board Computer, Industrial Communication und Industrial Terminals. 3 Wer ist Klaus-Dieter Walter? In den letzten 15 Jahren habe ich mich überwiegend mit Problemlösungen in der industriellen Kommunikation beschäftigt 4
Motiv: Ethernet-LANs und TCP/IP Ethernet wurde eigentlich für die Vernetzung in der Büroumgebung entwickelt. Ethernet war am Anfang ein serielles Buskonzept. Inzwischen ist typisches ein Ethernet-LAN fast immer sternförmig. Ethernet kommt fast immer zusammen mit TCP/IP zum Einsatz 5 Was ist ein Gateway? Ein Gateway soll den Transport von Nutzdaten zwischen unterschiedlichen Netzwerken sicherstellen Dabei werden in der Regel verschiedene Protokollschichten verbunden... Gateways sind somit als Protokollumsetzer anzusehen Typisches Beispiel: Ethernet-to-CAN Gateways Router sind keine Gateways. Sie verbinden lediglich die Schicht 3 6
Was ist ein Gateway? Beispielanwendung: WSN-Gateway (WSN=Wireless Sensor Network). Die Daten aus dem WSN müssen an IT-Anwendungen weitergeleitet werden. ISM-Frequenzen * 433 MHz * 868 MHz * 2.4 GHz 7 Was kennzeichnet ein Embedded Linux? Ein (Embedded) Linux besteht immer aus den drei Bausteinen: Bootloader, Kernel und Root-Dateisystem Diese drei Bausteine können in Form einzelner Dateien oder als binäres Image vorliegen... 8
Was kennzeichnet ein Embedded Linux? Das Root-Dateisystem beinhaltet verschiedenen Systemkomponenten sowie Verzeichnisse für die anwendungsbezogenen Dateien 9 Embedded Linux./. PC Linux Kompakter (Minimal-) Kernel, abgespecktes Root-Dateisystem Fehlende Bibliotheken (zum Beispiel für das Multithreading), Konflikte mit Laufzeitbibliotheken für C/C++ Fehlende Unterstützungsfunktionen für die Anwendungsentwicklung in C++, Java, PHP, Python usw. (fehlende Bibliotheken, Interpreter, Werkzeuge für die plattformunabhängige Anwendungsentwicklung) Abhängigkeiten zwischen Kernel, Root-Dateisystem und Entwicklungswerkzeugen Wartungsarbeiten an Kernel und Dateisystem erfordern Spezialwissen Stark eingeschränkte Erweiterungsmöglichkeiten (Pakete installieren) Probleme mit den verschiedenen Open-Source-Lizenzen 10
Com/PC als EGL/2-Referenzplattform Der Com/PC ist ein Kommunikationsserver für industrielle Umgebungen. Er arbeitet ohne jegliche mechanische Verschleißteile... 500 MHz oder 1,1 GHz x86 CPU 256 oder 512 MBytes RAM CompactFlash als Bootlaufwerk...... Aufteilung in Read-only und R/W Bis zu 10 x RS232 / RS422 / RS485 4 x USB 2 x Mini PCI (1 x für IEEE 802.11 WLAN) 1 x 10 / 100 / 1000 Mbps Ethernet LAN 1 x 10 / 100 Mbps Ethernet LAN VGA / KBD / Mouse Interface Lüfterloser Betrieb / Wandmontage... 11 Die Benutzerschnittstelle Die Benutzerschnittstelle des EGL/2 basiert auf einem Web-basierten Interface (ein Gateway hat in der Regel keine Bedienelemente) 12
Internet-Einwahl (Reverse Router): Ein Teleservice-Gateway stellt nur bei Bedarf (On-demand) eine Verbindung zum Internet her 13 COM Port Redirector: UART-basierte Schnittstellen und Feldbusse sind über ein System mit EGL/2 per TCP/IP erreichbar 14
Reverse Proxy: Abgesicherter Zugriff auf die ungesicherten Webserver in Automatisierungskomponenten (HTTPS-to-HTTP) 15 Remote Access / IP Packet Filter: Der Fernzugriff auf ein Industrial Ethernet erfolgt über das Gateway. Zur Absicherung dient eine SPI-Firewall 16
VPN Gateway: Teleservice-Gateway und Teleservice-Arbeitsplätze bilden ein virtuelles privates Netzwerk. Dabei kommt OpenVPN zum Einsatz 17 WLAN Access Point mit (My)SQL-Datenbank: Permanente Aufzeichnung wichtiger Umgebungsdaten für unterschiedliche Monitoring-Anwendungen. 18
Samba-Server für Windows-PCs: Samba beinhaltet SMB/NetBios-Support. Dadurch wird ein Linux-Rechner zum Windows-Server 19 Die EGL/2-Basis Die Basis bildet ein Debian Sarge und ein Linux-Kernel der Version 2.6.16. Die Flash-Disk wird jeweils in zwei Segmente aufgeteilt 20
Wichtige EGL/2-Bausteine apt: Debian-Paketverwaltung. Ermöglicht den Update bestehender Pakete. Dient auch zum nachträglichen Installieren verschiedener Erweiterungen bridge-utils, ebtables: Linux Ethernet Bridge (Layer 2 Bridge = Switch) dhcp-client, dnsmasq: DHCP-Client und DHCP-Server netfilter, iptables: Vollständiger SPI-Firewall mailx, ssmtp: (E-) Mail User Agent mysql: Vollständige SQL-Datenbank nagios: Network Monitoring und Management Werkzeug nfs-user-server: Einfacher NFS-Server, der im User Space ablaufen kann. ntp-server, ntp-update: Uhrzeit mit Time Server synchronisieren 21 Wichtige EGL/2-Bausteine ppp, pppoe: Verschiedene PPP-Varianten openssl, openssh: SSL-basierte Verschlüsselung samba-common: Samba Server (Linux-Host als Windows-Server) socat: Multipurpose Relay Software syslog-ng: Lokale und externe Meldungen aufzeichnen XAMPP: Apache, mysql, PHP, Perl J2SE-RTE: Sun Java J2SE Runtime Environment madwifi: Wireless Tools für Wi-Fi (WLAN), ermöglichen WLAN Access Point, WLAN Client oder WLAN Ad-hoc System. Es ist ein WLAN-Interface mit Atheros-Chipset erforderlich 22
Zusammenfassung Gateways verbinden unterschiedliche Protokollschichten Ein Embedded Linux beseht aus drei Bausteinen Die wichtigsten Unterschiede zu einem PC-Linux Web-basierte Benutzerschnittstelle statt LCD und Tasten Verschiedene Gateway-Einsatzszenarien Debian-Basis vereinfacht die Wartung und Pflege Ausgewählte Funktionen im EGL/2 Einblick in ein lebendes System Vielen Dank für Ihre Aufmerksamkeit 23