Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
alfred [10.02.2017 15:27] – [Alfred-JSON] havelock | alfred [24.07.2017 09:41] – [Alfred-JSON] havelock | ||
---|---|---|---|
Zeile 3: | Zeile 3: | ||
siehe: http:// | siehe: http:// | ||
- | Produktiv wird die Version 2015.0 eingesetzt. | + | Produktiv wird die Version 2015.0 |
- | Es gibt bereits neuere Versionen | + | Ab der Version |
- | Wir setzen sie aber noch nicht für den Produktivbetrieb ein, | + | |
- | es gibt anscheinend Probleme: | + | |
can't bind: Cannot assign requested address | can't bind: Cannot assign requested address | ||
Failed to open interfaces | Failed to open interfaces | ||
Zeile 17: | Zeile 15: | ||
Details: In der Funktion '' | Details: In der Funktion '' | ||
- | mit '' | + | mit '' |
- | allerdings mit '' | + | |
Insbesondere bei Bridge-Interfaces schlägt dieses aus o.a. Gründen fehl. | Insbesondere bei Bridge-Interfaces schlägt dieses aus o.a. Gründen fehl. | ||
+ | |||
Voraussetzungen | Voraussetzungen | ||
aptitude install git cmake pkg-config ca-certificates | aptitude install git cmake pkg-config ca-certificates | ||
- | Für Version 2016.5 zusätzlich: | + | Für Version |
aptitude install libnl-genl-3-dev | aptitude install libnl-genl-3-dev | ||
Zeile 31: | Zeile 29: | ||
cd / | cd / | ||
aptitude install libcap-dev | aptitude install libcap-dev | ||
- | wget http:// | + | wget http:// |
- | tar xzf alfred-2015.0.tar.gz | + | tar xzf alfred-2017.1.tar.gz |
- | cd alfred-2015.0 | + | cd alfred-2017.1 |
</ | </ | ||
+ | |||
+ | ++++ Patch für alfred >= 2016.5 | | ||
+ | <file patch ffpi.patch> | ||
+ | diff --git a/netsock.c b/netsock.c | ||
+ | index 86db8a6..9b137f1 100644 | ||
+ | --- a/netsock.c | ||
+ | +++ b/netsock.c | ||
+ | @@ -25,6 +25,7 @@ | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | +#include < | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | @@ -210,6 +211,30 @@ out: | ||
+ | | ||
+ | } | ||
+ | |||
+ | +static int get_link_local_addr(uint32_t scope_id, struct in6_addr *addr) | ||
+ | +{ | ||
+ | + struct ifaddrs *ifaddr, *ifa; | ||
+ | + | ||
+ | + if (getifaddrs(& | ||
+ | + perror(" | ||
+ | + return -1; | ||
+ | + } | ||
+ | + for (ifa = ifaddr; ifa != NULL; ifa = ifa-> | ||
+ | + if (ifa-> | ||
+ | + continue; | ||
+ | + if (ifa-> | ||
+ | + continue; | ||
+ | + | ||
+ | + struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *) ifa-> | ||
+ | + if (sin6-> | ||
+ | + memcpy(addr, | ||
+ | + break; | ||
+ | + } | ||
+ | + } | ||
+ | + freeifaddrs(ifaddr); | ||
+ | + return 0; | ||
+ | +} | ||
+ | + | ||
+ | | ||
+ | { | ||
+ | int sock; | ||
+ | @@ -256,7 +281,10 @@ static int netsock_open(struct interface *interface) | ||
+ | | ||
+ | | ||
+ | | ||
+ | - memcpy(& | ||
+ | + if (get_link_local_addr(interface-> | ||
+ | + perror(" | ||
+ | + goto err; | ||
+ | + } | ||
+ | | ||
+ | |||
+ | | ||
+ | </ | ||
+ | ++++ | ||
Anschließend bauen. Den [[GPS]]-Daemon brauchen wir nicht | Anschließend bauen. Den [[GPS]]-Daemon brauchen wir nicht | ||
< | < | ||
+ | git apply -v ffpi.patch | ||
make CONFIG_ALFRED_GPSD=n | make CONFIG_ALFRED_GPSD=n | ||
make install CONFIG_ALFRED_GPSD=n | make install CONFIG_ALFRED_GPSD=n | ||
</ | </ | ||
- | |||
- | ++++ Informationen für Debian Wheezy: | Leider ist das Makefile unter Wheezy irgendwie kaputt, deshalb einfach entsprechend nachfolgendem Patch korrigieren: | ||
- | |||
- | <file patch alfred_make.patch> | ||
- | --- ../ | ||
- | +++ Makefile | ||
- | @@ -83,11 +83,12 @@ | ||
- | |||
- | ifeq ($(origin LIBCAP_CFLAGS) $(origin LIBCAP_LDLIBS), | ||
- | | ||
- | - ifeq ($(shell $(PKG_CONFIG) --modversion $(LIBCAP_NAME) 2>/ | ||
- | - $(error No $(LIBCAP_NAME) development libraries found!) | ||
- | - endif | ||
- | - LIBCAP_CFLAGS += $(shell $(PKG_CONFIG) --cflags $(LIBCAP_NAME)) | ||
- | - LIBCAP_LDLIBS += $(shell $(PKG_CONFIG) --libs $(LIBCAP_NAME)) | ||
- | +# ifeq ($(shell $(PKG_CONFIG) --modversion $(LIBCAP_NAME) 2>/ | ||
- | +# $(error No $(LIBCAP_NAME) development libraries found!) | ||
- | +# endif | ||
- | +# LIBCAP_CFLAGS += $(shell $(PKG_CONFIG) --cflags $(LIBCAP_NAME)) | ||
- | +# LIBCAP_LDLIBS += $(shell $(PKG_CONFIG) --libs $(LIBCAP_NAME)) | ||
- | + LIBCAP_LDLIBS += -lcap | ||
- | endif | ||
- | | ||
- | | ||
- | </ | ||
- | ++++ | ||
===== Alfred-JSON ===== | ===== Alfred-JSON ===== | ||
- | Wird nur auf dem Server benötigt wo der Meshviewer läuft. | + | Wird nur auf dem Server benötigt wo der Meshviewer läuft, zzw. ein Alfred im Master-Modus. |
Schadet ansonsten aber auch nicht. | Schadet ansonsten aber auch nicht. | ||
Zeile 98: | Zeile 131: | ||
===== Übersicht über die Alfred-Datenstrukturen ===== | ===== Übersicht über die Alfred-Datenstrukturen ===== | ||
- | ^ Datenblock 158 / alle 5 Minuten? | + | ^ Datenblock 158 / alle 5 Minuten? |
- | | network | + | | network |
- | | | addresses | + | | | addresses |
- | | | mesh_interfaces | + | | | mesh_interfaces |
- | | | mesh | < | + | | | mesh | < |
- | | | exitvpn | + | | | exitvpn |
- | | | + | | |
- | | node_id | + | | node_id |
- | | hostname | + | | hostname |
- | | hardware | + | | hardware |
- | | | nproc | | | + | | | nproc | | |
- | | owner | contact | + | | owner | contact |
- | | location | + | | location |
- | | | longitude | + | | | longitude |
- | | | altitude | + | | | altitude |
- | | system | + | | system |
- | | | role | + | | | role |
- | | software | + | | software |
- | | | + | | |
- | | | + | | |
- | | | autoupdater | + | | | autoupdater |
- | | | + | | |
- | | | batman-adv | + | | | batman-adv |
- | | | + | | |
- | | | firmware | + | | | firmware |
- | | | + | | |
^ Datenblock 159 / jede Minute? | ^ Datenblock 159 / jede Minute? |