]> git.ipfire.org Git - thirdparty/openwrt.git/log
thirdparty/openwrt.git
5 weeks agotreewide: add explicit default variant 21355/head
Eric Fahlgren [Fri, 2 Jan 2026 02:02:30 +0000 (18:02 -0800)] 
treewide: add explicit default variant

Some packages with variants did not specify the default among the
alternatives, so were left without any apk 'provider_priority'
for that package.  This caused the apk solver to select the wrong
variant, silently changing the requested package list.

Notable among these were busybox, procd and the hostapd/wpad suite.
This behavior presented in the imagebuilders when creating the
image as follows, silently replacing packages even when explicitly
requested:

    $ make image PACKAGES=busybox
    ...
    ( 14/148) Installing busybox-selinux (1.37.0-r6)
    ...

We add 'DEFAULT_VARIANT:=1' to the packages that were missing one,
providing apk with sufficient information to choose the correct
package.

See link below for further examples and discussion.

Link: https://github.com/openwrt/openwrt/pull/21288#issuecomment-3704101422
Signed-off-by: Eric Fahlgren <ericfahlgren@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21358
(cherry picked from commit f4fdb9964a1add146e0efdeba864a6478212a9fa)
Link: https://github.com/openwrt/openwrt/pull/21355
Signed-off-by: Robert Marko <robimarko@gmail.com>
5 weeks agokernel/rtl8812au-ct: provide a virtual kmod
George Sapkin [Sun, 28 Dec 2025 15:37:08 +0000 (17:37 +0200)] 
kernel/rtl8812au-ct: provide a virtual kmod

Switch rtl8812au-ct to use the new virtual kmod provides semantic.

Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21288
(cherry picked from commit 2c81176f2b5cfde3fd1a7243077802b106d3dd71)
Link: https://github.com/openwrt/openwrt/pull/21355
Signed-off-by: Robert Marko <robimarko@gmail.com>
5 weeks agokernel/ath10k: provide a virtual kmod
George Sapkin [Sun, 28 Dec 2025 15:34:48 +0000 (17:34 +0200)] 
kernel/ath10k: provide a virtual kmod

Switch ath10k and related kmods to use the new virtual kmod provides
semantic and mark ath10k as the default variant.

Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21288
(cherry picked from commit 8f4c64b9304a79ab6e004b945b00b25de4e5d5d7)
Link: https://github.com/openwrt/openwrt/pull/21355
Signed-off-by: Robert Marko <robimarko@gmail.com>
5 weeks agokernel/r8169: provide a virtual kmod
George Sapkin [Sun, 28 Dec 2025 15:30:12 +0000 (17:30 +0200)] 
kernel/r8169: provide a virtual kmod

Switch r8169 and related kmods to use the new virtual kmod provides
semantic and mark r8169 as the default variant.

Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21288
(cherry picked from commit 01fa50b7745b176b0c4e3d1babd1616a1cb36868)
Link: https://github.com/openwrt/openwrt/pull/21355
Signed-off-by: Robert Marko <robimarko@gmail.com>
5 weeks agoca-certificates: provide a virtual package
George Sapkin [Thu, 25 Dec 2025 15:16:18 +0000 (17:16 +0200)] 
ca-certificates: provide a virtual package

Switch ca-certs provides to use the new virtual provides semantic that
enables ca-bundle and ca-certificates to be installed side-by-side.

Provide the new format virtual ca-certificates-any in ca-bundle.

Fixes: https://github.com/openwrt/openwrt/issues/21257
Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21288
(cherry picked from commit d75a6bed7a520c7a556e04b9270b0a3dc41e0d10)
Link: https://github.com/openwrt/openwrt/pull/21355
Signed-off-by: Robert Marko <robimarko@gmail.com>
5 weeks agobuild: provide virtual self in kmods
George Sapkin [Sun, 28 Dec 2025 15:22:41 +0000 (17:22 +0200)] 
build: provide virtual self in kmods

Add an implicit self-provide to kmods. apk can't handle self provides,
be it versioned or virtual, so opt for a prefix and a suffix instead.
Package name without a prefix/suffix is too generic and might conflict
with other packages, e.g. wireguard. This allows several variants to
provide the same virtual package without adding extra provides to the
default one, e.g. r8169 implicitly provides kmod-r8169-any and is marked
as default, so r8125 can explicitly provide @kmod-r8169-any as well.

Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21288
(cherry picked from commit 9b37b7185c18855f4e017ac573701cdcd92fbcd1)
Link: https://github.com/openwrt/openwrt/pull/21355
Signed-off-by: Robert Marko <robimarko@gmail.com>
5 weeks agobuild: add support for virtual provides
George Sapkin [Thu, 25 Dec 2025 13:32:29 +0000 (15:32 +0200)] 
build: add support for virtual provides

Allow defining virtual provides using the PROVIDES field by prefixing
them with @, e.g.:

PROVIDES:=@ca-certs

Virtual provides don't own the provided name and multiple packages with
the same virtual provides can be installed side-by-side. Packages must
still take care not to override each other's files.

Add an implicit self-provide to packages. apk can't handle self
provides, be it versioned or virtual, so opt for a suffix instead. This
allows several variants to provide the same virtual package without
adding extra provides to the default one, e.g. wget implicitly provides
wget-any and is marked as default, so wget-ssl can explicitly provide
@wget-any as well.

Filter out virtual provides when generating metadata.

Filter out virtual provides prefix and self provide where appropriate.

Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21288
(cherry picked from commit 5ed650acbfd9cfbfd6a381df7db060c9153bacfc)
Link: https://github.com/openwrt/openwrt/pull/21355
Signed-off-by: Robert Marko <robimarko@gmail.com>
5 weeks agobuild: refactor provides logic
George Sapkin [Thu, 25 Dec 2025 12:09:53 +0000 (14:09 +0200)] 
build: refactor provides logic

Refactor provides logic into a helper define and use it for both apk and
control. Document the behavior.

Store preformatted provides in Package/$(1)/PROVIDES similar to defines.

Remove unnecessary logging.

Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21288
(cherry picked from commit cefbf1184f860b3ae29ea7a06d79b49c40879277)
Link: https://github.com/openwrt/openwrt/pull/21355
Signed-off-by: Robert Marko <robimarko@gmail.com>
5 weeks agomediatek: filogic: asus,rt-ax57m: remove unused pinctrl groups 21237/head
Daniel Golle [Tue, 23 Dec 2025 14:49:48 +0000 (14:49 +0000)] 
mediatek: filogic: asus,rt-ax57m: remove unused pinctrl groups

Remove unused pinctrl groups defined in the device tree, probably as a
result of importing the vendor device tree which is based on the
reference board from MediaTek's SDK.

114b5c2063 ("mediatek: filogic: Add support ASUS RT-AX57M")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
(cherry picked from commit 96205c99d01cf7f5e69f03ccdea790d0eb9ddb36)
Signed-off-by: Garrett Mesmer <garrettmesm@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21237
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 weeks agomediatek: filogic: Add support ASUS RT-AX57M
Garrett Mesmer [Tue, 8 Jul 2025 09:50:14 +0000 (12:50 +0300)] 
mediatek: filogic: Add support ASUS RT-AX57M

ASUS RT-AX57M, RT-AX54HP V2, RT-AX1800HP V2, RT-AX1800S V2, and RT-AX3000S all use the same firmware and have identical hardware

Hardware
--------
SOC: MediaTek MT7981b
RAM: 256MB DDR3L (Winbond W632GU6NB-09)
FLASH: 128MB SPI-NAND (Winbond W25N01KVZEIR)
WIFI: Mediatek MT7981b + Mediatek MT7976DAN 802.11ax 2.4/5 GHz
ETH: MediaTek MT7531AE Switch
UART: 3V3 115200 8N1 (Pinout silkscreened / Do not connect VCC)

MAC addresses
-------------
LAN Label MAC (stored in mtd ubi Factory partition at offset 0x4)
WAN LAN
2.4G LAN + 2 in first octet
5G LAN

Installation
-----------------------------------------------------------
Vendor-UI Method
-----------------------------------------------------------
1. Download the OpenWrt initramfs.trx image.

2. Connect the PC via LAN to one of the yellow router ports and wait
   until your PC to get a DHCP lease.

3. Browse to http://192.168.1.1 (or whatever your router IP is configured as)

4. If your router is brand new, finish the setup process and log into
   the Web-UI.

5. Navigate to Administration -> Firmware Upgrade and upload the
   downloaded OpenWrt initramfs.trx image.

6. Wait for OpenWrt to boot. Open the default OpenWrt IP in a web browser and perform a system upgrade using the sysupgrade image as instructed in the top banner.

---------------------------------------------------------------------------
Revert to stock firmware:
1: Install package facinstall -> https://forum.openwrt.org/t/facinstall-package-for-easy-installation-factory-images/177587
2. Install Asus stock trx image via OpenWRT LuCI interface.

Signed-off-by: Garrett Mesmer <garrettmesm@gmail.com>
Co-Authored-By: Oleg S <remittor@gmail.com>
Signed-off-by: Oleg S <remittor@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20491
(cherry picked from commit d09e2b1926a6009299eb034928df2c6b6b04dfa8)
Link: https://github.com/openwrt/openwrt/pull/21237
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 weeks agoutil-linux: update to 2.41.3 21357/head
Wei-Ting Yang [Wed, 24 Dec 2025 15:20:12 +0000 (23:20 +0800)] 
util-linux: update to 2.41.3

Release notes:
https://www.kernel.org/pub/linux/utils/util-linux/v2.41/v2.41.3-ReleaseNotes

Also update URL to use HTTPS.

Signed-off-by: Wei-Ting Yang <williamatcg@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21276
(cherry picked from commit c1281a501eac0ac1ec354ef9100562a1f1ad3872)
Link: https://github.com/openwrt/openwrt/pull/21357
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 weeks agotools: util-linux: update to 2.41.3
Wei-Ting Yang [Wed, 24 Dec 2025 15:16:00 +0000 (23:16 +0800)] 
tools: util-linux: update to 2.41.3

Release notes:
https://www.kernel.org/pub/linux/utils/util-linux/v2.41/v2.41.3-ReleaseNotes

Remove upstreamed:
110-meson-fix-a-bug-in-posixipc_libs-configuration.patch

Signed-off-by: Wei-Ting Yang <williamatcg@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21276
(cherry picked from commit 99fd5aa496a6684994af23500fb851758987a8f1)
Link: https://github.com/openwrt/openwrt/pull/21357
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 weeks agolibiwinfo: update to Git HEAD (2025-11-29)
Hauke Mehrtens [Wed, 31 Dec 2025 20:33:08 +0000 (21:33 +0100)] 
libiwinfo: update to Git HEAD (2025-11-29)

