eibd auf W900v (FritzBox 7170) Illegal instruction beim Ausführen

Begonnen von rainerfl, 29 Dezember 2013, 00:11:27

Vorheriges Thema - Nächstes Thema

rainerfl

Hallo,

ich bin gerade am verzweifelten bauen von eibd auf freetz Basis.
...Nach dem Paketbauen und flashen der fw und setzen der Pfade (LD_LIBRARY_PATH)
root@fritz:/usr/bin# eibd
Illegal instruction

root@fritz:/usr/bin# ldd eibd
        libuClibc++.so.0 => not found
        libc.so.0 => /lib/libc.so.0 (0x2aabe000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x2ab38000)
        ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x2aaa8000)
libuClibc++.so.0 liegt unter
root@fritz:/# find | grep libuClibc++.so.0
./usr/lib/freetz/libuClibc++.so.0

strace Ausgabe:
root@fritz:/usr/bin# strace eibd
execve("/usr/bin/eibd", ["eibd"], [/* 207 vars */]) = 0
mmap(NULL, 20, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aaad000
open("/mod/lib/libuClibc++.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/freetz/libuClibc++.so.0", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0755, st_size=151192, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aaae000
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0\20\273\0\0004\0\0\0"..., 4096) = 4096
mmap(NULL, 217088, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aabe000
mmap(0x2aabe000, 141716, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x2aabe000
mmap(0x2aaf0000, 10536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x22000) = 0x2aaf0000
close(3)                                = 0
munmap(0x2aaae000, 4096)                = 0
open("/mod/lib/libc.so.0", O_RDONLY)    = -1 ENOENT (No such file or directory)
open("/usr/lib/freetz/libc.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=410640, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aaae000
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0\340\253\0\0004\0\0\0"..., 4096) = 4096
mmap(NULL, 499712, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aaf3000
mmap(0x2aaf3000, 404576, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x2aaf3000
mmap(0x2ab65000, 8244, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x62000) = 0x2ab65000
mmap(0x2ab68000, 18768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2ab68000
close(3)                                = 0
munmap(0x2aaae000, 4096)                = 0
open("/mod/lib/libgcc_s.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/freetz/libgcc_s.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0755, st_size=55552, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aaae000
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0p\32\0\0004\0\0\0"..., 4096) = 4096
mmap(NULL, 122880, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2ab6d000
mmap(0x2ab6d000, 53900, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x2ab6d000
mmap(0x2ab8a000, 1024, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xd000) = 0x2ab8a000
close(3)                                = 0
munmap(0x2aaae000, 4096)                = 0
open("/usr/lib/freetz/libc.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/mod/lib/libc.so.0", O_RDONLY)    = -1 ENOENT (No such file or directory)
open("/usr/lib/freetz/libc.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=410640, ...}) = 0
close(3)                                = 0
open("/usr/lib/freetz/libgcc_s.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/mod/lib/libgcc_s.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/freetz/libgcc_s.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0755, st_size=55552, ...}) = 0
close(3)                                = 0
open("/mod/lib/libc.so.0", O_RDONLY)    = -1 ENOENT (No such file or directory)
open("/usr/lib/freetz/libc.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=410640, ...}) = 0
close(3)                                = 0
stat("/lib/ld-uClibc.so.0", {st_mode=S_IFREG|0755, st_size=21532, ...}) = 0
mprotect(0x2ab65000, 4096, PROT_READ)   = 0
mprotect(0x2aabc000, 4096, PROT_READ)   = 0
ioctl(0, TIOCNXCL, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, TIOCNXCL, {B38400 opost isig icanon echo ...}) = 0
brk(0)                                  = 0x474000
brk(0x475000)                           = 0x475000
--- SIGILL {si_signo=SIGILL, si_code=SI_KERNEL, si_addr=0} ---
+++ killed by SIGILL +++
Illegal instruction


...kann mir jemand bei der Interpretation der strace Ausgabe weiterhelhen

stefan.struhs

Hast Du alle Infos/Anweisungen aus
http://knx-user-forum.de/knx-eib-forum/15653-eibd-linknx-fuer-fritz-box-7390-kompiliert-3.html
befolgt.

In dem Forum treiben sich der Experte von EIBD bzw. dem BCUSDK herum.

Wo liegt eibd bei Dir?

Ich habe es als externes Paket auf die Fritzbox gebracht und die libuClib++.so.0 liegt dann im entsprechenden lib-Verzeichnis, also z.B. /var/media/ftp/uStor01/external/lib. eibd liegt bei mir in /var/media/ftp/uStor01/external/bin. Wichtig ist dann glaube ich auch noch, dass die uClib auf der Fritzbox liegt gegen die eibd gebaut wurde.