Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
1
Diplomarbeit Autor: Rade Bozic
Portierung eines LINUX Systems auf ein ARM Modul und Implementierung eines embedded Web Servers Diplomarbeit Autor: Rade Bozic
2
Fernsystem Zielsetzung Fern - Wartung Fern - Diagnose
Universell einsetzbares System im Bereichen: Fern - Wartung Fern - Diagnose
3
Gliederung des Vortrages
Einleitung Planung eines Fernsystems Aufbau eines Linux- Systems Hardware Bootloader Root Dateisystem Entwicklungsumgebung Web Server Realisierung einer Anwendung
4
Einleitung Qualität entscheidet
5
Einleitung Spannungsfeld Qualität Qualität Kunde Unternehmen
Preise Kosten Unternehmen Produkte Eigenschaften Kunde Anforderungen Erwartungen
6
Begriffsdefinition „Qualität“
Einleitung Qualität Beschaffenheit einer Einheit bezüglich ihrer Eignung, festgelegte und vorausgesetzte Erfordernisse zu erfüllen Beschaffenheit Gesamtheit der Merkmale und Merkmalswerte einer Einheit Einheit Materieller oder immaterieller Gegenstand der Betrachtung Begriffsdefinition „Qualität“ DIN 55350, Teil 1
7
Was bedeutet Qualität in Bezug auf das Fernsystem?
Einleitung Was bedeutet Qualität in Bezug auf das Fernsystem? Fernsystem Abstraktionsebene (Konfigurationsfenster) Anwender
8
Planung eines Fernsystems
9
Einsatz eines Fernsystems
Ziel: Aktuellen Zustand der Technische Prozesse darstellen Änderungen an den Technischen Prozess vornehmen
10
Planung eines Fernsystems
Aufteilung in zwei Bereiche Steuerung eines Technischen Prozesses mit dem Fernsystem Administration des Fernsystems
11
Planung eines Fernsystems
12
Planung eines Fernsystems
Anforderungen: Konfigurationsfenster der Fernsysteme soll unabhängig von dem technischen Prozess sein Der Aufbau der Konfigurationsfenster soll einheitlich sein Leichte Integration eines technischen Prozesses in das Fernsystem Eigener Konfigurationsfenster für den technischen Prozess
13
Software - Programme Netzwerkdienste Hardware System Benutzer Andere
Welche Standardkomponente sollte das Konfigurationsfenster eines Fernsystems beinhalten? Software - Programme Netzwerkdienste Hardware System Benutzer Andere
14
Software installieren Software löschen Andere
Welche Standardkomponente sollte das Konfigurationsfenster eines Fernsystems beinhalten? Software – Programme: System Update Software installieren Software löschen Andere
15
FTP TFTP HTTP NFS Remote Steuerung Andere
Welche Standardkomponente sollte das Konfigurationsfenster eines Fernsystems beinhalten? Netzwerkdienste: FTP TFTP HTTP NFS Remote Steuerung Andere
16
Hardware Information LAN CAN RS232 RS485 Andere
Welche Standardkomponente sollte das Konfigurationsfenster eines Fernsystems beinhalten? Hardware: Hardware Information LAN CAN RS232 RS485 Andere
17
Integration einer Anwendung Andere
Welche Standardkomponente sollte das Konfigurationsfenster eines Fernsystems beinhalten? System: Datum und Zeit sysconfig Flash Speicher Integration einer Anwendung Andere
18
Benutzterverwaltung Gruppenverwaltung Andere
Welche Standardkomponente sollte das Konfigurationsfenster eines Fernsystems beinhalten? Benutzer: Benutzterverwaltung Gruppenverwaltung Andere
19
Administration eines Fernsystems
Ziel: Änderungen an den Fernsystem vornehmen Aktuellen Zustand des Fernsystems darstellen
20
Administration eines Fernsystems
Aktuellen Zustand des Fernsystems ändern oder darstellen mit den System Programmen
21
Planung eines Konfigurationsfensters für eine Anwendung
Konfigurationsfenster wird an das technische Problem angepasst Das Konfigurationsfenster sollte eigenständig funktionieren Integration des Konfigurationsfensters in das Fernsystem
22
Beispiel eines technischen Prozesses
Aktuellen Zustand des Technischen Prozesses darstellen
23
Beispiel eines technischen Prozesses
Änderungen an den Technischen Prozess vornehmen
24
Aufbau eines Linux- Systems
25
Aufbau eines Linux-Sytems
Hardware Bootloader Betriebsystem Dateisystem
26
Aufbau eines Linux-Sytems
27
Planung eines Linux-Sytems
28
Hardware Entwicklungsboard (Eval-Board) DIMM Modul Entwicklungsrechner
29
Hardware – Eval-Board
30
Hardware – DIMM Modul
31
Hardware – Entwicklungsrechner
32
Bootloader
33
Bootloader
34
Bootloader Interne Firmware (Bootloader)
Durchsucht die Peripherie nach dem bootfähigen Programm Lädt das Programm in den internen SRAM Führt den „remap“ Befehl aus Startet das Programm
35
Bootloader Funktion des „remap“ Befehls
36
Bootloader - Uploader Eigenschaften des Uploaders
Darf max. 12 KByte groß sein (4 KByte Stack) Kann Programme die größer als 128 KByte sind nicht laden und starten
37
Bootloader - Uploader Aufgaben des Uploaders SDRAM
Initialisierung : SDRAM Xmodem Protocol über DBGU Serial SPI Flash Laden und starten von Programmen in SDRAM
38
Bootloader -Uploader Funktionen des Uploaders aus dem SPI Flash lesen
in den Bootsektor des SPI Flash schreiben den Bootsecktor im SPI Flash löschen laden eines Programms mit Xmodem (z.B. U-Boot) in den SDRAM und startet das Programm
39
Bootloader – U-Boot U-Boot => Universal Bootloader
Open-Source Projekt Sehr gute Dokumentation Portiert auf mehr als 100 Plattformen Sehr flexibel Viele Funktionen
40
Bootloader – U-Boot Aufgaben von U-Boot Initialisierung des Boards
Ramdisk in SDRAM laden Linux in SDRAM laden bootargs an Linux übergeben Linux starten
41
Bootloader – U-Boot U-Boot wurde auf die DIMM-RM9200 Plattform portiert make DIMM_rm9200_config U-Boot wird für das DIMM-RM9200 Board konfiguriert make U-Boot wird für das DIMM-RM9200 Board übersetzt
42
Bootloader – U-Boot Zwei Boot-Modi Starten aus dem parallelen Flash
Starten aus dem seriellen Flash Mit einem Jumper (Schalter) wird entschieden von wo gestartet wird. Jumper hat eine ähnliche Funktion wie der „remap“ Befehl. Ist er aufgesetzt, wird die Adresse 0x auf die erste Adresse des parallelen Flashs gesetzt.
43
Bootloader – U-Boot Zwei U-Boot Programme
U-Boot für den parallelen Flash (PU-Boot) U-Boot für den seriellen Flash (SU-Boot)
44
Bootloader – U-Boot Unterschiede zwischen den beiden U-Boot Programmen
PU-Boot hat seine Umgebungsvariable im parallelen Flash, SU-Boot im seriellen Flash. Uploader wird beim Start von PU-Boot nicht benötigt
45
Bootloader – U-Boot Entwicklungablauf des Bootloaders
46
Bootloader – U-Boot Wie werden die zwei U-Boot Programme generiert?
Konfigurationsdatei DIMM_rm9200.h Variable: #define CONFIG_BOOTBINFUNC 1 => PU-Boot //#define CONFIG_BOOTBINFUNC 1 => SU-Boot
47
Bootloader – U-Boot Es gibt drei Möglichkeit U-Boot zu starten:
über Uploader aus dem seriellen Flash (Jumper nicht aufgesetzt) aus dem parallel Flash (Jumper aufgesetzt) über Uploader mit dem XModem Protocol (Jumper nicht aufgesetzt)
48
Bootloader – U-Boot Arbeiten mit dem U-Boot U-Boot Befehle:
Manipulation von Flash Speicher boot Befehle (laden und starten von Programmen) Netzwerk Befehle informations- Befehle
49
Bootloader – U-Boot U-Boot Scripte
Mehrere Befehle in einem Befehl vereinen Scripte werden mit dem Befehl „run“ gestartet Ein Script startet das Betriebsystem
50
Bootloader – U-Boot Startablauf von U-Boot
51
Bootloader – U-Boot Drei wichtigsten Variablen zum starten von Linux
Konfigurationsdatei DIMM_rm9200.h Variablen: #define CONFIG_BOOTCOMMAND "run tftpboot„ #define CONFIG_BOOTARGS #define CONFIG_EXTRA_ENV_SETTINGS
52
Bootloader – U-Boot Beispiel: Script „tftpboot“
Das Script „tftpboot“ ist in der Variable CONFIG_EXTRA_ENV_SETTINGS definiert "tftpboot=tftp $(initrdload) initrd.bin;tftp $(kernelload) uImage;bootm\0" tftp $(initrdload) initrd.bin tftp $(kernelload) uImage bootm Ramdisk wird geladen ab der Adresse „initrdload“ Kernel wird geladen ab der Adresse „kernelload“ startet den Kernel und übergibt im die Argumente die in der Variable CONFIG_BOOTARGS stehen
53
Bootloader – U-Boot Wenn man soweit gekommen ist, das ein U-Boot Script automatisch ein Betriebsystem starten kann, dann hat der U-Boot seinen Zweck erfühlt.
54
Funktion eines Linux-Systems
Komponente eines lauffähigen Linux-Systems Linux-Kernel C-Bibliothek Shell Dienst - Programme
55
Funktion eines Linux-Systems
56
Linux-Kernel Im Linux Quellen existieren zwei separate Programme
Kernel mit dem Modulen Kconfig (Konfigurationsprogramm)
57
Linux-Kernel Neuen Kernel generieren Kernel erstellen: make xconfig
Module erstellen: make modules make INSTALL_MOD_PATH=${SYSROOT} modules_install
58
Linux-Kernel Was sind Module?
Module sind Programme wie jede andere Programme auch, nur das die im Kernel-Space ablaufen.
59
Root Dateisystem Filesystem Hierarchy Standard (FHS)
60
Root Dateisystem BusyBox => „Multi-Call Binary“ make menuconfig
Programme auswählen Root Dateisystem angeben Cross-Kompiler eintragen make make install
61
Root Dateisystem /etc Dateien mit allgemeinen Informationen
mime.types, protocols, rpc, services.
62
Root Dateisystem /etc Dateien mit Benutzerinformationen passwd, group,
shadow.
63
Root Dateisystem /etc Dateien für die Netzwerkkonfiguration
hosts statische Zuordnung von Hostnamen und IP- Adressen hosts.conf für Namensanfragen erst die Datei „hosts“ durchsuchen resolv.conf Eingabe eines Namensserver inetd.conf Konfigurationsdatei des inetd-Dämons exports werden lokale Verzeichnisse für NFS freigegeben host.allow Freigeben der Netzdienste host.dany Sperren der Netzdienste
64
Root Dateisystem /etc/sysconfig Dateien für die Netzwerkkonfiguration
ifcfg-eth0 ifcfg-lo network_cfg
65
Root Dateisystem Init-Scripte
Nach System-V-Init-Style gibt es 6 Runlevel. Runlevel 0 = Herunterfahren Runlevel 1 = Single-User Runlevel 2 = Multi-User ohne Netzwerk Runlevel 3 = Multi-User mit Netzwerk Runlevel 4 = hat keine Funktion Runlevel 5 = Multi-User mit Netzwerk und automatischen X-Start Runlevel6 = Reboot
66
Root Dateisystem Init-Scripte
67
Root Dateisystem Ramdisk erstellen #!/bin/sh cd /usr/src/root
mkdir images mkdir initrd dd if=/dev/zero of=images/initrd.img bs=1k count=8192 /sbin/mke2fs -F -v -m0 images/initrd.img mount -o loop images/initrd.img initrd/ cp -av rootfs/* initrd/ umount initrd/ gzip -9 < images/initrd.img > images/initrd.bin mv images/initrd.bin /tftpboot rmdir initrd rm -r images exit 0
68
Entwicklungsumgebung
Open-Source => Die GNU-Toolchain Toolchain = Werkzeug – Kette
69
Entwicklungsumgebung
70
Entwicklungsumgebung
Windows 2000 Cygwin => „ UNIX-Umgebung wird simuliert cygwin1.dll Cygwin Programme
71
Entwicklungsumgebung
Windows 2000 Toolchain für die ARM-Architektur Installieren: Hauptverzeichnis: c:\GNUARM
72
Entwicklungsumgebung
Windows 2000 Toolchain für die ARM-Architektur Verzeichnis in den Suchpfad einbinden : PATH=/GNUARM/bin:$PATH; export PATH Testen: arm.elf.gcc -v
73
Entwicklungsumgebung
Linux Toolchain für die ARM-Architektur ftp.gnu.org/gnu/binutils/binutils-2.16.tar.gz ftp.gnu.org/gnu/gcc/gcc-3.4.4/gcc tar.bz2 ftp.gnu.org/gnu/glibc/glibc tar.gz ftp.kernel.org/pub/linux/kernel/v2.6/linux tar.gz maxim.org.za/AT91RM9200/2.6/ at91.patch.gz
74
da die Schritte von einander abhängig sind.
Entwicklungsumgebung Linux Toolchain für die ARM-Architektur Installationsschritte: binutils-2.16.tar.gz glibc tar.gz gcc tar.bz2 Die Einhaltung der Reihenfolge der Installationsschritte ist zwingend notwendig, da die Schritte von einander abhängig sind.
75
Entwicklungsumgebung
Programme Beschreibung ld Zusammenfügen der einzelnen Objekt-Dateien. Erstellen von ausführbaren Images ar Ein Tool zum Erstellen und Modifizieren von Archiven. Das Extrahieren von Code aus Bibliotheken ist ebenfalls möglich. ranlib Index über ein Archiv erzeugen readelf Anzeigen von Informationen eines ELF-Files (Object oder ausführbar) nm Auflisten von Symbolen aus Object-Dateien addr2line Ermöglicht das Konvertieren von Adressen in Dateinamen mit zugehörigen Zeilennummern. Kann bei der Fehlersuche nützlich sein. as Umsetzen von ASCIII-Quellcode in eine Objekt-Datei. gprof Anzeigen von Profiling-Informationen. Diese sind bei der Laufzeit-Analyse von Programmen sehr hilfreich. size Anzeige der Größe einzelner Sektionen innerhalb einer Objekt- oder Archiv-Datei. objcopy Kopieren und Umwandeln von Objekt-Dateien. objdump Anzeige von Informationen über Objekt-Dateien. strings Anzeige druckbarer Zeichenketten innerhalb von Dateien. strip Löschen von Symbolfunktionen aus Dateien. Das kann zu einer drastischen Reduzierung der Größe dieser Dateien führen.
76
Entwicklungsumgebung
Fehlersuche mit Debugger „gdb“ arm-elf-gcc -g Grafische Unterstützung insight ddd
77
Entwicklungsumgebung
IDE (Integrated Development Environment) Integrierte Entwicklungsumgebung Editor Compiler Debugger
78
Entwicklungsumgebung
Integrierte Entwicklungsumgebung bei der SUSE 9.3 Distribution KDevelop (KDE) und Anjuta (GNOME),
79
Web Server
80
Web Server Web Technologien CGI (Common Gateway Interface) JavaScript
Java-Applets Java-Servlets.
81
Web Server Web Technologien Allgemeiner Begriff: „Web Services“
JSP ( Java Server Pages) ASP ( Active Server Pages) PHP ( Hypertext Preprocessor) Allgemeiner Begriff: „Web Services“
82
Web Server Open-Source => LAMP Linux Apache MySQL Perl oder PHP
83
Web Server APACHE inetd standalone
84
Web Server Konfigurationsdateien httpd.conf srm.conf access.conf
85
Web Server Apache und Module Base Extension Experimental
AddModule: aktiviert ein zur Verfügung stehendes Modul. ClearModuleList: deaktiviert alle zur Verfügung stehenden Module. Base Extension Experimental
86
Web Server Hilfsprogramme
apxs wird zur Kompilierung externer Module für den Apache außerhalb des eigentlichen Kontextes verwendet (Apache Extension Tool). apachectl ist ein Shell-Skript, das den Webserver startet. start startet den Webserver stop stoppt den Webserver restart Neustart des Webservers (sendet SIGHUP an den Apache) fullstatus Ausgabe des Serverstatus status Kurzform des Serverstatus graceful "netter" Neustart (sendet SIGUSR1 an den Apache) configtest Syntaxtest der Konfigurationsdateien. ab ist ein Tool zur Durchführung von Webserver-Benchmarks. htdigest Verwaltung der Passwortdateien für die Digest-HTTPAuthentisierung. htpasswd Verwaltung der Passwortdateien für die Basic-HTTPAuthentisierung. dbmmanage Verwaltung von Passwortdateien für die HTTPAuthentisierung im DBM Format. logresolve ersetzt IP-Adressen in Logdateien durch die entsprechenden DNS- Adressen. rotatelogs Rotieren der Logdateien, ohne dass ein Anhalten des Servers notwendig ist. log_server_status schreibt den aktuellen Apache-Status in eine Logdatei.
87
Web Server Web-Anwendung SSI – Server Side Include
zwischen dem Kommentaranfang „<!--" und dem SSI-Befehl ist kein Leerzeichen und hinter dem SSI-Befehl und vor dem Kommentarende „-->“ muss ein Leerzeichen sein.
88
Web Server Web-Anwendung CGI – Commom Gateway Interface
Standardkonzepte von Unix Umgebungsvariablen Kommandozeilenparameter Standardeingabe (stdin) Standardausgabe (stdout) Fehlerausgabe „error.log“
89
Web Server Web-Anwendung CGI – Commom Gateway Interface
90
Web Server Web-Anwendung FastCGI Offener TCP-Port
der Webserver und der Rechner, auf dem die FastCGI-Applikation läuft, in einem abgesicherten Netzsegment stehen, alle Rechner in diesem Netzsegment vertrauenswürdig sind und keine Netzverbindungen von außen auf den von der FastCGI-Applikation verwendeten TCP-Port initiiert werden können.
91
Web Server Der embedded Server apache-1.3.xx.tar.gz (Version 1.3)
92
Anwendungsbeispiel
93
Anwendungsbeispiel
94
Anwendungsbeispiel
95
Vielen Dank für Ihre Aufmerksamkeit!
Fragen? Vielen Dank für Ihre Aufmerksamkeit!
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.