[Erledigt] owserver: can't load library 'libow-2.7.so.32'

ao

Aktives Mitglied
Mitglied seit
15 Aug 2005
Beiträge
2,158
Punkte für Reaktionen
2
Punkte
38
Hallo zusammen,

ich habe owfs (externalisiert) auf meiner 7170 und sehe auch das Binary sowie die Lib auf dem USB-Stick. Wenn ich owserver starte, kann die Lib nicht geladen werden:
Code:
[email protected] /var/media/ftp/uStor01/external/usr/bin $ ./owserver --usb=ALL
[COLOR=#ff0000]./owserver: can't load library 'libow-2.7.so.32'[/COLOR]
[email protected] /var/media/ftp/uStor01/external/usr/bin $ ls -al
drwxr-xr-x    2 root     root          4096 Jul 25 17:11 .
drwxr-xr-x    4 root     root          4096 Jul 25 17:11 ..
-rwxr-xr-x    1 root     root        102368 Jul 23 21:13 mount.davfs
-rwxr-xr-x    1 root     root         21288 Jul 23 21:17 owdir
-rwxr-xr-x    1 root     root         54676 Jul 23 21:17 owftpd
-rwxr-xr-x    1 root     root         25048 Jul 23 21:17 owhttpd
-rwxr-xr-x    1 root     root         21128 Jul 23 21:17 owpresent
-rwxr-xr-x    1 root     root         21176 Jul 23 21:17 owread
-rwxr-xr-x    1 root     root         21860 Jul 23 21:17 owserver
-rwxr-xr-x    1 root     root         22360 Jul 23 21:17 owwrite
-rwxr-xr-x    1 root     root          9220 Jul 23 21:13 umount.davfs
-rwxr-xr-x    1 root     root        391788 Jul 23 21:21 wget-gnu
-rwxr-xr-x    1 root     root         13388 Jul 23 21:21 wol
[email protected] /var/media/ftp/uStor01/external/usr/bin $ cd ../lib/freetz/
[email protected] /var/media/ftp/uStor01/external/usr/lib/freetz $ ls -al
drwxr-xr-x    2 root     root          4096 Jul 25 17:11 .
drwxr-xr-x    4 root     root          4096 Jul 25 17:11 ..
-rwxr-xr-x    1 root     root        132176 Jul 23 21:03 libart_lgpl_2.so.2.3.21
-rwxr-xr-x    1 root     root       1035628 Jul 23 21:06 libcrypto.so.0.9.8
-rwxr-xr-x    1 root     root        142884 Jul 23 21:01 libexpat.so.1.6.0
-rwxr-xr-x    1 root     root        514532 Jul 23 21:02 libfreetype.so.6.11.2
-rwxr-xr-x    1 root     root         23052 Jul 23 21:03 libftdi.so.1.20.0
-rwxr-xr-x    1 root     root        115228 Jul 23 21:12 libfuse.so.2.7.6
-rwxr-xr-x    1 root     root        139444 Jul 23 21:07 libneon.so.27.2.6
-rwxr-xr-x    1 root     root        306224 Jul 23 21:13 libntfs-3g.so.84.0.0
-rwxr-xr-x    1 root     root        474136 Jul 23 21:17 [COLOR=#ff0000]libow-2.7.so.32.0.0[/COLOR]
-rwxr-xr-x    1 root     root        247732 Jul 23 21:06 libssl.so.0.9.8
-rwxr-xr-x    1 root     root        151484 Jul 23 21:07 libuClibc++-0.2.5.so
-rwxr-xr-x    1 root     root         15232 Jul 23 21:03 libusb-0.1.so.4.4.4
-rwxr-xr-x    1 root     root         80408 Jul 23 21:03 libusb-1.0.so.0.1.0
-rwxr-xr-x    1 root     root         31088 Jul 23 21:17 libwrap.so.0.7.6
-rwxr-xr-x    1 root     root         74800 Jul 23 21:02 libz.so.1.2.8
Dasselbe passiert mit dem Webserver:
Code:
root@fb1 /var/media/ftp/uStor01/external/usr/bin $ ./owhttpd -s 127.0.0.1:4304 -p 99
[COLOR=#ff0000]./owhttpd: can't load library 'libow-2.7.so.32'[/COLOR]
Hat jemand eine Idee, woran das liegt?
 
Zuletzt bearbeitet:
Wenn ich owserver starte, kann die Lib nicht geladen werden:
Code:
[email protected] /var/media/ftp/uStor01/external/usr/bin $ ./owserver --usb=ALL
[COLOR=#ff0000]./owserver: can't load library 'libow-2.7.so.32'[/COLOR]
[/QUOTE]
Wenn Du ldd auf deiner Box hast, wie ist die Ausgabe von:
[code]
ldd ./owserver
?
 
Was genau verstehst Du unter "externalisiert"?
Wenn die Dateien vom Freetz external Mechanismus ausgelagert werden, dann sollte es die Links /usr/bin/owserver, /usr/bin/owhttpd und /usr/lib/freetz/libow-2.7.so.32.0.0 geben, die auf die entsprechenden Dateien verweisen. Man könnte dann die Programme als 'owserver' bzw. 'owhttpd' aufrufen, ohne vorher in ein bestimmtes Verzeichnis wechseln zu müssen.
 
ldd sagt:
Code:
libow-2.7.so.32 => not found
libusb-0.1.so.4 => /usr/lib/freetz/libusb-0.1.so.4 (0x2aabe000)
libusb-1.0.so.0 => not found
libpthread.so.0 => /lib/libpthread.so.0 (0x2aad5000)
libm.so.0 => /lib/libm.so.0 (0x2aaf9000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x2ab21000)
libc.so.0 => /lib/libc.so.0 (0x2ab3f000)
ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x2aaa8000)
Allerdings muss ich ldd mit vollem Pfad auf den USB-Stick (external) aufrufen, sonst wird owserver nicht gefunden. Mit anderen Worten: Auch owserver selbst muss ich mit vollem Pfad bzw. im Pfad aufrufen.
 
[email protected] /var/media/ftp/uStor01/external/usr/lib/freetz $ ls -al
-rwxr-xr-x 1 root root 474136 Jul 23 21:17 libow-2.7.so.32.0.0
Wie ist in deinem Buildsystem (... im richtigen Verzeichnis bzw. mit dem richtigen Pfad), die Ausgabe von:
Code:
readelf -d owserver | grep -i rpath
?
 
@ao
Du bist leider nicht darauf eingegangen, ob die Symlinks vorhanden sind oder nicht. Wenn sie vorhanden sind, zeigen sie auf die richtige Stelle? Hast Du den External Mechanismus von Freetz verwendet, oder nur die Dateien auf einen USB Speicher kopiert?

Es gibt zwei Möglichkeiten: Entweder Du sorgst dafür, dass Freetz die entsprechenden Links in /usr/lib/freetz anlegt, oder Du setzt LD_LIBRARY_PATH auf das Verzeichnis, in dem sich die Libraries befinden.

Unabhängig davon solltest Du überprüfen, ob es normal ist, dass das Programm zwei verschiedene Versionen der libusb gleichzeitig nutzen will.

@sf3978
/usr/lib/freetz ist im RPATH enthalten, sonst würde /usr/lib/freetz/libusb-0.1.so.4 nicht gefunden werden.
 
@sf3978
/usr/lib/freetz ist im RPATH enthalten, sonst würde /usr/lib/freetz/libusb-0.1.so.4 nicht gefunden werden.
Ja, aber "/var/media/ftp/uStor01/external/usr/lib/freetz" ist in RPATH nicht enthalten, wo sich z. B. seine libow befindet.
 
Natürlich ist "/var/media/ftp/uStor01/external/usr/lib/freetz" ist in RPATH nicht enthalten. Erstens wissen war das schon, weil sonst die Fehlermeldung nicht käme, und zweitens gibt es nichts in Freetz, das diesen Pfad setzen würde. Was erwartest Du also von der Frage nach dem RPATH?
 
Hi Ihr Beiden, ich habe nichts manuell auf den Stick kopiert, sondern alles dem make menuconfig überlassen. Eure Fragen werde ich morgen beantworten. Jedenfalls schonmal herzlichen Dank für ein paar Denkanstöße.

Weshalb die libusb mit 2 unterschiedlichen Versionen dabei ist, habe ich mich auch schon gefragt. Am beste, ich baue noch einmal komplett neu - nur mit owfs. Ich melde mich dann nochmal mit Neuigkeiten.
 
Was genau verstehst Du unter "externalisiert"?
Wenn die Dateien vom Freetz external Mechanismus ausgelagert werden, dann sollte es die Links /usr/bin/owserver, /usr/bin/owhttpd und /usr/lib/freetz/libow-2.7.so.32.0.0 geben, die auf die entsprechenden Dateien verweisen. Man könnte dann die Programme als 'owserver' bzw. 'owhttpd' aufrufen, ohne vorher in ein bestimmtes Verzeichnis wechseln zu müssen.
Die Links sind alle da, aber wenn ich owserver aufrufe, kann die Lib nicht aufgerufen werden, egal aus welchem Pfad heraus.

Hast Du den External Mechanismus von Freetz verwendet, oder nur die Dateien auf einen USB Speicher kopiert?
Es ist External-Mechanismus von Freetz.

Es gibt zwei Möglichkeiten: Entweder Du sorgst dafür, dass Freetz die entsprechenden Links in /usr/lib/freetz anlegt, oder Du setzt LD_LIBRARY_PATH auf das Verzeichnis, in dem sich die Libraries befinden.
Das hat sich mit dem External-Mechanismus von Freetz erübrigt, nehme ich an. Oder?

Unabhängig davon solltest Du überprüfen, ob es normal ist, dass das Programm zwei verschiedene Versionen der libusb gleichzeitig nutzen will.
Libusb scheint vom owfs zu kommen - siehe menuconfig:
Code:
FREETZ_PACKAGE_OWFS:

OWFS - 1-Wire Filesystem                                                                                              
This package includes:                                                                                                
- owserver for easy, world wide access to serial                                                                      
  and USB 1-wire bus masters and attached devices                                                                     
- httpd and ftpd to control owserver over http or ftp                                                                 
- shellprograms like owdir, owwrite, owread, owpresent                                                                
  to control owserver via shell scripts                                                                               
                                                                                                                      
Symbol: FREETZ_PACKAGE_OWFS [=n]                                                                                      
Type  : boolean                                                                                                       
Prompt: owfs 2.7p32 (binary only)                                                                                     
  Location:                                                                                                           
    -> Packages                                                                                                       
      -> Packages                                                                                                     
  Defined at config/.cache.in:7242                                                                                    
  Selects: FREETZ_PACKAGE_FUSE [=n] && FREETZ_LIB_libusb_0 [=n] && FREETZ_LIB_libm [=y] && FREETZ_LIB_libpthread [=y]

Wenn ich owfs nicht selektiere, wird libusb gar nicht eingebunden - weder intern, noch extern - wenn ich die u.g. Ausgabe richtig verstehe (libusbcfg ist doch etwas anderes als libusb wie in meinem ersten Beitrag im Code angezeigt):
Code:
[email protected] / $ find . -name libusb*
./lib/libusbcfg.so
./lib/libusbcfg.so.1
./lib/libusbcfg.so.1.0.0
 
Zuletzt bearbeitet:
Allerdings muss ich ldd mit vollem Pfad auf den USB-Stick (external) aufrufen, sonst wird owserver nicht gefunden. Mit anderen Worten: Auch owserver selbst muss ich mit vollem Pfad bzw. im Pfad aufrufen.
Dass sowohl die Library als auch die Binaries nicht gefunden werden, spricht sehr stark dafür, dass die Links nicht da sind.

Die Links sind alle da
Von daher sei bitte so nett und prüfe es nochmal. Ob sie da sind und ob sie auf das richtige Verzeichnis zeigen. "Da sein" bedeutet an der Stelle im Dateisystem auf der Box, nicht im Dateisystem in irgendeinem Build-Verzeichnis.

Wäre es nur die Library, so hätte ich noch an irgendwas mit RPATH geglaubt, ansonsten hast Du höchstwahrscheinlich die External-Dateien auf die Box(=USB-Stick) kopiert, jedoch das die Symlinks enthaltene Image nicht geflasht.

Das mit den zwei unterschiedlichen libusb-Versionen ist normal, wenn unter "Share Libraries/USB & FTDI/libusb-0.1 (libusb-0.1.so)" "implemented using (libusb-1.0 compat layer)" ausgewählt ist.

p.s. Erstaunlich, dass Du dem wichtigsten Hinweis von Ralf nicht richtig nachgehst und stattdessen das "alles neu bauen" als alles heilinde Mittel versuchen möchtest. Wer hat den Schwachsinn bei jedem Fehler "alles neu bauen" überhaupt in die Welt gesetzt...
 
Dass sowohl die Library als auch die Binaries nicht gefunden werden, spricht sehr stark dafür, dass die Links nicht da sind.


Von daher sei bitte so nett und prüfe es nochmal. Ob sie da sind und ob sie auf das richtige Verzeichnis zeigen. "Da sein" bedeutet an der Stelle im Dateisystem auf der Box, nicht im Dateisystem in irgendeinem Build-Verzeichnis.
Sie sind tatsächlich vorhanden:
Code:
[email protected] /var/mod/root $ ls -al /usr/bin/ow*
lrwxrwxrwx    1 root     root            27 Jul 27 14:20 /usr/bin/owdir -> /mod/external/usr/bin/owdir
-rwxr-xr-x    1 root     root         15004 Jul 23 21:17 /usr/bin/owfs
lrwxrwxrwx    1 root     root            28 Jul 27 14:20 /usr/bin/owftpd -> /mod/external/usr/bin/owftpd
lrwxrwxrwx    1 root     root            29 Jul 27 14:20 /usr/bin/owhttpd -> /mod/external/usr/bin/owhttpd
lrwxrwxrwx    1 root     root            31 Jul 27 14:20 /usr/bin/owpresent -> /mod/external/usr/bin/owpresent
lrwxrwxrwx    1 root     root            28 Jul 27 14:20 /usr/bin/owread -> /mod/external/usr/bin/owread
lrwxrwxrwx    1 root     root            30 Jul 27 14:20 /usr/bin/owserver -> /mod/external/usr/bin/owserver
lrwxrwxrwx    1 root     root            29 Jul 27 14:20 /usr/bin/owwrite -> /mod/external/usr/bin/owwrite
[email protected] /var/mod/root $ ls -al /usr/lib/freetz/libow*
lrwxrwxrwx    1 root     root            19 Jul 27 14:20 /usr/lib/freetz/libow-2.7.so.32 -> libow-2.7.so.32.0.0
lrwxrwxrwx    1 root     root            48 Jul 27 14:20 /usr/lib/freetz/libow-2.7.so.32.0.0 -> /mod/external/usr/lib/freetz/libow-2.7.so.32.0.0
[email protected] /var/mod/root $ ls -al /var/media/ftp/uStor01/external/usr/bin/
drwxr-xr-x    2 root     root          4096 Jul 27 14:25 .
drwxr-xr-x    6 root     root          4096 Jul 27 14:25 ..
-rwxr-xr-x    1 root     root         56492 Jul 23 21:14 digitemp
-rwxr-xr-x    1 root     root          9516 Jul 26 14:10 ldd
-rwxr-xr-x    1 root     root        102368 Jul 23 21:13 mount.davfs
-rwxr-xr-x    1 root     root         21288 Jul 23 21:17 owdir
-rwxr-xr-x    1 root     root         54676 Jul 23 21:17 owftpd
-rwxr-xr-x    1 root     root         25048 Jul 23 21:17 owhttpd
-rwxr-xr-x    1 root     root         21128 Jul 23 21:17 owpresent
-rwxr-xr-x    1 root     root         21176 Jul 23 21:17 owread
-rwxr-xr-x    1 root     root         21860 Jul 23 21:17 owserver
-rwxr-xr-x    1 root     root         22360 Jul 23 21:17 owwrite
-rwxr-xr-x    1 root     root         19322 Jul 23 17:40 rrdstats
-rwxr-xr-x    1 root     root         11320 Jul 23 21:07 rrdtool
-rwxr-xr-x    1 root     root          9220 Jul 23 21:13 umount.davfs
-rwxr-xr-x    1 root     root           531 Jul 23 17:40 webcfg-one
-rwxr-xr-x    1 root     root           528 Jul 23 17:40 webcfg-rrd
[email protected] /var/mod/root $ ls -al /var/media/ftp/uStor01/external/usr/lib/freetz/
drwxr-xr-x    2 root     root          4096 Jul 27 14:25 .
drwxr-xr-x    4 root     root          4096 Jul 27 14:25 ..
-rwxr-xr-x    1 root     root        132176 Jul 23 21:03 libart_lgpl_2.so.2.3.21
-rwxr-xr-x    1 root     root       1035628 Jul 23 21:06 libcrypto.so.0.9.8
-rwxr-xr-x    1 root     root        142884 Jul 23 21:01 libexpat.so.1.6.0
-rwxr-xr-x    1 root     root        514532 Jul 23 21:02 libfreetype.so.6.11.2
-rwxr-xr-x    1 root     root        115228 Jul 23 21:12 libfuse.so.2.7.6
-rwxr-xr-x    1 root     root        139444 Jul 23 21:07 libneon.so.27.2.6
-rwxr-xr-x    1 root     root        474136 Jul 23 21:17 libow-2.7.so.32.0.0
-rwxr-xr-x    1 root     root        147488 Jul 23 21:03 libpng12.so.0.51.0
-rwxr-xr-x    1 root     root        313964 Jul 23 21:07 librrd.so.2.0.15
-rwxr-xr-x    1 root     root        247732 Jul 23 21:06 libssl.so.0.9.8
-rwxr-xr-x    1 root     root         23384 Jul 25 17:39 libusb-0.1.so.4.4.4
-rwxr-xr-x    1 root     root         74800 Jul 23 21:02 libz.so.1.2.8
Wenn ich jetzt owserver aufrufe, wird es gefunden, aber die Lib kann nicht geladen werden (wie oben beschrieben):
Code:
[email protected] /var/mod/root $ owserver
owserver: can't load library 'libusb-1.0.so.0'
 
Zuletzt bearbeitet:
Das habe ich eben in der Code-Box oben editiert und die Infos ergänzt. Mich wundert, dass owserver offenbar eine libusb Version erwartet, die nicht vorhanden ist. Daher kann libusb-1.0 natürlich auch nicht geladen werden, denn es ist ja nur libusb-0.1 vorhanden. Ich habe beim menuconfig keine libusb besonders ausgewählt, sondern nur das Paket owfs (ok, neben ein paar anderen Paketen, d.h. callmonitor, davfs2, digitemp, dnsmasq, dropbear, onlinechanged, rrdstats, ser2net, virtualip und wol - siehe aktuelle .config im Anhang.
 

Anhänge

  • config.txt
    18.8 KB · Aufrufe: 2
Zuletzt bearbeitet:
Wenn ich jetzt owserver aufrufe, wird es gefunden, aber die Lib kann nicht geladen werden (wie oben beschrieben):
Code:
[email protected] /var/mod/root $ owserver
owserver: can't load library 'libusb-1.0.so.0'

Sie sind tatsächlich vorhanden...
Aber nach dem Du das Image endlich mal geflasht hast, oder? Oder warum haben alle Links einen Zeitstempel von heute? owserver und libow-2.7.so.32.0.0 werden auch aus heiterem Himmel auf einmal gefunden...

Edit: und wenn meine Vermutung richtig ist, sollte r12281 gegen "can't load library 'libusb-1.0.so.0'"-Problem helfen. Meine Vermutung, Du hast owfs gebaut gehabt und erst danach "Share Libraries/USB & FTDI/libusb-0.1 (libusb-0.1.so)/implemented using ..." umgestellt.
 
Zuletzt bearbeitet:
Ja. Ist "/mod/external" ein Link?
Code:
ls -la /mod/external
Ja, der Link war und ist immer noch vorhanden.
Aber nach dem Du das Image endlich mal geflasht hast, oder? Oder warum haben alle Links einen Zeitstempel von heute? owserver und libow-2.7.so.32.0.0 werden auch aus heiterem Himmel auf einmal gefunden...

Edit: und wenn meine Vermutung richtig ist, sollte r12281 gegen "can't load library 'libusb-1.0.so.0'"-Problem helfen. Meine Vermutung, Du hast owfs gebaut gehabt und erst danach "Share Libraries/USB & FTDI/libusb-0.1 (libusb-0.1.so)/implemented using ..." umgestellt.
Alle von mir o.g. Code-Boxen enthalten die Dateien so wie sie auf der FB sind. Die time stamps sind so aktuell, weil ich die FW frisch gebaut und geflasht hatte (dauert ja nur ein paar Minuten).
 
Du bist schon wieder nicht auf alle Punkte eingegangen. Behebt r12281 das Problem mit "libusb-0.1.so" oder besteht dieses weiterhin?
 
Sorry, habe Dein Edit überlesen. Das Problem ist behoben, die Lib wird geladen und der owserver läuft - danke an alle!
 

Neueste Beiträge

Statistik des Forums

Themen
244,860
Beiträge
2,219,686
Mitglieder
371,578
Neuestes Mitglied
ingolf01
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.