Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Linux Forum Linux-Web.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

11.06.2009, 10:52

Embedded System selbst kompillieren

Hallo liebe Linux Community! Für eine Seminararbeit benötige ich ein wenig mehr Rechenpower als mir zb ein AtMega32 oder 128 hergibt. Es geht dabei um die komplette Steuerung eines autonomen roboters, incl gps, neuronales netzwerk, sensorenauswertung, motorsteuerung, und parallel auch noch sprachsynthese, wenn das möglich ist (als kleine spielerei). Ich habe mir gedacht, ich hole mir dazu das Atmel Network Gateway Kit, das auch unter Linux läuft.
Jetzt möchte ich aber auch sehr viel tiefer in Linux einsteigen, um endlich zu verstehen, was es damit auf sich hat. Ich nutze Linux seit gut einem Jahr als Server und spiele gern mal an den Konfigurationen rum und habe an die gefühlten abertausenden Manpages gelesen. Auch Programme habe ich schon kompilliert (wenn auch nur kleinere, Gnome zu kompillieren ist mir noch nicht in den Sinn gekommen). Aber da hört mein Wissen leider schon auf. Ich kann zwar googeln, aber da findet man nur so sachen, wie LFS und sowas, die mir nicht sehr arg weiterhelfen.

Ich würde gerne mehr über den Bootvorgang erfahren, mehr über den kernel, die Initial Ramdisk, wie man Busybox mit dem kernel verknüpft, wie man mit initscripten arbeitet, und wie man letzendlich ein eigenes System auf die Beine stellt.
Gibt es Bücher, in denen solches Wissen abgedruckt ist?

Gruß Jan

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Nussi« (11.06.2009, 11:00)


2

11.06.2009, 15:15

RE: Embedded System selbst kompillieren

Zitat

Original von Nussi
Ich würde gerne mehr über den Bootvorgang erfahren, mehr über den kernel, die Initial Ramdisk, wie man Busybox mit dem kernel verknüpft, wie man mit initscripten arbeitet, und wie man letzendlich ein eigenes System auf die Beine stellt.
Gibt es Bücher, in denen solches Wissen abgedruckt ist?
Ich denke nicht, weil das bei jeder Distro anders ist oder zumindest sein kann. Dabei denke ich besonders an die Initrd, Init-Scripte und Busybox. Theoretisch braucht man die nicht unbedingt und es gibt mehr als genug Systeme, auf denen die auch nicht existieren oder sehr extravagant sind.

PS: Warum hilft Dir LFS nicht? Suchst Du vielleicht eine Source-Based-Distro, wie z.B. Gentoo?

3

11.06.2009, 16:02

LFS hilft mir nicht, weil mir da viel zu wenig erklärt wird. Ich kann zwar schön und gut ein System selbst kompillieren und aufbauen, aber wie ich Crosscompile, wie ich einen toolchain dafür aufbaue, was ich mit den scripten machen kann, wird dort eben nicht erklärt.

Mein Ziel ist es ein System selber aufzubauen, das auf dem Network Gateway Kit läuft. Dabei möchte ich so viel wie möglich lernen über

  • Das kompillieren
  • Die initial ramdisk
  • Den kernel
  • Den Bootvorgang
  • Den Toolchain
  • Den GCC
  • Linux
  • und vieles mehr


Es würden mir noch tausende Beispiele einfallen.

Ich hatte das so angedacht: Kernel 2.6.x nehmen, meine Treiber als module linken und dann Busybox oben drauf, incl Toolchain für direktes kompillieren auf dem system.
Mein Problem ist: Google spuckt mir zwar viel aus, aber ich weiß immernoch nicht wie die initrd.gz, der kernel und das rootFS zusammenarbeiten, was wo kommt und wie ich alles drei unter einen Hut bringen kann, sodass ich später ein funktionierendes System, zb auf CF Karte habe, möglichst klein und in Echtzeit (Okay, Echtzeit werde ich zu 90% NICHT schaffen!). Das mit Busybox war nur ein Beispiel, auf mein Problem bezogen.
Ich habe ein Halbwissen, das gerade so reicht um Blut zu lecken, aber zu nichts weiter. Das möchte ich ändern! Deswegen benötige ich die Literatur.