2ebef3da84e8 iwinfo: Query hostapd for 'ssid2'

Link: https://github.com/openwrt/openwrt/pull/21347
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 2139360a781b65045caba3b264c7165dba03ef81)
Link: https://github.com/openwrt/openwrt/pull/21357
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 weeks agobase-files: fix default_postinst clearing luci cache
Liangbin Lian [Thu, 25 Dec 2025 05:50:14 +0000 (13:50 +0800)] 
base-files: fix default_postinst clearing luci cache

The path to the LuCI index cache file has changed to
/tmp/luci-indexcache.*.json since OpenWrt 22.03.

Update functions.sh to align with luci.mk.

Signed-off-by: Liangbin Lian <jjm2473@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21280
(cherry picked from commit e9fd3facd041263dcc080748e0637ee99c517dd8)
Link: https://github.com/openwrt/openwrt/pull/21357
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 weeks agokernel: bump 6.12 to 6.12.63 21356/head
John Audia [Thu, 18 Dec 2025 15:10:55 +0000 (10:10 -0500)] 
kernel: bump 6.12 to 6.12.63

Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.63

Manually rebased:
  qualcommax/patches-6.12/0113-remoteproc-qcom-Add-secure-PIL-support.patch
  qualcommax/patches-6.12/0116-remoteproc-qcom-Update-regmap-offsets-for-halt-regis.patch

Removed upstreamed:
  airoha/patches-6.12/029-14-spi-airoha-snfi-en7523-workaround-flash-damaging.patch[1]

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.63&id=7be679104357439ff6eab076975f5f74368acd69

Build system: x86/64
Build-tested: flogic/glinet_gl-mt6000, ramips/tplink_archer-a6-v3, x86/64-glibc
Run-tested: flogic/glinet_gl-mt6000, ramips/tplink_archer-a6-v3, x86/64-glibc

Co-authored-by: Goetz Goerisch <ggoerisch@gmail.com>
Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/21329
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit b638d886f05caa655986e973fa17eebfe0a643b0)
Link: https://github.com/openwrt/openwrt/pull/21356
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
5 weeks agogeneric: add missing symbol
John Audia [Fri, 19 Dec 2025 21:37:38 +0000 (16:37 -0500)] 
generic: add missing symbol

Set SND_SOC_NAU8325 to no

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/21329
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit b3d1da911561736942e7deb19777e0fc518d1009)
Link: https://github.com/openwrt/openwrt/pull/21356
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
6 weeks agomediatek: filogic: fix supported_devices list for gl-mt2500
Eric Fahlgren [Mon, 3 Nov 2025 20:34:37 +0000 (12:34 -0800)] 
mediatek: filogic: fix supported_devices list for gl-mt2500

The SUPPORTED_DEVICES sets for both Maxlinear (v1) and Airoha (v2)
devices were identical, so sysupgrade was unable to detect when an
incorrect image was being installed.  This caused "soft bricking" of
devices when a v1 image was installed on a v2 device, and vice versa.

Fix this by making the supported_devices distinct for each device
version, by renaming the devices with a version-specific name.
This is reflected in the file name and the image metadata.

Fixes: https://github.com/openwrt/openwrt/issues/20566
Fixes: https://github.com/openwrt/asu/issues/1525
Signed-off-by: Eric Fahlgren <ericfahlgren@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20632
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit b71f4665cda10c284c9460409ae30fb9b0beecf8)

6 weeks agouboot-mediatek: comfast,cf-wr632ax: fix missing escape sequence
Andrii Kuiukoff [Wed, 24 Dec 2025 17:50:40 +0000 (19:50 +0200)] 
uboot-mediatek: comfast,cf-wr632ax: fix missing escape sequence

Add missing escape sequence to restore terminal coloring in the OpenWrt U-Boot boot menu.

Signed-off-by: Andrii Kuiukoff <andros.ua@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21283
[Fix _bootmenu_update_title too]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 3af16b2359691adf0e4ff4fa9302e40f4b494985)

6 weeks agowifi-scripts: use OWE + country for 6GHz
Hauke Mehrtens [Sun, 28 Dec 2025 22:03:32 +0000 (23:03 +0100)] 
wifi-scripts: use OWE + country for 6GHz

Wifi on the 6GHz band does not support open networks, configure owe by
default. 6GHz wifi also needs a country code, configure a broken country
code '00' by default to hint the user to change it.

Link: https://github.com/openwrt/openwrt/pull/21313
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 01a87f4bd0cdbfc84bbc172920e865c1600f7a45)

6 weeks agowifi-scripts: don't set wpa_pairwise for wpa=0
Leon M. Busch-George [Thu, 18 Dec 2025 21:24:51 +0000 (22:24 +0100)] 
wifi-scripts: don't set wpa_pairwise for wpa=0

Without this patch, the

    if (!config.wpa)
   config.wpa_pairwise = null;

is overwritten immediately.

Signed-off-by: Leon M. Busch-George <leon@georgemail.eu>
Link: https://github.com/openwrt/openwrt/pull/21215
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit bc4e7fd38ee1925c3cec8c2fe4730f334ca6be1e)

6 weeks agoodhcp6c: update to 25.12 Git HEAD (2025-12-29) 21321/head
Álvaro Fernández Rojas [Mon, 29 Dec 2025 17:25:47 +0000 (18:25 +0100)] 
odhcp6c: update to 25.12 Git HEAD (2025-12-29)

699cc61568b6 dhcpv6: omit IA_NA on Request
8774d3c0ec9c dhcpv6: dhcpv6_send: convert whitespaces to tabs
11abe3790431 ra: convert if block to switch
c05b803d38e9 odhcp6c: do cleanup at exit
6aa4e491a869 config: fix potential memory leaks in error paths
235cdc97d73b all: add log helpers
6e3272d609d3 dhcpv6: clarifying comments
04aea4e3f870 dhcpv6: offload FQDN construction to init_dhcpv6
449ce8374275 dhcpv6: migrate dhcpv6_response_is_valid to switch case

https://github.com/openwrt/odhcp6c/compare/5ab3203875ad...699cc61568b6

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
6 weeks agoairoha: spi: update airoha-snfi patches and en7523 dts
Mikhail Kshevetskiy [Sat, 27 Dec 2025 05:28:09 +0000 (08:28 +0300)] 
airoha: spi: update airoha-snfi patches and en7523 dts

Changes:
* use upstream patches for airoha-snfi driver
* update in kernel en7523 dts to add spinand support

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
Link: https://github.com/openwrt/openwrt/pull/21299
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit d9b1c747807973053a2cba599ae247234588e341)

6 weeks agomvebu: enable tickless idle 21305/head
Qingfang Deng [Fri, 12 Dec 2025 02:53:11 +0000 (10:53 +0800)] 
mvebu: enable tickless idle

Switch to NO_HZ_IDLE for energy saving. Also enable Menu cpuidle
governor for tickless systems.

Run-tested: Linksys WRT1900AC v2

Signed-off-by: Qingfang Deng <dqfext@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21136
(cherry picked from commit c13f299918702799e883fc330521bed4b7da0bd3)
Link: https://github.com/openwrt/openwrt/pull/21305
Signed-off-by: Robert Marko <robimarko@gmail.com>
6 weeks agoath79: cf-ew71-v2: set label-mac-device to eth1
Florian Maurer [Tue, 16 Dec 2025 15:12:08 +0000 (16:12 +0100)] 
ath79: cf-ew71-v2: set label-mac-device to eth1

The EW71v2 has the WAN port configured at eth1.
The printed label-mac is configured on this iface in openwrt.

Signed-off-by: Florian Maurer <f.maurer@outlook.de>
(cherry picked from commit 7f3537ee2cefbe90ff9408c5bf0c855186daa62b)

6 weeks agowifi-scripts: fix race in wireless interface creation
Nick Hainke [Sat, 27 Dec 2025 12:43:47 +0000 (13:43 +0100)] 
wifi-scripts: fix race in wireless interface creation

When wdev interfaces and hostapd interfaces are mixed, race conditions
can occur. Sometimes all interfaces are started correctly, sometimes only
the wdev interface and some of the hostapd interfaces, and sometimes only
the wdev interface.

Fix this by creating the wdev interfaces first, before processing
wpa_supplicant or hostapd interfaces.

Link: https://github.com/openwrt/openwrt/pull/21303
Signed-off-by: Nick Hainke <vincent@systemli.org>
(cherry picked from commit 2015a40c387119d56c290734f571c41878938e88)

6 weeks agorealtek: fix Linksys LGS328C dts memory definition
Markus Stockhausen [Tue, 23 Dec 2025 20:29:46 +0000 (21:29 +0100)] 
realtek: fix Linksys LGS328C dts memory definition

RTL930x devices have highmem starting address at 0x20000000.
The Linksys LGS328C highmem definition is wrongly shared with
the larger LGS352C RTL931x model and starts at 0x90000000.
Fix it by splitting the definition.

Fixes: 853d73f ("realtek: add support for Linksys LGS328C")
Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21262
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 5d7470d4caab5c4c9b0d9e853d4681f2e7183c4e)

6 weeks agowifi-scripts: fix mcast_rate type (number, not array) 21301/head
Nick Hainke [Fri, 26 Dec 2025 17:35:01 +0000 (18:35 +0100)] 
wifi-scripts: fix mcast_rate type (number, not array)

The multicast rate (mcast_rate) is defined as a single numeric value,
not an array. The ucode scripts already expect a single number, and
the OpenWrt documentation specifies this option as an integer [0].

Adjust the wireless schema accordingly. This also fixes the wdev.uc
call path for the iw fallback mesh setup.

[0] - https://openwrt.org/docs/guide-user/network/wifi/basic

Link: https://github.com/openwrt/openwrt/pull/21291
(cherry picked from commit a6eb3d9536b8f0290ab2191780c6d3559843aca9)
Link: https://github.com/openwrt/openwrt/pull/21301
Signed-off-by: Nick Hainke <vincent@systemli.org>
6 weeks agowifi-scripts: fix wdev fallback for mesh interfaces
Nick Hainke [Thu, 25 Dec 2025 17:41:10 +0000 (18:41 +0100)] 
wifi-scripts: fix wdev fallback for mesh interfaces

The previous wdev.uc invocation failed for mesh interfaces.
Rewrite it as a loop so the mesh interface is created correctly
when no wpa_supplicant mesh support is installed.

