Wiki - Freifunk Pinneberg

Freies WLAN im Kreis Pinneberg

Benutzer-Werkzeuge

Webseiten-Werkzeuge


alfred

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
alfred [14.01.2017 08:56] – [Alfred] havelockalfred [24.07.2017 10:03] – [Tabelle] havelock
Zeile 3: Zeile 3:
 siehe: http://www.open-mesh.org/projects/alfred/wiki siehe: http://www.open-mesh.org/projects/alfred/wiki
  
-Es gibt bereits die Versionen 2015.1, 2015.2 sowie 2016.0 +Produktiv wird die Version 2015.0 bzwdie gepatchte Version 2017.1 eingesetzt.
-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 ''-i'') nicht zu der MAC-Adresse paßt. Vermutlich kann als Workaround die MAC-Adresse für das betreffende Interface mit ''bridge_hw <MAC>'' fixiert werden. 
 + 
 +Wenn man das nicht macht, führt das Hinzufügen von ''bat0'' zur Bridge dazu, daß  
 +die Bridge die MAC vom ''bat0''-Interface übernimmt.  
 + 
 +Details: In der Funktion ''netsock_open'' in ''netsock.c'' wird in Version 2015.0 ein bind 
 +mit ''in6addr_any'' gemacht. In den darauffolgenden Versionen geht der bind auf die Interface-Adresse, die allerdings mit ''mac_to_ipv6(&interface->hwaddr, &interface->address);'' ermittelt wurde. 
 +Insbesondere bei Bridge-Interfaces schlägt dieses aus o.a. Gründen fehl.
  
-Eventuell irgendetwas mit Multicast... 
-</wrap> 
  
 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 /usr/local/src cd /usr/local/src
 aptitude install libcap-dev aptitude install libcap-dev
-wget http://downloads.open-mesh.org/batman/stable/sources/alfred/alfred-2015.0.tar.gz +wget http://downloads.open-mesh.org/batman/stable/sources/alfred/alfred-2017.1.tar.gz 
-tar xzf alfred-2015.0.tar.gz +tar xzf alfred-2017.1.tar.gz 
-cd alfred-2015.0+cd alfred-2017.1
 </code> </code>
 +
 +++++ 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 <net/ethernet.h>
 + #include <net/if.h>
 + #include <netinet/in.h>
 ++#include <ifaddrs.h>
 + #include <stdio.h>
 + #include <string.h>
 + #include <sys/ioctl.h>
 +@@ -210,6 +211,30 @@ out:
 +  return ret;
 + }
 + 
 ++static int get_link_local_addr(uint32_t scope_id, struct in6_addr *addr)
 ++{
 ++ struct ifaddrs *ifaddr, *ifa;
 ++
 ++ if (getifaddrs(&ifaddr) == -1) {
 ++ perror("getifaddrs");
 ++ return -1;
 ++ }
 ++ for (ifa = ifaddr; ifa != NULL; ifa = ifa->ifa_next) {
 ++ if (ifa->ifa_addr == NULL)
 ++ continue;
 ++ if (ifa->ifa_addr->sa_family != AF_INET6)
 ++ continue;
 ++
 ++ struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *) ifa->ifa_addr;
 ++ if (sin6->sin6_scope_id == scope_id) {
 ++ memcpy(addr, &sin6->sin6_addr ,sizeof(struct in6_addr));
 ++ break;
 ++ }
 ++ }
 ++ freeifaddrs(ifaddr);
 ++ return 0;
 ++}
 ++
 + static int netsock_open(struct interface *interface)
 + {
 +  int sock;
 +@@ -256,7 +281,10 @@ static int netsock_open(struct interface *interface)
 +  memset(&sin6, 0, sizeof(sin6));
 +  sin6.sin6_port = htons(ALFRED_PORT);
 +  sin6.sin6_family = AF_INET6;
 +- memcpy(&sin6.sin6_addr, &interface->address, sizeof(sin6.sin6_addr));
 ++ if (get_link_local_addr(interface->scope_id, &sin6.sin6_addr) < 0) {
 ++ perror("cannot get link local address");
 ++ goto err;
 ++ }
 +  sin6.sin6_scope_id = interface->scope_id;
 + 
 +  memset(&sin6_mc, 0, sizeof(sin6_mc));
 +</file>
 +++++
  
 Anschließend bauen. Den [[GPS]]-Daemon brauchen wir nicht Anschließend bauen. Den [[GPS]]-Daemon brauchen wir nicht
 <code> <code>
 +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
 </code> </code>
- 
-++++ Informationen für Debian Wheezy: | Leider ist das Makefile unter Wheezy irgendwie kaputt, deshalb einfach entsprechend nachfolgendem Patch korrigieren: 
- 
-<file patch alfred_make.patch> 
---- ../alfred_/Makefile 2015-05-01 23:47:25.179644579 +0000 
-+++ Makefile    2015-05-02 00:11:56.251644579 +0000 
-@@ -83,11 +83,12 @@ 
-  
-   ifeq ($(origin LIBCAP_CFLAGS) $(origin LIBCAP_LDLIBS), undefined undefined) 
-     LIBCAP_NAME ?= libcap 
--    ifeq ($(shell $(PKG_CONFIG) --modversion $(LIBCAP_NAME) 2>/dev/null),) 
--      $(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>/dev/null),) 
-+#      $(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 
-   CFLAGS += $(LIBCAP_CFLAGS) 
-   CPPFLAGS += -DCONFIG_ALFRED_CAPABILITIES 
-</file> 
-++++ 
  
  
 ===== 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
 </code> </code>
 +
 +Tests:
 +  * ''alfred-json -zr 158''
  
 ===== Übersicht über die Alfred-Datenstrukturen ===== ===== Übersicht über die Alfred-Datenstrukturen =====
  
