Hallo, Kann mir hier irgend jemand sagen, wozu das im Betreff genannte Modul gut ist, wo man es herbekommt und in welcher Datei steht, dass es geladen werden soll?? Ich bekomme nämlich bei jedem Start eine Fehlermeldung deswegen, die besagt, dass das Modul nicht geladen werden konnte. Danke mal im vorraus, Heiko.
Heiko Schmidt-Evers wrote:
Kann mir hier irgend jemand sagen, wozu das im Betreff genannte Modul gut ist, wo man es herbekommt und in welcher Datei steht, dass es geladen werden soll?? Ich bekomme nämlich bei jedem Start eine Fehlermeldung deswegen, die besagt, dass das Modul nicht geladen werden konnte.
Der ganze Themenkomplex ist nicht so einfach. binfmt ist die Linux Kernel Unterstuetzung fuer Binaerformate. Das Standard- Format ist ELF (Executable and Linkable Format) und Du brauchst diese Unterstuetzung zwingend im Kernel. Falls die Unterstuetzung fuer ein Format nicht direkt im Kernel einge- bunden ist, so versucht der Kernel ein Modul zu laden, um den Binaercode entsprechend ausfuehren zu koennen. Wenn das benoetigte Modul nicht gefunden werden kann, dann wird eine entsprechende Fehlermeldung geloggt: "modprobe: Can't locate module binfmt-XXXX". Das XXXX kann dabei variieren, je nach- dem, welches Binaerformat ausgefuehrt werden soll. Beispiel: $> dd if=/dev/random of=/tmp/bin_test bs=512 count=100 $> chmod a+x /tmp/bin_test $> /tmp/bin_test bash: /tmp/bin_test: cannot execute binary file $> Gleichzeitig gibt es in /var/log/messages folgende Ausgabe: [...] modprobe: Can't locate module binfmt-f36c Wie Du siehst, hat der Kernel kein Modul gefunden, um den entsprechenden Binaercode auszufuehren und gibt eine Fehler- meldung zurueck. Es ist also bei Dir sehr wahrscheinlich, dass Du versuchst, einen Binaercode (der eigentlich gar kein Executable ist) auszufuehren oder dass Du versuchst, ein Executable, das nicht fuer Linux bestimmt (compiliert) ist, auszufuehren. Du solltest ueberpruefen, wann diese Fehlermeldung auftritt und was in diesem Moment gerade passiert. Gruesse, Thomson -- Thomas Hertweck, Dipl.-Geophys., GPI Universitaet Karlsruhe === First they ignore you, then they laugh at you, then === === they fight you, then you win. (M. Ghandi) ===
Hallo Thomson,
Danke für die Erläuterung. Jetzt bin ich mir sicher, dass dieses binfmt
Problem mit meinem nicht funktionierenden Druckertreiber zusammenhängt. Denn
immer, wenn ich versuche lexlmd (Das Programm, das für den Drucker ständig
im Hintergrund laufen soll) zu starten, gibt er mir aus 'cannot execute
binary file'. Beim Systemstart kommt direkt nachdem lexlmd geladen werden
soll die Meldung 'exec format error'.
From: "Thomas Hertweck"
Es ist also bei Dir sehr wahrscheinlich, dass Du versuchst, einen Binaercode (der eigentlich gar kein Executable ist) auszufuehren oder dass Du versuchst, ein Executable, das nicht fuer Linux bestimmt (compiliert) ist, auszufuehren.
Also dieser Treiber ist ganz sicher für Linux bestimmt. Hatte dieses Problem vorher auch schon bei linuxprinting.org in das Forum geschrieben. Dort gab es aber keine weitere Hilfe. Habe den Treiber direkt von lexmark.de. Einmal die Deutsche Version, dann die englische, den Treiber auch mehrmals runtergeladen mit verschiedenen Downloadprogrammen, also dürfte in der Datei kein Fehler sein. Also, wo liegt hier das Problem?
Hallo! Heiko Schmidt-Evers wrote:
[...] Also dieser Treiber ist ganz sicher für Linux bestimmt. [...] Also, wo liegt hier das Problem?
Es sieht jedenfalls so aus, als ob der Kernel mit dem Binaerformat nichts anfangen kann.... Was sagt denn das Kommando "file <programm>", wobei <programm> eben durch das entsprechend auszufuehrende Binaer-Programm (das die Probleme verursacht) zu ersetzen ist?! Gruesse, Thomson -- Thomas Hertweck, Dipl.-Geophys., GPI Universitaet Karlsruhe === First they ignore you, then they laugh at you, then === === they fight you, then you win. (M. Ghandi) ===
Hallo, Das Problem ist jetzt gelöst. Danke für die Hilfe. Hier noch mal eine kleine Zusammenfassung: Lösung des Problems war wohl erst herauszufinden, wo das Problem eigentlich lag, nämlich nicht beim Fehlen eines Moduls, sondern bei einer fehlerhaften Datei, die die Fehlermeldung 'modprobe: can't locate module binfmt-580b' verursachte. Deshalb kommt diese Fehlermeldung gepaart mit der Fehlermeldung 'exec format error' oder 'cannot execute binary file'. Übergibt man dem Befehl 'file' den Dateinamen der Datei, die diesen Fehler verursacht, in meinem Fall war es lexlmd, dann erhällt man Informationen über diese Datei. Die Ausgabe 'data' bei einer Datei, die eigentlich ein executable sein sollte, ist ein Hinweis darauf, dass die Datei fehlerhaft ist. Der Kernel versucht also beim Starten der Datei ein Modul zu laden, um diesen Binärcode ausführen zu können. Wenn er kein passendes Modul findet, weil die Datei einfach fehlerhaft ist, gibt er die Fehlermeldung 'modprobe: can't locate module binfmt-XXXX' aus. XXXX ist dabei ein vierstelliger Hexcode. Wie dieser genau entsteht weiss ich nicht. In meinem Fall hat es dann gereicht, die Datei zu löschen und neu zu installieren. Gruß, Heiko.
participants (2)
-
Heiko Schmidt-Evers
-
Thomas Hertweck