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
alfred [06.05.2016 10:26] – [Alfred-JSON] havelockalfred [24.07.2017 10:08] (aktuell) – [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
 <code> <code>
-cd /usr/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>
  
-++++ Informationen für Debian Wheezy: Leider ist das Makefile unter Wheezy irgendwie kaputt, deshalb einfach entsprechend nachfolgendem Patch korrigieren: +++++ Patch für alfred >= 2016.5 
- +<file patch ffpi.patch> 
-<file patch alfred_make.patch> +diff --git a/netsock.c b/netsock.c 
---- ../alfred_/Makefile 2015-05-01 23:47:25.179644579 +0000 +index 86db8a6..9b137f1 100644 
-+++ Makefile    2015-05-02 00:11:56.251644579 +0000 +--- a/netsock.c 
-@@ -83,11 +83,12 @@++++ 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,+211,30 @@ out: 
 +  return ret; 
 + }
    
-   ifeq ($(origin LIBCAP_CFLAGS) $(origin LIBCAP_LDLIBS)undefined undefined++static int get_link_local_addr(uint32_t scope_idstruct in6_addr *addr
-     LIBCAP_NAME ?= libcap ++{ 
--    ifeq ($(shell $(PKG_CONFIG) --modversion $(LIBCAP_NAME) 2>/dev/null),++ struct ifaddrs *ifaddr, *ifa; 
-     $(error No $(LIBCAP_NAME) development libraries found!) +
-   endif ++ if (getifaddrs(&ifaddr== -1) { 
--    LIBCAP_CFLAGS += $(shell $(PKG_CONFIG) --cflags $(LIBCAP_NAME)++ perror("getifaddrs"); 
--    LIBCAP_LDLIBS +=  $(shell $(PKG_CONFIG) --libs $(LIBCAP_NAME)++ return -1; 
-+#    ifeq ($(shell $(PKG_CONFIG) --modversion $(LIBCAP_NAME) 2>/dev/null),) ++ } 
-+#      $(error No $(LIBCAP_NAME) development libraries found!++ for (ifa = ifaddr; ifa != NULL; ifa = ifa->ifa_next{ 
-+#    endif ++ if (ifa->ifa_addr == NULL) 
-+#    LIBCAP_CFLAGS += $(shell $(PKG_CONFIG) --cflags $(LIBCAP_NAME)) ++ continue; 
-+#    LIBCAP_LDLIBS + $(shell $(PKG_CONFIG) --libs $(LIBCAP_NAME)) ++ if (ifa->ifa_addr->sa_family != AF_INET6
-   LIBCAP_LDLIBS += -lcap ++ continue; 
-   endif +
-   CFLAGS += $(LIBCAP_CFLAGS++ struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *ifa->ifa_addr; 
-   CPPFLAGS += -DCONFIG_ALFRED_CAPABILITIES++ 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> </file>
 ++++ ++++
Zeile 53: Zeile 96:
 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
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
 </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        |              |                                                 Liste der Adressen               
-|                                   | mesh_interfaces  |              |                                                               +|                                   | mesh_interfaces  |              |                                                                                  
-|                                   | mesh             | <interface>  | interfaces  | wireless                                         +|                                   | mesh             | <interface>  | interfaces  | wireless                                                            | 
-|                                   | exitvpn          | provider                           | mullvad            | nur für Gate         +|                                                    |              |             | tunnel    |                                                            | 
-|                                                    | country      |                       | NL                 | nur für Gate         +|                                                    |              |             | other                                                                
-| node_id                                            |              |                                                               +|                                   | exitvpn          | provider                           | mullvad                   | nur für Gate                     
-| hostname                          |                  |              |                       | ffpi-test01                             +|                                                    | country      |                       | NL                        | nur für Gate                     
-| hardware                          | model            |              |                                                               +| node_id                                            |              |                                                                                  
-|                                   | nproc            |              |                       | 1                                       +| hostname                          |                  |              |                       | ffpi-test01                                                
-| owner                             | contact          |              |                       | bernd@example.com                       +| hardware                          | model            |              |                       TP-Link TL-WR1043N/ND v2                                   
-| location                          | latitude                      |                                                               +|                                   | nproc            |              |                       | 1                                                          
-|                                   | longitude        |              |                                                               +| owner                             | contact          |              |                       | bernd@example.com                                          
-|                                   | altitude                      |                                          | Nutzung noch unklar  +| location                          | latitude                      |                                                                                  
-| system                            | site_code        |              |                       | ffpi                                    +|                                   | longitude        |              |                                                                                  
-|                                   | role                          |                       | node                                    +|                                   | altitude                      |                                                 | Nutzung noch unklar              
-| software                          | fastd            | enabled      |                                                               +| system                            | site_code        |              |                       | ffpi                                                       
-|                                                    | version      |                       | v17                                     +|                                   | role                          |                       | node                                                       
-|                                                    | port                               | 10000                                   +| software                          | fastd            | enabled      |                       true                                                       
-|                                   | autoupdater      | enabled      |                                                               | +|                                                    | version      |                       | v17                                                        
-|                                                    | branch                             | stable                                  +|                                                    | port                               | 10000                                                      
-|                                   | batman-adv       | version      |                       | 2015.0                                  +|                                   | autoupdater      | enabled      |                       true                      |                                  
-|                                                    | compat                                                                     +|                                                    | branch                             | stable                                                     
-|                                   | firmware         | base                                                                       +|                                   | batman-adv       | version      |                       | 2015.0                                                     
-|                                                    | release      |                                                               |+|                                                    | compat                             15                                                         
 +|                                   | firmware         | base                               gluon-v2016.2.4           Betriebssystemversion            
 +|                                                    | release      |                       0.8.1                     Pinneberger Firmwarebezeichnung  |
  
 ^ Datenblock 159 / jede Minute?                                                          |||||^ Beschreibung                       ^ ^ Datenblock 159 / jede Minute?                                                          |||||^ Beschreibung                       ^
Zeile 138: Zeile 187:
 | 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.1462523192.txt.gz · Zuletzt geändert: 06.05.2016 10:26 von havelock