Bei Gentoo werde ich ja auch "nur" Menügeführt, und Gentoo macht dann den Rest. Ich möchte möglichst alles selber machen, anhand eines Buches (mehrerer Bücher), sei es Englisch oder Deutsch.

4

11.06.2009, 17:13

Was meinst DU denn mit "Menügeführt"?

5

11.06.2009, 17:22

Ich hätte das Menügeführt vielleicht noch in "" setzen sollen. Wenn du dir zb das hier anschaust: http://www.gentoo.de/doc/de/gentoo-x86-quickinstall.xml
Was siesht du da? eine Anleitung, wie man Gentoo installiert ohne viel Hintergrundinfos. Das gleiche bei LFS. Ich hätte einfach gerne mehr Hintergrundinfos. Mir macht es nichts aus, ein komplettes Buch mit 2000 Seiten nur über das Kompillieren zu lesen, absolut nicht!

6

11.06.2009, 17:37

Wenn Du auch in den deutschen Abklatsch einer Gentoo-Installationsanleitung, und noch dazu die Kurzfassung, guckst, hast Du selber Schuld und verdienst es nicht anders.

7

11.06.2009, 17:46

War doch nur ein Beispiel! Ich könnte auch das englische Handbuch nehmen, da steht leider auch nicht drinne, wie man den Kernel zu konfigurieren hat oder was zu tun ist, wenn man nur Busybox braucht, etc... Genau DAS sind die Sachen, die ich lernen möchte.

8

11.06.2009, 18:12

Hier sieht man, was standardmäßig auf dem Board läuft. Mein Ziel ist es, ein ähnliches System aufzubauen, aber mit dem wissen, WAS genau ich da tun kann, wie der Kernel funktioniert, wie ich mein System dort reinkompilliere!

http://sau.frubar.net/33655

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Nussi« (11.06.2009, 18:13)


9

11.06.2009, 20:34

Also bei den Kernel-Quellcodes ist ein Verzeichnis "Documentation" dabei. Das ist aber nicht immer brand aktuell. Wenn man den Kernel aber z.B. mit "make menuconfig" konfiguriert, dann ist auch da nochmal ein bisschnen Dokumentation drin.

Bei der Kernel-Doku ist u.a. eine Datei namens "kernel-parameters.txt" dabei. Dort stehen die Parameter "init=" und "initrd=", welche man angibt, um ein bestimmtes init-Programm zu starten oder eine initrd zu laden. Über das herstellen einer initrd mit busybox solltest Du genug im Netz finden können; Dir sollte nur bewusst sein, dass die meisten Leute eine solche Ramdisk nur bauen, um spezielle Software zur Boot-Zeit zur Verfügung zu haben, noch bevor das eigentliche Dateisystem Verfügbar ist.

Diese Kernel-Parameter werden logischerweise vom Boot-Loader übergeben.

busybox ist nix anderes als ein platzsparender Ersatz für gängige Programme, wie z.B. die coreutils. Der Trick besteht darin, dass busybox quasi nur aus einem Programm besteht, auf das aber mit vielen Dateinamen verlinkt wird. Je nachdem unter welchem Namen es gestartet wird, imitiert es dann das entsprechende Programm. busybox ist aber IMHO kein vollkommener Ersatz.
busybox findet insbesondere auf Ramdisks Anwendung, weil diese möglichst klein sein sollten, denn RAM ist erstens in relativ geringer Kapazität vorhanden und zweitens sind kleinere Ramdisks schneller vom Boot-Medium in den RAM geladen.

Viel mehr gibt's da eigentlich nicht zu verstehen. Wüsste nicht, wozu man da ein Buch lesen müsste.

Thema bewerten