I-RT-HOME

  1. Problemstellung
  2. Projektidee
  3. Anforderungen
  4. Roadmap
  5. Linux-Distributionen
  6. Linux-Distributionen: USB Kandidaten
  7. Booten mit flashLinux
    1. Laden der Quellen
    2. Bootfähige CD-ROM
    3. Booten der CD-ROM
    4. Bootfähigen USB-Stick
    5. Booten des USB-Sticks
  8. Zwischenergebnis

  9. Testfragen


I-RT05 WS05
VL 9: Das Linux+RTAI-Projekt - Booting from Live-CD und UBS-Stick

    Achtung : Skript gibt den mündlichen Vortrag nur teilweise wieder !!! 
Achtung : Skript noch nicht abgeschlossen !!!

AUTHOR: Gerd Döben-Henisch
DATE OF FIRST GENERATION: September-16, 2003
DATE OF LAST CHANGE: 4.Jan, 2006
EMAIL: doeben_at_fb2.fh-frankfurt.de



1. Problemstellung

In der Vorlesung wurde erläutert, welche Möglichkeiten es gibt, das grundsätzliche Schema einer Host-Target-Entwicklungssituation umzusetzen (Target als SBC, als Mobile, als eigener PC,...).

DevTarget

Cross-Plattform-Entwicklungsumgebung und Zielsystem


Im Rahmen der Übungaufgabe Nr. 4 wird die Entwicklungsumgebung ELinOS v2.2 der Firma Sysgo AG vorgestellt (mittlerweile gibt es Versionen die Version 4.0). Dieses Werkzeug ist ein Beispiel dafür, wie man den Vorgang der Auswahl, Zusammenstellung und Kompilierung von Softwarequellen für eine bestimmte Zielplattform weitgehend automatisieren kann. Um zu verdeutlichen, welch hoher  Aufwand für die Erstellung einer eigenen Entwicklung  getrieben werden muss, soll dies an einem konkreten Beispiel nachvollzogen werden. Anhand dieses Beispiels sollte hinreichend klar werden, dass es sich lohnt, in der professionellen Praxis mit einem entsprechend professionellen Partner in der Industrie zusammenzuarbeiten, da ansonsten die Dauer der Entwicklung sowie die  Qualitätsprobleme  den Projektrahmen kleiner Firmen  sprengen können.


2. Projektidee

Bei der Suche nach einem geeignetem Übungsprojekt wurde  für die Variante optiert, als Target einen normalen Intel-PC zu nehmen, der mittels bootfähiger Medien (CD-ROM, DVD, USB-Stick...) mit einem hybriden Betriebssystem Linux + RTAI gebootet werden soll. Dies bietet den Vorteil, dass jeder die notwendigen Arbeiten an einem eigenen (auch älteren, ausgemusterten) PC vornehmen kann (Im Falle des Bootens von einer DVD oder einem USB-Stick geht dies natüerlich nur mit neuerer Hardware, da die älteren Boards dies nicht unterstützen).

Das Ganze soll wie ein Projekt anhand konkreter Hardware und mit konkreter SW organisiert werden.

Sofern sich Studenten an dem Projekt aktiv beteiligen, können sie ihre Beiträge auch im Rahmen der Vorlesung einbringen.

Ziel ist es, eine bootfähige Linux-RTAI-Distribution zu schaffen, die dann im weiteren Verlauf mit Software erweitert werden kann. Alle Versionen sollen entsprechenden Tests unterzogen werden.


START


3. Anforderungen

Folgende erste Anforderungen an das Projekt wurden formuliert:

  1. Zielplattform ist zunächst die Intel-Plattform. Später auch andere (z.B. auch  mobile Plattformen)

  2. Als Betriebssysteme sollen benutzt werden Linux Kernel 2.6.x (alternativ auch Linux Kernel 2.4.x) und der dazu passende RTAI-Kernel.

  3. Entsprechend diesen Versionen ist auch  alle andere Software auszuwaehlen, insbesondere auch die Entwicklungswerkzeuge.

  4. Es soll aus den Quellen ein bootfähiges System erstellt werden, das mittels CD/DVD/USB-Stick auf dem Zielsystem gebootet werden kann. Das System bekommt den Codenamen 'FH-FFM-BlueBird'.

  5. FH-FFM-BlueBird soll erweiterungsfähig sein.

  6. Die einsetzbare Version von FH-FFM-BlueBird soll auf einem öffentlich zugänglichen cvs-Server zum Download angeboten werden

  7. FH-FFM-BlueBird soll in Form eines opensource-Projektes organisiert  werden.

  8. Nach dem Booten des Systems soll mindestens ein Anwendungsprogramm automatisch gestartet werden können, das sich als FH-FFM-BlueBird meldet.

  9. Es soll mindestens ein Programm verfügbar sein, das es erlaubt, Realzeitvorgänge zu messen und auf definierte Ereignisse zu reagieren.



