Fritz Box 7490 / Firmware 6.50

Begonnen von ttplayer, 12 Dezember 2015, 15:41:27

Vorheriges Thema - Nächstes Thema

ttplayer

Scheint so, dass jetzt auch für mich der endgültige Abschied von FHEM auf der Fritz Box gekommen ist.
Nachdem ich heute von 6.30 auf 6.50 upgedatet habe, ist auch kein manueller Start von FHEM mehr möglich, da nachfolgende Fehlermeldung im Telnet Client ausgeworfen wird.

modprobe: module ftdi_sio not found in modules.dep
Segmentation fault

Bennemannc

Hallo,

brauchst Du das Modul oder wird das nur geladen, weil fhem die USB Ports checkt ?
Wenn Du das Modul brauchst, musst Du das dem System auch bekannt machen - alle Kernelmodule stehen in der modules.dep. Die ist lesbar mit "cat" und editierbar mit "vi" - aber wenn Du Dir die Datei zerschießt, läuft die komplette Box nicht mehr.

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

ttplayer

Danke für Deine Hilfe,

ich denke schon, dass ich das Modul brauche, da ich ja einen CUL am USB der Fritz Box hängen habe.

Gruß Axel

Bennemannc

Hallo,

ist das Modul den noch auf der Box - oder ist das beim Update verloren gegangen. "find / -name ftdi_sio" sollte ein Ergebnis bringen - wenn nicht, dann fehlt das Modul komplett.

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

ttplayer

Ich versuche das Morgen mal zu checken, da ich mittlerweile wieder auf die 6.30 zurück bin.

bmaehr

Zitat von: ttplayer am 12 Dezember 2015, 15:41:27
Scheint so, dass jetzt auch für mich der endgültige Abschied von FHEM auf der Fritz Box gekommen ist.
Nachdem ich heute von 6.30 auf 6.50 upgedatet habe, ist auch kein manueller Start von FHEM mehr möglich, da nachfolgende Fehlermeldung im Telnet Client ausgeworfen wird.

modprobe: module ftdi_sio not found in modules.dep
Segmentation fault


Die beiden Fehlermeldung sind korrekt, haben aber nichts miteinander zu tun.
Perl stürzt mit einem "Segmentation fault" ab, egal ob mit oder ohne fhem. Ich hab nicht raus gefunden, woran das liegt oder wie man das weiter analysieren könnte. Vielleicht die aktuellste Version von Perl für mips compilieren.

"modul ftdi_sio not found" kommt von dem neuen Kernel in der Fritzbox. Das lässt sich eventuell, nachdem AVM die Sourcen veröffentlich beheben, indem man das Modul für den neuen Kernel compiliert. 

Wernieman

Kannst Du schauen, bei welchem "Modul" denn perl einen segfault schmeist?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

bmaehr

Was meinst du mit welchem Modul?

Beim Starten von perl (ohne fhem) kommt das bereits.

Wernieman

- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

gcgh

Ich hab es gerade mit der Version fhem-5.7 von heute (2015-11-15) versucht,
leider auch der "Segmentation fault" beim AUfruf von Perl.
Wir brauchen also eine neue Perl Version die unter 6.50 läuft.

Auf meiner zweiten 7490 unter FRITZ!OS 06.30 läuft fhem-5.7 soweit ich das jetzt
sehen fehlerfrei.
FHEM 5.7    fhem.pl:11476/2016-05-18 perl:5.012002 os:linux , FB7490  OS 06.30
Homematic: CUL_V3 : V 1.20.04 a-culfw Build: 180 (2016-01-28_21-57-20) CUL868 (F-Band: 868MHz)
MAX:  CUL-HM-CFG2 : V 1.20.08 a-culfw Build: 220 (2016-04-11_23-12-16) CUL-HM-CFG (F-Band: 868MHz)
VCCU: CCU-FHEM     DECT: FBAH

Frank

Habe die gleichen Probleme mit "meiner" 06.50er Firmware (incl. telnetd und debug.cfg  ;)). Gibt's schon eine Lösung?!

