mikrocontroller.net

Forum: PC-Programmierung Embedded Linux auf einem x86er - wer hat Erfahrung?


Autor: thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich hab mir gerade mal den Thread zum Thema uClinux durchgelesen und
finde das Projekt gar net mal schlecht nur ich habe bisher im Embedded
Linux Bereich nur theoretische Kenntnisse aus Büchern u.a. das Buch
"Embedded Linux" von Robert Schwebel, und möchte mir für die ersten
Versuche kein spezielles Board kaufen sondern mit einem alten 486er das
ganze mal ausprobieren. Das müsste auch machbar sein so wie es in dem
oben genannten Buch beschrieben ist, nur mein Problem ist, dass das
Beispiel in dem Buch nicht funktioniert. Auch mit der Errata zu dem
Buch funktioniert es nicht und der Autor antwortet leider nicht auf
E-Mails.
Nun meine Frage, hat jemand das schon mal erfolgreich hinbekommen? Oder
kennt jemand eine gute deutsche Homepage bzw. ein gutes
deutschsprachiges Buch/Tutorial das auch funktioniert?
Danke schon mal für alles das mich irgendwie weiter bringt.

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für alle, die das Buch nicht haben: Was sollst du laut Buch machen und
was klappt nicht?

Autor: thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also, das Zielsystem soll zum Schluß ein x86er sein der von einer
Diskette Linux bootet und sein Dateisystem (liegt auf dem
Enwicklungsrechner) über ein Netzwerk einbindet. In einer späteren
Phase soll das Dateisystem dann von einer Flash-Disk geladen werden.

Als erstes wird ein Bootloader auf eine Diskette installiert, das
klappte. Danach hab ich den Linuxkernel ausgepackt und konfiguriert
(ist auf der beigelegten CD), hat auch noch geklappt. Dann gehts ans
kompilieren das hat er auch ca. 10 Minuten lang gemacht ohne Warn- und
Fehlermeldungen und dann ging nix mehr. Es kamen nur noch Fehler, fast
5 Minuten lang. Danach soll dann der kompilierte Kernel auf die
Diskette kopiert werden und dan soll man den x86 damit starten.

Okay ich weiß dass es schwierig ist jetzt den Fehler zufinden ihr müsst
mir dabei auch nicht helfen, ich habs nämlich auch schon aufgegeben. Ich
finde es halt nur schade dass der Autor sich seit 4 Jahren hierzu nicht
äußert und nicht versucht das Problem zu lösen.
Mich würde viel lieber ein Tutorial/ Buch/ Homepage interessieren, das
auch einen alten 386er verwendet und auf anhieb funktioniert, da ich für
die ersten Schritte auf dem neuen Gebiet eigentlich kein Geld ausgeben
will, vor allem da man ja nie weiß ob das dann auch funktioniert.

Autor: thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für alle die dieses Thema auch interessiert hier noch ein paar Links
(teilweise nicht sehr informativ)

Linux für eingebettete Systeme und PDAs
http://www.fh-wedel.de/~si/seminare/ws01/Ausarbeit...

Aufbau eines Embedded Linux Systems
http://www.fh-wedel.de/~si/seminare/ws01/Ausarbeit...

Seiten von Herrn Schwebel
http://www.schwebel.de
http://www.linux-automation.de

Autor: Jürgen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Als erstes wird ein Bootloader auf eine Diskette installiert, das
klappte. Danach hab ich den Linuxkernel ausgepackt und konfiguriert
(ist auf der beigelegten CD), hat auch noch geklappt. Dann gehts ans
kompilieren das hat er auch ca. 10 Minuten lang gemacht ohne Warn- und
Fehlermeldungen und dann ging nix mehr. Es kamen nur noch Fehler, fast
5 Minuten lang. Danach soll dann der kompilierte Kernel auf die
Diskette kopiert werden und dan soll man den x86 damit starten."


Poste doch mal die ersten Fehler. Nur die sind interessant.

Autor: thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So hab es jetzt nachdem ich es schon aufgegeben habe nochmals versucht
zu kompilieren jetzt aber mit Redhat Linux 9.0 nun sind es nur noch
zwei Fehlermeldungen. Bis jetzt... Hier mal die letzten Zeilen danach
kommt wieder der Prompt.