START


4. Roadmap


Folgende Milestones wurden ins Auge gefasst:

  1. Klären, mit welcher verfügbaren Linux-Distribution sich am schnellsten eine bootfähige Version erstellen lässt

  2. Einbindung von RTAI

  3. Erstellen eines ersten Realzeitprogramms


START


5. Liste von ausgewählten Linux-Distributionen


(aus Wikipedia - Linuxdistributionen (http://de.wikipedia.org/wiki/Linux_Distributio), der freien Enzyklopädie. Eine andere Übersicht findet sich hier: http://distrowatch.com/index.php?language=DE ). Am 4.Jan 2006 umfasste die Liste von Linuxdistributionen 100 Positionen!

[Bearbeiten]

Live Systeme

[Bearbeiten]

Startmedium CD oder DVD

[Bearbeiten]

Startmedium: Diskette, USB-Stick, Flash-Karte

[Bearbeiten]

Firewall

[Bearbeiten]

Sonstige


[Bearbeiten]

Unter Windows start- oder lauffähige Distributionen

Linux-Distributionen
Linux-ähnliche
Virtuelle Maschinen
[Bearbeiten]

Siehe auch

[Bearbeiten]

Weblinks

..


START


6. Linux-Distributionen: USB-Kandidaten

Für das weitere Vorgehen wollen wir uns auf diejenigen Distributionen beschränken, die sich von USB-Sticks booten lassen.

Aufgrund dieser Sachlage werden wir versuchen, das Projekt am Beispiel des FlashLinux-Projektes weiter zu entwickeln.



START


7. Booten mit flashLinux


  1. Laden der Quellen
  2. Bootfähige CD-ROM
  3. Booten der CD-ROM
  4. Bootfähigen USB-Stick
  5. Booten des USB-Sticks

Unter http://flashlinux.org.uk/download ist genau erklärt, wie man flashlinux downloaden kann und wie man daraus eine Isoimage erzeugen kann, das dann auf eine CD-ROM gebrannt wird.

i. How to Download


  • First you will need to visit to Flash Linux download area at SourceForge.net.
  • Download the files "flashlinux-0.3.4-RC2.iso-part*" to your computer.

    You can achieve some additional security by doing:
    Download the file "flashlinux-0.3.4-RC2.iso.md5" to your computer.

  • Make sure the .md5 file is stored in the same directory.
  • In a terminal session type;
    cat flashlinux-0.3.4-RC2.iso-part1 flashlinux-0.3.4-RC2.iso-part2 flashlinux-0.3.4-RC2.iso-part3 > flashlinux-0.3.4-RC2.iso

    md5sum -c flashlinux-0.3.4-RC2.iso.md5

    the computer should respond with;

    flashlinux-0.3.4-RC2.iso: OK

    you can double check md5 sum's here if you really want to.

    .................
  • START



    ii.Making a bootable CD-ROM

  • You now have an ISO image of the installation / Live CD. Next we need to "burn" this image to a CD-ROM or CD-RW.

    There are many ways of doing this, so we'll pick a method using a Linux application called XCDRoast.

  • Run XCDRoast as "root" and click on the Setup button.
  • Click on HD Settings and add the path to your newly downloaded Flash Linux ISO
  • Click Ok, then Create CD
  • Now click on Write tracks
  • In the right hand pane, select your FlashLinux .ISO file and then Accept track layout

    IF you are using a CD-RW, click on Blank CD-RW

  • Now click on Write tracks at the bottom of the screen

    Once this operation complete, you should have a Flash Linux CD that's ready to roll ..


  • START


  • iii.Booten der CD-ROM

  • Der nächste Schritt besteht darin, einen PC zu finden, auf dem die so erstellte CD-ROM problemlos bootet. Die schwierigsten Kandidaten sind hier offensichtlich Laptops, da diese am meisten 'von der Norm' abweichen. Ist das Booten gelungen, dann kann man jetzt versuchen, auf der Basis dieses gebooteten Systems die Hardware zu analysieren, um die geeigneten Parameter fuer einen zu bootenden USB-Stick zu finden. Unter http://flashlinux.org.uk/make findet sich eine sehr ausführliche Beschreibung, wie man einen USB-Stick bootfähig macht.

  • START


  • iv.Making a key

    How to install Flash Linux 0.3.4 on a USB Flash key

    Flash Linux on a USB key

    Before you do anything else, you need to prepare the key. It is critical to the remainder of the installation process that you get this bit right and we've deliberately not automated this part of the installation for the moment, partly for this reason.

    Getting set up

    Identifying the key

    Anmerkung: bei meinem Computer wurde bei /dev dann 'block' erkannt , also /dev/block statt '/dev/sda'. In diesem Fall hilft es, das shellscript flash_key.sh wie folgt abzuändern (Hinweis von Kai Hepke):

    PICKDEVICE() {

            (for i in `find /sys/bus/scsi/devices -name block -follow -maxdepth 3 -ls|cut -d"/" -f2-10`
            do
                    base=`echo ${i}|cut -d"/" -f1-5`
                    name=`cat /${base}/model`
                    vend=`cat /${base}/vendor`
                    dev=`readlink /${i}|cut -d"/" -f11`

      =========>    dev=sda /* anstatt 'block' */

                    echo ${dev}
                    if [ -z "${vend}" ] ; then
                            echo "${name}"
                    else
                            echo "${name} [${vend}]"
                    fi
            done) | \
            ${DIALOG} --list --title "${title}" --column "Device" --column "Type" \
            --text "\
    `cat <<EOF


    START


    v. Booten mit dem USB-Stick

    Nachdem nun ein bootfähiger USB-Stick vorliegt, kann man von diesem direkt booten ... in der reinen Theorie.  In der Praxis zeigt es sich, dass sowohl die verschiedenen BIOSse der Boards wie auch die USB-Sticks selbst ganz unterschiedliche Reaktionen zeigen können.  flashLinux bietet mit seinem Bootmanger zum Glück unterschiedliche Optionen an, z.B. auch die Option: 'Use the CD-ROM to boot a USB-flash key'. Dies bedeutet, dass das BIOS zuerst die CD-ROM bootet, von dieser aus dann aber alle vorkehrungen getroffen werden, um den USB-Stick zu mounten um dann letztlich von dem USB-Stick zu booten. Die CD-ROm kann dann --schon während dee Bootvorganges entfernt werden. Dies hat dann tadellos funktioniert und man konnte mann --nur mit dem USB-Stick ein vollständiges Linux benutzen. DEr USB-Stick verhielt sich dann wie eine Festplatte.

    Auf dem Dell Laptop Latitude 100L konnte man direkt vom USB-Stick booten, aber das System erkannte beim Einloggen dann keine Tastatur, d.h. insgesamt fehlten der Distribution offensichtlich geeignete Treiber fuer diese Hardware-Plattform.

    START

    8. Zwischenergebnis

    Die bisherigen Versuche haben gezeigt, dass die Erstellung eines bootfähigen USB-Sticks grundsätzlich möglich ist. Insbesondere scheint die Strategie von flashLinux  empfehlenswert zu sein, erst eine bootfähige CD-ROM-Version zu erstellen, um damit die konkreten Umgebungen für einen USB-Stock vorzubereiten. Allerdings zeigen diese Versuche auch, dass die beteiligte Hardware (der PCs wie der USB-Sticks selbst) und die beteiligten BIOSse noch sehr uneinheitlich und damit sehr risikobehaftet sind. USB ist eben nicht einfach USB!



    Darüberhinaus stellen sich jetzt die folgende  Fragen:

    1. Welche Kernelversion liegt hier überhaupt vor?

    2. Inwieweit kann man Im Rahmen des gebooteten Systems Module hinzufügen und wieder entfernen?.

    3. Welche Version von RTAI ist hier einschlägig?

    4. Wie kann RTAI im Rahmen eines USB-Stick-basierten Systems überhaupt auf die Hardware in der notwendigen Form zugreifen?

  • Als nächstes werden wir im Detail untersuchen, wie man, ausgehend von den Quellen, einen Linuxkernel zusammen mit RTAI compilieren und booten kann.

    START



    9. Testfragen

    1. Was ist  der Unterschied zwischen dem Linux-Kernel und einer Linux-Distribution?

    2. Was ist das Besondere an  einem Live-System?

    3. Welche Vorteile hätte es, wenn man ein USB-basiertes Live-System hätte?

    4. Gäbe es auch Nachteile bei einem USB-basiertes Live-System?

    5. Wie würden Sie die Qualität der zur Zeit bekannten USB-basierten Systeme beschreiben?


    START