Neues perl fuer das FB7270

634 views
Skip to first unread message

Rudolf Koenig

unread,
Oct 30, 2011, 7:41:25 AM10/30/11
to FHEM users
Da ich perl ohne Fliesskomma ziemlich komisch finde, und doch einige
Leute interesse an fhem @ FB7270 finden (etwa 500 downloads in diesem
Monat), habe ich beschlossen ein neues perl zu bauen. Der Weg war
steiniger als gedacht, aber dank Alex Suykov's perl-cross Paket is das
"Destillat" der Bauanleitung (s.u.) ziemlich kurz, und das Ergebnis
zufriedenstellend.

Ich habe ein neues fhem-5.1-fb7270.zip auf fhem.de hochgeladen (mit
fhem aus dem CVS), und auch kurz getestet: sunset_abs entspricht dem
vom "grosssen" fhem, und ein CUL kann man jetzt auch "normal"
ansprechen: dank Device::SerialPort ist die Option @directio nicht
mehr notwendig. Weitere Perl-Module habe ich nicht vor selbst zu
uebersetzen, wer OW.pm & co. braucht, moege es selbst erstellen, und
mir das Ergebnis schicken zwecks einchecken.

HOWTO cross-compile perl for the Fritz!Box 7270
==================
Build-Umgebung: Ubuntu 10.04, 64 bit als VM.

For freetz-build details see fritz.org. Short summary:
Unpack freetz-1.1.4 in $HOME
cd freetz-1.1.4
make xconfig
make
-> I had to dowload the AVM firmware manually, make still aborts.
Freetz 1.1.4
is currently broken, perhaps the CVS version is better. But since I
only
need the compiler, I don't bother.

Make sure /bin/sh points to /bin/bash

cd
ln -s ~/freetz-1.1.4/build/original/filesystem sysroot
ln -s ~/freetz-1.1.4/toolchain/build/gcc-4.2.1-uClibc-0.9.29/mipsel-
linux-uclibc/bin ccbin
ln -s ~/freetz-1.1.4/toolchain/build/gcc-4.2.1-uClibc-0.9.29/mipsel-
linux-uclibc/lib .
ln -s ~/freetz-1.1.4/toolchain/build/gcc-4.2.1-uClibc-0.9.29/mipsel-
linux-uclibc/include sysroot
Add to the PATH: $HOME/ccbin
rm ccbin/ld

unpack perl-5.14.2.tar.gz
mv perl-5.14.2 perl-5.14.1
unpack perl-5.14.1-cross-0.6.2.tar.gz
cd perl-5.14.1/cpan
unpack Device-SerialPort-1.04.tar.gz
cd ..

./configure --prefix=$HOME/fbperl --target=mipsel-linux --target-tools-
prefix=mipsel-linux-uclibc- --sysroot=$HOME/sysroot -Dccflags=-Os -
Dldflags=-L$HOME/lib -Dlddlflags="-fPIC -shared"
make
make install

ru...@dfr-software.de

unread,
Oct 30, 2011, 2:41:20 PM10/30/11
to FHEM users
Hallo Rudolf,
ich habe fhem auf der FB 7270 gemäß der Anleitung auf http://fhem.de/fritzbox.html
installiert und es tut soweit. Ist Deine neue Version ähnlich
installierbar oder muss ich dafür zunächst Freetz auf meiner Box
installieren (wollte ich eigentlich vermeiden...)

Gruß,
Stefan

Rudolf Koenig

unread,
Oct 30, 2011, 4:00:43 PM10/30/11
to fhem-...@googlegroups.com
> Ist Deine neue Version �hnlich installierbar oder muss ich daf�r zun�chst
> Freetz auf meiner Box installieren.

Das Paket ist identisch mit dem was bisher da war, Enduser brauchen auch kein
freetz, ich habe nur das perl ausgetauscht. D.h. wie bisher: Paket runderladen,
auf dem USB Stick auspacken (das geht auch auf dem FB selber), und fhem mit
startfhem starten.

Besitzer von einem V1 Fritzbox muessen das startfhem Skript anpassen, da diese
FB's kein df haben, damit kriegt man es schlecht raus, wo das Programm liegt.
Wenn man mehr als eine Platte angeschlossen hat, dann muss man startfhem auch
aendern.

Ich habe freetz natuerlich benoetigt, um einen crosscompiler zu haben. Die
Anleitung war fuer Leute, die perl selber uebersetzen wollten.

Lars721

