FHEM auf Fritz!Box 7490 (FW6.9x) mit allen Perl Modulen

Begonnen von adn77, 12 November 2017, 00:56:26

Vorheriges Thema - Nächstes Thema

adn77

Hallo,

auch wenn es von AVM längst nicht mehr unterstützt wird, hat sich vielleicht der eine oder andere an FHEM auf seiner Fritzbox gewöhnt.
Mit 512MB NAND, 256MB RAM und 600MHz Dualcore MIPS ist eine 7490 eigentlich auch das perfekte "immer-an" Gerät für FHEM.

Ich habe ausgehend von diesem Thread: https://forum.fhem.de/index.php/topic,45572.0.html ein kleines Script gebastelt, welches Perl übersetzt.

Script und Makefiles gibt es hier: https://loetzimmer.de//patches/freetz_perl-cross.tgz
Eine kleine Erklärung habe ich auf ein Blog gestellt: http://blog.loetzimmer.de/2017/11/fhem-auf-der-fritzbox-7490-unter-freetz.html

Alex

dirkh

Hey,

so etwas ähnliches habe ich gemacht, der Bau der Module JSON, Net-SSLeay, IO-Socket-SSL, DBI und DBD-SQLite müssten noch gemacht werden,
siehe http://freetz.org/ticket/2940

Für Hinweise wäre ich aber trotzdem dankbar.

Gruß,

adn77

#2
Hab deinem Ticket schon mein Diff hinzugefügt.

Allerdings lief das Cross-Compilen nicht sauber durch. Hatte es bei dir ohne erneutes make geklappt?

Alex

dirkh

Hi Alex,

ich habe die Github Quellen geupdated ähnlich Deiner Diffs, musste einen Deiner Patche anpassen, wegen Fehlern in Makefile.PL siehe auch http://www.perlmonks.org/bare/?node_id=393773

Habe das perl.mk so angepasst, dass man jetzt einfacher Module hinzufügen kann.
Ich musste auch noch das Build mit dem Openssl Patch aus
http://blog.loetzimmer.de/2017/11/fhem-auf-der-fritzbox-7490-unter-freetz.html
anpassen.

Das External transferiere ich immer manuell und packe es dort aus, man kann es auch per Build-Option in multiple Dateien teilen und dann per Freetz Web-Interface transferieren.

adn77

Hallo Dirk,

ich habe in meinen freetz-trunk dein make-perl-Verzeichnis kopiert. Leider läuft es bei mir auch nicht mit 5.24.3 durch.
./miniperl_top lib/unicore/mktables -w -C lib/unicore -P pod -maketest -makelist -p
./miniperl_top: no ./miniperl found; build it before using miniperl_top
make[1]: *** [lib/unicore/CombiningClass.pl] Fehler 1
make[1]: *** Auf noch nicht beendete Prozesse wird gewartet ...
make[1]: Verzeichnis »/home/freetz/freetz-trunk/source/target-mips_gcc-4.8.5_uClibc-0.9.33.2-nptl_kernel-3.10/perl-5.24.3« wird verlassen

Es muss wohl an der Build-Umgebung liegen, das "miniperl" gibt es tatsächlich nicht. Wenn ich ohne Freetz-Makefile compiliere funtioniert es:
cd /home/freetz/freetz-trunk/source/target-mips_gcc-4.8.5_uClibc-0.9.33.2-nptl_kernel-3.10/perl-5.24.3
export PATH=/home/freetz/freetz-trunk/toolchain/target/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:
./configure --prefix=/var/InternerSpeicher/opt/usr --target=mips-linux --target-tools-prefix=mips-linux- --mode=cross
make



Zitat von: dirkh am 15 November 2017, 02:31:12
Das External transferiere ich immer manuell und packe es dort aus, man kann es auch per Build-Option in multiple Dateien teilen und dann per Freetz Web-Interface transferieren.

Ah, hab diese Option erst jetzt wahrgenommen - ist ja praktisch dass man für jedes Paket festlegen kann, ob es extern sein soll. Wo werden die Externals denn hingemountet, bzw. wohin entpackst du es und wie wird es aus dem Image heraus verlinkt?

Alex

dirkh

#5
Hi Alex,