Link: https://github.com/openwrt/openwrt/pull/21291
(cherry picked from commit a18ef412ae73b605a99c319e02bcff9a63b3bfa8)
Link: https://github.com/openwrt/openwrt/pull/21301
Signed-off-by: Nick Hainke <vincent@systemli.org>
6 weeks agomediatek: add kmod-usb3 to default package set of WR3000P
Dmitry Mostovoy [Thu, 25 Dec 2025 08:18:57 +0000 (11:18 +0300)] 
mediatek: add kmod-usb3 to default package set of WR3000P

Include XHCI USB drivers on the Cudy WR3000P v1 router, the drivers are
required to be able to use the USB port for USD devices.

Closes: https://github.com/openwrt/openwrt/issues/21231
Fixes: 04e9d154f209 ("mediatek: filogic: add support for Cudy WR3000P v1")
Signed-off-by: Dmitry Mostovoy <dmitry.mostovoy@ceifx.com>
Link: https://github.com/openwrt/openwrt/pull/21281
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 9da57e2f828bc4a589b9a94e4cdf1b6ccdeb110e)

6 weeks agoath79: Fix syntax error in 10_fix_wifi_mac
Nick French [Thu, 25 Dec 2025 15:53:37 +0000 (09:53 -0600)] 
ath79: Fix syntax error in 10_fix_wifi_mac

This typo makes the script fail with:
-ash: /etc/hotplug.d/ieee80211/10_fix_wifi_mac: line 66: syntax error: unexpected word (expecting ")")

which ultimately prevents the mac address for certain devices wireless cards being set correctly

Signed-off-by: Nick French <nickfrench@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21287
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit cb94962ac474de707302eb1eb7d7f6fc4c099b0d)

6 weeks agowifi-scripts: add missing 802.11be type in hwmodelist
Elwin Huang [Wed, 24 Dec 2025 06:01:32 +0000 (14:01 +0800)] 
wifi-scripts: add missing 802.11be type in hwmodelist

Add EHT* check so that the hwmode will display 802.11be capability correctly.

Signed-off-by: Elwin Huang <s09289728096@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21267
Signed-off-by: Nick Hainke <vincent@systemli.org>
(cherry picked from commit 95112a493923c0cbda244e89388131c27bac0c4f)

6 weeks agoqualcommax: ipq50xx: remove cpufreq scaling
Robert Senderek [Tue, 16 Dec 2025 13:49:40 +0000 (14:49 +0100)] 
qualcommax: ipq50xx: remove cpufreq scaling

ipq5018 do not support freq scaling and therefore stuck on 800Mhz
This patch allows CPU to run with 1.008 Ghz as designed

Signed-off-by: Robert Senderek <robert.senderek@10g.pl>
Link: https://github.com/openwrt/openwrt/pull/21185
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit c1290fa48c3a48bccfaaae98ae5a5ae0b4ab2395)

6 weeks agowifi-scripts: ucode: fix wpa_supplicant mesh 21295/head
Nick Hainke [Thu, 25 Dec 2025 19:32:28 +0000 (20:32 +0100)] 
wifi-scripts: ucode: fix wpa_supplicant mesh

Mesh interfaces may not define an encryption setting. This results in
a ucode runtime error when parse_encryption() is called:
  Reference error: left-hand side expression is null
  In parse_encryption(), file /usr/share/ucode/wifi/iface.uc, line 20, byte 32:
    called from function setup_sta (/usr/share/ucode/wifi/supplicant.uc:59:31)
    called from function generate (/usr/share/ucode/wifi/supplicant.uc:243:41)
    called from function setup (./mac80211.sh:254:61)
    called from anonymous function (./mac80211.sh:342:14)
   `    config.auth_type = encryption[0] ?? 'none';`
    Near here ------------------------^

Link: https://github.com/openwrt/openwrt/pull/21293
(cherry picked from commit 00e6c18a930df22e2734c3bc5d9b1cca1e538e6b)
Link: https://github.com/openwrt/openwrt/pull/21295
Signed-off-by: Nick Hainke <vincent@systemli.org>
6 weeks agokernel: add option for USB FunctionFS gadget
Dominic Germain [Fri, 19 Dec 2025 14:46:57 +0000 (09:46 -0500)] 
kernel: add option for USB FunctionFS gadget

Add menuconfig option 'kmod-usb-gadget-fs' for the USB FunctionFS gadget
module

OpenWRT is perfect for USB gadgets that are network-enabled, since it
provides everything needed to easily manage the device. Having support
for the FunctionFS gadget enables the use of any custom USB devices
that does not have a specific module, like Media Transfer Protocol.

Signed-off-by: Dominic Germain <dominic@germain.cc>
Link: https://github.com/openwrt/openwrt/pull/21207
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 22a69dfa4a9a04833aaac62b9f0a7814571b9e07)

6 weeks agocomgt-ncm: fix setting ip[46]table and MTU
Alexander Patrakov [Sat, 27 Sep 2025 19:59:41 +0000 (03:59 +0800)] 
comgt-ncm: fix setting ip[46]table and MTU

The ncm proto handler ignored ip4table, ip6table, and mtu settings.

The fix is based on the existing code in the mbim proto handler.

Fixes: #20216.
Signed-off-by: Alexander Patrakov <patrakov@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20217
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit b289edd84b3849ce6819e9eb078ab2f3e32f306f)

6 weeks agotoolchain: fix libgcc ABI for libc 21253/head
George Sapkin [Wed, 24 Dec 2025 02:32:01 +0000 (04:32 +0200)] 
toolchain: fix libgcc ABI for libc

libc depends on knowing libgcc's ABI, so it needs to be evaluated first.
Otherwise libc will depend on an ABI-less libgcc causing the rest of the
toolchain to fail.

Building package index...
ERROR: unable to select packages:
  libgcc (virtual):
    note: please select one of the 'provided by'
          packages explicitly
    provided by: libgcc1
    required by: world[libgcc]

Before:

libc fused dependencies: libgcc
libgcc fused dependencies:
libatomic fused dependencies: libgcc1

After:

libgcc fused dependencies:
libc fused dependencies: libgcc1
libatomic fused dependencies: libgcc1

Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21265
(cherry picked from commit 5e32bfbf4bbe8fa4517f27d91d5f53177f7b836a)
Link: https://github.com/openwrt/openwrt/pull/21253
Signed-off-by: Robert Marko <robimarko@gmail.com>
6 weeks agobuild: fix missing PKG_INFO_DIR
George Sapkin [Wed, 24 Dec 2025 02:28:49 +0000 (04:28 +0200)] 
build: fix missing PKG_INFO_DIR

If the first built package has an ABI, PKG_INFO_DIR might not exist, so
ensure it does.

Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/21265
(cherry picked from commit 56bc4a0d894f18933c6de2b65a042d4f34f50cd9)
Link: https://github.com/openwrt/openwrt/pull/21253
Signed-off-by: Robert Marko <robimarko@gmail.com>
6 weeks agobuild: fix apk packaging and ABI-versioning
George Sapkin [Wed, 19 Nov 2025 23:50:03 +0000 (01:50 +0200)] 
build: fix apk packaging and ABI-versioning

The updated logic for the APK dependencies and provides is as follows:

- If ABI version is defined:
  - package is named `package_name-ABI_version`
  - package implicitly provides
    `package_name-ABI_version=package_version`
    this implies that only one version of a package per ABI can be
    installed at the same time
  - additionally provide `package_name` so multiple packages can be
    looked up by its base name
  - for each `provides`, provide `provide-ABI_version=package_version`
    this implies that only one version of a provide can be installed at
    the same time

- else if ABI version is _not_ defined
  - package is named `package_name`
  - package implicitly provides `package_name=package_version`
    this implies that only one version of a package can be installed at
    the same time
  - if `alternatives` is defined
    - for each `provides`, provide `provide`
      this implies that multiple versions of a provide can be installed
      at the same time
  - else if `alternatives` is _not_ defined
    - for each `provides`, provide `provide=package_version`
      this implies that only one version of a provide can be installed
      at the same time

Both cases a package can be looked up by its base name.

ABI version `alternatives`, `conffiles`, `conffiles_static`, `list` and
`rusers` files so multiple versions of the same ABI package can be
installed side by side, and so they don't overwrite each other's
packaging files.

ABI version `EXTRA_DEPENDS` so dependencies can be correctly looked up
using the existing OpenWrt semantics without the ABI specified. This is
needed since ABI-versioned libraries no longer provide
`package_name=package_version`, so that they can be installed side by
side.

Remove duplicate dependencies when `EXTRA_DEPENDS` specifies a versioned
one that is already in `DEPENDS`.

ABI is defined
------------------------------------------------------------------------

`libsqlite3` has `PROVIDES` set to `libfake` and has two different ABI
versions installed. `libfake` is just an example to demonstrate the
mechanics, as the library can already be depended upon using e.g.
`libsqlite3-0=3.51.0-r1`. Note the ABI-versioned lists.

```
root@OpenWrt:/tmp# apk add --allow-untrusted ./libsqlite3-0-3.51.0-r1.apk
(1/1) Installing libsqlite3-0 (3.51.0-r1)
libsqlite3-0-3.51.0-r1.post-install: Executing script...
OK: 22 MiB in 157 packages

root@OpenWrt:/tmp# apk add --allow-untrusted ./libsqlite3-1-4.00.0-r1.apk
(1/1) Installing libsqlite3-1 (4.00.0-r1)
libsqlite3-1-4.00.0-r1.post-install: Executing script...
OK: 23 MiB in 158 packages

root@OpenWrt:/tmp# apk query --fields name,version,contents,provides libsqlite3-0 libsqlite3-1
Name: libsqlite3-0
Version: 3.51.0-r2
Provides: libfake-0=3.51.0-r2 libsqlite3
Contents:
  lib/apk/packages/libsqlite3-0.list
  usr/lib/libsqlite3.so.0
  usr/lib/libsqlite3.so.3.51.0

Name: libsqlite3-1
Version: 4.00.0-r1
Provides: libfake-1=4.00.0-r1 libsqlite3
Contents:
  lib/apk/packages/libsqlite3-1.list
  usr/lib/libsqlite3.so.1
  usr/lib/libsqlite3.so.4.00.0

root@OpenWrt:/tmp# ls -lh /usr/lib/libsqlite3.so.*
lrwxrwxrwx    1 root     root          20 Nov 20 00:23 /usr/lib/libsqlite3.so.0 -> libsqlite3.so.3.51.0
lrwxrwxrwx    1 root     root          20 Nov 20 00:27 /usr/lib/libsqlite3.so.1 -> libsqlite3.so.4.00.0
-rwxr-xr-x    1 root     root        1.0M Nov  6 18:19 /usr/lib/libsqlite3.so.3.51.0
-rwxr-xr-x    1 root     root        1.0M Nov  6 18:19 /usr/lib/libsqlite3.so.4.00.0
```