unread,
Oct 31, 2011, 2:06:17 PM10/31/11
to fhem-...@googlegroups.com
Hallo,
 
ich habe mal testweise die neue Version auf meiner FB7270 (Version 3) installiert.
An der FB ist ein CUL.
 
Beim Aufruf von startfhem im Telnet bekomme ich immer ein "Bus error" als Fehlermeldung.
 
Wo kann ich nach dem Fehler suchen?
 
Gruß, Lars

Rudolf Koenig

unread,
Oct 31, 2011, 2:38:51 PM10/31/11
to fhem-...@googlegroups.com
> Wo kann ich nach dem Fehler suchen?

Was fuer ein Firmware laeuft darauf? Ich habe es mit 74.05.05 getestet auf
einem FB7270, V3. Evtl. die Befehle einzeln aus startfhem durchfuehren, und
schauen, wo das Problem auftritt. Wenn es beim perl-Aufruf ist, dann
nacheinander:
% perl -version
% perl -e 'print "Hallo"'
% perl fhem.pl
ausprobieren.

Lars721

unread,
Oct 31, 2011, 3:01:40 PM10/31/11
to fhem-...@googlegroups.com

Am Montag, 31. Oktober 2011 19:38:51 UTC+1 schrieb Rudolf Koenig:
> Was fuer ein Firmware laeuft darauf? Ich habe es mit 74.05.05 getestet auf einem FB7270, V3.
Ich habe genau die gleiche Hard- und Firmware
 
>Evtl. die Befehle einzeln aus startfhem durchfuehren, und schauen, wo das Problem auftritt. Wenn es beim perl-Aufruf ist, dann nacheinander:
>% perl -version
Beim Aufruf von perl -version kommt dann die "Bus error" Fehlermeldung

Rudolf Koenig

unread,
Oct 31, 2011, 4:06:02 PM10/31/11
to fhem-...@googlegroups.com
> >% perl -version
> Beim Aufruf von perl -version kommt dann die "Bus error" Fehlermeldung

Kann das bitte jemand sonst bestaetigen oder widerlegen?

Marc

unread,
Nov 1, 2011, 4:07:42 AM11/1/11
to FHEM users
Hallo Rudolf,

danke für Deine Arbeit! Bei mir läuft SUNSET jetzt auch wunderbar.
Ich versuch parallel gerade die 59_Weather.pm ans Laufen zu kriegen.
Ich bin auch schon soweit, dass ich keine "systemischen"
Fehlermeldungen mehr im Log finde. Leider komme ich aber nicht über
ein Initialized Status hinweg und erhalte die Meldung "myWetter: Could
not retrieve weather information."

Ich habe leider bisher wenig Erfahrung mit Perl. Ist das ein größeres
Ding das Modul ans Laufen zu kriegen?

Danke und viele Grüße,
Marc

Lars721

unread,
Nov 1, 2011, 3:08:45 PM11/1/11
to fhem-...@googlegroups.com
@Marc: Welche FritzBox (HW/FW) benutzt Du? Bei dir scheint die neue Perl Version ja zu laufen.
 
Ich habe es eben noch mal auf einer zweiten FB7270 (Version 3) und auch auf einer FB7240 ausprobiert.
Erhalte aber die gleiche Fehlermeldung "Bus error" beim Starten von Fhem

Marc

unread,
Nov 2, 2011, 6:23:14 AM11/2/11
to FHEM users
V2 mit 54.05.05

Mir ist noch nicht ganz klar, wieso dann doch einige Module nicht
laufen.
Was ist denn eigentlich das Problem der 7270 im Vergleich zu anderer
Hardware?

Grüße,
Marc

Rudolf Koenig

unread,
Nov 2, 2011, 8:03:09 AM11/2/11
to fhem-...@googlegroups.com
> Was ist denn eigentlich das Problem der 7270 im Vergleich zu anderer
> Hardware?

AVM kam beim bau der 7390 auf die (fuer mich ueberraschende) Idee, den
Prozessor mit der anderen Byte-Reihenfolge (Endian) zu konfigurieren.

Lars721

unread,
Nov 2, 2011, 4:51:26 PM11/2/11
to fhem-...@googlegroups.com
Hallo nochmal,
 
