Perl Module nachinstallieren

Begonnen von ts, 12 März 2015, 19:21:28

Vorheriges Thema - Nächstes Thema

ts

Hallo zusammen,

Ich weiss, dass die Fritzboxen, besonders die alten (7170/7270) als veraltet angesehen werden für FHEM, aber solang es an sich zufriedenstellend läuft und die Box als "ist eh die ganze Zeit am Netz" kaum Elektro-Mehrverbrauch bedeutet und ich die Box nunmal habe und nicht ohne Not wegwefen werde, erlaube ich mir trotzdem weiter ein paar Fragen:
Ich möchte mein KM200 gern ans Fhem anhängen (da Heizperiode fast rum hat das nun gern auch Zeit).
Dazu brauch ich aber ein paar zusätzliche Module, die man z.B. per cpan / cpanm installieren könnte/sollte.
Cpanm läuft aber auf dem von Rudolf für die 7170 / 7270 erzeugten Perl-Image nicht.

Frage 1: Warum eigentlich? Ist das klar und für nen Einsteiger zu verstehen?

Und selbst wenn cpanm liefe - z.B. List::MoreUtils kommt als *.xs-Datei, muss also (so wie ich die CPAN-Doku verstehe) durch einen c-Compiler geschickt werden und der ist auf der Box wohl nicht drauf und kaum sinnvoll zum laufen zu bekommen...
Damit bleibt als Ausweg evtl. noch der Feetz-Crosscompiler: Wenn Rudolf schonmal Perl per Crosscompiler erstellt hat und seine Anleitung ja im Netz vorliegt, könnte ich mir ja ein neues Perl mit den eingebauten Zusatzmodulen machen (und ggf. dann hier verteilen) - blos kommt da die Frage auf:

Frage 2: Wie baut man denn von CPAN gesaugte Module in eine Crosscompiler-Umgebung so ein, dass das am Ende vorliegende Perl-Image diese Pakete auch enthält? Hat da jemand Erfahrungen?

Über Tips freut sich

Torsten

rudolfkoenig


ts

Rudolf: Danke für den Link (den hatte ich in meinem Post gemeint...)

Zwischenstand: Habe etwas abweichend von der Anleitung freetz-linux mit freetz 2.0 verwendet - da läuft der Freetz-&Crosscompiler-Installationslauf erwartungsgemäß ohne Probleme durch, die diversen ln ... - Befehle für die Perl-Compilierung muss man natürlich auf die aktuellen Versionen ändern - läuft dann auch glatt, Runterladen von Perl (5.20.2) und den für KM200 benötigten Modulen und passendes Auspacken geht  ABER:
der ./Configure-Befehl fürs Perl scheitert aber bisher: stur abgetippt von der Anleitung führt zur Ausgabe der Beschreibungsseite, die aber wegen Bildlauf zur Hälfte unlesbar ist und auf ...|less reagiert das Biest nicht., ...>log.txt ergibt auch ne leere Datei... Und der Herr Google findet auch nix brauchbares an Hilfe.
Damit sitz ich erst einmal fest und muss mich ins ./Configure-Skript irgendwie reinlesen...
Ansonsten bin ich eigentlich guter Dinge, dass das Projekt "KM200 auf die mipsel-Box" funktionieren sollte...

Hat jemand hier (z.B. Rudolf) Tips zum ./Configure-Skript-Bedienen?

Torsten

rudolfkoenig

Vlt. hat sich die Anleitung fuer perl-cross in der Zwischenzeit geaendert.

Alex Suykov von Perl-Cross hat mir damals auch geholfen (ich sollte /bin/sh von /bin/dash nach /bin/bash aendern), vlt. kann er dir diesmal auch helfen.

ts

So, nach 2 1/2 Monaten mal ein update:
- Anleitung hat sich fast nicht geändert: Ich hatte im Midnight-Commander beim auspacken des Perl-Cross-Pakets irgendwas falsches angekreuzt und daher ging das kleingeschriebene config nicht: Neu auspacken und gut wars.
- dafür lief make nicht durch: errno.h nicht auffindbar. Da muss man unter dem neu erzeugten sysroot-Link einen ansonsten leeren Verzeichnisbaum anlegen /usr/include oder so mit der errno.h drin.
- jetzt hab ich ein fertig make-install'tes Perl auf der virtuellen Platte und es geht am Wochenende (so die Familie will) mal auf die Box....

Torsten

ts

#5
...und wieder viele Monate später: Ich hatte viel um die Ohren und wenig Lust, am ja ansonsten gut laufenden System etwas zu ändern, daher war der Test und überhaupt das Projekt KM200-auf-FB7170 liegengeblieben. Hab letzte Woche mal endlich das "neue" Perl von der virtuellen Maschine auf die FB gespielt und versucht zu starten - geht "natürlich" nicht - Perl wirft eine Fehlermeldung von wegen

      Symbol stderr: can't handle reloc type 0x7e

