Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
wärst Du so freundlich, das für die Fritzbox und FT12 kompilierte eibd zur Verfügung zu stellen? Klappt denn der EIB Zugriff und kannst Du jetzt über IP auf den EIB zugreifen? Ich habe das mit der Fritzbox 7170 nie zum Laufen bekommen, was aber wohl an der 7170 lag.
gibt es eine Möglichkeit, den eibd auf ein DNS323 zur ausschliesslichen Verwendung mit Siemens N148/21 (dh. Ethernet) anzupassen?
Ich habe schon einiges vom crosscompilen in diesem Fred gelesen, aber irgendwie ist mir das alles nicht so geläufig, daher mal ein paar Fragen:
die sog. Toolchain baue ich auf einer normalen (virtuellen) linux Installation und dort compile ich auch? Oder passiert sowas auf der DNS selbst?
die Sources springen mich irgendwie nicht so direkt an, wo würde ich die herkriegen?
wenn ich irgendwas was kompiliert bekommen habe, muss ich mir dann noch ein .ipk für optware (ipkg) bauen?
Gibts einen einfacheren Weg? Ich habe schon einige ipk-Pakete (für ARM devices) ausprobiert, aber jedesmal sagt mir eibd: No such file or directory. /opt/bin/eibd existiert aber und liegt im Pfad...
wärst Du so freundlich, das für die Fritzbox und FT12 kompilierte eibd zur Verfügung zu stellen? Klappt denn der EIB Zugriff und kannst Du jetzt über IP auf den EIB zugreifen? Ich habe das mit der Fritzbox 7170 nie zum Laufen bekommen, was aber wohl an der 7170 lag.
Danke und Gruß
Sascha
Hi Sascha,
das mit dem FT12 hat nicht funktioniert (ich habe die Verbindung zwischen der internent RS232 der Fritzbox und einer FT12 nicht hinbekommen), habe mir ein IP Schnittstelle gekauft, das eibd habe ich aber für FT12 kompiliert,
brauchst Du es?
das mit dem FT12 hat nicht funktioniert (ich habe die Verbindung zwischen der internent RS232 der Fritzbox und einer FT12 nicht hinbekommen), habe mir ein IP Schnittstelle gekauft, das eibd habe ich aber für FT12 kompiliert,
brauchst Du es?
Gruß
Kobza
Hallo Kobza,
vielen Dank für die Info, aber ich brauche die für FT12 kompilierte Version dann auch nicht. Ich werde wohl auch den Weg über Siemens EIB/IP Schnittstelle nehmen.
die sog. Toolchain baue ich auf einer normalen (virtuellen) linux Installation und dort compile ich auch? Oder passiert sowas auf der DNS selbst?
Man kann im Prinzip beides machen. Für die zweite Lösung muss das Target (bei dir DNS) Leistungsfähigier sein: Es braucht mehr Speicherplatz, da GCC & Co installiert werden müssen. Dafür ist die Installation einfacher.
wenn ich irgendwas was kompiliert bekommen habe, muss ich mir dann noch ein .ipk für optware (ipkg) bauen?
Nein. Man kann die nötigen Teile einfach auf Target kopieren. Ein Packet vereinfacht nur die Installation, es muss sich nur einer die Mühe machen, das ipkg einmal zu erstellen.
Gibts einen einfacheren Weg? Ich habe schon einige ipk-Pakete (für ARM devices) ausprobiert, aber jedesmal sagt mir eibd: No such file or directory. /opt/bin/eibd existiert aber und liegt im Pfad...
root@xxxx:~# ls /opt/bin/ei*
/opt/bin/eibd /opt/bin/eibnetdescribe /opt/bin/eibnetsearch
root@xxxx:~# strace /opt/bin/eibd
execve("/opt/bin/eibd", ["/opt/bin/eibd"], [/* 19 vars */]) = -1 ENOENT (No such file or directory)
write(2, "strace: exec: No such file or di"..., 40strace: exec: No such file or directory
) = 40
exit(1) = ?
Mir war nicht klar, dass der eibd im SDK enthalten ist...
Ja, dafür dass der eibd für die meisten das wichtigste Programm ist, ist der gut versteckt. Hatte mich damals auch etwas Zeit und Verständnis gekostet...
TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!
root@xxxx:~# ls /opt/bin/ei*
/opt/bin/eibd /opt/bin/eibnetdescribe /opt/bin/eibnetsearch
root@xxxx:~# strace /opt/bin/eibd
execve("/opt/bin/eibd", ["/opt/bin/eibd"], [/* 19 vars */]) = -1 ENOENT (No such file or directory)
Das hilft weiter. Also entweder ist der EIBD inkompatibel zu deinen System (was sagt
EIBD ist eigenlich nur als Nebensache entstanden. Immerhin heisst das Project "BCU SDK with eibd" ;-)
okay, okay, ich hab öfter Tomaten auf den Augen... ;-)
Das hilft weiter. Also entweder ist der EIBD inkompatibel zu deinen System (was sagt
Code:
file /opt/bin/eibd
uname -a
)
ergibt:
Code:
/opt/bin/eibd: ELF 32-bit LSB executable, ARM, version 1, for GNU/Linux 2.4.3, dynamically linked (uses shared libs), stripped
bzw:
Linux dlink-6426C2 2.6.12.6-arm1 #31 Thu Mar 26 18:20:41 CST 2009 armv5tejl unknown
Für das bischen, was ich mich traue daraus abzuleiten, finde ich "ARM, version 1" entspricht "2.6.12.6-arm1"?
oder es fehlt eine Bibliothek:
Code:
ldd /opt/bin/eibd
ergibt:
Code:
root@dlink-6426C2:~# ldd /opt/bin/eibd
ldd: can't open cache '/ffp/etc/ld.so.cache'
checking sub-depends for '/opt/lib/libpthsem.so.20'
checking sub-depends for 'not found'
checking sub-depends for 'not found'
checking sub-depends for '/ffp/lib/libstdc++.so.6'
checking sub-depends for 'not found'
checking sub-depends for '/lib/libgcc_s.so.1'
checking sub-depends for 'not found'
checking sub-depends for '/ffp/lib/libm.so.0'
checking sub-depends for '/ffp/lib/libc.so.0'
libpthsem.so.20 => /opt/lib/libpthsem.so.20 (0x00000000)
libdl.so.2 => not found (0x00000000)
libnsl.so.1 => not found (0x00000000)
libstdc++.so.6 => /ffp/lib/libstdc++.so.6 (0x00000000)
libm.so.6 => not found (0x00000000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00000000)
libc.so.6 => not found (0x00000000)
libm.so.0 => /ffp/lib/libm.so.0 (0x00000000)
libc.so.0 => /ffp/lib/libc.so.0 (0x00000000)
/ffp/lib/ld-uClibc.so.0 => /ffp/lib/ld-uClibc.so.0 (0x00000000)
Ich schätze mal, dass es an fehlenden libraries liegt. Hast du einen Tip, in welchen ipks (optware) die enthalten sind?
Edit:
Code:
ln -s libm-0.9.29.so libm.so.6
(für die anderen analog) hat leider nix gebracht, obwohl ldd dann freundlicher aussieht.
mit
Code:
ipkg whatprovides libm.so.6
lässt sich auch nichts ermitteln, das hat mein ipkg wohl nicht ausreichend implementiert... *grrr* oder ich mach was falsch *doppel-grrr*
Edit2: Hab irgendwo gelesen, dass die DNS323 Firmware auf uclibc aufbaut. Ist das die Richtung, aus der eine Lösung winken könnte?
PS: Auf soviel Einzelfallbehandlung hatte ich kaum zu hoffen gewagt. Wenn ich das hinkriege, schreib ich was zusammen, dass du den Anwendungsfall "DNS323" mit ins wiki aufnehmen kannst... Danke schonmal
root@dlink-6426C2:~# ldd /opt/bin/eibd
ldd: can't open cache '/ffp/etc/ld.so.cache'
checking sub-depends for '/opt/lib/libpthsem.so.20'
checking sub-depends for 'not found'
checking sub-depends for 'not found'
checking sub-depends for '/ffp/lib/libstdc++.so.6'
checking sub-depends for 'not found'
checking sub-depends for '/lib/libgcc_s.so.1'
checking sub-depends for 'not found'
checking sub-depends for '/ffp/lib/libm.so.0'
checking sub-depends for '/ffp/lib/libc.so.0'
libpthsem.so.20 => /opt/lib/libpthsem.so.20 (0x00000000)
libdl.so.2 => not found (0x00000000)
libnsl.so.1 => not found (0x00000000)
libstdc++.so.6 => /ffp/lib/libstdc++.so.6 (0x00000000)
libm.so.6 => not found (0x00000000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00000000)
libc.so.6 => not found (0x00000000)
libm.so.0 => /ffp/lib/libm.so.0 (0x00000000)
libc.so.0 => /ffp/lib/libc.so.0 (0x00000000)
/ffp/lib/ld-uClibc.so.0 => /ffp/lib/ld-uClibc.so.0 (0x00000000)
Ich schätze mal, dass es an fehlenden libraries liegt. Hast du einen Tip, in welchen ipks (optware) die enthalten sind?
Edit:
Code:
ln -s libm-0.9.29.so libm.so.6
(für die anderen analog) hat leider nix gebracht, obwohl ldd dann freundlicher aussieht.
mit
Code:
ipkg whatprovides libm.so.6
lässt sich auch nichts ermitteln, das hat mein ipkg wohl nicht ausreichend implementiert... *grrr* oder ich mach was falsch *doppel-grrr*
Ich würde auch zustimmen, das die Architektur passt.
libm.so.6 sieht nach glibc (oder einer Variante wie eglibc davon) aus. libm.so.0 wird wahrscheinlich die uClibc sein.
Ich würde aufpassen, da der EIBD anscheinend gegen 2 libc und 2 libm gelinkt wurde. Das kann eventuell zu unerwarteten Verhaltensweisen führen. Ausserdem braucht es unnötig Platz.
Ich würde auch zustimmen, das die Architektur passt.
Das ist ja schonmal was... :-D
Ich würde aufpassen, da der EIBD anscheinend gegen 2 libc und 2 libm gelinkt wurde. Das kann eventuell zu unerwarteten Verhaltensweisen führen. Ausserdem braucht es unnötig Platz.
Wie's aussieht, weisen alle arm-basierten eibd/pthsem-ipk-Pakete von http://ouaye.net/linknx/ den gleichen ldd-Output auf. Da scheint es keinen Kandidaten zu geben, der aussichtsreicher ausschaut... hab sie alle durchgetestet.
Wenn Du keine weiteren Tricks bzgl. der libraries hast, werde ich mich mal daran machen, das Ding für mein NAS zu kompilieren.
Es bleibt spannend.
Wie's aussieht, weisen alle arm-basierten eibd/pthsem-ipk-Pakete von Index of /linknx den gleichen ldd-Output auf. Da scheint es keinen Kandidaten zu geben, der aussichtsreicher ausschaut... hab sie alle durchgetestet.
Theoretisch müßte dieser EIBD nicht gegen 2 libc gelinkt sein, sondern die zweite libc kann indirekt über eine Systembibliothek (zB libgcc) hineingeholt werden:
Wenn ich mich nicht irre, müßte der Webmaster von den oben genannten Link auch schon im Forum gewesen sein (jef2000???). Ich würde einmal beim Ersteller der Packete nachfragen.
so, nun hab ich eine funktionierende Toolchain auf einer Ubuntu-VM gebastelt (ging natürlich auch nicht ohne ein paar Detailänderungen) und ich hab mich dann mit dem BCUSDK und deiner Cross-Compiling Anleitung beschäftigt...
pthsem hab ich kompiliert bekommen, allerdings scheint der Teil für den eibd mindestens einen Fehler zu enthalten
die Option --enably-onlyeibd müsste doch --enable-onlyeibd heissen, oder?
Und ich bin mir nicht sicher, ob in der configure-Zeile nicht ein <Return> fehlt, zumindest verwirrt mich die Angabe von LDFLAGS vor dem Aufruf von ./configure...
Ein grosses Problem (für mich) ist aber die Auswahl der richtigen Verzeichnisse. Du schreibst da bei den Parametern, man solle /path/to/empty/dir angeben. Für pthsem habe ich mir schon gedacht, dass mit --prefix dort das Zielverzeichnis für die zu erstellenenden Dateien gemeint ist (auf das später beim eibd-configure verwiesen wird)
Aber welches /path/to/empty/dir soll ich bei LDFLAGS angeben? Wo doch LDFLAGS eigentlich auf ein Verzeichnis mit libs verweisen soll (laut --help)
Welches ist den eigentlich mein Target? Ich hab pthsem mit --host=arm compiliert, müsste ich da nicht besser --host=arm-uclib angeben?
Kannst Du mir da nochmal aufs Rad helfen? Thx
Cu, ram
pthsem hab ich kompiliert bekommen, allerdings scheint der Teil für den eibd mindestens einen Fehler zu enthalten
die Option --enably-onlyeibd müsste doch --enable-onlyeibd heissen, oder?
Und ich bin mir nicht sicher, ob in der configure-Zeile nicht ein <Return> fehlt, zumindest verwirrt mich die Angabe von LDFLAGS vor dem Aufruf von ./configure...
Des gehört schon so. So übernimmt configure den Inhalt von LDFLAGs
Ein grosses Problem (für mich) ist aber die Auswahl der richtigen Verzeichnisse. Du schreibst da bei den Parametern, man solle /path/to/empty/dir angeben. Für pthsem habe ich mir schon gedacht, dass mit --prefix dort das Zielverzeichnis für die zu erstellenenden Dateien gemeint ist (auf das später beim eibd-configure verwiesen wird)
Aber welches /path/to/empty/dir soll ich bei LDFLAGS angeben? Wo doch LDFLAGS eigentlich auf ein Verzeichnis mit libs verweisen soll (laut --help)
Im Prinzip ersetzt man den String /path/to/empty/dir durch einen Verzeichnisnamen eigener Wahl, wo (bei einen Anfänger) nichts anderes stehen sollte. Bei LDFLAGS wird auf das Unterverzeichnis lib darin verwiesen.
Welches ist den eigentlich mein Target? Ich hab pthsem mit --host=arm compiliert, müsste ich da nicht besser --host=arm-uclib angeben?
Nimm den Namen des Cross-compilers (XXX-gcc) und tue das -gcc weg, dann hast du den Targetnamen.
configure ergänzt fehlende Namensteile; das Ergebniss sieht man im Output davon. Ganz wichtig ist die Angabe der Architektur (arm, mips, usw.), da sonst für den PC compiliert wird.
Wenn am nicht mehrere Cross-Compiling Umgebungen für eine Architektur installiert hat, kann man sich oft die weiteren Angaben sparen.
PS: Mein HOWTO steht in einen Wiki, wo jeder registrierte SF.net User Änderungen machen darf.
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar