Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Diplomarbeit Autor: Rade Bozic Portierung eines LINUX Systems auf ein ARM Modul und Implementierung eines embedded Web Servers.

Ähnliche Präsentationen


Präsentation zum Thema: "Diplomarbeit Autor: Rade Bozic Portierung eines LINUX Systems auf ein ARM Modul und Implementierung eines embedded Web Servers."—  Präsentation transkript:

1 Diplomarbeit Autor: Rade Bozic Portierung eines LINUX Systems auf ein ARM Modul und Implementierung eines embedded Web Servers

2 Fernsystem Zielsetzung Universell einsetzbares System im Bereichen: Fern - Wartung Fern - Diagnose

3 Einleitung Planung eines Fernsystems Aufbau eines Linux- Systems Hardware Bootloader Root Dateisystem Entwicklungsumgebung Web Server Realisierung einer Anwendung Gliederung des Vortrages

4 Einleitung Qualität entscheidet

5 Einleitung Qualität Preise Kosten Unternehmen Produkte Eigenschaften Kunde Anforderungen Erwartungen Spannungsfeld Qualität

6 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 Einleitung

7 Was bedeutet Qualität in Bezug auf das Fernsystem? Fernsystem Abstraktionsebene (Konfigurationsfenster) Anwender Einleitung

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 Steuerung eines Technischen Prozesses mit dem Fernsystem Administration des Fernsystems Aufteilung in zwei Bereiche

11 Planung eines Fernsystems

12 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 Welche Standardkomponente sollte das Konfigurationsfenster eines Fernsystems beinhalten? Software - Programme Netzwerkdienste Hardware System Benutzer Andere

14 Welche Standardkomponente sollte das Konfigurationsfenster eines Fernsystems beinhalten? System Update Software installieren Software löschen Andere Software – Programme:

15 Welche Standardkomponente sollte das Konfigurationsfenster eines Fernsystems beinhalten? FTP TFTP HTTP NFS Remote Steuerung Andere Netzwerkdienste:

16 Welche Standardkomponente sollte das Konfigurationsfenster eines Fernsystems beinhalten? Hardware Information LAN CAN RS232 RS485 Andere Hardware:

17 Welche Standardkomponente sollte das Konfigurationsfenster eines Fernsystems beinhalten? Datum und Zeit sysconfig Flash Speicher Integration einer Anwendung Andere System:

18 Welche Standardkomponente sollte das Konfigurationsfenster eines Fernsystems beinhalten? Benutzterverwaltung Gruppenverwaltung Andere Benutzer:

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

34 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 Interne Firmware (Bootloader)

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 SDRAM Xmodem Protocol über DBGU Serial SPI Flash Aufgaben des Uploaders Initialisierung : Laden und starten von Programmen in SDRAM

38 Bootloader -Uploader 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 Funktionen des Uploaders

39 Bootloader – U-Boot Open-Source Projekt Sehr gute Dokumentation Portiert auf mehr als 100 Plattformen Sehr flexibel Viele Funktionen U-Boot => Universal Bootloader

40 Bootloader – U-Boot Initialisierung des Boards Ramdisk in SDRAM laden Linux in SDRAM laden bootargs an Linux übergeben Linux starten Aufgaben von U-Boot

41 Bootloader – U-Boot U-Boot wurde auf die DIMM-RM9200 Plattform portiert make DIMM_rm9200_config make U-Boot wird für das DIMM-RM9200 Board konfiguriert U-Boot wird für das DIMM-RM9200 Board übersetzt

42 Bootloader – U-Boot Starten aus dem parallelen Flash Starten aus dem seriellen Flash Zwei Boot-Modi 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 U-Boot für den parallelen Flash (PU-Boot) U-Boot für den seriellen Flash (SU-Boot) Zwei U-Boot Programme

