Merge pull request 'master' (#2) from freifunk-franken/firmware:master into master

Reviewed-on: #2
This commit is contained in:
Robert Langhammer 2020-12-18 17:03:03 +01:00
commit 435da23e46
47 changed files with 124 additions and 64 deletions

View File

@ -9,12 +9,11 @@ Weitere Informationen gibt es auf <https://freifunk.net/> und auf <https://wiki.
# Firmware selbst kompilieren
## Voraussetzungen
* `apt-get install zlib1g-dev lua5.2 build-essential unzip libncurses-dev gawk git subversion realpath libssl-dev` (Sicherlich müssen noch mehr Abhängigkeiten installiert werden, diese Liste wird sich hoffentlich nach und nach füllen. Ein erster Ansatzpunkt sind die Abhängigkeiten von OpenWrt selbst)
* `git clone https://github.com/FreifunkFranken/firmware.git`
* `git clone https://git.freifunk-franken.de/freifunk-franken/firmware.git`
* `cd firmware`
## Erste Schritte
Je nachdem, für welche Hardware die Firmware gebaut werden soll, muss das BSP gewählt werden:
* `./buildscript selectbsp bsp/ath79-generic.bsp`
* Um die vorhandenen BSPs zu sehen, kann `./buildscript selectbsp help` ausgeführt werden.
@ -30,11 +29,15 @@ Die Daten des BSP werden nie alleine verwendet. Zuerst werden immer die Daten au
Die BSP-Datei wird durch das Buildscript automatisch als dot-Script geladen, somit stehen dort alle Funktionen zur Verfügung.
Das Buildscript generiert ein dynamisches sed-Script. Dies geschieht, damit die Templates mit den richtigen Werten gefüllt werden können.
### `./buildscript selectvariant`
Hier wählt man aus ob man Node Firmware oder Layer3 Firmware bauen möchte:
* `./buildscript selectvariant [node/layer3]`
* Um die verschiedenen Varianten zu sehen, kann `./buildscript selectvariant help` ausgeführt werden.
### `./buildscript prepare`
* Sourcen werden in einen separaten src-Folder geladen, sofern diese nicht schon da sind. Zu den Sourcen zählen folgende Komponenten:
* OpenWrt
* Sämtliche Packages (ggf. werden Patches angewandt)
* Eine OpenWrt Feed-Config wird mit dem lokalen Source Verzeichnis als Quelle angelegt
* Die Feeds werden geladen
* Spezielle Auswahl an Paketen wird geladen
@ -50,7 +53,11 @@ Dieses Kommando arbeitet folgendermaßen:
* Config-Format vereinfachen
* Config ins BSP zurück speichern
### `./buildscript updatefeeds`
Aktualisiert die OpenWrt Feeds für zusätzliche Pakete, die in die Firmware eingebaut werden. Dabei werden die Referenzen im build/ Verzeichnis aktualisiert. Dieser Schritt wird bereits von `./buildscript prepare` übernommen, daher ist dies nur bei manuellen Änderungen der Feeds nötig.
### `./buildscript build`
Sollte man am besten mit Hilfe des Tools 'screen' oder ähnlichem laufen lassen um einen Abbruch des Builds bei Verbindungsproblemen oder ähnlichem zu verhindern.
* prebuild
* $target/files aufräumen
* (In $target/files liegen Dateien, die später direkt im Ziel-Image landen)
@ -63,12 +70,15 @@ Dieses Kommando arbeitet folgendermaßen:
* postbuild
* board_postbuild() wird aufgerufen
### `./buildscript buildall`
Kann verwendet werden um für alle BSPs Firmware zu bauen. Das kann jedoch mehrere Stunden dauern.
## Erweiterung eines BSPs
Beispielhaftes Vorgehen um den WR1043V2 zu unterstützen.
### Repository auschecken
```
git clone https://github.com/FreifunkFranken/firmware.git
git clone https://git.freifunk-franken.de/freifunk-franken/firmware.git
cd firmware
```

View File

@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=fff-babeld
PKG_RELEASE:=2
PKG_RELEASE:=4
PKG_BUILD_DIR:=$(BUILD_DIR)/fff-babeld

View File

@ -37,6 +37,11 @@ uci batch <<EOF
set network.@rule6[2].in='mesh'
set network.@rule6[2].lookup='10'
set network.@rule6[2].priority='31'
add network rule6
set network.@rule6[3]=rule6
set network.@rule6[3].src='::/0'
set network.@rule6[3].lookup='10'
set network.@rule6[3].priority='32000'
EOF
uci commit network

View File

@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=fff-dhcp
PKG_RELEASE:=2
PKG_RELEASE:=3
PKG_BUILD_DIR:=$(BUILD_DIR)/fff-dhcp

View File

@ -10,7 +10,7 @@ include $(INCLUDE_DIR)/package.mk
define Package/$(PKG_NAME)
SECTION:=base
CATEGORY:=Freifunk
TITLE:= Freifunk-Franken hoods
TITLE:=Freifunk-Franken hoods
URL:=http://www.freifunk-franken.de
DEPENDS:=+fff-hoodutils +fff-macnock +fff-vpn-select +fff-firewall \
+fff-timeserver +fff-network +fff-wireless +jshn \

View File

@ -10,7 +10,7 @@ include $(INCLUDE_DIR)/package.mk
define Package/$(PKG_NAME)
SECTION:=base
CATEGORY:=Freifunk
TITLE:= Freifunk-Franken hoodutils
TITLE:=Freifunk-Franken hoodutils
URL:=http://www.freifunk-franken.de
DEPENDS:=+fff-network +fff-config
endef

View File

@ -0,0 +1,42 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=fff-layer3-config
PKG_RELEASE:=1
PKG_BUILD_DIR:=$(BUILD_DIR)/fff-layer3-config
include $(INCLUDE_DIR)/package.mk
define Package/fff-layer3-config
SECTION:=base
CATEGORY:=Freifunk
TITLE:=Freifunk-Franken Layer3 firmware configuration tools
URL:=https://www.freifunk-franken.de
DEPENDS:= \
+fff-boardname \
+fff-config \
+fff-dhcp \
+fff-network
endef
define Package/fff-layer3-config/description
This package provides the means for configuring the gateway
endef
define Build/Prepare
echo "all: " > $(PKG_BUILD_DIR)/Makefile
endef
define Build/Configure
# nothing
endef
define Build/Compile
# nothing
endef
define Package/fff-layer3-config/install
$(CP) ./files/* $(1)/
endef
$(eval $(call BuildPackage,fff-layer3-config))

View File

@ -18,7 +18,7 @@ execute_subshell() {
echo "Usage:" "$0" "<function>"
fi
for script in /etc/gateway.d/*; do
for script in /etc/layer3.d/*; do
(
# unset function to prevent executing parents shell function
unset -f "$1"

View File

@ -1,13 +1,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=fff-gateway
PKG_RELEASE:=6
PKG_NAME:=fff-layer3
PKG_RELEASE:=7
PKG_BUILD_DIR:=$(BUILD_DIR)/fff-gateway
PKG_BUILD_DIR:=$(BUILD_DIR)/fff-layer3
include $(INCLUDE_DIR)/package.mk
define Package/fff-gateway
define Package/fff-layer3
SECTION:=base
CATEGORY:=Freifunk
TITLE:=Freifunk-Franken gateway configuration
@ -16,6 +16,7 @@ define Package/fff-gateway
+fff-babeld \
+fff-boardname \
+fff-dhcp \
+fff-layer3-config \
+fff-network \
+fff-ra \
+fff-wireguard \
@ -39,8 +40,8 @@ define Package/fff-gateway
+vxlan
endef
define Package/fff-gateway/description
This package configures the gateway
define Package/fff-layer3/description
This package provides the packages and settings for the layer 3 firmware
endef
define Build/Prepare
@ -55,8 +56,8 @@ define Build/Compile
# nothing
endef
define Package/fff-gateway/install
define Package/fff-layer3/install
$(CP) ./files/* $(1)/
endef
$(eval $(call BuildPackage,fff-gateway))
$(eval $(call BuildPackage,fff-layer3))

View File

@ -16,7 +16,7 @@ CMAKE_OPTIONS:=-DMACNOCK_DEBUG=ON
define Package/$(PKG_NAME)
SECTION:=base
CATEGORY:=Freifunk
TITLE:= Freifunk-Franken mac nocker
TITLE:=Freifunk-Franken mac nocker
URL:=http://www.freifunk-franken.de
KCONFIG:= \
CONFIG_NET_EMATCH=y \

View File

@ -10,7 +10,7 @@ include $(INCLUDE_DIR)/package.mk
define Package/$(PKG_NAME)
SECTION:=base
CATEGORY:=Freifunk
TITLE:= Freifunk-Franken network configuration
TITLE:=Freifunk-Franken network configuration
URL:=http://www.freifunk-franken.de
DEPENDS:=+fff-boardname +fff-firewall
endef

View File

@ -10,7 +10,7 @@ include $(INCLUDE_DIR)/package.mk
define Package/$(PKG_NAME)
SECTION:=base
CATEGORY:=Freifunk
TITLE:= Freifunk-Franken Nodewatcher
TITLE:=Freifunk-Franken Nodewatcher
URL:=http://www.freifunk-franken.de
DEPENDS:=+fff-alfred +micrond +fff-config +fff-random +ip +ip-bridge
endef

View File

@ -10,7 +10,7 @@ include $(INCLUDE_DIR)/package.mk
define Package/$(PKG_NAME)
SECTION:=base
CATEGORY:=Freifunk
TITLE:= Freifunk-Franken uradvd
TITLE:=Freifunk-Franken uradvd
URL:=http://www.freifunk-franken.de
DEPENDS:=+uradvd
endef

View File

@ -10,7 +10,7 @@ include $(INCLUDE_DIR)/package.mk
define Package/$(PKG_NAME)
SECTION:=base
CATEGORY:=Freifunk
TITLE:= Freifunk-Franken vpn-select
TITLE:=Freifunk-Franken vpn-select
URL:=http://www.freifunk-franken.de
DEPENDS:=+fff-fastd
endef

View File

@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=fff-web
PKG_RELEASE:=11
PKG_RELEASE:=13
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
@ -10,7 +10,7 @@ include $(INCLUDE_DIR)/package.mk
define Package/$(PKG_NAME)
SECTION:=base
CATEGORY:=Freifunk
TITLE:= Freifunk-Franken Webinterface
TITLE:=Freifunk-Franken Webinterface
URL:=http://www.freifunk-franken.de
DEPENDS:=+uhttpd +libustream-mbedtls +haserl +px5g +fff-simple-tc \
+fff-boardname +fff-config +fff-network +fff-hoodutils \

View File

@ -7,13 +7,6 @@
UPGRADE_PATH="$(getUpgradePath)"
echo -en "Content-Type: text/html\r\n\r\n"
nav_entry() {
script_file="/cgi-bin/$1"
if [ "$script_file" = "$REQUEST_URI" ] ; then
local class_active=' class="active"'
fi
echo -ne "\t<li${class_active}><a href=\"${script_file}\">$2</a></li>\n\t\t"
}
HOSTNAME="$(uci -q get "fff.system.hostname")"
hood="$(uci -q get "system.@system[0].hood")"
@ -52,14 +45,15 @@ fi
<div id="menu">
<ul>
<%
nav_entry home.html "Home"
nav_entry settings.html "Einstellungen"
nav_entry ports.html "Anschl&uuml;sse"
nav_entry wifiscan.html "Wifi Scan"
nav_entry upgrade.html "Upgrade"
nav_entry password.html "Password"
nav_entry reboot.html "Neustart"
nav_entry logout.html "Logout"
for f in /www/menu/ssl/*; do
var=$(cat $f);
menu_file=$(echo $var | cut -d "," -f 1)
menu_name=$(echo $var | cut -d "," -f 2)
menu_link="/cgi-bin/${menu_file}.html";
class_active=""
[ "$menu_link" = "$REQUEST_URI" ] && class_active=' class="active"'
echo -ne "\t<li$class_active><a href=\"${menu_link}\">$menu_name</a></li>\n\t\t";
done
%>
</ul>
<div></div>

View File

@ -0,0 +1 @@
home,Home

View File

@ -0,0 +1 @@
settings,Einstellungen

View File

@ -0,0 +1 @@
ports,Anschl&uuml;sse

View File

@ -0,0 +1 @@
wifiscan,Wifi Scan

View File

@ -0,0 +1 @@
upgrade,Upgrade

View File

@ -0,0 +1 @@
password,Passwort

View File

@ -0,0 +1 @@
reboot,Neustart

View File

@ -0,0 +1 @@
logout,Logout

View File

@ -13,8 +13,8 @@ if [ "$REQUEST_METHOD" = "POST" ] ; then
fi
fi
%>
<%in /www/ssl/cgi-bin/header %>
<%in /www/ssl/cgi-bin/helpers %>
<%in /www/include/header %>
<%in /www/include/helpers %>
<% show_msg %>
<%
if pidof fastd >/dev/null ; then
@ -116,4 +116,4 @@ fi
</td></tr>
</table>
<%in /www/ssl/cgi-bin/footer %>
<%in /www/include/footer %>

View File

@ -20,8 +20,8 @@ if [ "$REQUEST_METHOD" = "POST" ] ; then
fi
fi
%>
<%in /www/ssl/cgi-bin/header %>
<%in /www/ssl/cgi-bin/helpers %>
<%in /www/include/header %>
<%in /www/include/helpers %>
<% show_msg %>
<form method="POST">
<input type="text" name="username" value="root" style="display: none;" />
@ -43,7 +43,7 @@ fi
</table>
<input type="submit" style="margin-top: 5px; margin-left: 3px;" />
</form>
<%in /www/ssl/cgi-bin/footer %>
<%in /www/include/footer %>
<%
#force instant password change
if [ "$restart_uhttpd" = "1" ] ; then

View File

@ -71,8 +71,8 @@ format_port() {
%>
<%in /www/ssl/cgi-bin/header %>
<%in /www/ssl/cgi-bin/helpers %>
<%in /www/include/header %>
<%in /www/include/helpers %>
<% show_msg %>
<form method="post">
<table style="width: 100%;">
@ -237,7 +237,7 @@ format_port() {
<% fi %>
</table>
</form>
<%in /www/ssl/cgi-bin/footer %>
<%in /www/include/footer %>
<%
# write
if [ "$do_reboot" = "1" ] ; then

View File

@ -9,8 +9,8 @@ if [ "$REQUEST_METHOD" = "POST" ] ; then
fi
fi
%>
<%in /www/ssl/cgi-bin/header %>
<%in /www/ssl/cgi-bin/helpers %>
<%in /www/include/header %>
<%in /www/include/helpers %>
<% show_msg %>
<form method="POST">
<table style="width: 100%;">
@ -26,7 +26,7 @@ fi
</td></tr>
</table>
</form>
<%in /www/ssl/cgi-bin/footer %>
<%in /www/include/footer %>
<%
# write
if [ "$do_reboot" = "1" ] ; then

View File

@ -65,8 +65,8 @@ if [ "$REQUEST_METHOD" = "POST" ] ; then
fi
fi
%>
<%in /www/ssl/cgi-bin/header %>
<%in /www/ssl/cgi-bin/helpers %>
<%in /www/include/header %>
<%in /www/include/helpers %>
<%
# read
chkd='checked="checked" '
@ -154,4 +154,4 @@ fi
</td></tr>
</table>
</form>
<%in /www/ssl/cgi-bin/footer %>
<%in /www/include/footer %>

View File

@ -29,8 +29,8 @@ if [ "$REQUEST_METHOD" = "POST" ] ; then
fi
fi
%>
<%in /www/ssl/cgi-bin/header %>
<%in /www/ssl/cgi-bin/helpers %>
<%in /www/include/header %>
<%in /www/include/helpers %>
<% show_msg %>
<form method="post" enctype="multipart/form-data">
<table style="width: 100%;">
@ -60,7 +60,7 @@ fi
</td></tr>
</table>
</form>
<%in /www/ssl/cgi-bin/footer %>
<%in /www/include/footer %>
<%
# write
if [ "$do_reset" = "1" ] ; then

View File

@ -1,6 +1,6 @@
#!/usr/bin/haserl
<%in /www/ssl/cgi-bin/header %>
<%in /www/include/header %>
<table style="width: 100%">
<tr><td>
<fieldset>
@ -23,4 +23,4 @@ iw dev w2mesh scan | sed 's/^BSS/\nBSS/g' |\
</td></tr>
</table>
<%in /www/ssl/cgi-bin/footer %>
<%in /www/include/footer %>

View File

@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=fff-wireguard
PKG_RELEASE:=3
PKG_RELEASE:=4
PKG_BUILD_DIR:=$(BUILD_DIR)/fff-wireguard

View File

@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=fff-wireless
PKG_RELEASE:=18
PKG_RELEASE:=19
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
@ -10,7 +10,7 @@ include $(INCLUDE_DIR)/package.mk
define Package/$(PKG_NAME)
SECTION:=base
CATEGORY:=Freifunk
TITLE:= Freifunk-Franken wireless configuration
TITLE:=Freifunk-Franken wireless configuration
URL:=http://www.freifunk-franken.de
DEPENDS:=+@ATH_USER_REGD +wireless-tools +fff-boardname
endef

View File

@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=fff
PKG_RELEASE:=7
PKG_RELEASE:=8
PKG_BUILD_DIR:=$(BUILD_DIR)/fff

View File

@ -4,7 +4,7 @@ define Package/fff-default
DEFAULT:=y
TITLE:=Freifunk-Franken Base default switcher
URL:=http://www.freifunk-franken.de
DEPENDS:=+fff-base +fff-gateway
DEPENDS:=+fff-base +fff-layer3
VARIANT:=layer3
endef