ABI is not defined
------------------------------------------------------------------------

Both `avahi-dbus-daemon` and `avahi-nodbus-daemon` provide `avahi-daemon`,
but have no ABI specified. This results in `avahi-daemon=0.8-r11` provides
for both packages and only one being able to be installed at the same time:

```
root@OpenWrt:/tmp# apk add --allow-untrusted ./avahi-nodbus-daemon-0.8-r11.apk
(1/4) Installing libavahi-nodbus-support (0.8-r10)
libavahi-nodbus-support-0.8-r10.post-install: Executing script...
(2/4) Installing libdaemon (0.14-r5)
libdaemon-0.14-r5.post-install: Executing script...
(3/4) Installing libexpat (2.7.3-r1)
libexpat-2.7.3-r1.post-install: Executing script...
(4/4) Installing avahi-nodbus-daemon (0.8-r11)
avahi-nodbus-daemon-0.8-r11.post-install: Executing script...
23 MiB in 160 packages

root@OpenWrt:/tmp# apk query --fields provides avahi-nodbus-daemon
Provides: avahi-daemon=0.8-r11

root@OpenWrt:/tmp# apk add --allow-untrusted ./avahi-dbus-daemon-0.8-r11.apk
ERROR: unable to select packages:
  avahi-dbus-daemon-0.8-r11:
    conflicts: avahi-nodbus-daemon-0.8-r11[avahi-daemon=0.8-r11]
    satisfies: world[avahi-dbus-daemon><Q1R111s+ke9Vf+eCxDHX2BZVUK54Q=]
  avahi-nodbus-daemon-0.8-r11:
    conflicts: avahi-dbus-daemon-0.8-r11[avahi-daemon=0.8-r11]
    satisfies: world[avahi-nodbus-daemon><Q1BAu7nLI2MgRabpveLTGO2ksQz7E=]
```

Provides and alternatives
------------------------------------------------------------------------

Both `uclient-fetch` and `wget-nossl` provide `wget` and specify
alternatives, so provides are not versioned and both packages can be
installed at the same time:

```
root@OpenWrt:/tmp# apk query --fields name,version,contents,provides uclient-fetch wget-nossl
Name: uclient-fetch
Version: 2025.10.03~dc909ca7-r1
Provides: wget
Contents:
  bin/uclient-fetch
  lib/apk/packages/uclient-fetch.alternatives
  lib/apk/packages/uclient-fetch.list

Name: wget-nossl
Version: 1.25.0-r1
Provides: gnu-wget wget
Contents:
  lib/apk/packages/wget-nossl.alternatives
  lib/apk/packages/wget-nossl.list
  usr/libexec/wget-nossl

```

Fixes: https://github.com/openwrt/openwrt/issues/20582
Fixes: https://github.com/openwrt/openwrt/issues/20802
Signed-off-by: George Sapkin <george@sapk.in>
Link: https://github.com/openwrt/openwrt/pull/20819
(cherry picked from commit 18029977f65e11bafaad501399ad42a66d3baa10)
Link: https://github.com/openwrt/openwrt/pull/21253
Signed-off-by: Robert Marko <robimarko@gmail.com>
7 weeks agoqualcommax: ipq50xx: fix reo2host-status interrupt vector 21272/head
George Moussalem [Fri, 19 Dec 2025 07:18:04 +0000 (11:18 +0400)] 
qualcommax: ipq50xx: fix reo2host-status interrupt vector

Interrupt vector for reo2host-status is wrongly assigned.
Status interrupts weren't received and a workaround was applied to
mac80211 to periodically poll the reo status ring. Therefore, the
workaround can be removed with the proper hardware interrupt line
assigned.

Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/21272
Signed-off-by: Robert Marko <robimarko@gmail.com>
7 weeks agomicrochipsw: sync with DTS sent upstream
Robert Marko [Tue, 23 Dec 2025 13:08:26 +0000 (14:08 +0100)] 
microchipsw: sync with DTS sent upstream

Sync the DTS with the version sent upstream, clock bindings also.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
(cherry picked from commit bce8432bbdd2f9fe3631d15f56e4336bc04230fa)

7 weeks agoath79: fix build of big images for TP RE355v1, RE450v1 & v2
Radek Dostál [Sun, 14 Dec 2025 09:37:06 +0000 (10:37 +0100)] 
ath79: fix build of big images for TP RE355v1, RE450v1 & v2

After merge of https://github.com/openwrt/openwrt/pull/20709 I noticed,
that https://mirror-03.infra.openwrt.org/snapshots/targets/ath79/tiny/
still does not contain the build for RE450.

I analyzed the problem and noticed, that only builds which fits into
original size can be build and if the image is larger, it fails with
the following error: "WARNING: Image file .../openwrt/build_dir/
target-mips_24kc_musl/linux-ath79_tiny/tmp/
openwrt-ath79-tiny-tplink_re450-v1-squashfs-sysupgrade.bin is too big:
  > 7864320".

This error is quite misleading as the image is smaller than 7864320. The
reason for this error is that default tplink-safeloader has hardcoded
factory partition structure and fails to generate any file.

Rather then fixing tplink-safeloader I followed approach from commit
ebd5e5fb5359 ("ramips: switched TP-Link RE305 v1 to new partition layout")
and switched away from "tplink-safeloader sysupgrade".

I did not include "IMAGES := sysupgrade.bin", because with tiny target it
is still possible to locally build even factory image.

Fixes commit e768731dc8e9 ("ath79: switch TP-Link RE355 v1, RE450 v1 and
RE450 v2 to mtd-concat").

Signed-off-by: Radek Dostál <rd@radekdostal.com>
Link: https://github.com/openwrt/openwrt/pull/21158
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit bdbb4bdfa030add96abef59b43adadf1050d678d)

7 weeks agomediatek: fix pwn fan settings for sinovoip bpi-r3 (v3)
Mikhail Kshevetskiy [Thu, 21 Nov 2024 22:29:06 +0000 (01:29 +0300)] 
mediatek: fix pwn fan settings for sinovoip bpi-r3 (v3)

Popular cheap PWM fans for this machine, like the ones coming in
heatsink+fan combos will not work properly at the currently defined
medium speed. Trying different pwm setting using a command

  echo $value > /sys/devices/platform/pwm-fan/hwmon/hwmon1/pwm1

I found:

  pwm1 value     fan rotation speed   cpu temperature     notes
  -----------------------------------------------------------------
    0            maximal              31.5 Celsius        too noisy
   40            optimal              35.2 Celsius        no noise hearable
   95            minimal
   above 95      does not rotate      55.5 Celsius
  -----------------------------------------------------------------

Current cooling levels are:

cooling-levels = <255 96 0>;

Thus only cpu-active-high and cpu-active-low modes are usable.
This patch fixes cpu-active-medium settings for bpi-r3 board.

This patch may not be enough. Users may wants to tweak their thermal_zone0
trip points, thus tuning fan rotation speed depending on cpu temperature.
That can be done on the base of the following example:

  === example =========
  # cpu temperature below 25 Celsius degrees, no rotation
  echo 25000 > /sys/class/thermal/thermal_zone0/trip_point_4_temp
  # cpu temperature in [25..32] Celsius degrees, normal rotation speed
  echo 32000 > /sys/class/thermal/thermal_zone0/trip_point_3_temp
  # cpu temperature above 50 Celsius degrees, max rotation speed
  echo 50000 > /sys/class/thermal/thermal_zone0/trip_point_2_temp
  =====================

Changes v2:
* put patch to a proper directory
* updated patch description
* tested with latest openwrt based on linux-6.6

Changes v3:
* use upstream linux patch
* update patch description

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17130
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 095151b2354752be6b4be81e6b22b65227c59746)

7 weeks agoOpenWrt v25.12.0-rc1: revert to branch defaults
Hauke Mehrtens [Fri, 19 Dec 2025 23:20:16 +0000 (00:20 +0100)] 
OpenWrt v25.12.0-rc1: revert to branch defaults

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
7 weeks agoOpenWrt v25.12.0-rc1: adjust config defaults v25.12.0-rc1
Hauke Mehrtens [Fri, 19 Dec 2025 23:20:13 +0000 (00:20 +0100)] 
OpenWrt v25.12.0-rc1: adjust config defaults

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
7 weeks agoodhcpd: update to 25.12 Git HEAD (2025-12-18) 21212/head
Álvaro Fernández Rojas [Thu, 18 Dec 2025 17:34:27 +0000 (18:34 +0100)] 
odhcpd: update to 25.12 Git HEAD (2025-12-18)

0779ee287db5 dhcpv6-ia: reconfigure message length bug fix
d69896b0ac7c all: remove dead code
3f6b3b4b9f8a odhcpd: remove fallback DNS search domain
ff3f72fdd01d router: remove some log spam in send_router_advert()
c1cc541e1065 router: improve send_router_advert()
901851b883da router: Modify relayed RA PIO P flag according to interface policy
179429ba477d router: Modify relayed RA PIO A flags according to interface policy

https://github.com/openwrt/odhcpd/compare/cb1b8770b782...0779ee287db5

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
7 weeks agoodhcp6c: update to 25.12 Git HEAD (2025-12-18)
Álvaro Fernández Rojas [Thu, 18 Dec 2025 17:56:35 +0000 (18:56 +0100)] 
odhcp6c: update to 25.12 Git HEAD (2025-12-18)

5ab3203875ad dhcpv6: use stable IAID for IA_NA
29922b7fb497 odhcp6c: avoid clearing CLIENT_ID

https://github.com/openwrt/odhcp6c/compare/2582843959a7...5ab3203875ad

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
7 weeks agoodhcpd: update to 25.12 Git HEAD (2025-12-14) 21203/head
Álvaro Fernández Rojas [Wed, 17 Dec 2025 14:47:16 +0000 (15:47 +0100)] 
odhcpd: update to 25.12 Git HEAD (2025-12-14)

cb1b8770b782 config: add default value for dhcpv6_pd_min_len
20eb94d02dfe config: allow minimum PD len up to 64
7ebd96083971 Revert "router: optimize duplicated PIO comparison"
90ae6fc6e478 statefiles: don't consider no hostname as broken

https://github.com/openwrt/odhcpd/compare/1ff1328a4fc1...cb1b8770b782

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
7 weeks agoodhcp6c: update to 25.12 Git HEAD (2025-12-17) 21201/head
Álvaro Fernández Rojas [Wed, 17 Dec 2025 14:28:40 +0000 (15:28 +0100)] 
odhcp6c: update to 25.12 Git HEAD (2025-12-17)