ich habe eben das Problem mit "Bus error" gelöst.
Hatte die Fhem Dateien per FileZilla Ftp auf meinen USB Stick übertragen.
Zuerst im Transfer type: auto (danach trat der Fehler auf)
danach Dateien noch mal neu übertragen im Transfer type: binary
Danach funktionierte die Datei startfhem aber nicht richtig...
Diese habe ich dann noch mal mit Transfer type: auto hochgeladen
Danach funktionierte Fhem
(hoffentlich sind nun auch alle anderen hochgeladenen Dateien funktionsfähig)

Peter Maier

unread,
Nov 6, 2011, 3:09:29 PM11/6/11
to FHEM users
Hallo Rudolf,

ich habe heute das Perl bei mir ausgetauscht. Ich bekomme folgende
Fehlermeldung ...

Can't locate IO/Socket.pm in @INC (@INC contains: /var/media/ftp/
SanDisk-U3CruzerMicro-01/usr/lib/perl5/5.14 / /home/rudi/fbperl/lib/
perl/arch /home/rudi/fbperl/lib/perl .) at fhem.pl line 35.
BEGIN failed--compilation aborted at fhem.pl line 35.

Das Verzeichnis IO ist scheinbar nicht beim neuen Perl dabei.

Gruss Peter

Rudolf Koenig

unread,
Nov 6, 2011, 5:02:34 PM11/6/11
to fhem-...@googlegroups.com
> ich habe heute das Perl bei mir ausgetauscht. Ich bekomme folgende
> Fehlermeldung ...

startfhem darf man auch austauschen, da wird perl5lib passend gesetzt...
Soweit habe ich das Paket schon getestet, bevor ich es auf die Menschheit
losgelassen habe :)

Peter Maier

unread,
Nov 7, 2011, 11:00:53 AM11/7/11
to FHEM users
startfhem ... habe ich schon berücksichtigt.
Ich habe das Perl in meine Ordnerstruktur verschoben und die Pfade
angepasst.
Nachdem ich die Meldung erhalten habe, habe ich geprüft ob IO/
Socket.pm vorhanden ist ...

Rudolf Koenig

unread,
Nov 8, 2011, 3:00:29 AM11/8/11
to fhem-...@googlegroups.com
> Nachdem ich die Meldung erhalten habe, habe ich gepr�ft ob IO/
> Socket.pm vorhanden ist ...

Da bin ich gespannt, wo sie geblieben sind...

% unzip -l fhem-5.1-fb7270.zip | grep Socket
0 10-30-11 09:59 fhem/lib/perl/arch/auto/Socket/
0 10-30-11 09:59 fhem/lib/perl/arch/auto/Socket/Socket.bs
27874 10-30-11 09:59 fhem/lib/perl/arch/auto/Socket/Socket.so
0 10-30-11 09:59 fhem/lib/perl/arch/IO/Socket/
12342 10-30-11 09:59 fhem/lib/perl/arch/IO/Socket/INET.pm
3111 10-30-11 09:59 fhem/lib/perl/arch/IO/Socket/UNIX.pm
13834 10-30-11 09:59 fhem/lib/perl/arch/IO/Socket.pm
21328 10-30-11 09:59 fhem/lib/perl/arch/Socket.pm

Die fhem Kommunikation (telnet und WEB) laeuft nur mit Hilfe von IO::Socket.
Wie geschrieben, ich habe fhem auf einem FB7270 gestartet, und im FHEMWEB
Frontend die Werte von sunrise_abs() und sunset_abs() ausgegeben.

Peter Maier

unread,
Nov 8, 2011, 4:12:28 AM11/8/11
to FHEM users
Kaum macht man es richtig ... funktionierts auch schon. :)
Ich hatte ../arch/IO übersehen. sorry.

Nochmals mein Dank für das neue Perl. Bei mir geht jetzt alles soweit
ich sehe.

Stetanchi

unread,
Dec 23, 2011, 11:02:49 AM12/23/11
to fhem-...@googlegroups.com
Hallo,

lässt sich das perl Paket eigentlich auch auf der Fritz.Box 7390 verwenden?
Ich vermisse auf der 7390 die Sunset() und Sunrise() Funktionen.

Gruß,Stefan

Rudolf Koenig

unread,
Dec 23, 2011, 12:59:50 PM12/23/11
to fhem-...@googlegroups.com
> l�sst sich das perl Paket eigentlich auch auf der Fritz.Box 7390 verwenden?

Nein.


> Ich vermisse auf der 7390 die Sunset() und Sunrise() Funktionen.

Ich nicht:
fhem> { sunset_abs() }
17:06:51

Reply all
Reply to author
Forward
0 new messages