Beiträge von FluNky87

    Ein von mir selbsterstelltes C-Programm :s

    Dies benötigt die Bibliotheken ktime.h und hrtimer.h welche ich jedoch schon eingebunden habe.


    Nach dem Ausführen erscheint dann:

    /usr/include/linux/math64.h:5:23: fatal error: asm/div64.h: Datei oder Verzeichnis nicht gefunden

    Hallo zusammen,

    ich versuche zurzeit ein C-Programm auszuführen. Hierfür muss ich einige Bibliotheken in /usr/include/asm richtig einbinden.

    Die linux-source-3.2 habe ich mit
    ln -s /usr/src/linux-source-3.2 /usr/src/linux
    eingebunden.

    Um den Kernel jetzt richtig zu verlinken wird auf einer anderen Website folgendes beschrieben:
    ln -s /usr/src/linux/include/asm-i386 /usr/src/linux/include/asm
    ln -s /usr/src/linux/include/asm /usr/include
    ln -s /usr/src/linux/include/asm-generic /usr/include
    ln -s /usr/src/linux/include/linux /usr/include

    Des Weitern wird gesagt: Je nach Prozessortyp benoetigen wir ein anderes Verzeichnis aus /usr/src/linux/include

    Meine Frage ist daher welches Verzeichnis ist das und wie funktioniert das?
    Weiss da jemand weiter?

    Viele Grüße
    Flunky87

    Nach einer erneuten Rechere bin ich auf folgendes gestoßen:


    /usr/include
    Das Verzeichnis /usr/include mit seinen Unterverzeichnissen enthält ausschließlich `header' Dateien, die vom C-Präprozessor bearbeitet werden.
    Das Verzeichnis /usr/include/linux sollte ein symbolischer Link auf das Verzeichnis /usr/src/linux/include/linux sein; /usr/include/asm sollte in gleicher Weise auf das Verzeichnis /usr/src/linux/include/asm zeigen.

    /usr/src
    Dieser Zweig des Dateisystems ist für die Aufnahme der Quelltexte (Sourcen) für alle Programme des Standardsystems vorgesehen.
    Eine sinnvolle Unterteilung in Unterverzeichnisse bleibt der Systemverwalterin überlassen. Allein das Verzeichnis /usr/src/linux mit den Kernelsourcen wird von anderen Systemkomponenten genau an dieser Stelle erwartet. Besonders wichtig sind die symbolischen Links der Verzeichnisse /usr/include/linux und /usr/include/asm auf die entsprechenden Verzeichnisse in /usr/src/linux/include.

    Quelle:http://www.nextop.de/lhb/node39.html

    Demnach muss ich die Bibliotheken garnicht unbedingt, wie anfangs vermutet, in den Verzeichnissen:
    --> "/usr/include/linux"
    --> "/usr/include/asm"
    haben sondern dorthin symbolisch verlinken.

    Diese symbolische Verlinkung ist bei mir wohl nicht vorhanden, da ich ansonsten ja mein Programm ausführen könnte und mein Compiler nicht meckern würde das z.B. die ktime.h fehlt.

    Weiss jemand wie ich eine symbolische Verlinkung meiner Dateien aus "/usr/src/linux-source-3.2/include/linux/" zu "/usr/include/linux" hinbekomme, sodass der Compiler die Bibliotheken aus der linux-source auch erkennt?

    Viele Grüße
    Flunky87

    Hallo zusammen,

    ich möchte gerne die linux-headers-3.2.0-3 unter Raspbian installieren und diese dann im Verzeichnis:
    --> "/usr/include/linux"
    --> "/usr/include/asm"
    haben.


    Hierfür habe ich bisher folgendes Durchgeführt:

    1) sudo apt-get install linux-headers-3.2.0-3-all-armhf
    2) Somit sind folgende Datei im Verzeichnis "/usr/src" vorhanden:
    --> "linux-headers-3.2.0-3-common"
    --> "linux-headers-3.2.0-3-rpi"

    Wechsel ich jetzt in eins der beiden Verzeichnisse und möchte den Makefile mit "sudo make all" ausführen erscheint folgende Meldung im Terminal:

    Code
    scripts/Makefile.build:44: /usr/src/linux-headers-3.2.0-3-common/scripts/basic/Makefile: Datei oder Verzeichnis nicht gefunden
    make[2]: *** Keine Regel, um »/usr/src/linux-headers-3.2.0-3-common/scripts/basic/Makefile« zu erstellen.  Schluss.
    make[1]: *** [scripts_basic] Fehler 2
    make: *** Keine Regel vorhanden, um das Target »include/config/auto.conf«,
      benötigt von »include/config/kernel.release«, zu erstellen.  Schluss.

    Wie kann ich die Headerdateien denn ordnungsgemäß installien?

    Viele Grüße
    Flunky87

    Hallo liebe Forummitglieder,

    ich habe wirklich ein enormes Problem und würde mich überjeden Tipp/Anregung/Hilfe wirklich total freuen. Ich habe mit der Programmiersprache C ein Interrupt programmiert und möchte den auf dem Raspberry gerne zum Laufen bringen.

    Das Problem dabei ist das mein C-Programm die Bibliothekenktime.h und die hrtimer.h benötigt. Diese Bibliotheken benötige ich in dem Ordner „usr/include/linux“ um das C-Programm ausführen zu können. Das hört sich eigentlich garnicht schwer an, ist es leider aber.

    Ich bin bisher wie folgt vorgegangen:

    Versuch (1):

    • Download der fehlenden Bibliotheken mit “sudoapt-get install linux-headers”
    • Beim Ausführen des Makefiles mit „sudo make all“erscheint: Fehler 2
    • DesWeiteren sind die fehlenden Bibliotheken auch im falschen Verzeichnis
    • Kopiereich die Bibliotheken in richtige Verzeichnis mit „ln -s ktime.h kime.h“kommt folgende Meldung bei Ausführen des Interruptes: fatal error: /usr/include/linux/ktime.h: Zu viele Ebenen aus symbolischen Links


    Versuch (2):

    • Download von linux-source mit “sudo apt-getinstall linux-source”
    • Entpacken
    • Installationdes Kernels mit “sudo make menuconfig“


    Ich weiss einfach nicht mehrweiter. Ich möchte doch wirklich nur das die ktime.h und die hrtimer.h im Verzeichnis „usr/include/linux“ richtig verlinkt sind und das dadurchmein Interrupt auf die nachfolgenden Bibliotheken zugreifen kann und somit funktioniert.

    Das Problem geht leider über mehrere Ecken und es könnte sein, dass ichetwas vergessen habe. Falls demnach etwas unklar ist bitte einfach schreiben. Vielleicht kann mir ja einer von euch helfen. Ich wäre wirklich sehr dankbar.

    Viele Grüße
    Flunky87