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 [14.01.2017 16:24] 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
  
-Produktiv wird die Version 2015.0 eingesetzt.+Produktiv wird die Version 2015.0 bzw. die gepatchte Version 2017.1 eingesetzt.
  
-Es gibt bereits neuere Versionen 2015.1, 2015.2 sowie 2016.x.  +Ab der Version 2015.1 gibt es anscheinend Probleme:
-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 15: Zeile 13:
 Wenn man das nicht macht, führt das Hinzufügen von ''bat0'' zur Bridge dazu, daß  Wenn man das nicht macht, führt das Hinzufügen von ''bat0'' zur Bridge dazu, daß 
 die Bridge die MAC vom ''bat0''-Interface übernimmt.  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.
 +
  
 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 >= 2016.5 zusätzlich: 
-  aptitude libnl-genl-3-dev+  aptitude install libnl-genl-3-dev
  
 Quellen herunterladen und entpacken Quellen herunterladen und entpacken
Zeile 26: 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 87: 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 144: 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.1484407455.txt.gz · Zuletzt geändert: 14.01.2017 16:24 von havelock