Forum: PC Hard- und Software Linux/OpenWrt: " mmio: not found"


von Friedhelm (Gast)


Lesenswert?

Was kann bewirken, dass die Linux-Shell ein Programm nicht 
findet/ausführt?



1
root@OpenWrt:/# :/mnt/sda1/programme/mmio
2
/bin/ash: :/mnt/sda1/programme/mmio: not found
3
4
5
root@OpenWrt:/# ls -l /mnt/sda1/programme/mmio
6
-rwxr-xr-x    1 root     root         31510 May  9 19:10 /mnt/sda1/programme/mmio

von DPA (Gast)


Lesenswert?

1
root@OpenWrt:/# :/mnt/sda1/programme/mmio
2
                ^ Der Doppelpunkt

Ich glaube die Meldung bekommt man zudem auch dann, wenn der interpreter 
oder die ld.so, die das Programm will, nicht gefunden wird.

von Thorsten (Gast)


Lesenswert?

Eventuell Filesystem mit noexec gemountet?

Oder ELF Loader fehlt oder ist inkompatibel?

von Friedhelm (Gast)


Lesenswert?

Doppelpunkt: Mein Fehler.
1
root@OpenWrt:/# /mnt/sda1/programme/mmio
2
/bin/ash: /mnt/sda1/programme/mmio: not found

noexec: starte in bin ebenfalss nicht
1
root@OpenWrt:/bin# mmio
2
/bin/ash: mmio: not found

> Oder ELF Loader fehlt oder ist inkompatibel?

Wie kann ich das am besten prüfen?

Das Programm mmio lief auf einer älteren OpenWrt-Version die jetzt 
aktualisiert wurde.

von Dr. Sommer (Gast)


Lesenswert?

Gib doch mal folgende Befehle ein und zeige die Ausgaben:
1
file /mnt/sda1/programme/mmio
2
ldd /mnt/sda1/programme/mmio
3
readelf --file-header --arch-specific /mnt/sda1/programme/mmio
4
mount | grep /mnt/sda1

von Friedhelm (Gast)


Lesenswert?

Hier die drei Ausgaben:

I
1
root@OpenWrt:/# file /mnt/sda1/programme/mmio
2
/bin/ash: file: not found

II
1
root@OpenWrt:/# ldd /mnt/sda1/programme/mmio
2
        /lib/ld-uClibc.so.0 (0x77f21000)
3
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x77efd000)
4
        libc.so.0 => /lib/ld-uClibc.so.0 (0x77f21000)
5
Error relocating /mnt/sda1/programme/mmio: __uClibc_main: symbol not found
6
Error relocating /mnt/sda1/programme/mmio: __ctype_b: symbol not found

III
1
root@OpenWrt:/# mount | grep /mnt/sda1
2
/dev/sda1 on /mnt/sda1 type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)

von Dr. Sommer (Gast)


Lesenswert?

Sieht so aus als wäre die C-Library nicht kompatibel. Kannst du das 
Programm neu kompilieren?

von bummi (Gast)


Lesenswert?

> die C-Library nicht kompatibel
Das ist bestimmmt mit CPP kompiliert worden.

Sowas aber auch.

von Dr. Sommer (Gast)


Lesenswert?

bummi schrieb:
> Das ist bestimmmt mit CPP kompiliert worden.

Natürlich, der C PräProzessor wird beim Kompilieren von C-Code immer 
genutzt. Das hat aber absolut nichts damit zu tun, dass die C-Bibliothek 
ggf. nicht kompatibel ist.

von bummi (Gast)


Lesenswert?

> Das Programm mmio lief auf einer älteren OpenWrt-Version die jetzt
> aktualisiert wurde.

Dann musst du die Libraries auch mit umziehen.
In ein extra Verzeichnis.

Und dann die LD_CONF oder wie immer die jetzt hiess auf
dieses Verzeichnis zeigen lassen.

Dann klappt das auch.

von bummi (Gast)


Lesenswert?

Der LD_LIBRARY_PATH ist es.

von Friedhelm (Gast)


Lesenswert?

Dr. Sommer schrieb:

> Sieht so aus als wäre die C-Library nicht kompatibel. Kannst du das
> Programm neu kompilieren?

Der Quelltext steht mir nicht zu Verfügung. Zudem müsste ich ein 
Linuxsystem aufsetzen für die Entwicklungsumgebung.

von bummi (Gast)


Lesenswert?

Und den Aufruf in ein Script "wrappen".
1
LD_LIBRARY_PATH=/meinealtenlibs
2
/meinealtenbins/mmio $*

von bummi (Gast)


Lesenswert?

Dafür das du mit solchem Zeug herumspielst bist du ganz schön 
ahnungslos.

von Friedhelm (Gast)


Lesenswert?

Edit:

Der Quelltext steht auf github zur Verfügung:

https://github.com/8devices/mmio

Beitrag #5847592 wurde von einem Moderator gelöscht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.