eibd und linknx/knxweb auf Netgear WNDR3700 unter OpenWrt Attitude Adjustment

eibd und linknx/knxweb auf TP-LINK WDR4900 unter OpenWrt Barrier Breaker

knxd und linknx/knxweb unter OpenWrt Chaos Calmer

Im Jahr 2014 wurde im Projekt OpenWrt eine Trennung zwischen den Entwicklungsumgebungen für Basissystem und für Zusatzpakete vollzogen. Die Bereitstellung der Zusatzpakete erfolgt seither auf Github unter https://github.com/openwrt/packages. Als anfangs 2015 knxd als Fork von bcusdk ebenfalls auf Github unter https://github.com/knxd/knxd gestartet wurde, habe ich mich entschlossen, da mitzumachen und mich bei OpenWrt als Maintainer für folgende Pakete einzubringen:
  • pthsem
  • knxd
  • knxtools
  • linknx
  • libesmtp
  • apcupsd
  • Seither ist es somit nicht mehr nötig selber eine Build-Umgebung für OpenWrt zu erstellen und die Pakete für knxd oder linknx selber zu kompilieren. Unter https://downloads.openwrt.org/snapshots/trunk stehen die fertigen Pakete für alle unterstützen Plattformen auf dem neusten Stand zur Verfügung.

    Hinweis: der Rest dieser Seite und die verlinkten Informationen sind nicht mehr in allen Teilen aktuell, da ein Selbstbau der Pakete nicht mehr nötig ist.

    Motivation

    Folgende Zielsetzung wollte ich erreichen
  • Standalone-System mit minimalem Verbrauch (<10W)
  • optimales Preis/Leistungsverhältnis
  • System für Visualisierung, Logiken und Mailserver basierend auf eibd, linknx, knxweb, xmail
  • genügend Speicherplatz und ausreichende Systemressourcen

  • Mit dem Netgear WNDR3700 habe ich dank 8MB Flash, 64MB RAM, einer CPU mit 680MHz und einer USB Schnittstelle ein geeignetes Gerät gefunden. Dank der Hilfe vieler Informationsquellen habe ich das System nach vielen Stunden und vielen manuellen Schritten erfolgreich zum Laufen gebracht. Für einen vereinfachten Nachbau habe ich hier die Dokumentation zusammengefasst.

    Bereitstellung der OpenWrt Build-Umgebung und die Erzeugung der Module für eibd und linknx

    In diesem HowTo ist die Bereitstellung der Build-Umgebung für OpenWrt Attitude Adjustment sowie die Erzeugung der notwendigen Module für eibd und linknx beschrieben.
    Voraussetzung ist ein Linuxsystem sowie die Feeds für die Zusatzmodule sowie ein aktuelles Sourcetarfile mit eibd und linknx. Die OpenWrt Build-Umgebung auf Linux wird benötigt, damit weitere Module selber für OpenWrt kompiliert werden können.

    Bereitstellung des WNDR3700

    In diesem HowTo ist die Bereitstellung von OpenWrt mit den zusätzlichen Paketen für eibd und linknx und weiterer Funktionen auf dem WNDR3700 beschrieben. Als Basis verwendete ich das Original Attitude Adjustment Image openwrt-ar71xx-generic-wndr3700-squashfs-factory.img Release 12.09 von OpenWrt Download. Dazu kommen die notwendigen selber kompilierten Pakete (Pakete für Backfire).
    Der Grossteil der Zusatzpakete und die Daten werden dabei aus Platzgründen auf dem USB Stick installiert und gespeichert, welcher zu diesem Zweck unter /usb als EXT3 Filesystem eingebunden wird.

    Zusätzlich ist rrdcollect installiert um einen Überblick über die verwendeten Systemressourcen zu bekommen. Dafür war es nötig rrd.conf und rrdcollect.conf geeignet auf das System anzupassen. Das File /etc/init.d/rrdcollect wurde so erweitert, dass die aufgezeichneten Daten beim Start unter /var/lib/rrdcollect in die Laufzeitumgebung kopiert und beim Stop wieder auf den USB Stick gespeichert werden.

    Starten von eibd und linknx

    Das Startfile unter /etc/init.d/eibd wird mit dem Befehl "/etc/init.d/eibd enable" eingebunden.
    Das Startfile unter /etc/init.d/linknx wird mit dem Befehl "/etc/init.d/linknx enable" eingebunden. Aus Performance-Gründen werden zuerst die auf dem USB Stick gespeicherten Daten in die Laufzeitumgebung unter /var/lib/linknx bereitgestellt. Vor einem Reboot werden die Daten auch wieder auf den USB Stick gesichert. Und damit bei einem Stromunterbruch nicht allzu viel verloren geht, sorgt ein Cronjob für eine regelmässige Sicherung. Ein weiterer Cronjob setzt regelmässig die Logfiles zurück.

    Einrichten eines Security Gateway für den Zugriff vom Internet

    Unter der Verwendung eines Asus WL-500gP V2 habe ich gemäss diesem HowTo einen Dual-Homed Gateway mit Apache als SSL Reverse Proxy aufgebaut. Damit kann ich auf sichere Art mit Benutzeranmeldung vom Internet auf die internen Web-Services zugreifen und gleichzeitig Attacken direkt am Perimeter abwehren. Und Xmail dient als MTA, welcher Emails an den internen MTA weiterleitet, wo die Text-Befehle als Commands auf den KNX Bus geschickt werden. Weiter habe ich mit Hilfe von Racoon und xl2tpd einen L2TP/IPSEC Gateway für den VPN-Zugriff mittels iPhone eingerichtet.

    othmar(at)truniger.ch
    Letzte Änderungen:
    08.03.2011: Bereitstellung von Feeds, Sourcetarfile und Pakete für bcusdk-0.0.5
    10.03.2011: Bereitstellung von Feeds, Pakete für linknx-0.0.1.28
    25.08.2011: Fix für USB, Erneuerung aller Download-Objekte
    01.09.2011: Fix für bcusdk/Makefile, Pakete eibd und eibd-utils werden nun korrekt erstellt, aktualisiertes eibd-feed.tar.gz
    13.01.2012: Fix für libesmtp/Makefile, Nachführung für Backfire 10.3.1
    22.01.2012: Bereitstellung von Feeds, Pakete für linknx-0.0.1.29
    14.02.2012: Bereitstellung von Feeds, Pakete mit Korrektur für eibd-utils
    16.02.2012: Bereitstellung von Feeds, Pakete für linknx-0.0.1.30
    07.06.2012: Bereitstellung von Feeds, Pakete für linknx-0.0.1.31pre Stand 07.06.2013 CVS
    14.02.2013: Bereitstellung von Feeds, Pakete für linknx-0.0.1.31pre Stand 14.02.2013 CVS
    23.04.2013: Umstellung Dokumentation auf OpenWrt Attitude Adjustment sowie Bereitstellung von Feeds, Pakete für linknx-0.0.1.31pre Stand 23.04.2013 CVS
    28.04.2013: Bereitstellung von Feeds, Pakete für eibd, eibd-utils ohne Abhängigkeit von c++ Libraries
    23.11.2013: Bereitstellung von Feeds, Pakete für linknx-0.0.1.32
    10.12.2014: HowTo für TP-Link WDR4900 und die Pakete für Barrier Breaker