nicht machen.
Da steh ich nun... - also: falls irgendwer hier noch mitliest und Ahnung von Perl-Interna oder den spezifischen Macken der FB7170 und deren System hat - gebt mir mal bitte nen Tip wo ich weiter suchen könnte...

EDIT/UPDATE (30.11.15): Mein Kumpel Google meinte, er kennt da jemanden im ipphone-forum und der meint, reloc 0x7e heisst, dass von der ucLibc 0.9.29 mehrere Versionen im Umlauf sind und zwischen denen kann man keine dynamisch gelinkten Binaries austauschen. Und dessen Kumpel Freetz.org wüsste, wie man AVM-native-Firmware-kompatible Crosscompiler baut...
Schon wenige Stunden herumprobieren  später hab ich dann erst die Option im make menuconfig gefunden, mit der man eine eigene Toolchain bauen lassen kann (erst dann ist der Punkt mit der Original-Firmware sichtbar) und eine weitere Stunde drauf hab ich dann gefunden, dass man die targetutils besser nicht mitbaut, weil das einen kryptischen Fehler auswirft mit dem zumindest ich nix anfangen kann (letztlich wohl gmp .config nicht ausgefüllt?)
Also geh ich jetzt wieder auf Los, suche Ruldolfs Link auf und tippe den Perl-Make-Befehl nochmal ab...

EDIT, 5 min später: War ja halb so schlimm, alles war ja noch gesetzt, nur make install musste schnell durchhuschen - jetzt läuft der lahme Kopierjob auf die Box...


Ansonsten schliess sogar ich mich langsam den FB7170-Aussteigern an: Mein bisheriges FHEM (paar Timer, paar zWave-nach-CUL(SOMFY)-Umsetzer, kaum Wweb-Frontend-Use, nix Mission-kritisches) läuft zufriedenstellend (alle Monat mal nen Neustart weil der CUL hängt) - web-Administration mitunter ätzend langsam - aber mehr wird da nicht gehen und im nächsten halben Jahr kommt eh ne 73xx oder 74xx-Box mit dem Tarifwechsel ins Haus... - mal sehen, wie man da überhaupt noch FHEM drauf zum laufen bekommt und sonst muss halt ein Raspi her..

Das neue Perl hätt ich aber schon noch gern zum Laufen gebracht (just because I can, halt fürs Ego und weil dadraussen och na Menge Leute die alte Fritte haben und bestimmt auch ein vollständigeres Perl mögen würden...)

Grüße

Torsten (der immer noch wenig Zeit hat, aber jetzt doch mal öfter nach dem FHEM schauen wird)

ts

Update:
- Cross Compiler neu gebaut für AVM-Original-Firmware (unter freetz Linux)
- Perl komplett neu gebaut (Sourcen neu eingespielt, Freetz-Linux-VM)
- Perl auf Box kopiert:
   - das lib-Verzeichnis dahin, wo es bisher auch schon lag, eben überschrieben; von den binaries nur die perl selbst ins fhem-Verszeichnis (wo es bisher ja auch schon lag)
   - perl -v und perl -e 'printf "Hallo Welt"' tun was man erwartet ;-)
   - perl fhem denkt ein paar Sekunden nach und meckert dann, es könne die zu Time::Hires gehörende hires.so nicht laden (die liegt aber exakt am angemeckerten Ort!).

--> Kann mir jemand weiterhelfen?

Torsten

rudolfkoenig


ts

Rudolf,

(1) Danke für den strace-Tip!

(2) Ich bin aber zu blöd dafür:
  - die von Dir verlinkte Version läuft nicht auf meiner FB 7170: "./strace: line 1: syntax error: "(" unexpected"
      da der Link auf ne 7340 zeigt -> falsche Endianness?
  - Google findet natürlich nirgends nen binary-Download (oder ich frag halt falsch)
  - und wie ich es als in freetz-linux zu kompilierende source finde, einspiele und baue, hab ich als selten-linux-Nutzer schon wieder komplett verdrängt...
--> brauche mehr Anleitung ;-(, sorry

Torsten

rudolfkoenig

Sorry, habs uebersehen dass du fuer den 7170-er kaempfst. Ab den 7390-er hat AVM das Mainstream MIPS-Binary-Format uebernommen, das bedeutet, dass Binaries fuer 7170/7270 nicht auf 7390/7490 laeufen, und umgekehrt.
Mein Rat: vergiss die 7170: sehr langsam, USB ist problematisch, und kein Software Out-of-the-Box. Vor 15 Jahren vielleicht, heute sinnlos. Kommt dazu, dass AVM aktiv gegen FHEM arbeitet, indem zunaechst das Neustarten, und danach telnet gesperrt wurde. So einen niedrigen Stundenlohn kann man gar nicht haben, dass ein RPi sich nicht lohnen wuerde.