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

  • Published on
    05-Apr-2015

  • View
    105

  • Download
    1

Transcript

  • Folie 1
  • Diplomarbeit Autor: Rade Bozic Portierung eines LINUX Systems auf ein ARM Modul und Implementierung eines embedded Web Servers
  • Folie 2
  • Fernsystem Zielsetzung Universell einsetzbares System im Bereichen: Fern - Wartung Fern - Diagnose
  • Folie 3
  • Einleitung Planung eines Fernsystems Aufbau eines Linux- Systems Hardware Bootloader Root Dateisystem Entwicklungsumgebung Web Server Realisierung einer Anwendung Gliederung des Vortrages
  • Folie 4
  • Einleitung Qualitt entscheidet
  • Folie 5
  • Einleitung Qualitt Preise Kosten Unternehmen Produkte Eigenschaften Kunde Anforderungen Erwartungen Spannungsfeld Qualitt
  • Folie 6
  • Qualitt Beschaffenheit einer Einheit bezglich ihrer Eignung, festgelegte und vorausgesetzte Erfordernisse zu erfllen Beschaffenheit Gesamtheit der Merkmale und Merkmalswerte einer Einheit Einheit Materieller oder immaterieller Gegenstand der Betrachtung Begriffsdefinition Qualitt DIN 55350, Teil 1 Einleitung
  • Folie 7
  • Was bedeutet Qualitt in Bezug auf das Fernsystem? Fernsystem Abstraktionsebene (Konfigurationsfenster) Anwender Einleitung
  • Folie 8
  • Planung eines Fernsystems
  • Folie 9
  • Einsatz eines Fernsystems Ziel: Aktuellen Zustand der Technische Prozesse darstellen nderungen an den Technischen Prozess vornehmen
  • Folie 10
  • Planung eines Fernsystems Steuerung eines Technischen Prozesses mit dem Fernsystem Administration des Fernsystems Aufteilung in zwei Bereiche
  • Folie 11
  • Planung eines Fernsystems
  • Folie 12
  • Anforderungen: Konfigurationsfenster der Fernsysteme soll unabhngig von dem technischen Prozess sein Der Aufbau der Konfigurationsfenster soll einheitlich sein Leichte Integration eines technischen Prozesses in das Fernsystem Eigener Konfigurationsfenster fr den technischen Prozess
  • Folie 13
  • Welche Standardkomponente sollte das Konfigurationsfenster eines Fernsystems beinhalten? Software - Programme Netzwerkdienste Hardware System Benutzer Andere
  • Folie 14
  • Welche Standardkomponente sollte das Konfigurationsfenster eines Fernsystems beinhalten? System Update Software installieren Software lschen Andere Software Programme:
  • Folie 15
  • Welche Standardkomponente sollte das Konfigurationsfenster eines Fernsystems beinhalten? FTP TFTP HTTP NFS Remote Steuerung Andere Netzwerkdienste:
  • Folie 16
  • Welche Standardkomponente sollte das Konfigurationsfenster eines Fernsystems beinhalten? Hardware Information LAN CAN RS232 RS485 Andere Hardware:
  • Folie 17
  • Welche Standardkomponente sollte das Konfigurationsfenster eines Fernsystems beinhalten? Datum und Zeit sysconfig Flash Speicher Integration einer Anwendung Andere System:
  • Folie 18
  • Welche Standardkomponente sollte das Konfigurationsfenster eines Fernsystems beinhalten? Benutzterverwaltung Gruppenverwaltung Andere Benutzer:
  • Folie 19
  • Administration eines Fernsystems Ziel: nderungen an den Fernsystem vornehmen Aktuellen Zustand des Fernsystems darstellen
  • Folie 20
  • Administration eines Fernsystems Aktuellen Zustand des Fernsystems ndern oder darstellen mit den System Programmen
  • Folie 21
  • Planung eines Konfigurationsfensters fr eine Anwendung Konfigurationsfenster wird an das technische Problem angepasst Das Konfigurationsfenster sollte eigenstndig funktionieren Integration des Konfigurationsfensters in das Fernsystem
  • Folie 22
  • Beispiel eines technischen Prozesses Aktuellen Zustand des Technischen Prozesses darstellen
  • Folie 23
  • Beispiel eines technischen Prozesses nderungen an den Technischen Prozess vornehmen
  • Folie 24
  • Aufbau eines Linux- Systems
  • Folie 25
  • Aufbau eines Linux-Sytems Hardware Bootloader Betriebsystem Dateisystem
  • Folie 26
  • Aufbau eines Linux-Sytems
  • Folie 27
  • Planung eines Linux-Sytems
  • Folie 28
  • Hardware Entwicklungsboard (Eval-Board) DIMM Modul Entwicklungsrechner
  • Folie 29
  • Hardware Eval-Board
  • Folie 30
  • Hardware DIMM Modul
  • Folie 31
  • Hardware Entwicklungsrechner
  • Folie 32
  • Bootloader
  • Folie 33
  • Folie 34
  • Durchsucht die Peripherie nach dem bootfhigen Programm Ldt das Programm in den internen SRAM Fhrt den remap Befehl aus Startet das Programm Interne Firmware (Bootloader)
  • Folie 35
  • Bootloader Funktion des remap Befehls
  • Folie 36
  • Bootloader - Uploader Eigenschaften des Uploaders Darf max. 12 KByte gro sein (4 KByte Stack) Kann Programme die grer als 128 KByte sind nicht laden und starten
  • Folie 37
  • Bootloader - Uploader SDRAM Xmodem Protocol ber DBGU Serial SPI Flash Aufgaben des Uploaders Initialisierung : Laden und starten von Programmen in SDRAM
  • Folie 38
  • Bootloader -Uploader aus dem SPI Flash lesen in den Bootsektor des SPI Flash schreiben den Bootsecktor im SPI Flash lschen laden eines Programms mit Xmodem (z.B. U-Boot) in den SDRAM und startet das Programm Funktionen des Uploaders
  • Folie 39
  • Bootloader U-Boot Open-Source Projekt Sehr gute Dokumentation Portiert auf mehr als 100 Plattformen Sehr flexibel Viele Funktionen U-Boot => Universal Bootloader
  • Folie 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
  • Folie 41
  • Bootloader U-Boot U-Boot wurde auf die DIMM-RM9200 Plattform portiert make DIMM_rm9200_config make U-Boot wird fr das DIMM-RM9200 Board konfiguriert U-Boot wird fr das DIMM-RM9200 Board bersetzt
  • Folie 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 0x00000000 auf die erste Adresse des parallelen Flashs gesetzt.
  • Folie 43
  • Bootloader U-Boot U-Boot fr den parallelen Flash (PU-Boot) U-Boot fr den seriellen Flash (SU-Boot) Zwei U-Boot Programme
  • Folie 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 bentigt Unterschiede zwischen den beiden U-Boot Programmen
  • Folie 45
  • Bootloader U-Boot Entwicklungablauf des Bootloaders
  • Folie 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
  • Folie 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 Mglichkeit U-Boot zu starten:
  • Folie 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:
  • Folie 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
  • Folie 50
  • Bootloader U-Boot Startablauf von U-Boot
  • Folie 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
  • Folie 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
  • Folie 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 erfhlt.
  • Folie 54
  • Funktion eines Linux-Systems Linux-Kernel C-Bibliothek Shell Dienst - Programme Komponente eines lauffhigen Linux-Systems
  • Folie 55
  • Funktion eines Linux-Systems
  • Folie 56
  • Linux-Kernel Kernel mit dem Modulen Kconfig (Konfigurationsprogramm) Im Linux Quellen existieren zwei separate Programme
  • Folie 57
  • Linux-Kernel Kernel erstellen: make xconfig make Module erstellen: make modules make INSTALL_MOD_PATH=${SYSROOT} modules_install Neuen Kernel generieren
  • Folie 58
  • Linux-Kernel Module sind Programme wie jede andere Programme auch, nur das die im Kernel-Space ablaufen. Was sind Module?
  • Folie 59
  • Root Dateisystem Filesystem Hierarchy Standard (FHS)
  • Folie 60
  • make menuconfig Programme auswhlen Root Dateisystem angeben Cross-Kompiler eintragen make make install Root Dateisystem BusyBox => Multi-Call Binary
  • Folie 61
  • Root Dateisystem mime.types, protocols, rpc, services. /etc Dateien mit allgemeinen Informationen
  • Folie 62
  • Root Dateisystem passwd, group, shadow. /etc Dateien mit Benutzerinformationen
  • Folie 63
  • Root Dateisystem hostsstatische Zuordnung von Hostnamen und IP- Adressen hosts.conffr Namensanfragen erst die Datei hosts durchsuchen resolv.confEingabe eines Namensserver inetd.confKonfigurationsdatei des inetd-Dmons exportswerden lokale Verzeichnisse fr NFS freigegeben host.allowFreigeben der Netzdienste host.danySperren der Netzdienste /etc Dateien fr die Netzwerkkonfiguration
  • Folie 64
  • Root Dateisystem ifcfg-eth0 ifcfg-lo network_cfg /etc/sysconfig Dateien fr die Netzwerkkonfiguration
  • Folie 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
  • Folie 66
  • Init-Scripte Root Dateisystem
  • Folie 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
  • Folie 68
  • Toolchain = Werkzeug Kette Entwicklungsumgebung Open-Source => Die GNU-Toolchain
  • Folie 69
  • Entwicklungsumgebung
  • Folie 70
  • cygwin1.dll Cygwin Programme Windows 2000 Cygwin => www.cygwin.com/setup UNIX-Umgebung wird simuliert
  • Folie 71
  • Installieren: www.gnuarm.com Hauptverzeichnis: c:\GNUARM Entwicklungsumgebung Toolchain fr die ARM-Architektur Windows 2000
  • Folie 72
  • Verzeichnis in den Suchpfad einbinden : PATH=/GNUARM/bin:$PATH; export PATH Testen: arm.elf.gcc -v Entwicklungsumgebung Toolchain fr die ARM-Architektur Windows 2000
  • Folie 73
  • ftp.gnu.org/gnu/binutils/binutils-2.16.tar.gz ftp.gnu.org/gnu/gcc/gcc-3.4.4/gcc-3.4.4.tar.bz2 ftp.gnu.org/gnu/glibc/glibc-2.3.5.tar.gz ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.12.tar.gz maxim.org.za/AT91RM9200/2.6/2.6.12-at91.patch.gz Entwicklungsumgebung Linux Toolchain fr die ARM-Architektur
  • Folie 74
  • Installationsschritte: 1. binutils-2.16.tar.gz 2. glibc-2.3.5.tar.gz 3. gcc-3.4.4.tar.bz2 Entwicklungsumgebung Linux Toolchain fr die ARM-Architektur Die Einhaltung der Reihenfolge der Installationsschritte ist zwingend notwendig, da die Schritte von einander abhngig sind.
  • Folie 75
  • Entwicklungsumgebung ProgrammeBeschreibung ld Zusammenfgen der einzelnen Objekt-Dateien. Erstellen von ausfhrbaren Images ar Ein Tool zum Erstellen und Modifizieren von Archiven. Das Extrahieren von Code aus Bibliotheken ist ebenfalls mglich. ranlib Index ber ein Archiv erzeugen readelf Anzeigen von Informationen eines ELF-Files (Object oder ausfhrbar) nm Auflisten von Symbolen aus Object-Dateien addr2line Ermglicht das Konvertieren von Adressen in Dateinamen mit zugehrigen Zeilennummern. Kann bei der Fehlersuche ntzlich 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 Gre 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 Lschen von Symbolfunktionen aus Dateien. Das kann zu einer drastischen Reduzierung der Gre dieser Dateien fhren.
  • Folie 76
  • Entwicklungsumgebung insight ddd Fehlersuche mit Debugger gdb Grafische Untersttzung arm-elf-gcc -g
  • Folie 77
  • Entwicklungsumgebung IDE (Integrated Development Environment) Integrierte Entwicklungsumgebung Editor Compiler Debugger
  • Folie 78
  • KDevelop(KDE) und Anjuta(GNOME), Entwicklungsumgebung Integrierte Entwicklungsumgebung bei der SUSE 9.3 Distribution
  • Folie 79
  • Web Server
  • Folie 80
  • Web Technologien CGI (Common Gateway Interface) JavaScript Java-Applets Java-Servlets.
  • Folie 81
  • Web Server Web Technologien JSP ( Java Server Pages) ASP ( Active Server Pages) PHP ( Hypertext Preprocessor) Allgemeiner Begriff: Web Services
  • Folie 82
  • Linux Apache MySQL Perl oder PHP Web Server Open-Source => LAMP
  • Folie 83
  • Web Server inetd standalone APACHE
  • Folie 84
  • httpd.conf srm.conf access.conf Web Server Konfigurationsdateien
  • Folie 85
  • Base Extension Experimental Web Server Apache und Module AddModule: aktiviert ein zur Verfgung stehendes Modul. ClearModuleList: deaktiviert alle zur Verfgung stehenden Module.
  • Folie 86
  • apxswird zur Kompilierung externer Module fr den Apache auerhalb des eigentlichen Kontextes verwendet (Apache Extension Tool). apachectlist ein Shell-Skript, das den Webserver startet. star...

Recommended

View more >