sched.c: At top level:
sched.c:86: conflicting types for `xtime'
/home/thomas/compilieren/linux-2.2.19-rtai/include/linux/sched.h:514:
previous declaration of `xtime'
sched.c: In function `schedule':
sched.c:777: warning: deprecated use of label at end of compound
statement
make[2]: *** [sched.o] Fehler 1
make[2]: Verlassen des Verzeichnisses Verzeichnis
/home/thomas/compilieren/linux-2.2.19-rtai/kernel
make[1]: *** [first_rule] Fehler 2
make[1]: Verlassen des Verzeichnisses Verzeichnis
/home/thomas/compilieren/linux-2.2.19-rtai/kernel
make: *** [_dir_kernel] Fehler 2

Wer kann damit was anfangen?

Autor: pebisoft (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nimm debian-linux.
mfg pebisoft

Autor: thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@pebisoft
Sorry, mit deiner allgemeingehaltenen Aussage kann man hier nicht viel
anfangen.
Funktioniert das kompilieren des Beispiels mit Debian dann, oder wie
meinst du das? Und mit welcher Version von Debian hast du das gemacht?

Autor: David Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vergiss die aussage von pebisoft, unter debian wirst du warscheinlich
genau die gleichen Fehler haben. Mich würde die Version des
Linuxkernels interessieren, ist es eine für besondere, für "embedded
linux" angepasste Version oder ist es ein "normaler" Linux-Kernel?

Falls es ein normaler ist, würd ich dir empfehlen dir den neusten von
http://www.kernel.org zu laden, da es sein kann dass der alte Kernel
von der CD mit neueren Compilern nicht mehr funktioniert.

Autor: thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@David Otto
Ja es ist ein normaler Kernel (Version 2.2.19) mit dem Patch RTAI 1.7
und einer fertigen Konfigurationsdatei (alles auf der CD dabei).

Hast du so etwas schon einmal gemacht? Ich war bisher wie gesagt noch
nie erfolgreich... Kennst du ein gutes Tutorial/Homepage - am besten
auf deutsch? Oder kannst du deine Vorgehensweise etwas genauer
beschreiben?

Autor: David Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja normale Linux kernel hab ich schon öfter konfiguriert und
installiert, unter
http://www.selflinux.org/selflinux-devel/html/kernel.html findest du
eine kleine Anleitung,

Ich bin mir nicht sicher was du mit der Bootdisk vorhast, was du mit
deinem RedHat nicht machen kannst.

Vielleicht solltest du ein vorkonfiguriertes Linux verwenden wie z.B.
http://www.toms.net/rb/. Ein Bootdisk-Linux zu erstellen ist sicherlich
nicht ganz leicht, aber vielleicht hilft dir ja das
http://www.linux-magazin.de/Artikel/ausgabe/2002/1...

Autor: Marc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thomas,

ich kann Dein Problem nicht ganz nachvollziehen, ich glaube mal Du
versuchst einen Kernel für Deinen 486er zu kompilieren -- somit müßte
der Kernelsource auf der Diskette sein. Um diesen verwenden zu können,
müßtest Du ihn auf Dein Hardware konfigurieren, dies ist aber ohne
Vorlage sicher nicht einfach.

Warum nimmst Du Dir nicht einfach ein fertige Linux-Bootdiskette und
machst dort Deine Tests?

http://www.omimo.be/encyc/rtlinux/EmbeddedLinux/Ti...

Dort gibt es auch Projekte, wo Du Deine eigene Linux-Disk-Distribution
bauen kannst, aber auch dies ist für einen Nicht-Linux-Kenner sicher
mit einiger Zeit verbunden.

Gruss
Marc

Autor: Sepp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Marc: Du hast Tomas nicht ganz verstanden. Er versucht, ein
Realtime-Linux zu kompilieren. Nicht, irgendein Linux auf dem 486er zum
Laufen zu bringen ;)



Hallo, Thomas,

vergiss die Aussage von Pebisoft, er hat keine Ahnung.
Nicht umsonst hat das Debian-Projekt solche Schwierigkeiten und
technische Fragwürdigkeiten.

Ich habe spasseshalber mal eben die RTAI 3.1 heruntergeladen, dazu den
passenden Kernel 2.6.8.1 und das Ganze für einen 486er kompiliert (für
eine fiktive Hardware). Es funktionierte einwandfrei.

Meine Empfehlung an Dich: Vergiss den alten Rotz auf Deinen CDs. Die
einzige Frage, die Du Dir stellen musst, ist, ob Du einen 2.4er oder
2.6er Kernel nutzt. Das hängt aber von Deiner Anwendung ab.
Lad Dir also die aktuelle Soft runter und geh entsprechend den READMEs
vor (patchen, konfigurieren, kompilieren).
Wenn dann noch Schwierigkeiten auftreten, dann frag halt noch mal.

Autor: thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Sepp: Danke ich werde es aber erst am WE ausprobieren können da ich
unter der Woche nur mein Notebook bei mir habe und da ist kein Linux
drauf, aber ich probiers mal aus.
Ich werde aber wahrscheinlich diesmal schon beim Konfigurieren
scheitern da ich das noch nie gemacht habe, außer halt das fertige
Config-File geladen das bei dem Buch dabei war. Oder kann ich das auch
wieder benutzen?
Kannst du mal sagen wie du vorgegangen bist nach dem du den Kernel und
RTAI in verschiedenen Verzeichnisse entpackt hattest? Stichpunktartig
mit Befehl reicht mir vollkommen aus.

Autor: thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also wie ich es vermutet habe, bekomme ich jetzt einen normalen Kernel
2.4.30 compiliert (endlich).
Nur einen Kernel mit RTAI3.0r4 bekomme ich immer noch nicht gebacken.
Nach dem Konfigurieren von RTAI bricht er noch während des schreibens
des Config-Files ab und bringt eine Fehlermeldung, dass er das
Linux-Source-Directory nicht finden kann, obwohl ich menuconfig aus
diesem aufrufe.

@Sepp wie hast du RTAI konfiguriert? Bzw. was hast du gemacht nachdem
du die Sources (Linux+RTAI) entpackt hast und bevor du menuconfig für
RTAI aufgerufen hast? Hast du erst menuconfig für RTAI ausgeführt und
dann nochmals für Linux?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.