Здравствуйте. Я уже битый день пытаюсь скомпилировать простенький пример из пакета fuse.
Пока дело дошло до скомпилированного примера, но он ни в какую не видит библиотеку.
Code:
$ ./hello
./hello: can't load library 'libfuse.so.2'
$ ldd ./hello
libfuse.so.2 => not found
libdl.so.0 => /lib/libdl.so.0 (0x77300000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x772df000)
libpthread.so.0 => /lib/libpthread.so.0 (0x772ba000)
libc.so.0 => /lib/libc.so.0 (0x77241000)
ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x77316000)
хотя ldconfig говорит что все либы на месте:
Code:
$ ldconfig -p
62 libs found in cache `/opt/etc/ld.so.cache' (version 1.7.0)
...
libc.so.0 (libc0) => /opt/lib/libc.so.0
ld-uClibc.so.0 (ELF) => /opt/lib/ld-uClibc.so.0
libpthread.so.0 (libc0) => /opt/lib/libpthread.so.0
libgcc_s.so.1 (libc0) => /opt/lib/libgcc_s.so.1
libdl.so.0 (libc0) => /opt/lib/libdl.so.0
libfuse.so.2 (libc0) => /opt/lib/libfuse.so.2
...
$ ldconfig -v
ldconfig: uClibc version
/opt/lib:
...
libc.so.0 => libuClibc-0.9.32.so
ld-uClibc.so.0 => ld-uClibc-0.9.32.so
libfuse.so.2 => libfuse.so.2.9.3
libgcc_s.so.1 => libgcc_s.so.1
libdl.so.0 => libdl-0.9.32.so
libpthread.so.0 => libpthread-0.9.32.so
...
/opt/usr/lib:
Гугл по этой проблеме говорит что такое может быть если не совпадают архитектуры, но и тут тоже все в порядке.
Code:
$ readelf -h /opt/lib/libfuse.so.2.9.3
ELF Header:
Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: DYN (Shared object file)
Machine: MIPS R3000
Version: 0x1
Entry point address: 0x3e40
Start of program headers: 52 (bytes into file)
Start of section headers: 220616 (bytes into file)
Flags: 0x50001007, noreorder, pic, cpic, o32, mips32
Size of this header: 52 (bytes)
Size of program headers: 32 (bytes)
Number of program headers: 7
Size of section headers: 40 (bytes)
Number of section headers: 28
Section header string table index: 27
$ readelf -h /tmp/123/hello
ELF Header:
Magic: 7f 45 4c 46 01 01 01 00 01 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 1
Type: EXEC (Executable file)
Machine: MIPS R3000
Version: 0x1
Entry point address: 0x400760
Start of program headers: 52 (bytes into file)
Start of section headers: 12024 (bytes into file)
Flags: 0x50001005, noreorder, cpic, o32, mips32
Size of this header: 52 (bytes)
Size of program headers: 32 (bytes)
Number of program headers: 8
Size of section headers: 40 (bytes)
Number of section headers: 40
Section header string table index: 37
Уже не знаю куда дальше копать. Пробовал реализовать нужный мне функционал на питоне, однако не устроила скорость работы порядка 100кб/сек.
А функционал мне нужен очень простой, чтоб нужный раздел на храде отображался как обычный файл, чтоб его потом просунуть через nfs.
Странно но оказалась что "из коробки" так нельзя, можно только наоборот.
Понимаю что тут работы на пол часа, нужно лишь чуть подправить пример, но с компиляцией этого примера вожусь уже третий день...
для справки:
роутер: D-Link DIR-620 C1
прошивка: DIR620C1-3.0.6-r5066M.trx (Vampik)
toolchain: hndtools-mipsel-uclibc-4.6.3-K26-r4631
версия fuse установленная на раутере: 2.9.3
версия исходников fuse для сборки примеров: 2.9.3