Linux Industrie SYSTEM - HOWTO

Autor: Manuel Magnin - MMagnin(a)Clinch.ch
Datum: 25. Januar 2004
Quelle: http://www.clinch.ch/clinch/Linux/Linux.htm
Version: V0.0
Geändert: ...

Weitere Beiträge, Anpassungen und Anregungen zum Artikel sind immer willkommen


Dieses Dockument soll die grundlegenden Schritte zur erstellung eines eigenständigen Linux SYSTEM's aufzeigen.
Dieses Linux System soll den Industrieansprüchen genügen, d.h. ohne mechniasche Festplatte und Lüfter auskommen.
Zu diesem Zweck wird eine alte PC Systemplatte oder ein alter Notebook benötigt. Das Linux System soll netzwerkfähig sein und ohne Diskettenlauferk und Bilschirm auskommen. Zur Kommunikation steht also nur das Netzwerk und die serielle Schnittstelle zur Verfügung. So wie das eben bei Industriesystemen üblich ist. Dieses System ist für Mess- und Steueraufgaben gedacht und ausgelegt.



Analyse:
  • Da alte PC kompatible System in rauen Mengen für fast gratis zu haben sind, anerbieten dise sich sogleich.
  • Die einfachste Bootmöglichkeit ohne Floppy und ohne Festplatte ist eine CF-Karte (Die sind IDE Komatibel)
  • Problem bei Flash (auch CF-Card's), die Schreibzyklen sind auf einige 100'000 begrenzt, also nicht zum Arbeiten drauf gedacht
  • Die Stromversorgung des PC's ist ungeeignet, Lüfter, zugross, zustark...
  • Die Stromversorgung von NoteBook's können direkt verwendet werden
  • Die serielle Schnittstelle ist wie üblich auf 9600BPS und 8n1 einzustellen, emulation VT100
  • Kommunikation über die serille schnittstelle zu einem PC mit Hyper-Terminal ist nur für den Administrator gedacht
  • LAN sollte mit jeder handelsüblichen 10/100MBit Karte ohne konfiguration laufen.
  • LAN Konfiguration via DHCP (IP, Mask, GW, DNS)
  • Konfiguration der BOX via WebBrowser
  • Als Gehäusevorschlag 19" 1HE Modul, mit integrierter Speisung


    Design:
    Was für Koponenten habe ich verwendet?:
    Als Linux bin ich von Debian.de sehr überzeugt und angetaen, dies ist ein Studenten Linux der Amerikanischen Universitäten. Dies hat den Vorteil, dass es ziemlich stabil läuft und auch vom ganzen zusatz gebastel wie bei SUSE.de und sunsite.cnlab-switch.ch Debian i386/ runter laden und auf CD brennen. Oder via Liste aller Mirror's für CD ISO Imageshttp://www.debian.org/CD/http-ftp/ Oder via Liste aller Mirror's für Disketten ISO Imageswww.debian.org/mirror/list/

    Die Hardware für alle die sich was genormtes kaufen wollen: http://www.systerra.de/PC104.html oder http://www.syslogic.ch/wwwdeutsch/produkte/produkte.html
    Als Speichermedium eignen sich besonders CF-Cards von Sandisk's oder IDE-SanDisk Laifwerke

            

    Für ein Steuersystem reicht 64MB föllig aus, aus Sicherheitsgründen sind in den Rechnern 2 Slots empfehlenswert.
    Module sind zu beziehen bei SYSTEM-CLINCH
    Liste der Teile die verwendet werden können:
  • CompactFlash 64MB von Sandisk (Standard Typ) Art.: G5001-064
  • CompactFlash 64MB von Sandisk (Industrie Typ) Art.: G5001-164
  • CompactFlash 32MB bis 1GByte sind verfügbar
  • CompactFalsh Einschub mit Micro IDE Anschluss Art.: G5001-005
  • Micro IDE auf normal IDE Adapter für Std. PC Art.: G5001-016
  • Micro IDE Flachband Kabel 30cm Art.: G5001-017
  • IDE Kabel Std. 40Pol für 2 Geräte 70cm Art.: G5001-020
  • PCMCIA (I & II) Adapter für CompactFlash Art.: G5001-006


    Implementierung:

    Als erstes ist das Motherboard funktionsfähig anzuschliessen. Danach kann mit einer DOS BootDisk gestartet werden. Falls keine DOS Disketten vorliegen, können diese hier runter geladen werden:
    Disketten Abbild: FREEDOS.img
    Disketten erstellung: DD.exe
    Es sind beide Dateien in einen leeren Ordner zu kopieren, z.B. c:\temp . In einer DOS Box in das Verzeichnis c:\Temp wechseln "cd \Temp" . Dann eine leere formatierte Diskette ins Laufwerk A: einlegen und Eingabe "DD Freedos.img A:". Im BIOS des neuen Linux Rechners muss noch die IDE SanDisk angemeldet werden, dies am besten mit IDE autodetect. Und jetzt kann ab der DOS Bootdiskette gestetartet werden...
    mit dem programm FDISK auf der BootDiskette enthalten kann die SanDisk partitioniert werden.
    Achtung: Die erste Primäre Partition darf nicht grösser als 16MByte gross ein! (besser 15MB). Da nur dann FAT12 eingerichtet wird und nur mit FAT12 ist der SYSLINUX Bootloader funktionsfähig
    Im FDisk muss gleich auch noch das SanDisk Laufwerk auf aktiv gestellt werden, nur dann kann auch davon gebootet werden! Wenn das Aktiv setzten licht geht ligt der Grund darin, dass weitere Disk's vorhanden sind die bereits aktiv sind! (Die anderen ausstecken zum Aktiv Schlten hilft)
    Nach einem Neustart kann das Laufwerk C: formatiert werden. Dies mit dem Kommando "Format C: /S" . Die SanDisk muss mit system Formatiert werden da sonst der SYSLINUX BootLoader nicht Funktioniert! Jetzt sollte der Rechner auch ohne Diskettenlaufwerk ab der Sandisk Starten. Leider aber erst mit DOS?
    Was wir jetzt brauchen ist ein Kernal und ein Root Files System letztere nach möglichkeit komprimiert. Mit den folgenden Dateien kann die Flash Disk für Linux Bootbar gemacht werden. Als erstes wird das Laufwerk C: (das ja nur DOS) enthält nochmals formatiert, so sind die versteckten Systemdateien sicher weg "A:Format C:" . Dann wird die Datei SysLinux.cfg auf die SanDisk kopiert. Diese Datei enthält die Infos zum Laden des Kernals und des Root File Systems. Download einer Beispiel SysLinux.cfg
    So sieht die Beispiel SysLinux.cfg aus:
    # Important first init RS232
    serial 0 9600 0x000
    serial 1 9600 0x000

    # SYSLINUX.CFG MENU and Kernal name
    default syslinux
    display syslinux.msg
    label syslinux
    kernel linux.bin

    # Aditional Kernal Parameter
    # initrd=rootfs.gz - root file system
    # console=ttyS0,9600n - Konfiguration der Konsole für COM1
    # root=/dev/ram0 - Starten im RAM des root Files Systems
    append initrd=rootfs.gz text serial console=ttyS0,9600n8 root=/dev/ram0

    # end of syslinux.cfg

    Und noch die Datei die die Startmeldung enthält: SysLinux.msg
    Und noch die Datei mit der der MBR (Master Boot Block und der SysLinux Loader auf Diskette/Flash erzeugt werden kann: SysLinux.exe
    Mit diesem Kommando wird der MBR & der BootLoader erzeugt: "A:SysLinux.exe C:" . Auf die Flash Disk wurde ien neuer MBR geschrieben so wie der BootLoader LDLINUX.SYS, dieses Programm wird vom MBR her aufgerufen und dessen Aufgabe ist es, die SysLinux.cfg Datei zu lesen und zu interpretieren so wie dann den angegebene Kernal laden so wie dessen root files system.
    Jetzt ist die SanDisk zwar Bootbar doch der Kernal und das root Files System fehlen noch. Dies kann unter Linux von der Installations Disk runter gezogen werden mit dem folgenden Kommando: "dd if=/dev/fd0 of=/temp/rootfs.gz" . Die Datei rootfs.gz muss nun noch auf die Fash Disk kopiert werden. Unter Linux mit "mount /dev/hdc1 /mnt" (Wenn die Flash Disk als Master am 2. IDE Port angeschlossen ist. Kopieren der Datei "cp /tmp/rootfs.gz /mnt" und dann dismounten "umount /mnt" oder downloaden der Datei rootfs.gz und das war auch bereits alles. Jetzt fehlt noch der Linux Kernal linux.bin, der ebenfalls ab der Boot diskette kopiert werden kann "mount /dev/fd0 /floppy" "mount /dev/hdc1 /mnt" und dann "cp /floppy/linux.bin /mnt" und dismounten "umount /mnt" "umount /floppy" . Oder den folgenden Kernal verwenden: linux.bin
    Wie kann jetzt im Root Files Sytem was angepasst werden?
    Falls das Root Files System auf diskette ist, muss dieses in eine Datei kopiert werden, mit "dd if=/dev/fd0 of=/tmp/rootfs.gz"
    Nun folgt das entkomprimieren des packten File Systems mit: "cat /tmp/rootfs.gz | gzip -d > /tmp/rootfs.bin"
    Einbinden des entpackten Dateisystems mit folgendem Kommando: "dd if=/tmp/rootfs.bin of=/dev/ram0" und "mount /dev/ram0 /mnt"
    Jetzt können die Anpassungen vorgenommen werden: "nano-tiny /etc/inittab" und "nano-tiny /etc/rc" abschlissen der Änderungen mit dismount "umount /mnt"
    Jetzt werden wir das Dateisystem wieder Komprimieren und zurück schreiben. "dd if=/dev/ram0 of=/tmp/rootfs2.bin" jetzt ist das File System wieder als Datei vorhanden jedoch noch nicht komprimiert! Komprimieren das Root File Systems "cat /tmp/rootfs2.bin | gzip -v > /tmp/rootfs2.gz" und zum Schluss muss das gepackte neue File System wieder zurück auf die Flash Disk. Dies mit: "mount /dev/hdc1 /mnt" und kopieren "cp /tmp/rootfs2.gz /mnt/rootfs.gz" und dismounten "umount /mnt" mit der eingabe von "reboot" wir das System mit dem neuen File System gestartet!!
    Das war's

    Erzeugen einer neuen zusätzlichen Partion auf der Flash Disk: "cfdisk /dev/hdc" erstellen einer Linux Partition gem. Menüführung. Erzeugen eines Dateisystemes auf der neuen Partition: "mke2fs /dev/hdc5" und Mounten "mount /dev/hdc5 /mnt"

    ....