Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update 2024.1.x #117

Open
wants to merge 31 commits into
base: v2024.1.x
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
d56b7f8
update community-repo to include mt7915 fix in wifi workaround
maurerle Jun 27, 2024
60845d9
update changelog for v2023.2.x firmware
maurerle Jun 27, 2024
787c298
update modules to fix bash bug
maurerle Jun 28, 2024
c804ca5
add ffac-private-wan-dhcp to cellular devices
maurerle Jul 1, 2024
c5310dd
update community-packages to master
maurerle Jul 2, 2024
c38ef6d
Add ffmuc-custom-banner
grische Jul 4, 2024
bc15472
Makefile: make all the default target
grische Jul 4, 2024
ee02dd5
Makefile: add new function to print-targets
grische Jul 4, 2024
69de09d
targets: allow GLUON_TARGETS to be overriden
grische Jul 4, 2024
bbee16c
github: add workflow to build firmware
grische Jul 4, 2024
cd95faf
Merge pull request #107 from grische/feature/firmware-ci
maurerle Jul 5, 2024
ffd6850
update the ffac-mt7915-hotfix package
maurerle Jul 5, 2024
d78e466
Merge pull request #108 from ffac/update_mt7915_hotfix
maurerle Jul 5, 2024
89a96db
update ffac-gluon-packages repo
maurerle Jul 5, 2024
cc608e0
fixes the link to the node on the map in the ffmuc-custom-banner
maurerle Jul 10, 2024
b49eece
Merge pull request #109 from maurerle/fix_banner_map_url
maurerle Jul 10, 2024
e2e0b57
remove usb from mt7620 instead of removing useful features
maurerle Jul 15, 2024
871a32d
Remove language in map url link in gluon-banner config
maurerle Jul 15, 2024
f009bee
Merge pull request #111 from ffac/banner_map_link_remove_language
maurerle Jul 15, 2024
2c749fb
remove usb for openmesh devices
maurerle Jul 18, 2024
fd053d2
the zyxel nwa55axe is not broken anymore after inclusion of the netwo…
maurerle Jul 18, 2024
764681d
Merge pull request #113 from ffac/openmesh_reduce_size
maurerle Jul 18, 2024
8a806e8
Merge pull request #114 from ffac/unbreak_nwa55axe
maurerle Jul 18, 2024
64c378d
Revert "remove usb for openmesh devices"
maurerle Jul 18, 2024
89383a0
Merge pull request #110 from ffac/remove_usb_mt7620
maurerle Jul 18, 2024
280bf9c
add usb hotplug and usb location package
Jul 25, 2024
a74220e
Merge branch 'add_packages' into v2024.1.x
Jul 25, 2024
2f7c85b
update openwrt to latest
Jul 25, 2024
e429b65
add failed devices to tiny
Jul 26, 2024
ab27b08
update to latest gluon
maurerle Aug 9, 2024
e46ae33
update community packages
maurerle Aug 9, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
96 changes: 96 additions & 0 deletions .github/workflows/firmware.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
name: Build firmware

on:
workflow_dispatch:
push:
tags:
- v*
pull_request:
paths-ignore:
- '**.md'
- '**/CODEOWNERS'
- '.github/ISSUE_TEMPLATE'
- '.github/*.yml'
- '.github/workflows/backport.yml'
- '.github/workflows/bump-modules.yml'
- 'contrib/sign.sh'
- 'contrib/actions/update-modules.sh'

