Fritz Box 7490 / Firmware 6.50

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

Vorheriges Thema - Nächstes Thema

rudolfkoenig

Achtung: perl-5.24 scheint einen Speicherloch in den Regexp-Routinen zu haben, was bei FHEM meist mit Blocking merkbar wird.

Tommy82

#46
Zitat von: ScStephan am 15 Januar 2019, 18:05:05
Hallo zusammen,

falls es wen interessiert:
fhem (zumindest fhem.pl:13593/2017-03-04) läuft auch mit FritzOS 7.01.

Grob skizziert:
- telnet via modfs wieder zum laufen bringen (ich hab ein paar Runden gebraucht. Forum Beiträge bzgl. modfs lesen hilft. Vorher!)
- wie schon bisher freetz build-Umgebung auf neuesten Stand bringen (wie bisher, git nehmen)
- ich habe (nur) Perl 5.24.1 plus perl-cross genommen
- freetz Toolchain bauen (für FritzOS 7.01, ist experimentell)
- perl kompilieren und installieren

Und siehe da: Nix geht.
Das liegt wohl daran, dass (noch) dependencies (ggf. mips-linux-ldd fragen!) auf
- libm.so.0
- libc.so.0
bestehen, obwohl die toolchain mit uclibc(-ng) arbeitet. Ich gehe davon aus, dass einfach Symlinks darauf fehlen.

Ich habe schlichtweg aus dem Fritzbox-Lib-Verzeichnis (/lib)
- libm-1.0.14.so und
- libuClibc-1.0.14.so
genommen und sie mit obigen Namen in meinen eigenen Lib-Path kopiert.
Nehme ich sie aus freetz, gibt es einen Segmentation-Fault.

Bislang (toi toi toi) geht's.

Vielleicht freut sich ja wer drüber...
Stephan
Hi,
Das grob skizzierte ist mir irgendwie zu hoch[emoji2960]

Kannst du mal bitte eine schritt für schritt Anleitung machen was man genau wo machen muss um das Freetz Image mit Fhem zu bauen

Danke


Gesendet von iPhone mit Tapatalk
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

ScStephan

@rudolfkoenig :
Danke für den Hinweis! Bislang (mehrere Jahre) lief fhem bei mir mit perl 5.24 ohne Probleme. Ich habe die Version hauptsächlich deswegen beibehalten, damit ich nicht zu viel auf einmal ändere. Für die Zukunft werde ich auf jeden Fall aktualisieren. Nachdem mir gentoo heute eine dicke Warnung wegen 5.26 gegeben hat (rausgefallene deprecateds): Was für eine Version verwendest Du momentan?

@Tommy82 :
Eines vorweg: Ich bin eher der Anwender, was solche Sachen angeht. Ich weiß wie ich Google so lange anwenden kann, bis alles tut, wie ich es mir vorstelle. Ich habe Freetz auf der Fritzbox noch nie verwendet. Will sagen, mir fehlen ein paar Hintergrund-Details, daher folgendes ohne Gewähr:
FHEM ist in erster Linie ja ein Perl-Script, sprich es läuft überall wo Perl läuft (je nach Anwendung fehlen vielleicht noch Hardwaretreiber oder so). Das Skript muss also nur auf das Device kopiert werden und das Device dazu gebracht werden, das Skript auszuführen.
Der Knackpunkt liegt also auf
- Richtiges Perl kriegen und
- Perl mit Skript starten.

Bei einer Fritzbox (hat noch nix mit Freetz zu tun), kann man ja alles (perl+skript) auf das Flash oder ein externes Laufwerk kopieren.
Mit dem modfs Skript kriegt man dann die Fritzbox dazu
- Sachen auf den Laufwerken überhaupt zu starten (noexec-Bit)
- Sachen beim Boot zu starten (bzw über Telnet).

Das große Problem, und daher kam auch mein Post, besteht aber darin Perl zu bekommen. Und zwar in der richtigen Version:
- für mips (den Prozessor)
- mit Linux-Support (der Kernel)
- mit der richtigen C-Bibliothek (uclibc-ng).

Das kriegt man nur, wenn man einen passenden Compiler, besser gesagt eine Toolchain, hat. Damit kann man dann den Perl-Sourcecode zur Perl-Binary übersetzen.
Da das Kompilieren nicht auf der Fritzbox stattfindet, sondern auf einem anderen System, braucht man einen Cross-Compiler. Dummerweise mag der Perl-Sourcecode das Cross-Compile nicht sonderlich, weswegen es hierfür einen Patch gibt (perl-cross).

Zu Urzeiten hatte Rudolf mal eine Perl-Binary gestellt, aber irgendwann wurde dank der restriktiven Politik von AVM dies nicht weiter entwickelt (sofern ich weiß).