bmaehr

#11
Fortschrittsinformation: Ich habe nach 2 Tagen Kampf die aktuelle Perl-Version 5.22.1 mit der aktuelleren OpenSSL Version 1.0.1q auf der Fritzbox 7490 mit 6.24 zum Laufen gebracht. Das heißt, FHEM funktioniert darauf nun zumindest auf den ersten Blick inklusive dem integrierten Webserver mit HTTPS Verschlüsselung.  :) :) :) :)

Im nächsten Schritt würde ich meine Software-Version der Fritzbox wieder auf 6.50 updaten und darauf hoffen, dass mit der neuen Perl-Version der "Segmentation fault" behoben ist. Zusätzlich habe ich ein compiliertes strace um, falls der "Segmentation fault" weiter auftritt, diesen zu untersuchen.



Einfach als Dokumentation unkommentiert und unsupportet mein Skript zum Cross-Compilen von Perl:

export PATH=/home/freetz/freetz-trunk/toolchain/target/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
rm -R -f perl-5.22.1
rm -R -f perl_install
mkdir perl_install
tar -xzvf perl-5.22.1.tar.gz
tar -xzvf perl-5.22.1-cross-1.0.2.tar.gz

tar -xzvf Device-SerialPort-1.04.tar.gz
mv Device-SerialPort-1.04 /home/freetz/perl-5.22.1/cpan/Device-SerialPort
tar -xzvf Net-SSLeay-1.72.tar.gz
mv Net-SSLeay-1.72 /home/freetz/perl-5.22.1/cpan/Net-SSLeay
cp Net-SSLeay-Makefile.PL /home/freetz/perl-5.22.1/cpan/Net-SSLeay/Makefile.PL

cd perl-5.22.1
./configure --prefix=/opt --target=mips-linux --target-tools-prefix=mips-linux- --mode=cross
make
make DESTDIR=/home/freetz/perl_install install
cd ../perl_install
tar cfvz opt.tar.gz opt
cd ..

Und die angepasste Net-SSLeay-Makefile.PL

#!/usr/bin/perl

use strict;
use warnings;
use lib 'ext';
use ExtUtils::MakeMaker;

WriteMakefile(
    'NAME'             => 'Net::SSLeay',
    'VERSION_FROM'     => 'lib/Net/SSLeay.pm',
    'INC'              => '-I/home/freetz/freetz-trunk/toolchain/target/include',
    'LIBS'             => ['-L/home/freetz/freetz-trunk/toolchain/target/lib -lssl -lcrypto -lcrypt32 -lz'],
);


ttplayer

Dann warte ich mal noch mit dem Kauf eines RASPI :) :) :)

bmaehr

#13
Perl 5.22.1 beendet sich auf der Firmware 6.50 nicht mit einem segmentation fault, die Ausführung ist aber trotzdem nicht erfolgreich.