hänge doch mal das .config und das make.log von make perl-distclean; make perl-precompiled > make.log an, es sieht wie ein Makefile Problem aus oder das Optionen anders gesetzt sind, um das zu vergleichen will ich die Baukommandos vergleichen.
Außerdem benutze ich einen selbst kompilierten Freetz Compiler mit einem Target-Compiler Bau, wofür ich die Freetz Makefiles angepasst habe.

Ich schreibe das hier, weil das Freetz Forum gerade schwer erreichbar ist, übrigens mein Github Branch ist in Snyc mit dem Hauptzweig von Freetz, es wäre interessant, das Perl mit meinem "Branch" bei Dir zu bauen.

Gruß, Dirk

mgrimm86

#6
Hi Alex und Dirk,
ich bin neu hier und würde mir gerne FHEM auf der Fritzbox 7490 FW 06.92 installieren. Mit freetz kenne ich mich schon ganz gut aus, Image wird erfolgreich gebaut.
Leider gibts jetzt beim Perl Cross-Compile einen Fehler:
  /var/InternerSpeicher/opt/share/man/man3/warnings::register.3
installman: Can't open cpan/podlators/blib/script/pod2man: No such file or directory
ABORTED
make: *** [install.man] Fehler 255


Könnt ihr mir hier weiter helfen?

Ich verwende das make_perl-cross script von Alex mit Perl=5.24.3

@Dirk
Beim Bauen deines Freetz Codes mit Perl+FHEM aus dem Github bekomme ich folgenden Fehler:
Traceback (most recent call last):
  File "./setup.py", line 118, in <module>
    from setuptools import setup, Distribution, Extension
ImportError: No module named setuptools

Eigentlich habe ich python-setuptools installiert... Was mache ich hier falsch?

Danke und Gruß,
Micha

dirkh

Hi Alex und Micha,

ich habe auf github, das Makefile bzgl. der Buildprobleme angepasst, es wird jetzt perl 5.26.1 benutzt. Es gibt jetzt Zwischentargets die miniperl bzw. lib.pm bauen, falls es nicht da ist. Für ein update siehe http://freetz.org/ticket/2940

Bezüglich des Buildproblems, mit dem installman, schein es auch wieder ein Abhängigkeitsproblem zu geben, wahrscheinlich darf es kein parallel build geben, ich habe das auch noch in das Makefile eingebaut.

Bezüglich python, hänge doch mal deine .config und dein make.log an das Freetz Ticket http://freetz.org/ticket/2781 . Eigentlich braucht man das nicht für perl, deselektiere es doch vorerst. Um das Problem würde ich mich jedoch gerne trotzdem kümmern daher die logs.

Gruß,

mgrimm86

Hi Dirk,

danke für deine Nachricht. Leider bekomme ich den Fehler bei python-cffi nicht weg. Selbst wenn ich nur Perl und fhem anwähle, bekomme ich den Fehler.

Anbei .config und ein make log. Freetz ist aktuell gar nicht erreichbar, daher poste ich das mal hier.

Danke und Gruß,
Micha


dirkh

Hi Micha,

ich hoffe, ich habe das Freetz-Python Build Problem behoben, es liegt an Deiner zusätzlichen lokalen Python Installation,
die sollte nicht benutzt werden.
Bitte mache ein "force update" von den Github Quellen..

Berichte mal.

Gruß,

Dirk

adn77

Hallo Dirk,