44 Bootloader – U-Boot PU-Boot hat seine Umgebungsvariable im parallelen Flash, SU-Boot im seriellen Flash. Uploader wird beim Start von PU-Boot nicht benötigt Unterschiede zwischen den beiden U-Boot Programmen

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 über Uploader aus dem seriellen Flash (Jumper nicht aufgesetzt) aus dem parallel Flash (Jumper aufgesetzt) über Uploader mit dem XModem Protocol (Jumper nicht aufgesetzt) Es gibt drei Möglichkeit U-Boot zu starten:

48 Bootloader – U-Boot Manipulation von Flash Speicher boot Befehle (laden und starten von Programmen) Netzwerk Befehle informations- Befehle Arbeiten mit dem U-Boot U-Boot Befehle:

49 Bootloader – U-Boot Mehrere Befehle in einem Befehl vereinen Scripte werden mit dem Befehl run gestartet Ein Script startet das Betriebsystem U-Boot Scripte

50 Bootloader – U-Boot Startablauf von U-Boot

51 Bootloader – U-Boot Variablen: #define CONFIG_BOOTCOMMAND "run tftpboot #define CONFIG_BOOTARGS #define CONFIG_EXTRA_ENV_SETTINGS Drei wichtigsten Variablen zum starten von Linux Konfigurationsdatei DIMM_rm9200.h

52 Bootloader – U-Boot "tftpboot=tftp $(initrdload) initrd.bin;tftp $(kernelload) uImage;bootm\0" Beispiel: Script tftpboot tftp $(initrdload) initrd.bin tftp $(kernelload) uImage bootm Ramdisk wird geladen ab der Adresseinitrdload Kernel wird geladen ab der Adresse kernelload startet den Kernel und übergibt im die Argumente die in der Variable CONFIG_BOOTARGS stehen Das Script tftpboot ist in der Variable CONFIG_EXTRA_ENV_SETTINGS definiert

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 Linux-Kernel C-Bibliothek Shell Dienst - Programme Komponente eines lauffähigen Linux-Systems

55 Funktion eines Linux-Systems

56 Linux-Kernel Kernel mit dem Modulen Kconfig (Konfigurationsprogramm) Im Linux Quellen existieren zwei separate Programme

57 Linux-Kernel Kernel erstellen: make xconfig make Module erstellen: make modules make INSTALL_MOD_PATH=${SYSROOT} modules_install Neuen Kernel generieren

58 Linux-Kernel Module sind Programme wie jede andere Programme auch, nur das die im Kernel-Space ablaufen. Was sind Module?

59 Root Dateisystem Filesystem Hierarchy Standard (FHS)

60 make menuconfig Programme auswählen Root Dateisystem angeben Cross-Kompiler eintragen make make install Root Dateisystem BusyBox => Multi-Call Binary

61 Root Dateisystem mime.types, protocols, rpc, services. /etc Dateien mit allgemeinen Informationen

62 Root Dateisystem passwd, group, shadow. /etc Dateien mit Benutzerinformationen

63 Root Dateisystem hostsstatische Zuordnung von Hostnamen und IP- Adressen hosts.conffür Namensanfragen erst die Datei hosts durchsuchen resolv.confEingabe eines Namensserver inetd.confKonfigurationsdatei des inetd-Dämons exportswerden lokale Verzeichnisse für NFS freigegeben host.allowFreigeben der Netzdienste host.danySperren der Netzdienste /etc Dateien für die Netzwerkkonfiguration

64 Root Dateisystem ifcfg-eth0 ifcfg-lo network_cfg /etc/sysconfig Dateien für die Netzwerkkonfiguration

65 Init-Scripte 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 Nach System-V-Init-Style gibt es 6 Runlevel. Root Dateisystem

66 Init-Scripte Root Dateisystem

67 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.bin mv images/initrd.bin /tftpboot rmdir initrd rm -r images exit 0 Root Dateisystem

68 Toolchain = Werkzeug – Kette Entwicklungsumgebung Open-Source => Die GNU-Toolchain

69 Entwicklungsumgebung

70 cygwin1.dll Cygwin Programme Windows 2000 Cygwin => UNIX-Umgebung wird simuliert

71 Installieren: Hauptverzeichnis: c:\GNUARM Entwicklungsumgebung Toolchain für die ARM-Architektur Windows 2000