# ../../bin/strace ./perl5.22.1
execve("./perl5.22.1", ["./perl5.22.1"], [/* 282 vars */]) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x4000000, -1, 0) = 0x77183000
open("/lib/libm.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0777, st_size=96164, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x4000000, -1, 0) = 0x77182000
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\10\0\0\0\1\0\0\22\320\0\0\0004"..., 4096) = 4096
mmap(NULL, 155648, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x77148000
mmap(0x77148000, 89484, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x77148000
mmap(0x7716d000, 3952, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x15000) = 0x7716d000
close(3)                                = 0
munmap(0x77182000, 4096)                = 0
open("/lib/libcrypt.so.0", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0777, st_size=10932, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x4000000, -1, 0) = 0x77182000
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\10\0\0\0\1\0\0\3\340\0\0\0004"..., 4096) = 4096
mmap(NULL, 147456, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x77124000
mmap(0x77124000, 9544, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x77124000
mmap(0x77136000, 1424, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x2000) = 0x77136000
mmap(0x77137000, 67600, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x77137000
close(3)                                = 0
munmap(0x77182000, 4096)                = 0
open("/lib/libdl.so.0", O_RDONLY)       = 3
fstat(3, {st_mode=S_IFREG|0777, st_size=13912, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x4000000, -1, 0) = 0x77182000
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\10\0\0\0\1\0\0\n \0\0\0004"..., 4096) = 4096
mmap(NULL, 81920, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x77110000
mmap(0x77110000, 9172, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x77110000
mmap(0x77122000, 4304, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x2000) = 0x77122000
close(3)                                = 0
munmap(0x77182000, 4096)                = 0
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0666, st_size=214888, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x4000000, -1, 0) = 0x77182000
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\10\0\0\0\1\0\0\3110\0\0\0004"..., 4096) = 4096
mmap(NULL, 237568, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x770d6000
mmap(0x770d6000, 170524, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x770d6000
mmap(0x7710f000, 3260, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x29000) = 0x7710f000
close(3)                                = 0
munmap(0x77182000, 4096)                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0777, st_size=701296, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x4000000, -1, 0) = 0x77182000
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\10\0\0\0\1\0\0\277\0\0\0\0004"..., 4096) = 4096
mmap(NULL, 745472, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x77020000
mmap(0x77020000, 639208, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x77020000
mmap(0x770cc000, 8112, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x9c000) = 0x770cc000
mmap(0x770ce000, 32468, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x770ce000
close(3)                                = 0
munmap(0x77182000, 4096)                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0777, st_size=701296, ...}) = 0
close(3)                                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0777, st_size=701296, ...}) = 0
close(3)                                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0777, st_size=701296, ...}) = 0
close(3)                                = 0
stat("/lib/ld-uClibc.so.0", {st_mode=S_IFREG|0777, st_size=31680, ...}) = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0777, st_size=701296, ...}) = 0
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x4000000, -1, 0) = 0x77182000
set_thread_area(0x77189460)             = 0
exit(-1)                                = ?
+++ exited with 255 +++


Kann mir jemand nen Tipp geben, was das Problem ist?
Mit der 5.22.1 Version unter 6.24 geht es so weiter:

mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x4000000, -1, 0) = 0x2aab0000
set_thread_area(0x2aab7460)             = 0
mprotect(0x2ab1d000, 4096, PROT_READ)   = 0
mprotect(0x2ac05000, 4096, PROT_READ)   = 0
mprotect(0x2aabe000, 4096, PROT_READ)   = 0
ioctl(0, TIOCNXCL or TIOCNXCL, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, TIOCNXCL or TIOCNXCL, {B38400 opost isig icanon echo ...}) = 0
rt_sigaction(SIGFPE, {SIG_IGN, [FPE], SA_RESTART}, {SIG_DFL, [], 0}, 16) = 0


Mit der 5.12.2 Version unter 6.50 geht es übrigens so weiter:
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x4000000, -1, 0) = 0x77ad5000
set_thread_area(0x77adc460)             = 0
mprotect(0x77aad000, 4096, PROT_READ)   = 0
mprotect(0x77a47000, 4096, PROT_READ)   = 0
mprotect(0x77ad6000, 4096, PROT_READ)   = 0
ioctl(0, TIOCNXCL or TIOCNXCL, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, TIOCNXCL or TIOCNXCL, {B38400 opost isig icanon echo ...}) = 0
rt_sigaction(SIGFPE, {SIG_IGN, [FPE], SA_RESTART}, {SIG_DFL, [], 0}, 16) = 0
brk(0)                                  = 0x57d000
brk(0x57e000)                           = 0x57e000
brk(0x57f000)                           = 0x57f000
brk(0x580000)                           = 0x580000
brk(0x581000)                           = 0x581000
brk(0x582000)                           = 0x582000
brk(0x583000)                           = 0x583000
brk(0x585000)                           = 0x585000
getuid()                                = 0
geteuid()                               = 0
getgid()                                = 0
getegid()                               = 0
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0} ---
+++ killed by SIGSEGV +++
Segmentation fault

bmaehr

#14
fhem is running on 6.50  :)
Just missing the module ftdi_sio