jobs:
generate_target_matrix:
runs-on: ubuntu-latest
outputs:
target_json: ${{ steps.set_target.outputs.target }}
build_target_json: ${{ steps.set_target.outputs.build_target }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set target matrix
id: set_target
shell: bash
run: |
target_list=$(make GLUON_RELEASE=0 print-targets | jq -Rsc '.[:-1] | split("\n")')
echo "target={\"target\": $(echo $target_list)}" >> $GITHUB_OUTPUT
echo "build_target={\"target\": $(echo $target_list)}" >> $GITHUB_OUTPUT

build_firmware:
needs: generate_target_matrix
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.generate_target_matrix.outputs.build_target_json) }}
runs-on: ubuntu-latest
steps:
- name: Maximize build space
run: |
sudo rm -rf /usr/share/dotnet
sudo rm -rf /usr/local/lib/android
sudo rm -rf /opt/ghc
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
- name: Install build dependencies
run: |
sudo -E ./scripts/install_build_dependencies.sh
- name: build target ${{ matrix.target }}
id: compile
run: |
git checkout -b patched ${GITHUB_SHA}
make BROKEN=1 GLUON_TARGETS=${{ matrix.target }} V=s
echo "status=success" >> $GITHUB_OUTPUT
- name: Upload firmware ${{ matrix.target }}
uses: actions/upload-artifact@v4
if: steps.compile.outputs.status == 'success'
with:
name: ${{ matrix.target }}_output
path: ./output