72 Verzeichnis in den Suchpfad einbinden : PATH=/GNUARM/bin:$PATH; export PATH Testen: arm.elf.gcc -v Entwicklungsumgebung Toolchain für die ARM-Architektur Windows 2000

73 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 Entwicklungsumgebung Linux Toolchain für die ARM-Architektur

74 Installationsschritte: 1. binutils-2.16.tar.gz 2. glibc tar.gz 3. gcc tar.bz2 Entwicklungsumgebung Linux Toolchain für die ARM-Architektur Die Einhaltung der Reihenfolge der Installationsschritte ist zwingend notwendig, da die Schritte von einander abhängig sind.

75 Entwicklungsumgebung ProgrammeBeschreibung 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 insight ddd Fehlersuche mit Debugger gdb Grafische Unterstützung arm-elf-gcc -g

77 Entwicklungsumgebung IDE (Integrated Development Environment) Integrierte Entwicklungsumgebung Editor Compiler Debugger

78 KDevelop(KDE) und Anjuta(GNOME), Entwicklungsumgebung Integrierte Entwicklungsumgebung bei der SUSE 9.3 Distribution

79 Web Server

80 Web Technologien CGI (Common Gateway Interface) JavaScript Java-Applets Java-Servlets.

81 Web Server Web Technologien JSP ( Java Server Pages) ASP ( Active Server Pages) PHP ( Hypertext Preprocessor) Allgemeiner Begriff: Web Services

82 Linux Apache MySQL Perl oder PHP Web Server Open-Source => LAMP

83 Web Server inetd standalone APACHE

84 httpd.conf srm.conf access.conf Web Server Konfigurationsdateien

85 Base Extension Experimental Web Server Apache und Module AddModule: aktiviert ein zur Verfügung stehendes Modul. ClearModuleList: deaktiviert alle zur Verfügung stehenden Module.

86 apxswird zur Kompilierung externer Module für den Apache außerhalb des eigentlichen Kontextes verwendet (Apache Extension Tool). apachectlist ein Shell-Skript, das den Webserver startet. start startet den Webserver stop stoppt den Webserver restart Neustart des Webservers (sendet SIGHUP an den Apache) fullstatusAusgabe des Serverstatus statusKurzform des Serverstatus graceful"netter" Neustart (sendet SIGUSR1 an den Apache) configtestSyntaxtest der Konfigurationsdateien. abist ein Tool zur Durchführung von Webserver-Benchmarks. htdigestVerwaltung der Passwortdateien für die Digest-HTTPAuthentisierung. htpasswdVerwaltung der Passwortdateien für die Basic-HTTPAuthentisierung. dbmmanageVerwaltung von Passwortdateien für die HTTPAuthentisierung im DBM Format. logresolveersetzt IP-Adressen in Logdateien durch die entsprechenden DNS- Adressen. rotatelogsRotieren der Logdateien, ohne dass ein Anhalten des Servers notwendig ist. log_server_statusschreibt den aktuellen Apache-Status in eine Logdatei. Web Server Hilfsprogramme

87 SSI – Server Side Include zwischen dem Kommentaranfang muss ein Leerzeichen sein. Web Server Web-Anwendung

88 Web Server CGI – Commom Gateway Interface Umgebungsvariablen Kommandozeilenparameter Standardeingabe (stdin) Standardausgabe (stdout) Fehlerausgabe error.log Web-Anwendung Standardkonzepte von Unix

89 Web Server Web-Anwendung CGI – Commom Gateway Interface

90 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. Web Server Web-Anwendung FastCGI

91 apache-1.3.xx.tar.gz(Version 1.3) httpd-2.0.xx.tar.gz(Version 2.0) Web Server Der embedded Server

92 Anwendungsbeispiel

93

94

95 Fragen? Vielen Dank für Ihre Aufmerksamkeit!


Herunterladen ppt "Diplomarbeit Autor: Rade Bozic Portierung eines LINUX Systems auf ein ARM Modul und Implementierung eines embedded Web Servers."

Ähnliche Präsentationen


Google-Anzeigen