2582843959a7 dhcpv6: fix NA/PD=try when NA/PD aren't provided
db6bec98ead1 odhcp6c: fix "-S" usage
b9ab6b6abc64 odhcp6c: reset res variable on INIT state

https://github.com/openwrt/odhcp6c/compare/5212a1019d75...2582843959a7

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
7 weeks agovrx518_tc: fix rx_len_adj
Markus Petri [Thu, 4 Dec 2025 20:28:51 +0000 (21:28 +0100)] 
vrx518_tc: fix rx_len_adj

Fix rx_len_adj to avoid leaking the ethernet FCS into the actual frame
data in single line mode (the default)

Fixes: https://github.com/openwrt/openwrt/issues/20983
Signed-off-by: Markus Petri <devel@isjunk.org>
Link: https://github.com/openwrt/openwrt/pull/21045
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 487178f8b003bf2e06b9f989b46f8b5c36181910)

7 weeks agolinux-firmware: intel: bump BE200 wifi firmware
Janusz Dziedzic [Tue, 16 Dec 2025 17:15:03 +0000 (17:15 +0000)] 
linux-firmware: intel: bump BE200 wifi firmware

Latest backports require newer firmware (bump to 101).
https://github.com/torvalds/linux/commit/8788f6b3c664c83441039a453a0ec9cd27bf4859

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21194
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 7bfe7788b1d587b9f92940d0d5a21f78648b6b85)

8 weeks agodropbear: bump to 2025.89 (CVE-2025-14282, CVE-2019-6111)
Petr Štetiar [Tue, 16 Dec 2025 16:42:19 +0000 (16:42 +0000)] 
dropbear: bump to 2025.89 (CVE-2025-14282, CVE-2019-6111)

- Security: Avoid privilege escalation via unix stream forwarding in Dropbear
  server. Other programs on a system may authenticate unix sockets via
  SO_PEERCRED, which would be root user for Dropbear forwarded connections,
  allowing root privilege escalation.
  Reported by Turistu, and thanks for advice on the fix.
  This is tracked as CVE-2025-14282, and affects 2024.84 to 2025.88.

  It is fixed by dropping privileges of the dropbear process after
  authentication. Unix stream sockets are now disallowed when a
  forced command is used, either with authorized_key restrictions or
  "dropbear -c command".

  In previous affected releases running with "dropbear -j" (will also disable
  TCP fowarding) or building with localoptions.h/distrooptions.h
  "#define DROPBEAR_SVR_LOCALSTREAMFWD 0" is a mitigation.

- Security: Include scp fix for CVE-2019-6111. This allowed
  a malicious server to overwrite arbitrary local files.
  The missing fix was reported by Ashish Kunwar.

- Server dropping privileges post-auth is enabled by default. This requires
  setresgid() support, so some platforms such as netbsd or macos will have to
  disable DROPBEAR_SVR_DROP_PRIVS in localoptions.h. Unix stream forwarding is
  not available if DROPBEAR_SVR_DROP_PRIVS is disabled.

  Remote server TCP socket forwarding will now use OS privileged port
  restrictions rather than having a fixed "allow >=1024 for non-root" rule.

  A future release may implement privilege dropping for netbsd/macos.

- Fix a regression in 2025.87 when RSA and DSS are not built. This would lead
  to a crash at startup with bad_bufptr().
  Reported by Dani Schmitt and Sebastian Priebe.

- Don't limit channel window to 500MB. That is could cause stuck connections
  if peers advise a large window and don't send an increment within 500MB.
  Affects SSH.NET https://github.com/sshnet/SSH.NET/issues/1671
  Reported by Rob Hague.

- Ignore -g -s when passwords arent enabled. Patch from Norbert Lange.
  Ignore -m (disable MOTD), -j/-k (tcp forwarding) when not enabled.

- Report SIGBUS and SIGTRAP signals. Patch from Loïc Mangeonjean.

- Fix incorrect server auth delay. Was meant to be 250-350ms, it was actually
  150-350ms or possibly negative (zero). Reported by pickaxprograms.

- Fix building without public key options. Thanks to Konstantin Demin

- Fix building with proxycmd but without netcat. Thanks to Konstantin Demin

- Fix incorrect path documentation for distrooptions, thanks to Todd Zullinger

- Fix SO_REUSEADDR for TCP tests, reported by vt-alt.

Dropped:

 * 050-dropbear-multihop-fix.patch as its included in the release 5cc0127000db5f
 * 051-fix-pubkey-options.patch as its included in the release 1d4c4a542cd5df
 * 052-fix-missing-depends-for-sntrup761x25519-sha512.patch as its included
   in the release 1a2c1e649a1824
 * 053-Don-t-limit-channel-window-to-500MB.patch as its included in the release a8610f7b98ad

Manually rebased:

 * 110-change_user.patch

Fixes: CVE-2025-14282, CVE-2019-6111
Reviewed-by: Hauke Mehrtens <hauke@hauke-m.de>
Reviewed-by: Konstantin Demin <rockdrilla@gmail.com>
Tested-by: Konstantin Demin <rockdrilla@gmail.com> [mediatek/filogic (GL.iNet GL-MT6000)]
Link: https://github.com/openwrt/openwrt/pull/21186
Signed-off-by: Petr Štetiar <ynezz@true.cz>
(cherry picked from commit 70a4da1cebc87fc7b3cfa3f634b5bdf3db12ccd5)

8 weeks agokernel: Fix boot of realtek rtl838x
Hauke Mehrtens [Mon, 15 Dec 2025 01:02:35 +0000 (02:02 +0100)] 
kernel: Fix boot of realtek rtl838x

Revert two patches from upstream Linux:
https://github.com/gregkh/linux/commit/135178e90aa43ad949534e1d6e376c4034942caa
https://github.com/gregkh/linux/commit/63a93d1cd6077d79735f804f5a4957bfb240280c

This fixes a boot hang on realtek rtl838x switches.
This is the last printed message:
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes, linear)

Thread on mips mailing list:
https://lore.kernel.org/linux-mips/b35fe4b3-8f42-49f4-a6bf-9f0e56d4050c@hauke-m.de/T/#u

Link: https://github.com/openwrt/openwrt/pull/21166
Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/21126
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 0bfc66e7b50ef5d0653bc209a7d29ab8e3a7c6b2)

8 weeks agokernel: bump 6.12 to 6.12.62
John Audia [Wed, 10 Dec 2025 20:19:42 +0000 (15:19 -0500)] 
kernel: bump 6.12 to 6.12.62

Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.62

Manually rebased:
  bcm27xx/patches-6.12/950-0358-mmc-sdhci-of-dwcmshc-define-sdio-timeout-clocks.patch

Removed upstreamed:
  backport-6.12/830-v6.18-spi-bcm63xx-fix-premature-CS-deassertion-on-RX-only-transactions.patch[1]

All other patches automatically rebased.

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.62&id=e31194bf494f6900a5f96f55ed194a00e458f8d1

Build system: x86/64
Build-tested: flogic/glinet_gl-mt6000, ramips/tplink_archer-a6-v3, x86/64-glibc
Run-tested: flogic/glinet_gl-mt6000, ramips/tplink_archer-a6-v3, x86/64-glibc

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/21126
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 97e9d7038e1421ec25bbb6567d2a017be60b086d)

8 weeks agouboot-sunxi: fix u-boot build
Hauke Mehrtens [Tue, 16 Dec 2025 23:06:24 +0000 (00:06 +0100)] 
uboot-sunxi: fix u-boot build

The u-boot target name has to match the u-boot configuration. Switch
this back to the old names.

Fixes: d871e95e7f83 ("sunxi: image: sync target profiles names with DT compatible")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 86996634f0b4917ccd6106e9d60cd2fd9bd68c6e)

8 weeks agowifi-scripts: update phys after rename_phy_by_name call
Rany Hany [Mon, 15 Dec 2025 17:11:24 +0000 (19:11 +0200)] 
wifi-scripts: update phys after rename_phy_by_name call

This fixes a failed bring up of the radio on bootup
if the model defines a rename of phy in its /etc/board.json.
This specifically impacts Redmi AX6S and any router that does so
in its /etc/board.json. The fix fortunately is simple, just update
phy name in phys after rename.

The entry that specifically causes this issue is the following:

{
<omitted>
"wlan": {
"wl0": {
"path": "platform/18000000.wmac",
"info": {
"antenna_rx": 15,
"antenna_tx": 15,
"bands": {
"2G": {
"ht": true,
"max_width": 40,
"modes": [
"NOHT",
"HT20",
"HT40"
],
"default_channel": 1
}
},
"radios": [
]
}
},
...
}

The issue is that after rename, referenced phy in config is going to be
wl0 but in phys array it is still phy0; and so it fails to find phy
and does not bring up radio.

Fixes: https://github.com/openwrt/openwrt/issues/20250
Fixes: https://github.com/openwrt/openwrt/issues/20339
Signed-off-by: Rany Hany <rany_hany@riseup.net>
Link: https://github.com/openwrt/openwrt/pull/21175
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit e4d5e76af059d9c7fe295bbd144a39a77fbb5491)

8 weeks agorealtek: mdio-serdes: use correct device table identifier
Jonas Jelonek [Tue, 16 Dec 2025 12:06:57 +0000 (12:06 +0000)] 
realtek: mdio-serdes: use correct device table identifier

Use the correct identifier 'rtsds_of_match' instead of
'rtsds_mdio_of_match' because the latter doesn't exist.

This doesn't cause an error for 6.12. However, with 6.18 the
implementation of MODULE_DEVICE_TABLE has changed to use 'static' and
'used' [1] instead of 'extern' and 'unused' [2].

[1] https://github.com/torvalds/linux/blob/7d0a66e4bb9081d75c82ec4957c50034cb0ea449/include/linux/module.h#L260
[2] https://github.com/torvalds/linux/blob/adc218676eef25575469234709c2d87185ca223a/include/linux/module.h#L249

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21182
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit d519a3ee86c303989e253538461528c4818dc20e)

8 weeks agorealtek: pcs: move polarity into SerDes struct
Jonas Jelonek [Thu, 11 Dec 2025 23:33:59 +0000 (23:33 +0000)] 
realtek: pcs: move polarity into SerDes struct

As a first real usage of the new SerDes struct, move the polarity
configuration there. It was previously located in the global rtpcs_ctrl
struct as an array, indexed by SerDes id. Because this is per-SerDes
information, the new SerDes struct is the correct place to live in.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21146
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 56a71f3c82a5d2f39e7db1c1f76a64d2f04b8d87)