-^ Datenblock 158 / alle 5 Minuten?                                                          ||||^ Beispiel           ^ Beschreibung         +^ Datenblock 158 / alle 5 Minuten?                                                          ||||^ Beispiel           ^ Beschreibung                     
-| network                           | mac              |              |                                          |                      +| network                           | mac              |              |                                          |                                  
-|                                   | addresses        |              |                                          |                      +|                                   | addresses        |              |                                          |                                  
-|                                   | mesh_interfaces  |              |                                          |                      +|                                   | mesh_interfaces  |              |                                          |                                  
-|                                   | mesh             | <interface>  | interfaces  | wireless  |                    |                      +|                                   | mesh             | <interface>  | interfaces  | wireless  |                    |                                  
-|                                   | exitvpn          | provider                           | mullvad            | nur für Gate         +|                                   | exitvpn          | provider                           | mullvad            | nur für Gate                     
-|                                                    | country      |                       | NL                 | nur für Gate         +|                                                    | country      |                       | NL                 | nur für Gate                     
-| node_id                                            |              |                                          |                      +| node_id                                            |              |                                          |                                  
-| hostname                          |                  |              |                       | ffpi-test01        |                      +| hostname                          |                  |              |                       | ffpi-test01        |                                  
-| hardware                          | model            |              |                                          |                      +| hardware                          | model            |              |                                          |                                  
-|                                   | nproc            |              |                       | 1                  |                      +|                                   | nproc            |              |                       | 1                  |                                  
-| owner                             | contact          |              |                       | bernd@example.com                      +| owner                             | contact          |              |                       | bernd@example.com                                  
-| location                          | latitude                      |                                          |                      +| location                          | latitude                      |                                          |                                  
-|                                   | longitude        |              |                                          |                      +|                                   | longitude        |              |                                          |                                  
-|                                   | altitude                      |                                          | Nutzung noch unklar  +|                                   | altitude                      |                                          | Nutzung noch unklar              
-| system                            | site_code        |              |                       | ffpi                                    +| system                            | site_code        |              |                       | ffpi                                                
-|                                   | role                          |                       | node                                    +|                                   | role                          |                       | node                                                
-| software                          | fastd            | enabled      |                                          |                      +| software                          | fastd            | enabled      |                                          |                                  
-|                                                    | version      |                       | v17                |                      +|                                                    | version      |                       | v17                |                                  
-|                                                    | port                               | 10000              |                      +|                                                    | port                               | 10000              |                                  
-|                                   | autoupdater      | enabled      |                                          |                      +|                                   | autoupdater      | enabled      |                                          |                                  
-|                                                    | branch                             | stable                                  +|                                                    | branch                             | stable                                              
-|                                   | batman-adv       | version      |                       | 2015.0                                  +|                                   | batman-adv       | version      |                       | 2015.0                                              
-|                                                    | compat                                                |                      +|                                                    | compat                                                |                                  
-|                                   | firmware         | base                                                                       +|                                   | firmware         | base                               gluon-v2016.2.4    Betriebssystemversion            
-|                                                    | release      |                                                               |+|                                                    | release      |                       8.8                Pinneberger Firmwarebezeichnung  |
  
 ^ Datenblock 159 / jede Minute?                                                          |||||^ Beschreibung                       ^ ^ Datenblock 159 / jede Minute?                                                          |||||^ Beschreibung                       ^
Zeile 138: Zeile 185:
 | mesh_vpn                       | groups   | backbone  | peers  | <peername>  |  established |                                    | | mesh_vpn                       | groups   | backbone  | peers  | <peername>  |  established |                                    |
 | peers                          |          |                  |                          | Nur Gate, Anzahl fastd VPN  Peers  | | peers                          |          |                  |                          | Nur Gate, Anzahl fastd VPN  Peers  |
 +
 +^ Datenblock 160                                             |||||^ Beschreibung  ^
 +| batadv          | <mac>  | neighbours  | <mac>  | lastseen  |                 |
 +|                        |                    | tq        |                 |
 +| wifi            | <mac>  | neighbours  | <mac>  | noise                     |
 +|                        |                    | inactive  |                 |
 +|                        |                    | signal    |                 |
 +| nodeid          |        |                    |                           |
  
 TODO RESTORE TODO RESTORE
alfred.txt · Zuletzt geändert: 24.07.2017 10:08 von havelock