danke für deine Mühe!
Ich habe auf meinem Freetz-Linux 1.4.1 VirtualBox Image dein Repository gezogen (Di 21. Nov 13:18:00 CET 2017) und bekomme exakt den gleichen Fehler wie Micha  :(

Wozu wird Python in den Tools gebaut? In meiner original Freetz-Trunk Umgebung wird es nicht benötigt.

Alex

adn77

Hallo Micha,

Zitat von: mgrimm86 am 19 November 2017, 20:38:02
Leider gibts jetzt beim Perl Cross-Compile einen Fehler:
  /var/InternerSpeicher/opt/share/man/man3/warnings::register.3
installman: Can't open cpan/podlators/blib/script/pod2man: No such file or directory
ABORTED
make: *** [install.man] Fehler 255

Könnt ihr mir hier weiter helfen?

Ich verwende das make_perl-cross script von Alex mit Perl=5.24.3

der sauberste Weg wäre ein Perl-Paket direkt pe Freetz-Patch zu erzeugen, so wie Dirk es vorsieht...

Ich habe trotzdem nochmal testweise die 5.24.3 mit meinem Script übersetzt und das lief fehlerfrei durch. Was liegt den unter "perl-5.24.3/cpan/podlators/blib/".
Eigentlich ist das Cross-Compilen schon durch, wenn es an's Man-Page Erstellen geht (die Man-Pages lösche ich aus Platzgründen sowieso bevor ich das TAR erstelle).

Alex

mgrimm86

#12
Hallo ihr zwei,

@Dirk
Leider kommt der fehler immernoch, auch mit deinen neusten Quellen. Ich habe sogar schon die python-setuptools samt abhängiger Pakete lokal deinstalliert. Keine Veränderung. Ich habe nochmal das make.log angehängt.
Das normale Freetz Patch läuft durch und benötigt scheinbar, wie Alex sagt, kein Python.

@Alex
Unter perl-5.24.3/cpan/podlators/ gibts bei mir gar kein blib, sondern nur:
file:///home/migri/perl-5.24.3/cpan/podlators/lib
file:///home/migri/perl-5.24.3/cpan/podlators/scripts
file:///home/migri/perl-5.24.3/cpan/podlators/t
file:///home/migri/perl-5.24.3/cpan/podlators/Makefile.PL
Ich kriege nach wie vor den Fehler:
  /var/InternerSpeicher/opt/share/man/man3/warnings::register.3
  /var/InternerSpeicher/opt/share/man/man3/warnings::register.3
installman: Can't open cpan/podlators/blib/script/pod2man: No such file or directory
ABORTED
make: *** [install.man] Fehler 255

Richtig, das man wird sowieso wieder gelöscht. Ich versuche mal, damit weiter zu machen.

Viele Grüße
Micha

dirkh

#13
Hallo Micha und Alex,

Python wird nicht gebraucht als "host tool", aber woran das liegt habe ich noch nicht gefunden.
Wie auch immer, ich habe mir das Freetz VirtualBox Image geholt und das Problem nachgestellt und das Problem mit Python gefixt.
Ein Force Update von Github git fetch; git reset --hard origin/master ist nötig und ein make python-host-dirclean  python-cffi-host-dirclean ist auch nötig.

Das Perl baut bei mir, da konnte ich das Problem mit dem Freetz VirtualImage bisher noch nicht nachstellen.

@Micha: Aus deinem letzten make.log konnte ich erkennen, dass Du nicht die upgedateten Quellen benutzt, ein Force Update ist nötig!

Gruß, Dirk

mgrimm86

Hi Dirk,

mit deinen neusten Quellen baut er fehlerfrei! Super!
(Hattest du wirklich die letzt make.log angeschaut (0x heruntergeladen) - da hatte ich schon ein force update gemacht, ging trotzdem nicht)

FHEM und Perl habe ich jetzt external gebaut, hätte sonst alles nicht ins Image gepasst. Das waren insgesamt 57MB.
STEP 3: PACK/SIGN
  checking for left over Subversion directories
  integrate freetz info file into image
packing var.tar
Image signing files found, checking their consistency
Copying /home/migri/.freetz.image_signing.asc to /etc/avm_firmware_public_key9
creating inner-filesystem image (SquashFS4-xz)
  SquashFS block size: 64 kB (65536 bytes)
copying kernel image
  kernel image size: 2.4 MB, max 4.0 MB, free 1.6 MB (1670400 bytes)
creating outer-filesystem image (Ext2FS)
copying filesystem image
  filesystem image size: 28.7 MB, max 48.0 MB, free 19.3 MB (20283136 bytes)
adding checksum to kernel.image
adding checksum to filesystem.image
packing images/7490_06.92-freetz-devel-14550.de_20171122-232220.image
  image file size: 31.6 MB
signing images/7490_06.92-freetz-devel-14550.de_20171122-232220.image
  signed image file size: 31.6 MB
packing images/7490_06.92-freetz-devel-14550.de_20171122-232220.external
  external file size: 91.5 MB
done.


Ich werds dann heute abend mal flashen uns ausprobieren!
Danke für eure Hilfe!

Gruß Micha