Da das Freetz-Projekt aber genau das macht - verschiedene Programme für die Architektur und die Basis der Fritzbox bereitstellen, kann man deren Compiler verwenden - besser gesagt deren gesamte Build-Umgebung.

Da ich nicht weiß, ob Dir das alles weiterhilft, will ich hier nicht viel mehr schreiben.
Als Hilfe fürs Googlen, falls doch:
- Es gibt vom Freetz-Projekt eine Anleitung, wie man ein Ubuntu einrichtet und dort Freetz kompiliert.
- Ich hatte diesen Post https://forum.fhem.de/index.php/topic,45572.msg383590.html#msg383590 verwendet, um Perl zu kompilieren. Weiter später hat auch noch jemand ein Skript gepostet, dass das alles automatisch macht und perl noch mehr Tricks beibringt. Es kann aber gut sein, dass Du noch meine extra Tipps des letzten Posts verwenden musst, damit es tatsächlich läuft.

Auch wenn das jetzt wieder allgemein war und keine Fertiglösung ist, wo ein Freetz-Image hinten rausfällt, hoffe ich etwas geholfen zu haben.
Meine Erfahrung beschränkt sich jetzt auch nur auf das originale FritzBox-Image, mit Freetz sollte es aber nicht viel anders laufen.

Viele Grüße,
Stephan

Tommy82

Hi,
danke für deine Infos,
da ich recht viel Freetz Images baue und meine boxen dann auch freetze werd ich das mit fhem mal versuche, selbst zu bauen
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

Wernieman

Wie immer aber mal der Hinweis:
Solche Spielchen nicht auf einer FritzBox, die am Netz hängt (Es sei denn, man ist Profi). Schließlich ist diese Quasi die erste FireWall zum Netz ...
- 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

rudolfkoenig

ZitatWas für eine Version verwendest Du momentan?
"Produktion":5.14, Entwicklung z.Zt. 5.18 und 5.26.
Ist aber irrelevant, weil mein Setup nicht typisch ist, und das Problem vermutlich nur bei Benutzeung spezieller Features einzelner Module (DOIF?) auftritt, siehe den ewig langen "Speicher-Voll-Thread" hier im Forum.

dad401

Nach Update von freetz (-ng 16313) auf V7.12 für meine 7490 habe ich mal wieder ein für meine Zwecke lauffähiges perl für fhem gebastelt
Entweder herunterladen: perl 5.28.2_for_freetz-ng-16313_07.12.tar.gz oder so bauen (setzt ein kompiliertes freetz-ng voraus und die relevanten Pakete in $INST_DIR):

make_perl-cross.sh
#!/bin/sh

PERL=5.28.2
CROSS=1.3
FREETZ=$HOME/7490/freetz-ng-r16313

INST_DIR=$HOME/7490/perl

cd $INST_DIR
mkdir perl_install

tar xfz perl-${PERL}.tar.gz

tar xfz JSON-2.94.tar.gz
mv JSON-2.94 perl-${PERL}/cpan/JSON
cp JSON_Makefile.PL perl-${PERL}/cpan/JSON/Makefile.PL

tar xfz Crypt-Rijndael-1.13.tar.gz
mv Crypt-Rijndael-1.13 perl-${PERL}/cpan/Crypt-Rijndael

tar xfz Device-SerialPort-1.04.tar.gz
mv Device-SerialPort-1.04 perl-${PERL}/cpan/Device-SerialPort

tar xfz URI-1.73.tar.gz
mv URI-1.73 perl-${PERL}/cpan/URI

tar xfz Net-Telnet-3.04.tar.gz
mv Net-Telnet-3.04 perl-${PERL}/cpan/Net-Telnet

tar xfz SOAP-Lite-1.26.tar.gz
mv SOAP-Lite-1.26 perl-${PERL}/cpan/SOAP-Lite

tar xfz libwww-perl-5.837.tar.gz
mv libwww-perl-5.837 perl-${PERL}/cpan/libwww-perl

tar xfz Net-SIP-0.814.tar.gz
mv Net-SIP-0.814 perl-${PERL}/cpan/Net-SIP

tar xfz TimeDate-2.30.tar.gz
mv TimeDate-2.30 perl-${PERL}/cpan/TimeDate

cd perl-${PERL}
tar --strip-components=1 -zxf ../perl-cross-${CROSS}.tar.gz

export PATH=$FREETZ/toolchain/target/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:
./configure --prefix=/var/InternerSpeicher/opt --target=mips-linux --target-tools-prefix=mips-linux- --mode=cross

read -p "press any key to make " INPUT
make

make DESTDIR=$INST_DIR/perl_install install

cd $INST_DIR/perl_install
rm -rf var/InternerSpeicher/opt/share
tar cf $INST_DIR/freetz_perl-${PERL}.tar var/
cd $INST_DIR/


