Hallo,
ich programmiere seit 16 Jahren embedded Systeme auf C und C++ und möchte jetzt in die embedded Linux Welt einsteigen. Dazu wollte ich mit dem Raspberry Pi einsteigen.
Mich interessiert weniger die Anwendungsprogrammierung, sondern der Aufbau und die Treiber. Um die Zusammenhänge von Bootloader, Kernel, Device Tree und Rootfile system zu verstehen habe ich einerseits einiges gelesen und auch ein embedded Linux Seminar besucht.
Jetzt ist es halt so eine Sache mit Theorie und Praxis. Theoretisch alles verstanden, aber praktisch ein riesen Fragezeichen.
Ich habe das U-Boot (Denx) zum Laufen gebracht. Danach wollte ich den Linux-Kernel 4.4 bauen und starten, bis jetzt allerdings erfolglos.
Dann habe ich die SD-Karte mit einem lauffähigen Image bespielt (startete auch) und anschließend die kernel7.img mit der erzeugten Image-Datei des Kernels ersetzt. Also umbenannt und auf der SD-Karte überschrieben.
Leider startet der Raspi nicht. Es wird nur ein schöner bunter Bildschirm angezeigt. Die Profis unter Euch lachen sich bestimmt schon einen.
Die Suche im Internet hat zwar etliche Anleitungen ausgespuckt, allerdings alle für den Kernel 3.x.
Was hab ich:
- Einen Raspberry Pi B+
- Das Buch Embedded Linux von Jürgen Quade
- Wenig bis gar keine praktische Erfahrung
Was brauch ich:
- Einen der mir mit simplen Worten mal erklärt wie das geht was ich vorhabe.
Was ich gemacht habe:
- Eine Virtuelle Maschine auf meinem PC installiert und xUbuntu installiert
- Den Cross-Compiler von http://github.com/rasperrypi/tools installiert
- Die Umgebungsvariablen ARCH und CROSS_COMPILE gesetzt und exportiert
- Den aktuellen Kernel rpi-4.4.y von http://github.com/raspberrypi/linux.git geclont
- Eine .config erstellt (make bcm2709_defconfig)
- Den Kernel gebaut (make zImage)
- Die erstellte Image-Datei aus arch/arm/boot in kernel7.img umbenannt und auf die Boot-Partition der SD-Karte kopiert