Neues Paket in Firmware aufnehmen: Unterschied zwischen den Versionen

Aus Freifunk Franken
Wechseln zu:Navigation, Suche
 
Zeile 1: Zeile 1:
=Ein neues Paket in die Firmware aufnehmen=
==Am Beispiel des Tunneldigger für l2tp==
==Am Beispiel des Tunneldigger für l2tp==



Aktuelle Version vom 2. März 2016, 18:16 Uhr

Am Beispiel des Tunneldigger für l2tp

Also der aktuelle Entwicklungsstand liegt aktuell hier:

https://github.com/FreifunkFranken/firmware/commits/master

Da kannst du auch sehen welche Entwicklungen zuletzt aufgenommen wurden.

Das letzte beta Relase findest du hier:

https://github.com/FreifunkFranken/firmware/commits/20160213-beta

Ich würde jetzt so vorgehen:

  • gucken was das is:

https://github.com/wlanslovenija/tunneldigger

  • Oha.. Da gibts Doku:

http://tunneldigger.readthedocs.org/en/latest/

  • Hm, da könnte unter "Client installation" stehen wie man das

installiert: http://tunneldigger.readthedocs.org/en/latest/client.html#openwrt-package

  • *große Augen* .. Prima. Es gibt ein OpenWRT Package!
  • Kurz vor Freude in die Luft springen
  • buildscript anpassen

Ich füge dort den OpenWRT Feed von WlanSlovanija hinzu, weil laut der Doku oben da drin das Tunneldigger OpenWRT Package liegt:

WLANSLOVENIJA=(wlanslovenija$
              https://github.com/wlanslovenija/firmware-packages-opkg$
              fec592e0540ef883bc8b27b77e7ff45d93ed3f24)$

Dann sage ich, dass wir von diesem Feed nur dieses eine Package benötigen:

WLANSLOVENIJA_PKGS="tunneldigger"$

Zuletzt aktiviere ich den Feed:

FEEDS=(OPENWRT ROUTING BATMAN_ADV WLANSLOVENIJA FFF)$
  • Danach muss ich natürlich meine komplette Buildumgebung

neuaufbauen weil sich die Quellen ja ändern. Zum Glück kann das das buildscript für machen:

./buildscript prepare

Nun möchte ich wissen, ob das in unserem OpenWRT drin ist:

./buildscript config openwrt
  • Ui, viele Sachen.. Ich geb einfach ein Slash ('/') ein und kann damit

nach "tunneldigger" suchen. In der Anzeige wird mir sogar gezeigt wo ich das finde. In dem Fall hier: Location: -> Network Also .. Exit, danach ins Network Menü. Dann mit dem Curser auf Tunneldigger und zweimal die Leertaste drücken, damit da ein '*' steht. Sternchen bedeutet: Wird fest eincompiled. Das Mmmm bedeutet: Wird als nachinstallierbares OPKG erzeugt.

  • Danach paar mal Exit und Speichern
  • das buildscript hatte am Anfang die OpenWRT config zurecht gebastelt.

Nun möchte es wissen, ob die neue Config auch verwendet werden soll. -> Ja, natürlich! Also 'y'..

  • Gucken was passiert ist..
git status
  • Ui da tauchen nun zwei Sachen auf:
a) geändert:       bsp/ar71xx/.config
b) Unbeobachtete Dateien: src/packages/wlanslovenija/

b) nervt nur rum, also wollen wir das ignorieren. Dazu tragen wir den Pfad in die .gitignore Datei ein:

echo 'src/packages/wlanslovenija' >> .gitignore

a) ist spannender. Wollen wir sehen:

git diff bsp/ar71xx/.config

Wir sehen, dass Tunneldigger angegangen ist und noch dessen Abhängigkeiten.

  • Coool.. Dann kann ich jetzt bauen?

Joar, für einen ersten Schuss sollte es reichen.

Was danach noch zu tun ist:

  • Tunneldigger experimentell auf dem Knoten einrichten/konfigurieren
  • Ein src/packages/fff/fff-tunneldigger Package schreiben, was diese

Konfiguration erledigen kann.

  • fff-tunneldigger sollte von tunneldigger abhängig sein
  • Wenn tunneldigger dann per default aktiviert sein soll, muss das Paket

fff von fff-tunneldigger abhängig gemacht werden.

Ich will einfach nur den tunneldigger auf dem Router haben!

