bacnet4linux auf fritzbox

Langstein

Neuer User
Mitglied seit
24 Mai 2008
Beiträge
6
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen,

Hallo zusammen. Vorneweg der beliebte Satz: Bin neu in dem Thema, daher bitte dumme Fragen entschuldigen... :confused:

Ich versuche das Sourceforge Paket bacnet4linux auf meine Fritzbox zu bekommen:
http://sourceforge.net/projects/bacnet4linux/

Dazu habe ich mir bei freetz die VMWare heruntergeladen und das Paket dort kompiliert. Wenn ich es auf der VMWare starte funktioniert das ganze prächtig.

Dann habe ich das Binary auf einen USB-Stick kopiert, in meine fritzbox gesteckt und versucht über telnet (/var/media/ftp/...) und ./bacnet4linux zu starten.

Dabei bekomme ich beim Start über telnet folgende Fehlermeldung:
./bacnet4linux: line2: syntax error: "(" unexpexted

Ich habe der Datei mit chmod a+x * bereits alle Rechte gegeben.

Habe ich da noch einen grundsätzlichen Denkfehler? Muss ich mir erst eine eigene Firmware bauen um dann auf der FB die compilierung vorzunehemen?

http://www.wehavemorefun.de/fritzbox/index.php/Cross-Compile_Toolchain
habe ich auch versucht, bin jedoch schon in der Zeile:
Code:
/usr/src$ svn co [url]http://svn.freetz.org/tags/15.2[/url] ds26-15.2
gescheitert, da das Paket offensichtlich nicht mehr existiert.

Gleichzeitig suche ich noch einen Tip, wie das ganze einfacher geht. Ich stelle mir eine ubuntu VM-Ware vor, wo ich das ganze probieren kann (ich will daran weiterentwickeln) und dann mit einem zweiten Befehl die c-Programme für die Fritzbox kompilieren und dann auf die Fritzbox kopieren und starten kann.
 
... Ich stelle mir eine ubuntu VM-Ware vor, wo ich das ganze probieren kann (ich will daran weiterentwickeln) und dann mit einem zweiten Befehl die c-Programme für die Fritzbox kompilieren und dann auf die Fritzbox kopieren und starten kann.
Ja, so soll man das machen.
Schau mal mit file, in deinem Build-System nach, für welche Architektur, Du das binary kompiliert hast.
 
Hallo sf3878,

mhh...

wie gesagt ich bin Anfänger, absoluter Anfänger:

Schau mal mit file, in deinem Build-System nach, für welche Architektur, Du das binary kompiliert hast

Kannst Du mir noch einen genauen Befehl dazu sagen...

Danke
 
Der Befehl heißt "file", wie oben geschrieben.
Es ist aber gar nicht nötig, zu schauen, denn Du schreibst oben bereits "Wenn ich es auf der VMWare starte funktioniert das ganze prächtig."

Das Problem liegt darin, dass auf der Box eine andere CPU ist als im PC oder in der VMware. Folglich musst Du am PC ein Programm erstellen, das für eine andere Architektur gedacht ist. Man nennt dies Cross-Compilieren.

Wenn Du schon die VM von Freetz hast, dann schau mal im dortigen Wiki nach, was zu dem Thema steht (eigenes Programm übersetzen / neues Paket).
 
Gleichzeitig suche ich noch einen Tip, wie das ganze einfacher geht. Ich stelle mir eine ubuntu VM-Ware vor, wo ich das ganze probieren kann (ich will daran weiterentwickeln) und dann mit einem zweiten Befehl die c-Programme für die Fritzbox kompilieren und dann auf die Fritzbox kopieren und starten kann.
Im Anhang das Paket für bacnet4linux mit Freetz (trunk) und das binary (mipsel) für die Box.
Code:
root@fritz:/var/media/ftp/uStor01/archiv# [B]./file ./bacnet4linux[/B]
./bacnet4linux: ELF 32-bit LSB executable, MIPS, MIPS32 version 1 (SYSV), dynamically linked (uses shared libs), with unknown capability 0xf41 = 0x756e6700, with unknown capability 0x70100 = 0x3040000, stripped
Code:
root@fritz:/var/media/ftp/uStor01/archiv# [B]ldd ./bacnet4linux[/B]
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x2aabe000)
        libc.so.0 => /lib/libc.so.0 (0x2aadc000)
        ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x2aaa8000)
Code:
root@fritz:/var/media/ftp/uStor01/archiv#[B] ./bacnet4linux --help[/B]
BACnet4Linux - Version 0.3.12
An Open-Source BACnet Protocol stack for Linux.
Copyright (C) 2003 Greg Holloway
BACnet4Linux comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome
to redistribute it under certain conditions.

Usage:
./bacnet4linux [options]
 -c#    BACnet COV support (0=disable,1=enable)
 -C###  BACnet COV lifetime (seconds)
 -D#    debug level, larger is more verbose (0-9)
 -h###  HTTP server port (0-65534)
 -I###  Number of concurrent queries (invoke ids)
 -q###  Initial query delay (seconds, 0=disable query)
 -rfilename Initialize device database from XML 'filename'
 -s###  BACnet Sync Time Periodic (seconds,0=disabled)
 -wfilename Write device database to XML 'filename'
 -x###-###  eXclude devices except range ### to ### (multiple -x's OK)
 -d###  BACnet device instance number (0-4194303)
 -e#    BACnet Ethernet (0=disable,1=enable)
 -iname BACnet Ethernet interface name (eth0, eth1, etc.)
 -m###  BACnet MS/TP port number (0-65534)
 -p###  BACnet/IP UDP port number (0=disabled,1-65534,0xBAC0)
 -t###  BACnet APDU timeout (seconds)
 -v###  BACnet Vendor Identifier (0-65534)
 -V     Returns the version information
default settings:
-c1 -C300 -D1 -h8000 -I1 -q5 -s0
-d2 -e1 -ieth0 -m0 -p47808 -t10 -v6
 

Anhänge

  • bacnet4linux.patch.txt
    4.7 KB · Aufrufe: 2
  • bacnet4linux.tar.gz
    35.7 KB · Aufrufe: 2
Als Ergänzung noch den Tipp, von der Box mit NFS auf das Build-System zuzugreifen. Dann kannst DU das erstellte Programm direkt ausführen, ohne es erst zu kopieren.
 

Statistik des Forums

Themen
246,273
Beiträge
2,249,292
Mitglieder
373,862
Neuestes Mitglied
904lte
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.