8 weeks agorealtek: pcs: drop unneeded SerDes number range checks
Jonas Jelonek [Sat, 13 Dec 2025 10:48:52 +0000 (10:48 +0000)] 
realtek: pcs: drop unneeded SerDes number range checks

By using references to pre-initiated SerDes instances instead of plain
SerDes number, there is no need to check for the range anymore in
various places. During driver/pcs init it is ensured that only valid
SerDes will reach the configuration functions.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21146
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 18eea0548356454376ad3c60145446060325ace3)

8 weeks agorealtek: pcs: make use of SerDes struct in set_autoneg
Jonas Jelonek [Sat, 13 Dec 2025 20:12:13 +0000 (20:12 +0000)] 
realtek: pcs: make use of SerDes struct in set_autoneg

Also switch set_autoneg (and related helper rtpcs_sds_modify) to the
SerDes struct instead of the plain SerDes id by using just the reference
to the SerDes instance instead of (ctrl, sds_id) tuple. This completes
the transition.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21146
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit d8dd8bd88f264d39f8c8c1cff056b4ec32a985bb)

8 weeks agorealtek: pcs: make use of SerDes struct in SerDes setup
Jonas Jelonek [Thu, 11 Dec 2025 21:42:38 +0000 (21:42 +0000)] 
realtek: pcs: make use of SerDes struct in SerDes setup

Make use of the previously added SerDes struct in SerDes setup and all
functions in its call path by removing (ctrl, sds_num) being passed to
every function call and instead just pass the reference to the
corresponding SerDes instance.

Various SerDes calculations for even, odd and neighbor are unified by
switching to previously introduced helpers.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21146
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 1fccb0eb1636ad7c417a14c55e766cd97e875015)

8 weeks agorealtek: pcs: switch to id from SerDes struct
Jonas Jelonek [Sat, 13 Dec 2025 20:01:03 +0000 (20:01 +0000)] 
realtek: pcs: switch to id from SerDes struct

Drop usage of the to-be-phased-out SerDes id stored in rtpcs_link and
use the reference to the SerDes instance to use the embedded id in
rtpcs_serdes instead.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21146
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 4d9400f86bea9ea5587d920eb78b9825d796ea95)

8 weeks agorealtek: pcs: assign SerDes reference upon PCS creation
Jonas Jelonek [Sat, 13 Dec 2025 10:29:56 +0000 (10:29 +0000)] 
realtek: pcs: assign SerDes reference upon PCS creation

Upon creation of a phylink_pcs instance by calling rtpcs_create, assign
a reference to the corresponding SerDes to the link structure. In the
next step, this should be used everywhere instead of the plain SerDes
number.

Rename the field used to hold the SerDes number from 'sds' to 'sds_num'
and name the new field 'sds' to make clear what is what.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21146
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 69bbcc685b3c11719a1b2dbbc08aa02fba636455)

8 weeks agorealtek: pcs: add helpers for even, odd, neighbor SerDes
Jonas Jelonek [Sat, 13 Dec 2025 10:16:21 +0000 (10:16 +0000)] 
realtek: pcs: add helpers for even, odd, neighbor SerDes

Add dedicated helpers to get references to even, odd and neigbor SerDes
if needed. This should replace the various calculations scattered
throughout the code, providing a unified way to work with adjacent
SerDes.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21146
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 232c1fb14a072ee5c3c96ead43919ab5add526dd)

8 weeks agorealtek: pcs: add separate SerDes struct
Jonas Jelonek [Sat, 13 Dec 2025 10:12:35 +0000 (10:12 +0000)] 
realtek: pcs: add separate SerDes struct

Add a separate structure for a SerDes. This is needed to appropriately
store per-SerDes information, which in turn is needed for future work.
Additionally, it's intended to reduce boilerplate and several
inconsistencies.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21146
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 6b3f8fb16faf1e9c28b282340a112b2bcb06b0d3)

8 weeks agorealtek: pcs: use per-variant SerDes count
Jonas Jelonek [Sat, 13 Dec 2025 09:10:55 +0000 (09:10 +0000)] 
realtek: pcs: use per-variant SerDes count

Use a separate configuration field for the number of SerDes for each
variant of the Realtek Otto family. Add this field to the config
structure, assign it and use it during driver probe. This narrows
possible error cases and is needed for upcoming extensions.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21146
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 6cf33aacfe9d01903f1662795a28c5a7fc6e2fb7)

8 weeks agorealtek: pcs: add dedicated enum for SerDes modes
Jonas Jelonek [Thu, 11 Dec 2025 19:17:26 +0000 (19:17 +0000)] 
realtek: pcs: add dedicated enum for SerDes modes

The Realtek SerDes mode capabilities do not map 1:1 to the
PHY_INTERFACE_MODE_* modes used in the kernel and passed to the PCS.
For example, some PHY chips use the proprietary XSGMII mode for which
there isn't an equivalent in the kernel, or HSGMII.

In the past, this led to problems and confusion using kernel's XGMII to
handle the XSGMII mode, and needed a downstream patch for HSGMII. They
have been solved/worked around for now, but XSGMII is currently not
implemented at all. And who knows what might come in the future.

To make our life easier, introduce a dedicated internal representation
of SerDes modes which differs from kernel's PHY_INTERFACE_MODE_*. This
allows us to map "external" modes to different internal modes as needed
instead of carrying the PHY_INTERFACE_MODE_* through the whole SerDes
configuration code. The PCS driver needs to map PHY_INTERFACE_MODE_* to
RTPCS_SDS_MODE_* in pcs_config, and the latter should be used as the
only one.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21146
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit a4d6e10bf2561a39d9bb3c9e622531e8d5c9caf3)

8 weeks agorealtek: pcs: rtl930x: drop unused and broken function
Jonas Jelonek [Fri, 12 Dec 2025 20:05:52 +0000 (20:05 +0000)] 
realtek: pcs: rtl930x: drop unused and broken function

Drop the unused and broken function rtpcs_930x_sds_clock_wait from the
PCS driver. The proper working variant is already some lines above and
called rtpcs_930x_sds_wait_clock_ready.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21146
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit decc4f6ba808fb8aa469cd4886ffeea1bb86bcda)

8 weeks agorealtek: pcs: drop PCS creation without SerDes ref
Jonas Jelonek [Thu, 11 Dec 2025 22:37:33 +0000 (22:37 +0000)] 
realtek: pcs: drop PCS creation without SerDes ref

Since the beginning, the PCS driver had the ability to call its
rtpcs_create without a reference to a valid PCS node. A comment in the
code mentions that this is done for RTL838X and its built-in octa-PHY
which is connected directly instead of via a SerDes. Further
explanations are not provided.

Drop this ability and make the rtpcs_create call in the dsa driver
conditional. As the built-in PHY of RTL838X isn't attached to a SerDes,
there is no obvious point of having the PCS driver in that chain. The
ports are marked as internal and have no pcs-handle, thus no phylink_pcs
instance should be created.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21146
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit a58e41e522bf5b273fa626e03546b92141731d9c)

8 weeks agorealtek: mdio-serdes: improve debugfs creation
Jonas Jelonek [Tue, 16 Dec 2025 10:20:13 +0000 (10:20 +0000)] 
realtek: mdio-serdes: improve debugfs creation

Commit 3c073b5cb2 cleaned up the debugfs creation in
mdio-realtek-otto-serdes driver to not explicitly check if the root
directory already exists. This is fine because kernel handles the case
properly so there's no need to check anymore.

However, this pollutes the boot log with:
[..] debugfs: 'realtek_otto_serdes' already exists in '/'
[..] debugfs: 'realtek_otto_serdes' already exists in '/'
[..] debugfs: 'realtek_otto_serdes' already exists in '/'
[..] debugfs: 'realtek_otto_serdes' already exists in '/'
[..] debugfs: 'realtek_otto_serdes' already exists in '/'
[..] debugfs: 'realtek_otto_serdes' already exists in '/'
[..] debugfs: 'realtek_otto_serdes' already exists in '/'
[..] debugfs: 'realtek_otto_serdes' already exists in '/'
[..] debugfs: 'realtek_otto_serdes' already exists in '/'
[..] debugfs: 'realtek_otto_serdes' already exists in '/'
[..] debugfs: 'realtek_otto_serdes' already exists in '/'

Now, the root directory creation is attempted multiple times, causing
the kernel to print an error message because the directory already
exists.

Fix this by moving the SerDes loop into rtsds_debug_init and only try
to create the root debugfs directory once.

Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21179
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 8e4730fd60a1b4998d1c9c07aeb6c6a27bce210f)

8 weeks agoipq40xx: convert Orbi led labels to function/color
Christoph Krapp [Sat, 22 Nov 2025 21:34:04 +0000 (22:34 +0100)] 
ipq40xx: convert Orbi led labels to function/color

The eight leds controlled by the LED controller are RGB leds themselves
but are flashing white by default. The color part is controlled by GPIOs
53 (green), 54 (red), 57 (blue) and 60 (white).
Therefore define the led nodes of the controller as white instead of RBG
as well as backlight as their function.

Signed-off-by: Christoph Krapp <achterin@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20877
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 3045f205b379b160af3b3af16fc976cc216f0248)

8 weeks agoipq40xx: fix second 5ghz radio on Netgear RBx40
Christoph Krapp [Sat, 22 Nov 2025 19:42:33 +0000 (20:42 +0100)] 
ipq40xx: fix second 5ghz radio on Netgear RBx40

When support was added for the RBR40 and RBS40 it was assumed that they
also share the same second 5ghz wifi chip as their bigger siblings.
Turns out that instead of QCA9984 (RBx50, SRx60) these devices use
QCA9886 like the RBx20 devices to.
They also load different boardfiles for the IPQ4019 chip.

This moves the wifi nodes from the orbi.dtsi to each device dts file and
change the RBx40 boardfile variants.

Signed-off-by: Christoph Krapp <achterin@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20877
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit f0909f7a05cbc0f3d91bae55df2d251f065a5b68)

8 weeks agoipq-wifi: add entry for Netgear RBK40
Christoph Krapp [Sat, 22 Nov 2025 19:40:49 +0000 (20:40 +0100)] 
ipq-wifi: add entry for Netgear RBK40

Add boardfile override packages for Netgear RBK40 devices.

Signed-off-by: Christoph Krapp <achterin@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20877
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit e9d6015beff08bb8e5b18d502aa0f059eda3b1e8)

