Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| alfred [21.11.2016 19:26] – [Alfred] havelock | alfred [24.07.2017 08:08] (aktuell) – [Tabelle] havelock | ||
|---|---|---|---|
| Zeile 3: | Zeile 3: | ||
| siehe: http:// | siehe: http:// | ||
| - | Es gibt bereits | + | Produktiv wird die Version |
| - | Wir setzen sie aber noch nicht für den Produktivbetrieb ein: | + | |
| - | <wrap em>Die o.a. Versionen funktionieren nicht und werden den Fehler: | + | Ab der Version 2015.1 gibt es anscheinend Probleme: |
| - | can't bind: Cannot assign requested address | + | can't bind: Cannot assign requested address |
| - | Failed to open interfaces | + | Failed to open interfaces |
| + | |||
| + | Das Verhalten tritt auf, wenn die Link-Lokale IPv6-Adresse des Bridge-Interfaces (über den Parameter '' | ||
| + | |||
| + | Wenn man das nicht macht, führt das Hinzufügen von '' | ||
| + | die Bridge die MAC vom '' | ||
| + | |||
| + | Details: In der Funktion '' | ||
| + | mit '' | ||
| + | Insbesondere bei Bridge-Interfaces schlägt dieses aus o.a. Gründen fehl. | ||
| - | Eventuell irgendetwas mit Multicast... | ||
| - | </ | ||
| 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: | ||
| + | aptitude install libnl-genl-3-dev | ||
| Quellen herunterladen und entpacken | Quellen herunterladen und entpacken | ||
| Zeile 20: | 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 |
| </ | </ | ||
| - | ++++ Informationen | + | ++++ Patch für alfred >= 2016.5 |
| - | + | <file patch ffpi.patch> | |
| - | <file patch alfred_make.patch> | + | diff --git a/netsock.c b/netsock.c |
| - | --- ../alfred_/ | + | index 86db8a6..9b137f1 100644 |
| - | +++ Makefile | + | --- a/netsock.c |
| - | @@ -83,11 +83,12 @@ | + | +++ b/ |
| + | @@ -25,6 +25,7 @@ | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | +#include < | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | @@ -210,6 +211,30 @@ out: | ||
| + | | ||
| + | } | ||
| - | ifeq ($(origin LIBCAP_CFLAGS) $(origin LIBCAP_LDLIBS), undefined undefined) | + | +static int get_link_local_addr(uint32_t scope_id, struct in6_addr *addr) |
| - | LIBCAP_NAME ?= libcap | + | +{ |
| - | - ifeq ($(shell $(PKG_CONFIG) --modversion $(LIBCAP_NAME) 2>/ | + | + struct ifaddrs *ifaddr, *ifa; |
| - | - $(error No $(LIBCAP_NAME) development libraries found!) | + | + |
| - | - endif | + | + if (getifaddrs(&ifaddr) == -1) { |
| - | - LIBCAP_CFLAGS | + | + perror(" |
| - | - LIBCAP_LDLIBS | + | + return |
| - | +# ifeq ($(shell $(PKG_CONFIG) | + | + } |
| - | +# $(error No $(LIBCAP_NAME) development libraries found!) | + | + for (ifa = ifaddr; ifa != NULL; ifa = ifa-> |
| - | +# endif | + | + if (ifa-> |
| - | +# LIBCAP_CFLAGS | + | + continue; |
| - | +# LIBCAP_LDLIBS += $(shell $(PKG_CONFIG) --libs $(LIBCAP_NAME)) | + | + if (ifa-> |
| - | + | + | + continue; |
| - | endif | + | + |
| - | | + | + struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *) ifa-> |
| - | CPPFLAGS | + | + if (sin6-> |
| + | + memcpy(addr, &sin6->sin6_addr | ||
| + | + break; | ||
| + | + } | ||
| + | + } | ||
| + | + freeifaddrs(ifaddr); | ||
| + | + return 0; | ||
| + | +} | ||
| + | + | ||
| + | | ||
| + | { | ||
| + | int sock; | ||
| + | @@ -256,7 +281,10 @@ static int netsock_open(struct interface *interface) | ||
| + | | ||
| + | sin6.sin6_port | ||
| + | | ||
| + | - memcpy(& | ||
| + | + if (get_link_local_addr(interface-> | ||
| + | + perror(" | ||
| + | + goto err; | ||
| + | + } | ||
| + | | ||
| + | |||
| + | | ||
| </ | </ | ||
| ++++ | ++++ | ||
| Zeile 53: | Zeile 96: | ||
| 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 | ||
| Zeile 60: | Zeile 104: | ||
| ===== 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 81: | Zeile 125: | ||
| make install | make install | ||
| </ | </ | ||
| + | |||
| + | Tests: | ||
| + | * '' | ||
| ===== Ü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 | + | | |
| - | | | + | | |
| - | | node_id | + | | | exitvpn |
| - | | hostname | + | | |
| - | | hardware | + | | node_id |
| - | | | nproc | | | + | | hostname |
| - | | owner | contact | + | | hardware |
| - | | location | + | | | nproc | | |
| - | | | longitude | + | | owner | contact |
| - | | | altitude | + | | location |
| - | | system | + | | | longitude |
| - | | | role | + | | | altitude |
| - | | software | + | | system |
| - | | | + | | | role |
| - | | | + | | software |
| - | | | autoupdater | + | | |
| - | | | + | | |
| - | | | batman-adv | + | | | autoupdater |
| - | | | + | | |
| - | | | firmware | + | | | batman-adv |
| - | | | + | | |
| + | | | firmware | ||
| + | | | ||
| ^ Datenblock 159 / jede Minute? | ^ Datenblock 159 / jede Minute? | ||
| Zeile 138: | Zeile 187: | ||
| | mesh_vpn | | mesh_vpn | ||
| | peers | | | | peers | | | ||
| + | |||
| + | ^ Datenblock 160 | ||
| + | | batadv | ||
| + | | | ||
| + | | wifi | < | ||
| + | | | ||
| + | | | ||
| + | | nodeid | ||
| TODO RESTORE | TODO RESTORE | ||