In dem Fall kannst du einfach die Patches, die unmittelbar nach dieser Mail auf der dev-Mailingliste landen verwenden.

[RFC PATCH 1/3] buildscript: add tunneldigger from wlanslovenija
[RFC PATCH 2/3] fff-tunneldigger: new placeholder for tunneldigger
[RFC PATCH 3/3] fff: activate fff-tunneldigger

Dazu die Patch E-Mails einfach komplett als mbox speichern und mit git am <path/to/mail.mbox> anwenden. (bei Thunderbird scheint das eml und nicht mbox zu heißen)

Tim

Hier entsteht eine Anleitung, wie der Tunneldigger und Broker installiert und konfiguriert wird.

Die Patches :

Signed-off-by: Tim Niemeyer <tim@tn-x.org>
---

 .gitignore  | 1 +
 buildscript | 7 ++++++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/.gitignore b/.gitignore
index 243d3c8..504abec 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,5 +8,6 @@ src/packages/fastd
 src/packages/openwrt
 src/packages/batman_adv
 src/packages/routing
+src/packages/wlanslovenija
 .project
 ./*.patch
diff --git a/buildscript b/buildscript
index ec9ae64..b0d3d1b 100755
--- a/buildscript
+++ b/buildscript
@@ -39,10 +39,15 @@ ROUTING=(routing
          e870c3373eea80df852d42fac3f40aaffd7a0f58)
 ROUTING_PKGS="alfred"
 
+WLANSLOVENIJA=(wlanslovenija
+               https://github.com/wlanslovenija/firmware-packages-opkg
+               fec592e0540ef883bc8b27b77e7ff45d93ed3f24)
+WLANSLOVENIJA_PKGS="tunneldigger"
+
 FFF=(fff)
 FFF_PKGS="-a"
 
-FEEDS=(OPENWRT ROUTING BATMAN_ADV FFF)
+FEEDS=(OPENWRT ROUTING BATMAN_ADV WLANSLOVENIJA FFF)
 
 checkout_git(){
     local DIRECTORY=$1
-- 
2.1.4

Signed-off-by: Tim Niemeyer <tim@tn-x.org>
---

 src/packages/fff/fff-tunneldigger/Makefile | 40 ++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)
 create mode 100644 src/packages/fff/fff-tunneldigger/Makefile

diff --git a/src/packages/fff/fff-tunneldigger/Makefile b/src/packages/fff/fff-tunneldigger/Makefile
new file mode 100644
index 0000000..0526e7b
--- /dev/null
+++ b/src/packages/fff/fff-tunneldigger/Makefile
@@ -0,0 +1,40 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=fff-tunneldigger
+PKG_VERSION:=1
+PKG_RELEASE:=1
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/fff-tunneldigger
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/fff-tunneldigger
+    SECTION:=base
+    CATEGORY:=Freifunk
+    TITLE:= Freifunk-Franken tunneldigger
+    URL:=http://www.freifunk-franken.de
+    DEPENDS:=+tunneldigger
+endef
+
+define Package/fff-tunneldigger/description
+    This is tunneldigger for the Freifunk Franken Firmware
+	Currently this package is a placeholder
+endef
+
+define Build/Prepare
+	echo "all: " > $(PKG_BUILD_DIR)/Makefile
+endef
+
+define Build/Configure
+	# nothing
+endef
+
+define Build/Compile
+	# nothing
+endef
+
+define Package/fff-tunneldigger/install
+    # nothing
+endef
+
+$(eval $(call BuildPackage,fff-tunneldigger))
-- 
2.1.4

Signed-off-by: Tim Niemeyer <tim@tn-x.org>
---

 src/packages/fff/fff/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/packages/fff/fff/Makefile b/src/packages/fff/fff/Makefile
index f480031..2ca416a 100644
--- a/src/packages/fff/fff/Makefile
+++ b/src/packages/fff/fff/Makefile
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=fff
 PKG_VERSION:=0.0.1
-PKG_RELEASE:=5
+PKG_RELEASE:=6
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/fff
 
@@ -14,7 +14,7 @@ define Package/fff-base
     DEFAULT:=y
     TITLE:= Freifunk-Franken Base
     URL:=http://www.freifunk-franken.de
-    DEPENDS:=+micrond +fff-nodewatcher +fff-web +fff-uradvd
+    DEPENDS:=+micrond +fff-nodewatcher +fff-web +fff-uradvd +fff-tunneldigger
 endef
 
 define Package/fff-base/description
-- 
2.1.4