Marcus
--
aktuelles FHEM auf einem RPI3 mit
HM-MOD-RPI-PCB, CUL868, nanoCUL (868MHz), Signalduino (433MHz), SignalESP (433 MHz) zur Nutzung folgender Systeme:
FS20/Homematic/IT-Steckdosen/OW/Sonstiges


dad401

Aha - Danke für die Info. Das kannte ich noch nicht. Werd ich beim nächsten Update mal testen...
--
aktuelles FHEM auf einem RPI3 mit
HM-MOD-RPI-PCB, CUL868, nanoCUL (868MHz), Signalduino (433MHz), SignalESP (433 MHz) zur Nutzung folgender Systeme:
FS20/Homematic/IT-Steckdosen/OW/Sonstiges

Tommy82

Zitat von: fhcm am 09 November 2019, 11:21:56
Hier hat gibts seit kurzem perl für freetz: https://github.com/cawidtu/freetz/commits/master
Die patches sind:
https://github.com/cawidtu/freetz/commit/ff448e5c408298f96a09446ce778c7923fa6f1c9.diff und https://github.com/cawidtu/freetz/commit/973e9e43771ee9d75719b96ed2c7ce8a31daaa84.diff
Diese mit wget herunterladen und patch -p1 < ...diff einbinden

Hi,
ich werd das morgen mal auf ner 6590 testen, mal sehen ob das funktioniert.
Wie habt ihr dann fhem noch drauf und zum laufen gebracht?
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

Parallix

Zitat von: fhcm am 09 November 2019, 11:21:56
Hier hat gibts seit kurzem perl für freetz: https://github.com/cawidtu/freetz/commits/master
Die patches sind:
https://github.com/cawidtu/freetz/commit/ff448e5c408298f96a09446ce778c7923fa6f1c9.diff und https://github.com/cawidtu/freetz/commit/973e9e43771ee9d75719b96ed2c7ce8a31daaa84.diff
Diese mit wget herunterladen und patch -p1 < ...diff einbinden

Auf Basis des oben genannten Vorschlags und freetz-ng (Revision 16409), habe ich mich daran gemacht, das für FHEM erforderliche Perl-Modul inkl. SSL für meine 7590 zu bauen.

Leider bricht die Übersetzung ca. im letzten Drittel mit folgender Fehlermeldung ab:

...
make -C cpan/NEXT/ all PERL_CORE=1 LIBPERL=libperl.so
make[2]: Verzeichnis ,,./projects/freetz-trunk/source/target-mips_gcc-5.5.0_uClibc-1.0.14-nptl_kernel-3.10/perl-5.27.5/cpan/NEXT" wird betreten
cp lib/NEXT.pm ../../lib/NEXT.pm
make[2]: Verzeichnis ,,./projects/freetz-trunk/source/target-mips_gcc-5.5.0_uClibc-1.0.14-nptl_kernel-3.10/perl-5.27.5/cpan/NEXT" wird verlassen
cd cpan/Net-DNS/ && ../../miniperl_top -I../../lib Makefile.PL \
INSTALLDIRS=perl INSTALLMAN1DIR=none INSTALLMAN3DIR=none \
PERL_CORE=1 LIBPERL_A=libperl.so PERL="../../miniperl_top"
Generating a Unix-style Makefile
Writing Makefile for Net::DNS
Can't locate object method "new" via package "IO::Socket::INET" at Makefile.PL line 152.
make[1]: *** [Makefile:246: cpan/Net-DNS/Makefile] Fehler 2
make[1]: Verzeichnis ,,./projects/freetz-trunk/source/target-mips_gcc-5.5.0_uClibc-1.0.14-nptl_kernel-3.10/perl-5.27.5" wird verlassen

ERROR: Build failed.

mister

Auch wenn das schon etwas älter ist hoffe ich mir kann hier jemand den Gefallen tun und für meine 7390 oder 7530 ein Image Bauen? Würde die Fritz wirklich gerne wieder nutzen.

mister

Hallo nochmal, also ich habe mich nochmal ein Bisschen an der Thematik probiert. Freetz mit FHEM ist jetzt auf einer 7530 drauf jedoch bekomme ich bei starten folgende Ausgabe, vielleicht hat jemand eine Idee in wie fern ich wo an den rechten schrauben muss/kann:

Info[fhem]: internal storage is used
chown: /mod/etc/fhem/FHEM/FhemUtils/release.pm: Read-only file system
chown: /mod/etc/fhem/FHEM/FhemUtils/update-20130127-001: Read-only file system
chown: /mod/etc/fhem/FHEM/FhemUtils: Read-only file system
chown: /mod/etc/fhem/FHEM/FhemUtils: Read-only file system
chmod: /mod/etc/fhem/FHEM/FhemUtils/.: Read-only file system
Starting FHEM - Home automation ... mode=normal ... failed.