Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Diplomarbeit Autor: Rade Bozic

Ähnliche Präsentationen


Präsentation zum Thema: "Diplomarbeit Autor: Rade Bozic"—  Präsentation transkript:

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 => „www.cygwin.com/setup“ 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!


Herunterladen ppt "Diplomarbeit Autor: Rade Bozic"

Ähnliche Präsentationen


Google-Anzeigen