8 weeks agoipq40xx: fix Netgear RBR40 wan mac
Christoph Krapp [Sat, 22 Nov 2025 19:25:29 +0000 (20:25 +0100)] 
ipq40xx: fix Netgear RBR40 wan mac

The WAN port currently has the same MAC set as all the other LAN ports.
Fix this by adding the missing case in ipq40xx_setup_macs().

Signed-off-by: Christoph Krapp <achterin@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20877
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 0f0f578d0af408ea14b001cac82a8c1996c6ada0)

8 weeks agoipq40xx: split orbi devices in router and satellite
Christoph Krapp [Sat, 22 Nov 2025 19:20:14 +0000 (20:20 +0100)] 
ipq40xx: split orbi devices in router and satellite

Netgear Orbi devices are split into router and satellite units. Even
though the hardware is mostly the same, the network configuration is
different. Router units have a designated WAN port while satellite units
have all available ports labeled as "Ethernet".
This splits the device trees into both unit types and adjusts the port
labels.

Signed-off-by: Christoph Krapp <achterin@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20877
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 314dbb7fec81c8fbadf22f87837ae98dbd268a29)

8 weeks agoipq-wifi: update to Git HEAD (2025-12-16)
Robert Marko [Tue, 16 Dec 2025 09:27:34 +0000 (10:27 +0100)] 
ipq-wifi: update to Git HEAD (2025-12-16)

10eddd6f1cba qca4019: qca9888: add bdfs for Netgear RBK40

Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 4e688db5a8ae02bf6a2cd5f85812f1095424041e)

8 weeks agoqualcommax: ipq807x: use ascii-env driver for Linksys MX4200v1
Christoph Krapp [Mon, 10 Nov 2025 22:44:21 +0000 (23:44 +0100)] 
qualcommax: ipq807x: use ascii-env driver for Linksys MX4200v1

Just like it has already been changed for v2, use the ascii-eq-delim-env
driver to extract the label mac from the devinfo partition.

Signed-off-by: Christoph Krapp <achterin@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20732
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit f0c534877531a7cafe8f46e05560cc68b1e25dba)

8 weeks agosunxi: image: sync target profiles names with DT compatible
Mario Andrés Pérez [Sun, 14 Dec 2025 17:45:10 +0000 (18:45 +0100)] 
sunxi: image: sync target profiles names with DT compatible

Following up with errors reported in the ASU repo, these bananapi cases
do not match the DT compatible "bpi", sync with dts sources.
Also some profiles were overwriting SUPPORTED_DEVICES.
Sysupgrade would be failing in SUPPORTED_DEVICES check since
the DT compatible(/tmp/sysinfo/board_name) is not in SUPPORTED_DEVICES.
This should also fix errors when using ASU sysupgrade clients.
- Sync profile makefile target names with DT compatibles.
- Fix overwrites of SUPPORTED_DEVICES instead of appending.
- Adapt the uboot-sunxi profiles accordingly.
*bpi-p2-zero dts is still not upstream.

V2:
- Include fixes for arm926ejs(ARM926EJ-S) subtarget (LicheePi Nano and
PopStick v1.1) (profile rename for correct default SUPPORTED_DEVICES)

Fixes: https://forum.openwrt.org/t/luci-attended-sysupgrade-support-thread/230552/246
Fixes: https://github.com/openwrt/asu/issues/486
Fixes: https://github.com/openwrt/asu/issues/524
Fixes: 9aa66b8ce730aebff76d353392151708a897a3a0 "sunxi: add support for Banana Pi M2 Berry"
Fixes: d5f615bf2a0434c15d13943b566d46f25da579bb "sunxi: add support for Sinovoip Banana Pi M2 Plus"
Fixes: 3819c1638a9d300840d0f869628891f9696be112 "sunxi: Add support for Banana Pi M2 Ultra"
Fixes: 6bf8193b25a147abfe3720104e63af890c1ca2b8 "sunxi: add support for Bananapi P2 Zero"
Fixes: 80edfaf675364835e6d2e17d97ebec6afc6b2103 "sunxi: add support for Banana Pi M3"
Fixes: 3c24a1d423a6052b101c00cb7d94e70d72702639 "sunxi: add support for NanoPi NEO Plus2 board"
Fixes: a689307c970e37c247c6452ba3963be8b109eb4f "sunxi: build image/uboot for the NanoPi NEO2"
Fixes: fde68cb80941a60be93ece75e808b5b407d11cc8 "sunxi: add support for FriendlyARM NanoPi R1S H5"
Fixes: 3ec468ff4fa3106d459ae58ec4bc4833715118c6 "sunxi: add F1C100 (arm926ej-s) support"
Signed-off-by: Mario Andrés Pérez <mapb_@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/21095
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit d871e95e7f836435e8323074e3abab2c7608e016)

8 weeks agoscripts,ipkg-build: Fix error message for invalid package name
Karsten Sperling [Fri, 12 Sep 2025 03:49:13 +0000 (15:49 +1200)] 
scripts,ipkg-build: Fix error message for invalid package name

Use the correct variable ($pkg instead of $name) in the error message.

Signed-off-by: Karsten Sperling <ksperling@apple.com>
Link: https://github.com/openwrt/openwrt/pull/20077
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 63bf77b801d59e7cf97b6bcd90aa040f8464d99c)

8 weeks agolibcap: Revert "libcap: update to 2.77"
Hauke Mehrtens [Tue, 16 Dec 2025 00:22:26 +0000 (01:22 +0100)] 
libcap: Revert "libcap: update to 2.77"

This reverts commit c25265953b9c06fafc6091982468ed0cfc30abb0.

Linking of libpsx.so from libcap 2.77 fails on powerpc 464fp. Revert
back to the older version which works.

Bug report: https://bugzilla.kernel.org/show_bug.cgi?id=220860
Fixes: c25265953b9c ("libcap: update to 2.77")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 5b0617ae1fbd2af11e7e157a6a6bd76eb01d6560)

8 weeks agomediatek: fix IPv4 address missing on interface in failsafe mode for cudy ap3000-v1
Martin Nadvornik [Mon, 15 Dec 2025 15:54:52 +0000 (16:54 +0100)] 
mediatek: fix IPv4 address missing on interface in failsafe mode for cudy ap3000-v1

cudy ap3000-v1 did not work correctly in failsafe mode
because the address 192.168.1.1 was missing on the eth0 inteface.
it was reachable via it's IPv6 link-local address however.
this commit fixes the issue.

Fixes: https://github.com/openwrt/openwrt/issues/20750
Signed-off-by: Martin Nadvornik <martin.nadvornik@gmx.at>
Link: https://github.com/openwrt/openwrt/pull/21172
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit e5cd6461c905184db8f49692f931b20fec4b819e)

8 weeks agowifi-scripts: ucode: improve formatting of expected throughput
Rany Hany [Mon, 27 Oct 2025 16:14:22 +0000 (16:14 +0000)] 
wifi-scripts: ucode: improve formatting of expected throughput

Convert to MBit/s like all other fields and specify the unit.
Most users probably aren't aware that this is in kilobits/s.

Signed-off-by: Rany Hany <rany_hany@riseup.net>
Link: https://github.com/openwrt/openwrt/pull/20567
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 36da03a6c16b6e6c0d16b1471635647e46028ebc)

8 weeks agowifi-scripts: add support for using list for iface in wifi-station/vlan
Rany Hany [Sat, 29 Nov 2025 00:04:09 +0000 (00:04 +0000)] 
wifi-scripts: add support for using list for iface in wifi-station/vlan

This is a trivial change to allow users to use 'list' on iface.
Old wifi-scripts already implements this, so this just ensures
that shell-based and ucode wifi-scripts are on-par with each other.

Signed-off-by: Rany Hany <rany_hany@riseup.net>
Link: https://github.com/openwrt/openwrt/pull/20977
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 1ead4e6e16e869397456318e4e1fa177ea325cee)

8 weeks agowifi-scripts: fix broken match all case for wifi-vlan
Rany Hany [Sat, 29 Nov 2025 10:37:22 +0000 (12:37 +0200)] 
wifi-scripts: fix broken match all case for wifi-vlan

When iface is omitted, wifi-vlan will apply to all interfaces.
However, netifd.set_vlan call is not successful as it assumes
that every wifi-vlan section corresponds to one VIF.

For this reason in the wifi-vlan case (cur_type == "vlan")
we create a composite key in the form `${vif.name}/${vlan.name}`
allowing the same vlan section to correspond to multiple VAPs.
`/` was decided as a delimiter as it is an invalid character
for a network interface name and UCI identifier; so it is
impossible for it to cause conflicts.

It was verified that the `ubus call network.wireless status`
works as expected with this change. Moreover, wifi-station
is not susceptible to this problem.

This also means that it is now possible for wifi-vlan
to support `list` iface similar to old shell-based wifi-scripts.
This will be done in a follow-up commit.

Fixes: 98435a37a7 ("wifi-scripts: iface should be optional in wifi-vlan definition")
Signed-off-by: Rany Hany <rany_hany@riseup.net>
Link: https://github.com/openwrt/openwrt/pull/20977
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 211b11a56e6e6a45d2e3a2a733e78f3e9dd14a16)

8 weeks agoipq-wifi: update to Git HEAD (2025-12-15)
Robert Marko [Mon, 15 Dec 2025 08:54:23 +0000 (09:54 +0100)] 
ipq-wifi: update to Git HEAD (2025-12-15)

c6202981872e ipq5018: use correct board for GL-iNet B3000 IPQ5018 radio
ec72376cadf1 qca4019: Add Meraki Underdog
059b7114c77b ipq6018: add tp-link eap620hd v2

Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit b4bc9ed318ba8c8652b9273377cbf331ad279182)

8 weeks agokernel: rtl836x: remove legacy platform_data support
Shiji Yang [Fri, 12 Dec 2025 00:32:56 +0000 (08:32 +0800)] 
kernel: rtl836x: remove legacy platform_data support

There are no platform_data based devices using it anymore. Also move
header files to the driver folder.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/21138
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 852d17ed826787039ae1720963a392e964976f76)

8 weeks agorealtek: use devm_kzalloc() for serdes debugfs setup
Markus Stockhausen [Sun, 14 Dec 2025 09:07:38 +0000 (10:07 +0100)] 
realtek: use devm_kzalloc() for serdes debugfs setup

This will free memory automatically during driver unloading.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21157
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit a4011797c2fb160a696edfc29993c78ab5edc3d1)

8 weeks agorealtek: cleanup debugfs creation in serdes driver
Markus Stockhausen [Sun, 14 Dec 2025 09:03:47 +0000 (10:03 +0100)] 
realtek: cleanup debugfs creation in serdes driver

