Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • philhil/site-ffs
  • 0x4A6F/site-ffs
  • nrb/site-ffs
  • adnidor/site-ffs
  • are/site-ffs
  • codingHahn/site-ffs
  • albialbi/site-ffs
  • Daniel/site-ffs
  • Felixmitte/site-ffs
  • dotti/site-ffs
  • patrick/site-ffs
  • firmware/site-ffs
12 results
Show changes
Commits on Source (283)
image: registry.gitlab.freifunk-stuttgart.de/firmware/ffs-buildenv:master
variables:
GIT_SUBMODULE_STRATEGY: normal
DOCKER_DRIVER: overlay2
stages:
- generate_date
- update
- build
- package
default:
before_script:
- git submodule foreach 'git fetch --tags'
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
- eval $(ssh-agent -s)
- ssh-add <(echo "$GIT_SSH_PRIV_KEY")
- git config --global user.email "firmware@freifunk-stuttgart.de"
- git config --global user.name "FFS Buildbot"
- mkdir -p ~/.ssh
- cat gitlab-known-hosts >> ~/.ssh/known_hosts
- test -d ffs-openwrt-dl-cache || git clone ssh://git@ssh.gitlab.freifunk-stuttgart.de:22220/firmware/ffs-openwrt-dl-cache.git
- git -C ffs-openwrt-dl-cache pull --no-rebase || true
- rm -rf gluon/openwrt/dl && mkdir -p gluon/openwrt && ln -s ../../ffs-openwrt-dl-cache gluon/openwrt/dl
- rm -rf gluon/openwrt/staging_dir && mkdir -p staging_dir && ln -s ../../staging_dir gluon/openwrt/staging_dir
after_script:
# we need to start the SSH agent again because it doesn't seem to stay running
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
- eval $(ssh-agent -s)
- ssh-add <(echo "$GIT_SSH_PRIV_KEY")
- git config --global user.email "firmware@freifunk-stuttgart.de"
- git config --global user.name "FFS Buildbot"
- mkdir -p ~/.ssh
- cat gitlab-known-hosts >> ~/.ssh/known_hosts
- cd gluon/openwrt/dl
- git pull --no-rebase || true
- git add . && git commit -m "update DL cache" || true
- git pull --no-rebase && git push || true
generate_date:
stage: generate_date
before_script:
- echo dummy
after_script:
- echo dummy
script:
- date '+%Y-%m-%d' > build.date
artifacts:
paths:
- build.date
expire_in: 1 day
except:
- tags
update:
stage: update
script:
- make -C gluon update GLUON_SITEDIR="$CI_PROJECT_DIR" FFS_BUILD_DATE=$(cat build.date)
artifacts:
paths:
- gluon/
expire_in: 1 day
except:
- tags
build-target:
stage: build
except:
- tags
script:
- make -C gluon GLUON_SITEDIR="$CI_PROJECT_DIR" GLUON_TARGET="$TARGET" GLUON_AUTOUPDATER_BRANCH=stable GLUON_AUTOUPDATER_ENABLED=1 FFS_BUILD_DATE=$(cat build.date) BROKEN="$BROKEN" V=1 -j`nproc`
artifacts:
paths:
- gluon/output/
expire_in: 1 day
cache: []
parallel:
matrix:
- TARGET: armsr-armv7
- TARGET: armsr-armv8
- TARGET: ath79-generic
- TARGET: ath79-nand
- TARGET: ath79-mikrotik
- TARGET: bcm27xx-bcm2708
- TARGET: bcm27xx-bcm2709
- TARGET: ipq40xx-generic
- TARGET: ipq40xx-mikrotik
- TARGET: ipq806x-generic
- TARGET: lantiq-xrx200
- TARGET: lantiq-xway
- TARGET: mediatek-filogic
- TARGET: mediatek-mt7622
- TARGET: mpc85xx-p1010
- TARGET: mpc85xx-p1020
- TARGET: ramips-mt7620
- TARGET: ramips-mt7621
- TARGET: ramips-mt76x8
- TARGET: realtek-rtl838x
- TARGET: rockchip-armv8
- TARGET: sunxi-cortexa7
- TARGET: x86-generic
- TARGET: x86-geode
- TARGET: x86-legacy
- TARGET: x86-64
package:
stage: package
script:
- for branch in "stable" "beta" "nightly" "experimental"; do make -C gluon manifest GLUON_AUTOUPDATER_BRANCH="$branch" GLUON_AUTOUPDATER_ENABLED=1 GLUON_SITEDIR="$CI_PROJECT_DIR" FFS_BUILD_DATE=$(cat build.date) V=1 -j`nproc`; done
- if [ -n "$GLUON_SIGN_KEY" ]; then cd gluon && for branch in "nightly" "experimental"; do ./contrib/sign.sh <(echo "$GLUON_SIGN_KEY") "output/images/sysupgrade/$branch.manifest"; done; fi
cache: []
artifacts:
paths:
- gluon/output
expire_in: 7 days
except:
- tags
[submodule "gluon"]
path = gluon
url = https://gitlab.freifunk-stuttgart.de/firmware/gluon.git
site-ffs
========
# Freifunk Stuttgart Gluon
Freifunk Stuttgart specific Gluon configuration
This is the [Gluon configuration](https://gitlab.freifunk-stuttgart.de/firmware/site-ffs) for [Freifunk Stuttgart](https://freifunk-stuttgart.de).
Firmware versions are built in Gitlab.
Doku: https://gluon.readthedocs.org/en/latest/user/site.html
We maintain our [own Gluon repository](https://gitlab.freifunk-stuttgart.de/firmware/gluon) to make it easy to apply patches to Gluon.
Gluon versions used for specific Stuttgart Freifunk Firmware builds:
* ffs-1.4: v2017.1.4
* ffs-1.3: v2016.2.7 + 1340 mtu
* ffs-1.2: v2016.2.6 + ffs-set-segment dns fix + 1312 mtu
* ffs-1.1: v2016.2.6 + ffs-set-segment dns fix
* ffs-1.0: v2016.2.5
* ffs-0.9: v2016.2.1
* ffs-0.8: v2016.2
* ffs-0.7: v2016.1.3
* ffs-0.6: v2016.1
* ffs-0.5: v2015.1.2
Gluon is maintained as a [Git submodule](https://git-scm.com/book/en/v2/Git-Tools-Submodules) in the `gluon` subdirectory.
## Building
Because we maintain Gluon as a submodule, some special steps are required:
- clone this repository with `--recurse-submodules`: ```git clone --recurse-submodules https://gitlab.freifunk-stuttgart.de/firmware/site-ffs.git```
* If you already clonsed this repo, initalize submodules using `git submodule update --init .`
- run `buildall.sh` to build all targets
### Download Cache
We maintain a [cache of all downloaded files during the build](https://gitlab.freifunk-stuttgart.de/firmware/ffs-openwrt-dl-cache).
## Committing
When changing something in Gluon, keep in mind - besides making the changes in the Gluon repository - you also need to make a commit here that updates the `gluon` submodule. You can do so by:
- changing to the `gluon` subdirectory,
- making your changes,
- commit and push them to the Gluon repository,
- going back to the `site-ffs` directory,
- `git add gluon` and then `git commit` to create a commit which updates the Gluon version in the site-ffs repo.
## Automatic Gluon Update
Minor version updates of Gluon are usually very easy to do. Therefore, we have a daily job which checks for a new minor version of Gluon and performs an [automatic update](https://gitlab.freifunk-stuttgart.de/firmware/ffs-pipeline-nightly) if one is available.
## Branches
For each firmware release (vX.Y) we have a seperate branch.
There is also the experimental branch which is our build against Gluon master. Most bugfixes hence need to be applied to the corresponding branch of the next firmware release and the experimental branch.
## Other repositories
We have a [repository with our custom packages](https://gitlab.freifunk-stuttgart.de/firmware/gluon-packages).
There are [several other repos related to the firmware build](https://gitlab.freifunk-stuttgart.de/firmware).
#!/bin/bash
set -eu
set -o pipefail
branch=nightly
TARGETS=(
ath79-generic
ath79-nand
ath79-mikrotik
bcm27xx-bcm2708
bcm27xx-bcm2709
ipq40xx-generic
ipq40xx-mikrotik
ipq806x-generic
lantiq-xrx200
lantiq-xway
mediatek-mt7622
mpc85xx-p1010
mpc85xx-p1020
ramips-mt7620
ramips-mt7621
ramips-mt76x8
rockchip-armv8
sunxi-cortexa7
x86-generic
x86-geode
x86-legacy
x86-64
)
sitedir=$(readlink -f $(dirname $0))
make -C gluon update GLUON_SITEDIR="$sitedir" V=1
for target in ${TARGETS[@]}; do
echo Building $target
make -C gluon GLUON_TARGET=$target GLUON_AUTOUPATER_BRANCH=$branch GLUON_AUTOUPDATER_ENABLED=1 GLUON_SITEDIR="$sitedir" BROKEN=1 V=1 -j`nproc`
done
[ssh.gitlab.freifunk-stuttgart.de]:22220 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNCe5DNM3hGY+oEy5JeGjCDg68YrpjFivgxIAuFvhJkRdPPQpnOURuXFt/wQ0PCF/MZHVLPKwSLEfI3pkQRAg2bLyXFnLMlaaC2Q+9eZoQ6K2+NFWlKiVd3EmYGMt2USFfgFiHKeA4NNhvqtINj5pk1usFRCuUYfAegIVQl+vIvW7rpdK68Y33MGPrP81XD0E7TpasQnqnxVIaTe+QG3oNlPCToE6e8sZij3lwKGmR0gopbvUjXjuY7SCIbzEwzNET+olVfVHWMlDwuzM8tUOSbOSg6mX+I1gTJXndxdGl/dSsI9HXAe1HAa3B7zN+SDwcz+ySxsAgS8loyJMT2SD
[ssh.gitlab.freifunk-stuttgart.de]:22220 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJPXKTRXP1BULVuiWD92F3VdNDLkNV3B7Dv7hb9/PVsCVZnH+s6lsdqYZZL/7QvzyqB/eOlXRs5PE/opGkS84Qw=
[ssh.gitlab.freifunk-stuttgart.de]:22220 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKCt1kYnQIF17lAw7kRBAZOJFOS67ZQpBPsq79srBpwu
[gitlab.freifunk-stuttgart.de]:22220 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGNCe5DNM3hGY+oEy5JeGjCDg68YrpjFivgxIAuFvhJkRdPPQpnOURuXFt/wQ0PCF/MZHVLPKwSLEfI3pkQRAg2bLyXFnLMlaaC2Q+9eZoQ6K2+NFWlKiVd3EmYGMt2USFfgFiHKeA4NNhvqtINj5pk1usFRCuUYfAegIVQl+vIvW7rpdK68Y33MGPrP81XD0E7TpasQnqnxVIaTe+QG3oNlPCToE6e8sZij3lwKGmR0gopbvUjXjuY7SCIbzEwzNET+olVfVHWMlDwuzM8tUOSbOSg6mX+I1gTJXndxdGl/dSsI9HXAe1HAa3B7zN+SDwcz+ySxsAgS8loyJMT2SD
[gitlab.freifunk-stuttgart.de]:22220 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJPXKTRXP1BULVuiWD92F3VdNDLkNV3B7Dv7hb9/PVsCVZnH+s6lsdqYZZL/7QvzyqB/eOlXRs5PE/opGkS84Qw=
[gitlab.freifunk-stuttgart.de]:22220 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKCt1kYnQIF17lAw7kRBAZOJFOS67ZQpBPsq79srBpwu
Subproject commit 5e46753ad7564b3c2acea30de1b69e4a801a92c4
......@@ -14,7 +14,7 @@ msgid "gluon-config-mode:welcome"
msgstr ""
"Willkommen zum Einrichtungsassistenten für deinen neuen Freifunk-Knoten."
"Fülle das folgende Formular deinen Vorstellung entsprechend aus und sende es ab. "
"Wenn Du Koordinaten für für die Eintragung auf der Karte benötigst, "
"Wenn Du Koordinaten für die Eintragung auf der Karte benötigst, "
"kannst Du unsere <a href=\"http://karte.freifunk-stuttgart.de/\" target=\"_blank\">Karte</a> verwenden."
msgid "gluon-config-mode:pubkey"
......@@ -24,13 +24,9 @@ msgstr ""
"Deines Heimrouters zu verbinden. Der Knoten wird sich dann selbständig bei dem Stuttgarter Freifunk-Projekt registrieren. "
"Dies kann wenige Minuten dauern, bis der Schlüssel von den Gateways akzeptiert wird. "
"Wenn sich dein Knoten NICHT mit den Mesh-VPNs in Stuttgart verbinden kann, "
"dann schicke bitte diesen Schlüssel, mit den Namen deines Knotens (<em><%=escape(hostname)%></em>) und die MAC-Adresse (<em><%=sysconfig.primary_mac%></em>) "
"an <a href=\"mailto:vpn-schluessel@lists.freifunk-stuttgart.net?&amp;subject=Neuer%20Freifunk-Knoten%3A%20<%=urlescape(hostname)%>&amp;body=Name%3A%20<%=urlescape(hostname)%>%0D%0AKey%3A%20<%=pubkey%>%0D%0AMAC%3A%20<%=sysconfig.primary_mac%>%0D%0A\">vpn-schluessel@lists.freifunk-stuttgart.net</a> - "
"<a href=\"mailto:vpn-schluessel@lists.freifunk-stuttgart.net?&amp;subject=Neuer%20Freifunk-Knoten%3A%20<%=urlescape(hostname)%>&amp;body=Name%3A%20<%=urlescape(hostname)%>%0D%0AKey%3A%20<%=pubkey%>%0D%0AMAC%3A%20<%=sysconfig.primary_mac%>%0D%0A\">Email jetzt absenden</a>. "
"<small>Ein Klick auf den E-Mail Link müsste&trade; dein E-Mail Programm "
"öffnen und alle benötigten Informationen in eine neue Mail einfügen.</small></p>"
"dann findest Du <a href=\"https://wiki.freifunk-stuttgart.net/kontakt:mailingliste\">hier</a> Kontaktmöglichkeiten</p>"
"<div class=\"the-key\">"
" Name: <%=escape(hostname)%>"
" Name: <%=pcdata(hostname)%>"
" <br/>"
" Key: <%= pubkey %>"
" <br/>"
......@@ -43,22 +39,21 @@ msgstr ""
"Freifunk-Knoten in seiner Nähe zu verbinden. "
"<h2>Und was jetzt?</h2>"
"Weitere Informationen zur Freifunk-Community findest du auf den Webseiten von "
"<a href=\"http://www.freifunk-suttgart.de/\" target=\"_blank\">Freifunk Stuttgart</a> oder unter <a href=\"http://www.freifunk.net/\" target=\"_blank\">freifunk.net</a>. "
"<a href=\"http://www.freifunk-stuttgart.de/\" target=\"_blank\">Freifunk Stuttgart</a> oder unter <a href=\"http://www.freifunk.net/\" target=\"_blank\">freifunk.net</a>. "
"<dl> "
" <dt>Freifunk Community</dt> "
" <dd>Die stuttgarter Freifunker vernetzen sich per Mailingliste. Hier kannst du Fragen stellen oder dich einbringen: <a href=\"https://lists.freifunk-stuttgart.de/listinfo/misc\" target=\"_blank\">lists.freifunk-stuttgart.de/listinfo/misc</a>.</dd> "
" <dd>Die Stuttgarter Freifunker vernetzen sich per Mailingliste. Hier kannst du Fragen stellen oder dich einbringen: <a href=\"https://lists.freifunk-stuttgart.de/listinfo/misc\" target=\"_blank\">lists.freifunk-stuttgart.de/listinfo/misc</a>.</dd> "
" <dt>Konfigurations Modus</dt> "
" <dd>Du kannst jederzeit in diesen Konfigurations Modus zurückkehren indem du ca. 10 Sekunden den Resetknopf am Knoten drückst, bis alle Lämpchen einmal gemeinsam aufleuchten, und dann losläßt.</dd> "
" <dd>Du kannst jederzeit in diesen Konfigurations-Modus zurückkehren, indem du ca. 10 Sekunden den Resetknopf am Knoten drückst, bis alle Lämpchen einmal gemeinsam aufleuchten, und dann loslässt.</dd> "
" <dt>Karte</dt> "
" <dd>Die Karten sind unter <a href=\"http://karte.freifunk-stuttgart.de/\" target=\"_blank\">karte.freifunk-stuttgart.de</a> oder <a href=\"http://map.freifunk-stuttgart.de/\" target=\"_blank\">map.freifunk-stuttgart.de</a> erreichbar.</dd> "
" <dt>Next Node</dt> "
" <dd>Den Router mit dem man momentan verbunden ist, kann man immer unter der sogenannten Next Node Adresse erreichen. Diese ist für jeden Router gleich:</dd> "
" <dd>&bull; Stuttgart &mdash; <a href=\"http://[fd21:711::1]/\" target=\"_blank\">fd21:711::1</a></dd>"
" <dd>Den Router, mit dem man momentan verbunden ist, kann man immer unter der sogenannten Next Node Adresse erreichen. Diese ist für jeden Router gleich: <a href=\"http://[fd21:711::1]/\" target=\"_blank\">fd21:711::1</a></dd>"
" <dt>Nodealarm</dt> "
" <dd>Unter <a href=\"https://nodealarm.freifunk-stuttgart.de/\" target=\"_blank\">nodealarm.freifunk-stuttgart.de</a> kannst du per E-Mail Benachrichtigen lassen, sollte dein Router mal offline sein.</dd> "
"</dl> "
"Viel Spaß mit deinem Knoten und bei der Erkundung von Freifunk!<br /> "
"<small>Hilf uns weitere Anleitungen, Texte, Grafiken, Applikationen, Schaubilder, und ähnliches zu erstellen die wir hier verlinken können, um jedem neuen Freifunker einen guten Start zu ermöglichen.</small>"
"<small>Hilf uns, weitere Anleitungen, Texte, Grafiken, Applikationen, Schaubilder, und ähnliches zu erstellen, die wir hier verlinken können, um jedem neuen Freifunker einen guten Start zu ermöglichen.</small>"
msgid "gluon-config-mode:altitude-label"
msgstr "Höhe"
......@@ -70,7 +65,7 @@ msgstr ""
msgid "gluon-config-mode:zip-help"
msgstr ""
"Die PLZ hilft automatisch die richtige Region (Segment) für deinen Freifunk-Knoten auszuwählen. "
"Die PLZ hilft, automatisch die richtige Region (Segment) für deinen Freifunk-Knoten auszuwählen. "
"Dies ist wichtig für das fehlerfreie Meshen mit benachbarten Knoten."
msgid "ZIP-Code"
......
......@@ -12,7 +12,7 @@ msgstr ""
msgid "gluon-config-mode:welcome"
msgstr ""
"Welcome the the setup wizard of your new Freifunk Stuttgart node. "
"Welcome to the setup wizard of your new Freifunk Stuttgart node. "
"Please fill out the following form and transmit it."
"If you need location data, "
"you can use our <a href=\"http://karte.freifunk-stuttgart.de/\" target=\"_blank\">Map</a>."
......@@ -22,13 +22,10 @@ msgstr ""
"<p>This is your Freifunk node's public key. Please connect the WAN-Port "
"of your Freifunk node with the LAN-Port of your home router. The node will "
"automatically register at the Freifunk Stuttgart project. This could take "
"a while till all the gateways accept your key. If the node won't be able "
"to connect to the mesh VPN, you have to send the key together with your "
"node's name (<em><%=escape(hostname)%></em>) and MAC (<em><%=sysconfig.primary_mac%></em>) to "
"<a href=\"mailto:vpn-schluessel@lists.freifunk-stuttgart.net?&amp;subject=New%20Freifunk-Node%3A%20<%=urlescape(hostname)%>&amp;body=Name%3A%20<%=urlescape(hostname)%>%0D%0AKey%3A%20<%=pubkey%>%0D%0AMAC%3A%20<%=sysconfig.primary_mac%>%0D%0A\">vpn-schluessel@lists.freifunk-stuttgart.net</a> - "
"<a href=\"mailto:vpn-schluessel@lists.freifunk-stuttgart.net?&amp;subject=New%20Freifunk-Node%3A%20<%=urlescape(hostname)%>&amp;body=Name%3A%20<%=urlescape(hostname)%>%0D%0AKey%3A%20<%=pubkey%>%0D%0AMAC%3A%20<%=sysconfig.primary_mac%>%0D%0A\">click to send mail</a>. </p>"
"a while till all the gateways accept your key. "
"If the node won't be able to connect to the mesh VPN, you can find contact information <a href=\"https://wiki.freifunk-stuttgart.net/kontakt:mailingliste\">here</a> </p>"
"<div class=\"the-key\">"
" Name: <%=escape(hostname)%>"
" Name: <%=pcdata(hostname)%>"
" <br/>"
" Key: <%= pubkey %>"
" <br/>"
......@@ -38,7 +35,7 @@ msgstr ""
msgid "gluon-config-mode:reboot"
msgstr ""
"<p>The node is currently rebooting and will try to connect to other "
"nearby Freifunk nodes after that. "
"nearby Freifunk nodes after that. "
"You can find lots of information on the Freifunk Stuttgart community on "
"<a href=\"http://www.freifunk-stuttgart.de/\">our homepage</a>.</p>"
"<p>If you want to get in contact with us: <a href=\"https://lists.freifunk-stuttgart.de/listinfo/misc\" target=\"_blank\">lists.freifunk-stuttgart.de/listinfo/misc</a>.</p>"
......
-- Generic features and packages for all devices
features({
'autoupdater',
'ebtables-filter-multicast',
'ebtables-filter-ra-dhcp',
'ebtables-limit-arp',
'mesh-batman-adv-15',
'mesh-vpn-fastd-l2tp',
'radvd',
'radv-filterd',
'respondd',
'status-page',
'web-advanced',
'web-logging',
'web-mesh-vpn-fastd',
'web-private-wifi',
'web-wizard',
})
packages({
'iwinfo',
'respondd-module-airtime',
'ffs-set-segment',
'gluon-config-mode-zip',
'ffac-ssid-changer',
'iwinfo',
})
-- Packages and features for devices which are not flagged as tiny
if not device_class('tiny') then
features({
'mesh-vpn-sqm',
'tls',
'web-cellular',
'wireless-encryption-wpa3'
})
packages({
'ffda-gluon-usteer'
})
end
-- Custom package lists
local pkgs_usb_hid = {
'kmod-usb-hid',
'kmod-hid-generic'
}
local pkgs_usb_serial = {
'kmod-usb-serial',
'kmod-usb-serial-ch341',
'kmod-usb-serial-cp210x',
'kmod-usb-serial-ftdi',
'kmod-usb-serial-pl2303'
}
local pkgs_usb_storage = {
'block-mount',
'blkid',
'kmod-fs-ext4',
'kmod-fs-ntfs',
'kmod-fs-vfat',
'kmod-usb-storage',
'kmod-usb-storage-extras', -- Card Readers
'kmod-usb-storage-uas', -- USB Attached SCSI (UAS/UASP)
'kmod-nls-base',
'kmod-nls-cp1250', -- NLS Codepage 1250 (Eastern Europe)
'kmod-nls-cp437', -- NLS Codepage 437 (United States, Canada)
'kmod-nls-cp850', -- NLS Codepage 850 (Europe)
'kmod-nls-cp852', -- NLS Codepage 852 (Europe)
'kmod-nls-iso8859-1', -- NLS ISO 8859-1 (Latin 1)
'kmod-nls-iso8859-13', -- NLS ISO 8859-13 (Latin 7; Baltic)
'kmod-nls-iso8859-15', -- NLS ISO 8859-15 (Latin 9)
'kmod-nls-iso8859-2', -- NLS ISO 8859-2 (Latin 2)
'kmod-nls-utf8' -- NLS UTF-8
}
local pkgs_usb_net = {
'kmod-mii',
'kmod-usb-net',
'kmod-usb-net-asix',
'kmod-usb-net-asix-ax88179',
'kmod-usb-net-cdc-eem',
'kmod-usb-net-cdc-ether',
'kmod-usb-net-cdc-mbim',
'kmod-usb-net-cdc-ncm',
'kmod-usb-net-cdc-subset',
'kmod-usb-net-dm9601-ether',
'kmod-usb-net-hso',
'kmod-usb-net-huawei-cdc-ncm',
'kmod-usb-net-ipheth',
'kmod-usb-net-kalmia',
'kmod-usb-net-kaweth',
'kmod-usb-net-mcs7830',
'kmod-usb-net-pegasus',
'kmod-usb-net-qmi-wwan',
'kmod-usb-net-rndis',
'kmod-usb-net-rtl8152',
'kmod-usb-net-sierrawireless',
'kmod-usb-net-smsc95xx',
}
local pkgs_pci = {
'pciutils'
}
local pkgs_pci_net = {
'kmod-bnx2'
}
if target('ath79') then
packages(pkgs_usb_serial)
end
if target('ipq40xx') then
packages(pkgs_usb_serial)
packages(pkgs_usb_storage)
end
if target('ipq806x') then
packages(pkgs_usb_serial)
packages(pkgs_usb_storage)
end
if target('mediatek') then
packages(pkgs_usb_serial)
packages(pkgs_usb_storage)
end
if target('mpc85xx') then
packages(pkgs_usb_serial)
packages(pkgs_usb_storage)
end
if target('ramips', 'mt7621') then
packages(pkgs_usb_serial)
end
if target('rockchip') then
-- No PCI / video
packages(pkgs_usb_net)
packages(pkgs_usb_serial)
packages(pkgs_usb_storage)
end
if target('sunxi') then
-- No PCI / video
packages(pkgs_usb_serial)
packages(pkgs_usb_storage)
end
-- Include all custom packages for RaspberryPi
if target('bcm27xx') then
packages(pkgs_pci)
packages(pkgs_usb_hid)
packages(pkgs_usb_net)
packages(pkgs_usb_serial)
packages(pkgs_usb_storage)
end
-- Include all custom packages for x86
if target('x86') then
packages(pkgs_pci)
packages(pkgs_pci_net)
packages(pkgs_usb_hid)
packages(pkgs_usb_net)
packages(pkgs_usb_serial)
packages(pkgs_usb_storage)
end
-- Network-activated setup-mode for NWA55AXE
if device({'zyxel-nwa55axe'}) then
packages({'ffda-network-setup-mode'})
broken(false)
end
-- OOM, high load without CT Firmware. Tested on AC Mesh Pro. Suspected also AC Mesh affected.
if device({'ubiquiti-unifi-ac-mesh', 'ubiquiti-unifi-ac-mesh-pro'}) then
packages({
'-kmod-ath10k',
'kmod-ath10k-ct-smallbuffers',
'-ath10k-firmware-qca988x-ct',
'-ath10k-firmware-qca988x',
'ath10k-firmware-qca988x-ct-full-htt',
})
end
if target('ramips', 'mt7621') then
-- reload wifi firmware twice a day
packages {
'ffac-mt7915-hotfix',
}
end
if target('mediatek', 'filogic') then
-- reload wifi firmware twice a day
packages {
'ffac-mt7915-hotfix',
}
end
GLUON_SITE_FEEDS='ffs'
GLUON_SITE_FEEDS='ffs community'
PACKAGES_FFS_REPO=https://github.com/freifunk-stuttgart/Gluon-Packages
PACKAGES_FFS_COMMIT=c22cea54014470b0b6593ef7dc3170529582e316
PACKAGES_FFS_REPO=https://gitlab.freifunk-stuttgart.de/firmware/gluon-packages.git
PACKAGES_FFS_COMMIT=30d7ca5999ac7f5e0e9a68afcbe7c9157c68dba1
PACKAGES_COMMUNITY_REPO=https://gitlab.freifunk-stuttgart.de/firmware/gluon-community-packages
PACKAGES_COMMUNITY_COMMIT=d8ef4f8e9ae5ccc91abd05853eefb650dc44c004
#!/bin/bash
set -eu
mydir=$(readlink -f "$(dirname "$0")/..")
make -s -C "$mydir/gluon" GLUON_SITEDIR="$mydir" list-targets | while read target; do
cat <<EOF
- TARGET: ${target}
EOF
done
#!/bin/bash
set -eu
readonly gluon_remote_upstream=https://github.com/freifunk-gluon/gluon.git
script_path=$(dirname $(readlink -f "$0"))
gluon_path=$(readlink -f "$script_path/../gluon")
tag_to_update_to="${1:-}"
if [ -z "$tag_to_update_to" ]; then
echo "Usage: $0 [tag to update to]"
exit 1
fi
verify_remotes() {
remote_upstream=$(git -C "$gluon_path" remote get-url upstream)
if [ "$remote_upstream" != "$gluon_remote_upstream" ]; then
echo "Upstream remote is not set up correctly. Please run:"
echo " git -C \"$gluon_path\" remote set-url upstream \"$gluon_remote_upstream\""
exit 1
fi
}
verify_remotes
git -C "$gluon_path" fetch origin --tags
git -C "$gluon_path" fetch upstream "$tag_to_update_to"
current_tag_name=$(git -C "$gluon_path" describe)
current_upstream_tag_name=${current_tag_name/-ffs*/}
git -C "$gluon_path" checkout -b "$tag_to_update_to-ffs"
git -C "$gluon_path" rebase -i "$current_upstream_tag_name" --onto FETCH_HEAD
fork_tagname="$tag_to_update_to-ffs0.1"
git -C "$gluon_path" tag -a "$fork_tagname" -m "Release $fork_tagname"
git -C "$gluon_path" push origin "$tag_to_update_to"
git -C "$gluon_path" push origin "$fork_tagname"
......@@ -2,28 +2,34 @@
hostname_prefix = 'ffs-',
site_name = 'Freifunk Stuttgart',
site_code = 'ffs',
domain_seed = '0711ff0711ff0711ff0711ff0711ff0711ff0711ff0711ff0711ff0711ff0711',
prefix4 = '172.21.0.0/18',
prefix6 = 'fd21:711::/64',
timezone = 'CET-1CEST,M3.5.0,M10.5.0/3', -- Europe/Berlin
ntp_servers = {
'fd21:b4dc:4b00::a38:1', -- gw01
'fd21:b4dc:4b00::123:1',
'fd21:b4dc:4b00::123:2',
'fd21:b4dc:4b00::123:3',
'fd21:b4dc:4b00::123:1',
'fd21:b4dc:4b00::123:2',
'fd21:b4dc:4b00::123:3',
},
opkg = {
extra = {
gluon = 'http://firmware.freifunk-stuttgart.de/gluon/archive/%GR/packages/gluon-%GS-%GR/%S',
},
},
regdom = 'DE',
wifi24 = {
channel = 1,
--disables 802.11b rates
supported_rates = {6000, 9000, 12000, 18000, 24000, 36000, 48000, 54000},
basic_rate = {6000, 9000, 18000, 36000, 54000},
ap = {
ssid = 'Freifunk',
owe_ssid = 'owe.freifunk-stuttgart.de',
owe_transition_mode = false,
},
mesh = {
id = 'ffsmesh_batman',
......@@ -33,8 +39,11 @@
wifi5 = {
channel = 44,
outdoor_chanlist = "100-138",
ap = {
ssid = 'Freifunk',
owe_ssid = 'owe.freifunk-stuttgart.de',
owe_transition_mode = false,
},
mesh = {
id = 'ffsmesh_batman',
......@@ -42,91 +51,112 @@
},
},
ssid_changer = {
enabled = true,
switch_timeframe = 15,
first = 5,
prefix = 'FFS_Offline_',
suffix = 'nodename',
tq_limit_enabled = false,
tq_limit_max = 45,
tq_limit_min = 35
},
mesh = {
vxlan = false,
batman_adv = {
routing_algo = 'BATMAN_IV',
}
},
next_node = {
ip4 = '172.21.24.254',
ip6 = 'fd21:711::1',
mac = '02:00:0a:25:00:01',
},
fastd_mesh_vpn = {
methods = {'salsa2012+umac'},
mtu = 1340,
mesh_vpn = {
enabled = true,
groups = {
backbone = {
limit = 1,
peers = {
gw01 = {
key = 'd7b89d42b629bd5d419139b4c395e7b47ed7417112d3fcd232ba38137daa58e6',
remotes = {
'"gw01.gw.freifunk-stuttgart.de" port 10299'
mtu = 1340,
fastd = {
mtu = 1340,
configurable = true,
methods = {'salsa2012+umac'},
groups = {
backbone = {
limit = 1,
peers = {
gw01 = {
key = 'd7b89d42b629bd5d419139b4c395e7b47ed7417112d3fcd232ba38137daa58e6',
remotes = {
'"gw01.gw.freifunk-stuttgart.de" port 10299'
},
},
},
gw02 = {
key = '31eaff2ce1c19d0c9af693c4500defc4e1b4979ad75133d779532f0572955875',
remotes = {
'"gw02.gw.freifunk-stuttgart.de" port 10299'
gw02 = {
key = '31eaff2ce1c19d0c9af693c4500defc4e1b4979ad75133d779532f0572955875',
remotes = {
'"gw02.gw.freifunk-stuttgart.de" port 10299'
},
},
},
gw03 = {
key = '1e944f5f2dca02e1c1d2e006186417e76759c26f75da5e7850f6c1e5cddcb1c2',
remotes = {
'"gw03.gw.freifunk-stuttgart.de" port 10299'
},
},
gw04 = {
key = '5689b2fd14bd313de1e95406c17e783b78b9d6f8aa86f896df4f2d843ab642bf',
remotes = {
'"gw04.gw.freifunk-stuttgart.de" port 10299'
gw03 = {
key = '1e944f5f2dca02e1c1d2e006186417e76759c26f75da5e7850f6c1e5cddcb1c2',
remotes = {
'"gw03.gw.freifunk-stuttgart.de" port 10299'
},
},
},
gw05 = {
key = '26cd067057e4fcf58fb68da66c75a360de56aa4c36094f1846f706824682a789',
remotes = {
'"gw05.gw.freifunk-stuttgart.de" port 10299'
gw04 = {
key = '5689b2fd14bd313de1e95406c17e783b78b9d6f8aa86f896df4f2d843ab642bf',
remotes = {
'"gw04.gw.freifunk-stuttgart.de" port 10299'
},
},
},
gw06 = {
key = 'fdc1737906d7431763962f4daf6eb4d973c845aca7a96e40643d08a82159dff2',
remotes = {
'"gw06.gw.freifunk-stuttgart.de" port 10299'
gw05 = {
key = '26cd067057e4fcf58fb68da66c75a360de56aa4c36094f1846f706824682a789',
remotes = {
'"gw05.gw.freifunk-stuttgart.de" port 10299'
},
},
},
gw07 = {
key = '23f6d70be861effe9b1a7bc812fd8c9e2e575bf0ea63ca4ffdc0a3998afb59a1',
remotes = {
'"gw07.gw.freifunk-stuttgart.de" port 10299'
gw06 = {
key = 'fdc1737906d7431763962f4daf6eb4d973c845aca7a96e40643d08a82159dff2',
remotes = {
'"gw06.gw.freifunk-stuttgart.de" port 10299'
},
},
},
gw08 = {
key = '1af6a5d41d866823e5712e8d9af42080397ad52bdd8664a11ca94225629398a3',
remotes = {
'"gw08.gw.freifunk-stuttgart.de" port 10299'
gw07 = {
key = '23f6d70be861effe9b1a7bc812fd8c9e2e575bf0ea63ca4ffdc0a3998afb59a1',
remotes = {
'"gw07.gw.freifunk-stuttgart.de" port 10299'
},
},
},
gw09 = {
key = 'bf7c1a62dbf61b8fda25be7e5e600c0ae745e6b6e90a419aeafaf85b6497e8f2',
remotes = {
'"gw09.gw.freifunk-stuttgart.de" port 10299'
gw08 = {
key = '1af6a5d41d866823e5712e8d9af42080397ad52bdd8664a11ca94225629398a3',
remotes = {
'"gw08.gw.freifunk-stuttgart.de" port 10299'
},
},
},
gw10 = {
key = '4b89e1a8882b4d7cf50eabc0360ff28138d78ca0b63fd63ec9e4c8260121da00',
remotes = {
'"gw10.gw.freifunk-stuttgart.de" port 10299'
gw09 = {
key = 'bf7c1a62dbf61b8fda25be7e5e600c0ae745e6b6e90a419aeafaf85b6497e8f2',
remotes = {
'"gw09.gw.freifunk-stuttgart.de" port 10299'
},
},
gw10 = {
key = '4b89e1a8882b4d7cf50eabc0360ff28138d78ca0b63fd63ec9e4c8260121da00',
remotes = {
'"gw10.gw.freifunk-stuttgart.de" port 10299'
},
},
},
},
},
},
},
bandwidth_limit = {
-- Default upload limit (kbit/s).
egress = 500,
-- Default download limit (kbit/s).
ingress = 15000,
bandwidth_limit = {
-- Default upload limit (kbit/s).
egress = 500,
-- Default download limit (kbit/s).
ingress = 15000,
},
},
autoupdater = {
......@@ -141,8 +171,11 @@
good_signatures = 2,
pubkeys = {
'4418436fe872b5746a6c86293afca7c6c9edba03eca3cac80fdfd82106092d7a', -- leonard
'0b43680e4c389a55a02663a740be234defe017c1e05ba49de87baaa1f88c66c1', -- are
'0b43680e4c389a55a02663a740be234defe017c1e05ba49de87baaa1f88c66c1', -- are
'b7077095e9d3fc892db1c280b78b65d737700c9aea70a6998d6aad8b3146aaed', -- flip
'8cede21f8275b20add6cdff85fa1fbd710e0e4ccbd94faed43854a0533207a60', -- nrb
'6177c49629d26197f916c77fa7d7ba902500f20d6e4b02c621e3696d1ef10232', -- 0x4A6F
'b33f5356bf5bbbe5b2553d5c9ebec4732b8168ea9ffe63718b20fe6c8f513e29', -- Sid
},
},
beta = {
......@@ -153,8 +186,11 @@
good_signatures = 1,
pubkeys = {
'4418436fe872b5746a6c86293afca7c6c9edba03eca3cac80fdfd82106092d7a', -- leonard
'0b43680e4c389a55a02663a740be234defe017c1e05ba49de87baaa1f88c66c1', -- are
'0b43680e4c389a55a02663a740be234defe017c1e05ba49de87baaa1f88c66c1', -- are
'b7077095e9d3fc892db1c280b78b65d737700c9aea70a6998d6aad8b3146aaed', -- flip
'8cede21f8275b20add6cdff85fa1fbd710e0e4ccbd94faed43854a0533207a60', -- nrb
'6177c49629d26197f916c77fa7d7ba902500f20d6e4b02c621e3696d1ef10232', -- 0x4A6F
'b33f5356bf5bbbe5b2553d5c9ebec4732b8168ea9ffe63718b20fe6c8f513e29', -- Sid
},
},
nightly = {
......@@ -165,10 +201,46 @@
good_signatures = 1,
pubkeys = {
'4418436fe872b5746a6c86293afca7c6c9edba03eca3cac80fdfd82106092d7a', -- leonard
'0b43680e4c389a55a02663a740be234defe017c1e05ba49de87baaa1f88c66c1', -- are
'0b43680e4c389a55a02663a740be234defe017c1e05ba49de87baaa1f88c66c1', -- are
'b7077095e9d3fc892db1c280b78b65d737700c9aea70a6998d6aad8b3146aaed', -- flip
'8cede21f8275b20add6cdff85fa1fbd710e0e4ccbd94faed43854a0533207a60', -- nrb
'6177c49629d26197f916c77fa7d7ba902500f20d6e4b02c621e3696d1ef10232', -- 0x4A6F
'b33f5356bf5bbbe5b2553d5c9ebec4732b8168ea9ffe63718b20fe6c8f513e29', -- Sid
'4d4417f25702ca1dded74dde7510dab5c13fde3a105bb704bd2d2d250ece0109', -- gitlab runner 20200605
},
},
experimental = {
name = 'experimental',
mirrors = {
'http://[fd21:b4dc:4b00::a38:1]/gluon/experimental/sysupgrade', -- gw01
},
good_signatures = 1,
pubkeys = {
'4418436fe872b5746a6c86293afca7c6c9edba03eca3cac80fdfd82106092d7a', -- leonard
'0b43680e4c389a55a02663a740be234defe017c1e05ba49de87baaa1f88c66c1', -- are
'b7077095e9d3fc892db1c280b78b65d737700c9aea70a6998d6aad8b3146aaed', -- flip
'8cede21f8275b20add6cdff85fa1fbd710e0e4ccbd94faed43854a0533207a60', -- nrb
'6177c49629d26197f916c77fa7d7ba902500f20d6e4b02c621e3696d1ef10232', -- 0x4A6F
'b33f5356bf5bbbe5b2553d5c9ebec4732b8168ea9ffe63718b20fe6c8f513e29', -- Sid
'4d4417f25702ca1dded74dde7510dab5c13fde3a105bb704bd2d2d250ece0109', -- gitlab runner 20200605
},
},
},
},
usteer = {
network = {
enabled = true,
wireless = true,
wired = true,
update_interval = 5000,
update_timeout = 12
},
band_steering = {
enabled = true,
min_snr = -60,
interval = 40000
}
},
}
GLUON_SITE_PACKAGES := \
gluon-mesh-batman-adv-15 \
gluon-alfred \
gluon-respondd \
gluon-autoupdater \
gluon-config-mode-autoupdater \
gluon-config-mode-contact-info \
gluon-config-mode-core \
gluon-config-mode-geo-location \
gluon-config-mode-hostname \
gluon-config-mode-mesh-vpn \
gluon-config-mode-zip \
gluon-ebtables-filter-multicast \
gluon-ebtables-filter-ra-dhcp \
gluon-luci-admin \
gluon-luci-autoupdater \
gluon-luci-portconfig \
gluon-luci-private-wifi \
gluon-luci-wifi-config \
gluon-neighbour-info \
gluon-mesh-vpn-fastd \
gluon-radvd \
gluon-setup-mode \
gluon-status-page \
haveged \
iptables \
iwinfo \
ffs-set-segment \
ffs-watchdog \
# add addition network drivers and usb support only to targes where disk space does not matter.
ifeq ($(GLUON_TARGET),x86-generic)
GLUON_SITE_PACKAGES += \
kmod-usb-core \
kmod-usb-ohci-pci \
kmod-usb2 \
kmod-usb-hid \
kmod-usb-net \
kmod-usb-net-asix \
kmod-usb-net-dm9601-ether \
kmod-sky2 \
kmod-r8169 \
kmod-forcedeth \
kmod-8139too \
kmod-atl2 \
kmod-igb
endif
DEFAULT_GLUON_RELEASE := 1.4+$(shell date '+%Y-%m-%d')
DEFAULT_BUILD_DATE := $(shell date '+%Y-%m-%d')
FFS_BUILD_DATE ?= $(DEFAULT_BUILD_DATE)
DEFAULT_GLUON_RELEASE := 3.3+$(FFS_BUILD_DATE)-g.$(shell git -C $(GLUON_SITEDIR)/gluon log --pretty=format:'%h' -n 1)-s.$(shell git -C $(GLUON_SITEDIR) log --pretty=format:'%h' -n 1)
GLUON_LANGS := de en
......@@ -60,4 +16,7 @@ GLUON_REGION ?= eu
GLUON_PRIORITY ?= 0.1
#enable generation of images for ath10k devices with ibss mode
GLUON_ATH10K_MESH ?= 11s
GLUON_WLAN_MESH ?= 11s
# only build upgrade images for legacy devices
GLUON_DEPRECATED ?= upgrade