create_release:
runs-on: ubuntu-latest
needs:
- build_firmware
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
steps:
- name: Download all artifacts
uses: actions/download-artifact@v4
- name: Display structure of artifacts
run: ls -R
- name: Create tar.gz files
run: |
set -x
for output in *_output; do
tar zcvf "${output}.tar.gz" "${output}"
done
- name: Create Release & Upload Release Assets
uses: softprops/action-gh-release@a74c6b72af54cfa997e81df42d94703d6313a2d0 # v2.0.6
with:
# Note: If there is no release name specified, releases created in
# the GitHub UI do not trigger a failure and are modified instead.
draft: false
prerelease: false
# Note: Release notes are only auto-generated if the release was
# created by the Github Action and was not created in the Github UI.
generate_release_notes: true
files: |
./*_output.tar.gz
26 changes: 26 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,31 @@
# Freifunk Aachen Firmware Changelog

## v2023.2.3-1
- update gluon to v2023.2.2
- add driver error based workaround for mt7915

## v2023.2.2-3
- add general-workaround if mesh connection is lost
- add tecff-broken-wlan-workaround
- reduce mtu by 70 on mesh-vpn interface
- set gw_sel_class to 20 to improve switching
- fix device names which include cellular package
- remove autoupdater-wifi-fallback from mt7620 due to size
- update gluon and community-packages

## v2023.2.2-2
- debug firmware with sae gluon-usteer and owe
- not released with signatures

## v2023.2.2-1
- update gluon to v2023.2.2
- add time-based workaround for mt7915
- makefile fix issue when upstream adds new patches

## v2023.2.1-1
- update gluon to v2023.2.1
- remove old unused x86 targets and sunxi-cortexa7

## v2023.2.0-9
- add open-vm-tools to x86-64
- update to latest gluon v2023.2.x
Expand Down
8 changes: 6 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -89,10 +89,12 @@ define INFO :=

endef
# show info section for all make calls except the filtered ones
ifneq (,$(filter-out gluon-clean output-clean clean,$(MAKECMDGOALS)))
ifneq (,$(filter-out gluon-clean output-clean clean print-targets,$(MAKECMDGOALS)))
$(info $(INFO))
endif

## Default target
all: manifest

## Prepare folders
$(GLUON_BUILD_DIR):
Expand All @@ -117,7 +119,6 @@ gluon-update: | $(GLUON_BUILD_DIR)/.git


## Build rules
all: manifest

sign: manifest | $(SECRET_KEY_FILE)
ifdef DEVICE_INFO
Expand Down Expand Up @@ -292,6 +293,9 @@ endif

clean: gluon-clean output-clean devices-clean

print-targets:
@echo "$(GLUON_TARGETS)" | tr ' ' '\n'

Makefile: ;

FORCE: ;
Expand Down
44 changes: 26 additions & 18 deletions image-customization.lua
Original file line number Diff line number Diff line change
Expand Up @@ -17,23 +17,35 @@ features {

packages {
'iwinfo',
'ffac-ssid-changer',
'ffac-wg-registration',
'ff-web-ap-timer',
'respondd-module-airtime',
'tecff-general-workaround',
'tecff-broken-wlan-workaround',
}

if not device_class('tiny') and not target('ramips', 'mt7620') then
include_usb = false

tiny_like = device({
'tp-link-archer-c6-v2-eu-ru-jp',
'tp-link-archer-c60-v1',
'tp-link-td-w8970',
'tp-link-td-w8980',
})

if not device_class('tiny') and not tiny_like then
features {
'tls',
'wireless-encryption-wpa3',
}
packages {
'openssh-sftp-server',
'ffac-autoupdater-wifi-fallback',
'ffmuc-custom-banner',
'ffac-ssid-changer',
'ff-web-ap-timer',
}
-- usb is only default available for non-tiny devices
include_usb = true
end

if device({
Expand All @@ -48,6 +60,9 @@ if device({
features {
'web-cellular',
}
packages {
'ffac-web-private-wan-dhcp',
}
end

pkgs_usb = {
Expand Down Expand Up @@ -109,10 +124,8 @@ pkgs_pci = {
'kmod-bnx2', -- Broadcom NetExtreme BCM5706/5708/5709/5716
}

include_usb = true

-- rtl838x has no USB support as of Gluon v2023.2
if target('realtek', 'rtl838x') then
if target('realtek', 'rtl838x') or target('ramips', 'mt7620') then
include_usb = false
end

Expand Down Expand Up @@ -175,6 +188,7 @@ if include_usb then
packages(pkgs_usb_net)
packages(pkgs_usb_serial)
packages(pkgs_usb_storage)
packages {'ffka-gluon-web-usb-wan-hotplug', 'ffac-update-location-gps'}
end

-- device has no reset button and requires a special package to go into setup mode
Expand All @@ -183,6 +197,7 @@ if device({
'zyxel-nwa55axe',
}) then
packages {'ffda-network-setup-mode'}
broken(false)
end

if target('x86', '64') then
Expand All @@ -202,16 +217,9 @@ if target('bcm27xx') then
packages(pkgs_hid)
end

if target('ramips', 'mt7621') then
-- reload wifi firmware twice a day
packages {
'ffac-mt7915-hotfix',
}
end

if target('mediatek', 'filogic') then
-- reboot target three times a day
packages {
'ffac-threetime-reboot',
}
if target('ramips', 'mt7621') or target('ramips', 'mt7622') or target('mediatek', 'filogic') then
-- reload wifi firmware twice a day
packages {
'ffac-mt7915-hotfix',
}
end
12 changes: 8 additions & 4 deletions modules
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
GLUON_SITE_FEEDS="community"
GLUON_SITE_FEEDS="community ffac"

PACKAGES_COMMUNITY_REPO=https://github.com/ffac/community-packages.git
PACKAGES_COMMUNITY_COMMIT=8695f1983c30058aed29090775d0167241ebf419
PACKAGES_COMMUNITY_BRANCH=dev
PACKAGES_COMMUNITY_REPO=https://github.com/freifunk-gluon/community-packages.git
PACKAGES_COMMUNITY_COMMIT=106ff0544832fcc5573a1bea504c0b0a536cb1cd
PACKAGES_COMMUNITY_BRANCH=update-location-gps

PACKAGES_FFAC_REPO=https://github.com/ffac/gluon-packages.git
PACKAGES_FFAC_COMMIT=b7ccdae873eebaa01aa555ec2a356d370e8d3908
PACKAGES_FFAC_BRANCH=private-wan-dhcp-web
12 changes: 2 additions & 10 deletions patches/020-interfaces.patch
Original file line number Diff line number Diff line change
@@ -1,16 +1,8 @@
diff --git a/package/gluon-core/luasrc/lib/gluon/upgrade/020-interfaces b/package/gluon-core/luasrc/lib/gluon/upgrade/020-interfaces
index 22bf7bb8..0cddbaea 100755
index 5e5243a0..81ff6513 100755
--- a/package/gluon-core/luasrc/lib/gluon/upgrade/020-interfaces
+++ b/package/gluon-core/luasrc/lib/gluon/upgrade/020-interfaces
@@ -70,10 +70,29 @@ elseif platform.match('ramips', 'mt7621', {
'tplink,eap615-wall-v1',
}) then
lan_ifname, wan_ifname = 'lan1 lan2 lan3', 'lan0'
+elseif platform.match('ipq40xx', 'generic', {
+ 'avm,fritzbox-7530',
+}) then
+ lan_ifname, wan_ifname = 'lan2 lan3 lan4', 'lan1'
elseif platform.match('lantiq', 'xrx200', {
@@ -79,6 +79,21 @@ elseif platform.match('lantiq', 'xrx200', {
'arcadyan,vgv7510kw22-nor',
}) then
lan_ifname, wan_ifname = 'lan1 lan2 lan3 lan4', 'wan'
Expand Down
5 changes: 3 additions & 2 deletions patches/targets-mk.patch
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
diff --git a/targets/targets.mk b/targets/targets.mk
index 14955134..7a5a9b2e 100644
index 20224a06..eca0fcc0 100644
--- a/targets/targets.mk
+++ b/targets/targets.mk
@@ -29,5 +29,7 @@ $(eval $(call GluonTarget,x86,64))
@@ -29,6 +29,8 @@ $(eval $(call GluonTarget,x86,64))
ifeq ($(BROKEN),1)
$(eval $(call GluonTarget,bcm27xx,bcm2710)) # BROKEN: Untested
$(eval $(call GluonTarget,bcm27xx,bcm2711)) # BROKEN: No 11s support, no reset button, sys LED issues
+$(eval $(call GluonTarget,ipq40xx,chromium)) # BROKEN: Untested
+$(eval $(call GluonTarget,ipq807x,generic)) # BROKEN: Untested
$(eval $(call GluonTarget,kirkwood,generic)) # BROKEN: 11s support untested
$(eval $(call GluonTarget,mvebu,cortexa9)) # BROKEN: No 11s support
endif
4 changes: 2 additions & 2 deletions release.mk
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
GLUON_GIT_URL := https://github.com/freifunk-gluon/gluon.git
GLUON_GIT_REF := 57e86b4466225285a143d52ab65afe722b6450b5
GLUON_GIT_URL := https://github.com/ffac/gluon.git
GLUON_GIT_REF := 508eda77cbf0146f7069ad584be646e3553f3020 # next
40 changes: 40 additions & 0 deletions scripts/install_build_dependencies.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#!/usr/bin/env sh

set -eux

# Verify that the script is running in Ubuntu
. /etc/lsb-release
if [ "$DISTRIB_ID" != "Ubuntu" ]; then
echo "Error: This script only works in Ubuntu"
exit 1
fi

# Avoid tzdata from asking which timezone to choose
export DEBIAN_FRONTEND=noninteractive

apt-get update

# ca-certificates required for Github git cloning
apt-get -y --no-install-recommends install ca-certificates

# Install build environment
apt-get -y --no-install-recommends install \
bash \
bzip2 \
curl \
diffutils \
file \
g++ \
gawk \
gcc \
git \
libncurses5-dev \
make \
patch \
perl \
python3 \
qemu-utils \
rsync \
tar \
unzip \
wget
6 changes: 6 additions & 0 deletions site.conf
Original file line number Diff line number Diff line change
Expand Up @@ -335,6 +335,12 @@
tq_limit_max = 55, -- upper limit, above that the online SSID will be used
tq_limit_min = 45, -- lower limit, below that the offline SSID will be used
},

custom_banner = {
enabled = true, -- optional (enabled by default)
map_url = 'https://map.aachen.freifunk.net/#!/', -- optional (skipped by default)
contact_url = 'https://freifunk-aachen.de/kontakt/', -- optional (skipped by default)
},
}

-- /* vi: set ft=lua: */
4 changes: 4 additions & 0 deletions targets.mk
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
ifndef GLUON_TARGETS

define GLUON_TARGETS :=
ath79-generic
ath79-nand
Expand Down Expand Up @@ -31,3 +33,5 @@ endef
endif

GLUON_TARGETS := $(GLUON_TARGETS:\n= )

endif
Loading