Beiträge von Michael65589

    Hallo,

    ich habe per buildroot ein lauffähiges Linux auf meinem Rasperry Pi B+ hin bekommen. Außerdem, nach Anleitung von Jürgen Quade (Embedded Linux lernen mit dem Raspberry Pi) , ein Kernelmodul welches eine LED ansteuern kann.

    Diese Kernelmodul includiert eine Header Namens "GPIO.h" und nutzt die Funktion gpio_set_value.

    Ich möchte gerne verstehen wie die Verbindung zwischen dem DeviceTree und letztendlich der Funktion gpio_set_value ist.

    Was ich bis jetzt gelesen habe, wird im DevicTree in der Node gpio mit compatible="Ein Name" ein String gesetzt, auf den im Treiber referenziert wird.

    In den Kernel-Sourcen finde ich zwar einen GPIO Ordner, aber da sind über 100 GPIO-Treiber drin. Keiner davon besitzt die Funktion gpio_set_value, bzw. referenziert auf "Ein Name".

    Was bedeutet es, wenn da z.B compatibel = "brcm, bcm2835-gpio" steht. Hat das Komma die Funktion eines Separators, oder ist es einfach nur Teil des Strings?

    Wie finde ich heraus welcher GPIO-Treiber in den Kernel glinkt wurde?

    :helpnew:

    Danke.

    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