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.
Für alle, die das Buch nicht haben: Was sollst du laut Buch machen und was klappt nicht?
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.
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/Ausarbeitung/5.linuxpda/linpda0.htm Aufbau eines Embedded Linux Systems http://www.fh-wedel.de/~si/seminare/ws01/Ausarbeitung/5.linuxpda/linpda3.htm Seiten von Herrn Schwebel http://www.schwebel.de http://www.linux-automation.de
"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.
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?
@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?
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.
@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?
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/11/mini/mini.html
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/TinyLinux.htm 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
@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.
@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.
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?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.