debugfs_create_dir() has a proper logic to handle existing directories.
Skip the manual test. Additionally quit early if directory creation fails.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21157
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit 3c073b5cb208e9ca77a786f38dc941316ee25c67)

8 weeks agorealtek: simplify backing serdes calculation
Markus Stockhausen [Sun, 14 Dec 2025 08:53:49 +0000 (09:53 +0100)] 
realtek: simplify backing serdes calculation

Calculating the backing serdes of a given frontend serdes does
not need any info about the control structure. Drop the reference.

Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/21157
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit dcbc8722e970292af1526adf173895bf2f2cae14)

8 weeks agoodhcpd: update to 25.12 Git HEAD (2025-12-13) 21149/head
Álvaro Fernández Rojas [Sat, 13 Dec 2025 11:24:49 +0000 (12:24 +0100)] 
odhcpd: update to 25.12 Git HEAD (2025-12-13)

1ff1328a4fc1 odhcpd: fix captive_portal_uri reset
74f00bf43eab dhcpv4: fix DNS server option
0d0fc5ffe993 README.md: update dhcp ubus events

https://github.com/openwrt/odhcpd/compare/ca00527e5fc3...1ff1328a4fc1

Also remove duplicated /usr/share/libubox/jshn.sh include.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
8 weeks agoimage: add CONFIG_EXTRA_IMAGE_NAME
David Woodhouse [Sat, 29 Nov 2025 16:18:26 +0000 (16:18 +0000)] 
image: add CONFIG_EXTRA_IMAGE_NAME

This allows an optional tag to be put in the .config file which is
included in the filename of the resulting images, so it's easier to
build images with different functionality for the same target hardware.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Link: https://github.com/openwrt/openwrt/pull/20984
Signed-off-by: Petr Štetiar <ynezz@true.cz>
(cherry picked from commit 24b8db118b6c84b92d17f969794b2bd6d73b8cdc)

2 months agoapk: bump to 3.0.2
Paul Donald [Wed, 10 Dec 2025 23:51:15 +0000 (00:51 +0100)] 
apk: bump to 3.0.2

We drop patch 0020-apk-fix-compile: integrated at source.
Compressed help now functions normally.

Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21127
Signed-off-by: Robert Marko <robimarko@gmail.com>
(cherry picked from commit b15628ec80160d4eeadbd5a7c71702cef1249fe4)

2 months agobase-files: always generate default DUID
David Härdeman [Tue, 9 Dec 2025 22:49:48 +0000 (23:49 +0100)] 
base-files: always generate default DUID

The previous logic was copied from 12_network-generate-ula, but fails to
account for upgrades where the "auto" value isn't set (it is set by
base-files/files/bin/config_generate). Fix this to always set the
default duid if it isn't set.

Also, rename the file to better reflect what it does.

Closes: #21029
Fixes: a660a076db5a ("base-files: generate a global DHCP DUID")
Link: https://github.com/openwrt/openwrt/pull/21118
Signed-off-by: David Härdeman <david@hardeman.nu>
Signed-off-by: Petr Štetiar <ynezz@true.cz> [fixes,closes tag]
(cherry picked from commit 52fa3728e5304ecdfca77332bdfe870696b95d35)

2 months agobcm27xx: fix patch wrong CRLF line-ending
Shiji Yang [Fri, 28 Nov 2025 16:21:04 +0000 (00:21 +0800)] 
bcm27xx: fix patch wrong CRLF line-ending

Use Unix LF style instead of Windows CRLF style.

Fixes: 738876e76bb2 ("kernel: bump 6.12 to 6.12.58")
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/20973
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 86bd55c4fd0f3ffe6bf7df672b051900352af3ad)

2 months agoarm-trusted-firmware-mediatek: remove DDR combo for MT7987
Chukun Pan [Tue, 11 Nov 2025 13:10:36 +0000 (21:10 +0800)] 
arm-trusted-firmware-mediatek: remove DDR combo for MT7987

The DRAM_USE_COMB option is only valid for the MT7988. There
is no DRAM type selection for the MT7987, so remove it.

Fixes: de8fc8b ("arm-trusted-firmware-mediatek: add builds for MT7987")
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/21000
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit bb2d9c1a65424f318bcda46237e82d170c95688b)

2 months agoarm-trusted-firmware-mediatek: add MT7987 DDR4 4BG images
Chukun Pan [Mon, 10 Nov 2025 10:16:30 +0000 (18:16 +0800)] 
arm-trusted-firmware-mediatek: add MT7987 DDR4 4BG images

Add the DDR4_4BG_MODE option, which supports 4GB DDR4 RAM
for the MT7987 and 8GB DDR4 RAM for the MT7988. If this mode
is not enabled, bl2 can only recognize half the size of RAM.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/21000
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit f037a2e8bb86d0edd4a4913afd69d39b60a03062)

2 months agoarm-trusted-firmware-mediatek: add MT7981 sdmmc images
Chukun Pan [Mon, 10 Mar 2025 15:15:38 +0000 (23:15 +0800)] 
arm-trusted-firmware-mediatek: add MT7981 sdmmc images

Add bl2 images for mt7981 sdmmc ddr4 devices.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/21000
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 3b14ace444c8597ea67738b16b9fa39ae3bc2de3)

2 months agoarm-trusted-firmware-mediatek: rearrange some images
Chukun Pan [Tue, 11 Mar 2025 15:15:20 +0000 (23:15 +0800)] 
arm-trusted-firmware-mediatek: rearrange some images

Rearrange some images to maintain consistency.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/21000
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 69918d1e0bde11b99076eaf4ec93443cade8840f)

2 months agokernel: add network teaming modules
Qingfang Deng [Wed, 10 Dec 2025 01:28:29 +0000 (09:28 +0800)] 
kernel: add network teaming modules

Teaming is a link aggregation implementation similar to bonding, but
it's configured by a userspace program.

Signed-off-by: Qingfang Deng <dqfext@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/21120
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 8b05db405bb98b764f6b3e7a500e3ee10199657b)

2 months agompc85xx: add support for Watchguard Firebox T10-W, T15(-W)
Shine [Thu, 24 Oct 2024 12:19:43 +0000 (14:19 +0200)] 
mpc85xx: add support for Watchguard Firebox T10-W, T15(-W)

This commit adds support for the Watchguard Firebox models
T10-W, T15 and T15-W.

CPU:      Freescale P1010
RAM:      512MB (T10) / 1024MB (T15)
Flash:    1MB SPI-NOR, 512MB NAND (T10) / 1024MB NAND (T15)
WiFi:     802.11abgn 2T2R AR9582 based Mini-PCIe card (-W models only)
Ethernet: 3x GBE (via AR8033 PHY)
LEDs:     7x hard-wired (6x LAN, 1x Power)
          4x GPIO single-colored (Attn/Status/Mode/Failover)
          1x GPIO dual-colored (2.4/5G WiFi, -W models only)
Serial:   RJ45, Cisco pinout, 115200/8N1
Other:    Battery backed RTC
          Atmel TPM 1.2 chip (unsupported)

Based on 35f6d79, which introduced Watchguard Firebox T10 support.

The T10 and T15 are identical hardware, with the exception of the T15
having twice the flash and RAM size.

The T10-W and T15-W models have their Mini-PCIe slot populated with an ath9
(AR9582) based WiFi card. The slot is either unpopulated or empty for
non-WiFi models. All required drivers are present by default on the mpc85xx
target, so T10/T10-W resp. T15/T15-W can use the same OpenWrt image.

This commit also introduces the zImage loader from 7d768a9 to boot the
kernel. This is required, since the U-Boot version used in these devices
appears to have a hard limit of 16MB for the kernel size it can handle. The
current kernel size is around 17MB, though, due to kernel page alignment
required for memory protection.

Installation (replaces previous instructions for T10):

1. If the U-Boot password is known, proceed with step 2.

   If the U-Boot password is unknown, dump the NOR flash using a SPI
   programmer and patch the unknown password to a known one. You can use
   blocktrron's Python script:

   https://github.com/blocktrron/t10-uboot-patcher/

   This script will patch the password to '1234' (without quotes).

   Alternatively, you can search for the hashed password in the NOR dump
   yourself and overwrite it with a known one. The SHA1 hash is:

   E597301A1D89FF3F6D318DBF4DBA0A5ABC5ECBEA

   Write the patched NOR dump back to the device.

2. Connect the device via serial cable, power it on and interrupt
   the boot process by pressing Ctrl+C. Enter the U-Boot password to access
   the CLI.

3. (Optional) Populate the uboot-env partition by entering:

   saveenv

   This will allow you to use uboot-envtools from within OpenWrt later,
   e.g. to increase the loadable kernel size.

   The default loadable kernel size is 5MB, the compressed kernel size at
   the time of this commit is 3.1MB.

4. Serve the initramfs OpenWrt image from a TFTP server at 10.0.1.13/24,
   connected to eth0 (WAN) of the device. File name must be 'uImage'. Boot
   with:

   tftpboot; bootm;

   Make sure to use the correct image for your device (T10 resp. T15)!

5. After booting, connect to OpenWrt on eth1 (LAN) via SSH. Verify
   that the UBI partiton is mtd7, format it and install the sysupgrade
   image.

   $ cat /proc/mtd
   $ ubiformat /dev/mtd7 -y
   $ sysupgrade -n <path to sysupgrade.bin>

6. The device should now boot OpenWrt from NAND flash. Enjoy.

Back to stock:

Use the vendor recovery procedure.

Stock recovery might also be necessary in case you have accidentally used
the fw_setenv command from within OpenWrt without using saveenv in U-Boot
first.

In order to use the vendor firmware recovery procedure, the NAND partitions
mtd3 to mtd6 must remain intact. Make sure not to overwrite them, or keep
dumps of them for later recovery.

Signed-off-by: Shine <4c.fce2@proton.me>
Link: https://github.com/openwrt/openwrt/pull/16776
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit be7aa5bda40ee05b1dd0b4f4a1bf88e653ef875a)

2 months agompc85xx: p1010: use common DTSI for Watchguard Firebox T1X
Shine [Thu, 24 Oct 2024 16:17:43 +0000 (18:17 +0200)] 
mpc85xx: p1010: use common DTSI for Watchguard Firebox T1X

In preparation of adding support for additional Watchguard Firebox devices
based on Freescale P1010, introduce a common DTSI.

Signed-off-by: Shine <4c.fce2@proton.me>
Link: https://github.com/openwrt/openwrt/pull/16776
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit 15ef024805f15fd1495f9cfa129a3e29d5b349ff)