Rany Hany [Sat, 8 Nov 2025 16:48:13 +0000 (16:48 +0000)]
wifi-scripts: change wifi-station's mac option into list
In the past PR[1] to add SAE wifi-station support, a commenter[2] requested
that the mac option be changed into a list. After trying to migrate my old
RADIUS setup I found myself wanting this change as well as it would simplify
my config. This patch does precisely that. Old configs that specify
`option mac ....` still work without any issues.
This change was done for both PSK and SAE. The schema was updated as well.
- MOX A's RJ-45 is assigned to `eth0`.
- MOX C, E (4x, 8x RJ-45) are assigned to `lan<number>@eth1`
- If MOX D (SFP) is connected directly to MOX A, the resulting interface
is `eth1`. If it's connected through MOX E (8x RJ-45), the resulting
interface is `sfp@eth1`.
Quirks:
-----------------------
- MOX is sensitive to the order of connected modules. Verify that the
confguration is valid at: https://mox-configurator.turris.cz/
- `CONFIG_MOXTET` and `CONFIG_GPIO_MOXTET` need to be enabled in kernel
config. Moxtet is a bus protocol needed to discover and configure MOX
modules. It must be compiled into the kernel for the modules to work.
Though it's very small so it won't bloat up the kernel image.
Flashing instructions:
-----------------------
1. Download `openwrt-*-ext4-sdcard.img.gz` and `gunzip` it.
2. Insert an SD card and flash the image to it using dd:
dd if=openwrt-*-ext4-sdcard.img.gz of=/dev/mmcblk0 bs=4096 conv=fsync
3. Plug the SD card into MOX.
Rany Hany [Wed, 19 Nov 2025 18:55:48 +0000 (18:55 +0000)]
wifi-scripts: make ft_iface configurable
This is useful as there are cases where no network is configured
or the configured network is isolated (APs are blocked from
communicating with each other over it). In both cases, it would make
sense to set ft_iface to another interface dedicated to FT over DS
traffic.
Flash instruction using initramfs-factory.bin image (StockFW WebUI):
1. Boot WF1200HP2 with router mode
2. Access to the WebUI ("http://aterm.me/" or "http://192.168.10.1/") on
the device and open firmware update page ("ファームウェア更新")
3. Select the OpenWrt initramfs-factory.bin image and click update
("更新") button
4. After updating, the device will be rebooted and booted with OpenWrt
initramfs image
5. On the initramfs image, upload (or download) uboot.bin and
sysupgrade.bin image to the device
6. Replace the bootloader with uboot.bin image
mtd write <uboot.bin image> bootloader
7. Perform sysupgrade with sysupgrade.bin image
sysupgrade <sysuppgrade image>
8. Wait ~120 seconds to complete flashing and rebooting
Flash instruction using initramfs-factory.bin image (bootloader CLI):
1. Connect and open serial console
2. Power on WF1200HP2 and interrupt bootloader by ESC key
3. Login to the bootloader CLI with the password "chiron"
4. Start TFTP server by "tftpd" command
5. Upload initramfs-factory.bin via tftp from your computer
example (Windows): tftp -i 192.168.0.1 PUT initramfs-factory.bin
6. Boot initramfs image by "boot" command
7. On the initramfs image, backup the stock bootloader and firmware if
needed
8. Upload (or download) uboot.bin and sysupgrade.bin image to the
device
9. Replace the bootloader with uboot.bin image (see above)
10. Perform sysupgrade with sysupgrade.bin image (see above)
11. Wait ~120 seconds to complete flashing and rebooting
Notes:
- The stock bootloader requires the unknown filesystem on firmware area
in the flash chip. Booting OpenWrt from that filesystem cannot be
handled, so the bootloader needs to be replaced to mainline U-Boot
before OpenWrt installation.
Known issues:
- All LEDs on the front side are connected to the GPIO controller on the
ath10k chip (QCA9882) and controlled by it. The current ath10k driver
supports only one LED as "ath10k-phyN", but using as a GPIO controller
is not supported yet. As a result, all 12x LEDs on the front side
cannot be controlled by users.
Flash instruction using initramfs-factory.bin image (StockFW WebUI):
1. Boot WF1200HP with router mode
2. Access to the WebUI ("http://aterm.me/" or "http://192.168.10.1/") on
the device and open firmware update page ("ファームウェア更新")
3. Select the OpenWrt initramfs-factory.bin image and click update
("更新") button
4. After updating, the device will be rebooted and booted with OpenWrt
initramfs image
5. On the initramfs image, upload (or download) uboot.bin and
sysupgrade.bin image to the device
6. Replace the bootloader with uboot.bin image
mtd write <uboot.bin image> bootloader
7. Perform sysupgrade with sysupgrade.bin image
sysupgrade <sysuppgrade image>
8. Wait ~120 seconds to complete flashing and rebooting
Flash instruction using initramfs-factory.bin image (bootloader CLI):
1. Connect and open serial console
2. Power on WF1200HP and interrupt bootloader by ESC key
3. Login to the bootloader CLI with the password "chiron"
4. Start TFTP server by "tftpd" command
5. Upload initramfs-factory.bin via tftp from your computer
example (Windows): tftp -i 192.168.0.1 PUT initramfs-factory.bin
6. Boot initramfs image by "boot" command
7. On the initramfs image, backup the stock bootloader and firmware if
needed
8. Upload (or download) uboot.bin and sysupgrade.bin image to the
device
9. Replace the bootloader with uboot.bin image (see above)
10. Perform sysupgrade with sysupgrade.bin image (see above)
11. Wait ~120 seconds to complete flashing and rebooting
Notes:
- The stock bootloader requires the unknown filesystem on firmware area
in the flash chip. Booting OpenWrt from that filesystem cannot be
handled, so the bootloader needs to be replaced to mainline U-Boot
before OpenWrt installation.
Known issues:
- All LEDs on the front side are connected to the GPIO controller on the
ath10k chip (QCA9882) and controlled by it. The current ath10k driver
supports only one LED as "ath10k-phyN", but using as a GPIO controller
is not supported yet. As a result, all 12x LEDs on the front side
cannot be controlled by users.
INAGAKI Hiroshi [Thu, 30 Oct 2025 11:25:19 +0000 (20:25 +0900)]
uboot-ath79: add FE profile for NEC Aterm series (AR9344)
Add ar9344_nec_aterm_fe profile for NEC Aterm WF1200HP and WF1200HP2
based on Atheros AR9344, but using internal FE switch instead of
external GbE switch.
Rosen Penev [Sun, 25 May 2025 21:20:28 +0000 (14:20 -0700)]
ath79: ar9344: use led-sources for ath9k
The ath9k driver creates an ath9k LED by default. Instead of having a
non functional LED, configure it properly and remove the extra as it's
not needed.
Til Kaiser [Mon, 24 Nov 2025 14:50:33 +0000 (15:50 +0100)]
ramips: mt76x8: add Teltonika RUT976 support
This commit adds support for the Teltonika RUT976, part
of the RUTE series, which is very similar to the RUT956.
The RUT976 now has a 5G modem and the flash size has doubled.
Specification:
- MediaTek MT7628AN SoC
- 128 MB RAM
- 32MB Flash
- 4x 10/100 Mbps Ethernet, with passive PoE support on LAN1
- MediaTek MT7628AN 2.4 GHz 802.11n WiFi
- Quectel RG255C 5G modem
- GNSS
- RS232, DB9 connector, Cypress ACM via USB, /dev/ttyACM0
- RS485 /dev/ttyS1
- microSD card slot
- 2.0 USB Type-A HOST port
- analog 0-24V input (MCP3221)
- Relay
- 2x Digital input
- 2x Digital output
- 2x SIM slot (can be swapped via GPIO)
- eSIM (depends on hardware configuration, can be swapped via GPIO)
Flashing via OEM WebUI:
1. Download the firmware image *-squashfs-factory.bin
2. Upload firmware image via OEM WebUI firmware update, do not keep settings
To revert back to OEM firmware:
https://wiki.teltonika-networks.com/view/Bootloader_menu
Mobile data connection:
Create proto qmi interface.
Til Kaiser [Tue, 25 Nov 2025 10:43:22 +0000 (11:43 +0100)]
uqmi: skip registration state check if not supported
The Quectel RG255C modem used in the Teltonika RUT976 does not support
the 'Get Serving System' QMI command, returning "Invalid QMI command".
Without this change, the script would fail even though the connection
could be established successfully.
This patch skips the registration state check if the command is not
supported and relies on subsequent checks instead.
Til Kaiser [Mon, 24 Nov 2025 14:49:09 +0000 (15:49 +0100)]
ramips: split Teltonika RUT9M SPI-NOR layout into separate dtsi
Introduce mt7628an_teltonika_rut9m.dtsi to hold the SPI-NOR flash
definition and partition layout specific to the RUT9M series.
This refactor prepares for supporting the Tetonika RUT976
(part of the RUTE series), which shares most hardware with
RUT9M devices but has a different flash layout.
Update RUT9x1 and RUT9x6 DTS files to include the new dtsi.
Existing RUT9M devices remain unchanged.
Installation (UART):
- Place OpenWrt initramfs-kernel image on tftp server with IP 192.168.1.2
- Attach UART, switch on the router and interrupt the boot process by
pressing 'Ctrl-C'.
- Set the uboot environment for startup.
setenv tp_boot_idx 0; saveenv
If the bootarg is set to boot from ubi1, also change it to ubi0.
- Load and run OpenWrt initramfs image.
setenv serverip 192.168.1.2; setenv ipaddr 192.168.1.1; tftpboot initramfs-kernel.bin; bootm
- Browse IP 192.168.1.1, upload the 'sysupgrade' image and do upgrade.
Recovery:
- Press Reset button and power on the router.
- Navigate to U-Boot recovery web server (http://192.168.1.1/) and
upload the OEM firmware.
Schneider Azima [Fri, 28 Nov 2025 10:34:02 +0000 (05:34 -0500)]
mediatek: build rtl8367s_gsw as a kernel module
The RTL8367S_GSW config for filogic target is not set by default.
This switch model can be recognized by multiple drivers. Configure it as an optional module instead of default set in config.
Hauke Mehrtens [Sat, 29 Nov 2025 18:05:42 +0000 (19:05 +0100)]
toolchain: glibc: Update glibc 2.41 to recent HEAD
373408c19f stdlib: resolve a double lock init issue after fork [BZ #32994] 62928cf7d8 elf: Do not add a copy of _dl_find_object to libc.so f48de98bce elf: Extract rtld_setup_phdr function from dl_main 513629b14d elf: Handle ld.so with LOAD segment gaps in _dl_find_object (bug 31943) 1502c248d5 nptl: Fix SYSCALL_CANCEL for return values larger than INT_MAX (BZ 33245) daa4de5253 AArch64: Avoid memset ifunc in cpu-features.c [BZ #33112] 0bb6dad5af AArch64: Optimize algorithm in users of SVE expf helper 2a0b52fdd6 AArch64: Optimize inverse trig functions 307a8a4434 AArch64: Improve codegen in SVE log1p 503f7a7d33 AArch64: Optimize SVE exp functions 6db0f659c8 AArch64: Optimise SVE FP64 Hyperbolics c467918138 AArch64: Improve codegen SVE log1p helper 330cd035df Remove <libc-tsd.h> f409ec073f Use proper extern declaration for _nl_C_LC_CTYPE_{class,toupper,tolower} 5d8614b284 ctype: Fallback initialization of TLS using relocations (bug 19341, bug 32483) 940d821afb Use TLS initial-exec model for __libc_tsd_CTYPE_* thread variables [BZ #33234] 4a3e5f1e4c elf: Introduce separate _r_debug_array variable 9d6577fdff elf: Introduce _dl_debug_change_state b05ce0de3d elf: Restore support for _r_debug interpositions and copy relocations 85780b6055 elf: Compile _dl_debug_state separately (bug 33224) dd87fcda43 x86-64: Add GLIBC_ABI_GNU2_TLS version [BZ #33129] e2d9e9eb26 x86-64: Add GLIBC_ABI_DT_X86_64_PLT [BZ #33212] 3f3b4fdd0b elf: Fix handling of symbol versions which hash to zero (bug 29190) 42f9c70ac2 elf: Test dlopen (NULL, RTLD_LAZY) from an ELF constructor aa5dbd5332 elf: Preserve _rtld_global layout for the release branch c1bec0b52d i386: Update ___tls_get_addr to preserve vector registers 7aa907241c i386: Also add GLIBC_ABI_GNU2_TLS version [BZ #33129] ed4672abb5 i386: Add GLIBC_ABI_GNU_TLS version [BZ #33221] a52c9b75c7 Optimize __libc_tsd_* thread variable access 9867e44cdc AArch64: Fix SVE powf routine [BZ #33299] cf926cd7fb nss: Group merge does not react to ERANGE during merge (bug 33361) 4b1f8c90f9 x86: Detect Intel Wildcat Lake Processor 7c0632472d x86: Detect Intel Nova Lake Processor 580746904b x86: fix wmemset ifunc stray '!' (bug 33542) 1f57ffdf35 aarch64: Disable ZA state of SME in setjmp and sigsetjmp 97076e0cf1 aarch64: update tests for SME 1a0ee26714 aarch64: define macro for calling __libc_arm_za_disable 889ae4bdbb aarch64: clear ZA state of SME before clone and clone3 syscalls e4ffcf32b9 aarch64: tests for SME 5bf8ee7ad5 aarch64: fix cfi directives around __libc_arm_za_disable 75b6b263e9 aarch64: Do not link conform tests with -Wl,-z,force-bti (bug 33601) 215e9155ea aarch64: fix includes in SME tests 360f60fb63 AArch64: Optimise SVE scalar callbacks ca489fc802 AArch64: Fix instability in AdvSIMD tan 442cc3901b AArch64: Fix instability in AdvSIMD sinh 1e16b570bb AArch64: fix SVE tanpi(f) [BZ #33642] 5c6445672a AArch64: Fix and improve SVE pow(f) special cases 040256e79b ppc64le: Restore optimized strcmp for power10 f8cdc03e1e ppc64le: Restore optimized strncmp for power10 6a0b8e3665 ppc64le: Power 10 rawmemchr clobbers v20 (bug #33091)
Rosen Penev [Sun, 25 May 2025 21:07:00 +0000 (14:07 -0700)]
ath79: mr600-v1: use led-sources for ath9k
The ath9k driver creates an ath9k LED by default. Instead of having a non
functional LED, configure it properly and remove the extra as it's not
needed.
Vincent Li [Fri, 28 Nov 2025 17:56:04 +0000 (09:56 -0800)]
loongarch64: add Loongson PCI DWMAC as built-in
Add the CONFIG_DWMAC_LOONGSON driver to the loongarch64 kernel
configuration as a built-in module.
This driver is required for the integrated Ethernet controller found on
modern Loongson devices such as the 3A6000 NUC and 2K3000. Including it
by default ensures these popular devices have network functionality
out-of-the-box.
Configuration changes were made via `make kernel_menuconfig` for the
loongarch64 target.
Ref: https://github.com/openwrt/openwrt/issues/20945 Signed-off-by: Vincent Li <vincent.mc.li@gmail.com> Link: https://github.com/openwrt/openwrt/pull/20975 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
1. Download or make 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.50.1/
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 image.
6. Wait for OpenWrt to boot. Transfer the sysupgrade image to the device using SCP and install using sysupgrade.
$ sysupgrade -n <path-to-sysupgrade.bin>
TFTP Method:
1. Download the OpenWrt initramfs image.
Copy the image to a TFTP server reachable at 192.168.1.70/24.
Rename the image to tufax4200q.bin.
2. Connect the PC with TFTP server to the TUF-AX4200Q.
Set a static ip on the ethernet interface of your PC.
(IP address: 192.168.1.70, subnet mask: 255.255.255.0)
Connect to the serial console,
interrupt the autoboot process by pressing '4' when prompted.
Update the ipq9574 PCS driver the version provided by Qualcomm via
github. The updated driver simplifies link up handling by removing
unnecessary clock rate changes.
According to Qualcomm developers, the pcs nodes on IPQ9574 will be
labeled "pcs<n>" and "pcs<n>_ch<m>". The proposed IPQ5424 changes
include the simpler labels. Rename the IPQ95xx nodes for consistency.
qualcommbe: use ipq_pcs_get/put() in PPE (MAC) driver
ipq_unipcs_create/destroy() are provided by an older version of the
IPQ9574 PCS driver. Use the renamed versions ipq_pcs_get/put() to
allow updating the PCS driver.
Coia Prant [Wed, 1 Oct 2025 10:04:26 +0000 (18:04 +0800)]
ramips: add support for Hongdian H8850 v20
This is an industrial 4G router equipped with OpenWrt SNAPSHOT OEM
customized version
WARNING: The original firmware device tree is modified from evb
boards, and the device tree name is evb board. This submitted device
tree is a modified version, which deletes the non-this-device parts
and adds GPIO watchdog.
Issue:
- Factory partition not store mac address on original firmware
Flash instruction:
Using TTL:
1. Connect the board to the computer via TTL.
2. Enter original firmware failsafe mode.
3. Use wget download firmware to board /tmp
4. Use command "mtd -r write openwrt-ramips-mt76x8-hongdian_h8850-v20-squashfs-sysupgrade.bin firmware"
to flash
Original Firmware Dump / More details:
https://blog.gov.cooking/archives/research-hongdian-h8850-v20-and-flash.html
Shiji Yang [Sat, 29 Nov 2025 17:02:12 +0000 (18:02 +0100)]
ipq40xx: convert CRLF line-ending to LF for Linksys MR6350
Use Unix LF style instead of Windows CRLF style.
Fixes: 00bb18b851df ("ipq40xx: Add support for Linksys MR6350") Signed-off-by: Shiji Yang <yangshiji66@outlook.com> Link: https://github.com/openwrt/openwrt/pull/20973 Signed-off-by: Robert Marko <robimarko@gmail.com>
Shiji Yang [Sat, 29 Nov 2025 09:06:28 +0000 (17:06 +0800)]
gitattributes: automatically convert dts file CRLF line endings to LF
It seems that some developers prefer to use the Windows OS to add new
device support. Add new attributes for device tree files so that the
CRLF line endings can be automatically normalized to LF.
Rosen Penev [Sun, 25 May 2025 21:17:22 +0000 (14:17 -0700)]
ath79: tplink_tl-wdrxxxx: use led-sources for ath9k
The ath9k driver creates an ath9k LED by default. Instead of having a
non functional LED, configure it properly and remove the extra as it's
not needed.
George Moussalem [Thu, 23 Oct 2025 11:16:21 +0000 (15:16 +0400)]
qualcommax: ipq50xx: split firmware variants and refactor QCN6122 support
IPQ5018 based boards come in multiple wireless architectures.
The SOC itself provides 2.4G wifi while 5G wifi is added by either an
IPQ5018-specific QCN6122 (2x2) solution or by the more generally
available PCIe-based QCN9074 (4x4) wifi chip.
On IPQ5018/QCN6122-based boards, both QCN6122 and IPQ5018 wifi is
initialized by IPQ5018 firmware which comes in different versions:
- IPQ5018: firmware files to initialize WCSS and the internal wifi chip
- IPQ5018/QCN6122: above + additional firmware segments to initialize
the QCN6122 chip incl. (de-)assertion of resets and clocks enablement
OpenWrt currently packages the combined IPQ5018/QCN6122 firmware for
both architectures. As such, let's switch to using IPQ5018-only firmware
for boards not packed with QCN6122 chip(s) and keep using the shared
firmware for devices that do have QCN6122(s) chips.
This helps us move to using upstreamed IPQ5018 firmware while using the
legacy repo for IPQ5018/QCN6122 firmware and rule out any initialization
conflicts/issues caused by loading QCN6122 on IPQ5018-only boards.
While at it, default to the secure WCSS remoteproc driver sent upstream
for review, move QCN6122 wifi nodes to a separate dtsi, override the Q6
node to load the multi-PD-based architecture remoteproc driver for
needed only by IPQ5018/QCN6122 designs, reference said dtsi in
boards packed with QCN6122 wifi chip(s), and add provision for migrating
the radio path as the wifi nodes now adhere to linux device tree naming
conventions.
Rani Hod [Thu, 27 Nov 2025 23:43:13 +0000 (01:43 +0200)]
siflower: sf21 device tree fix
`i2c1` node was missing `resets`, so even when enabled, the driver would
not recognize it:
```
i2c_designware c101000.i2c: Unknown Synopsys component type: 0x00000000
```
With this fix, I2C pins on BPi-RV2 26-pin GPIO header are usable.
Raylynn Knight [Tue, 25 Nov 2025 23:39:18 +0000 (18:39 -0500)]
mpc85xx: HPE MSM460 add HPE MSM466 alias
Define MSM466 as alternative name, to explicitly show the device is
supported using existing image (MSM460). The only difference between
the MSM460 and MSM466 is that the MSM466 has external antenna.
Move .quilt_used from kernel-defaults.mk to quilt.mk.
This is done to be consistent with the parallel Build/Patch/Default and
Host/Patch/Default and permit better Quilt handling on any package that
might use Kernel/Patch/Default.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Anari Jalakas [Thu, 27 Nov 2025 13:22:03 +0000 (15:22 +0200)]
config: add !USE_APK dependency to CLEAN_IPKG
When USE_APK is enabled, APK replaces opkg/ipkg, leading to a build
failure when CLEAN_IPKG is also selected. Add 'depends on !USE_APK' to
CLEAN_IPKG to ensure this option is only selectable when opkg/ipkg is
the active package manager.
Move .quilt_used from kernel-defaults.mk to quilt.mk.
This is done to be consistent with the parallel Build/Patch/Default and
Host/Patch/Default and permit better Quilt handling on any package that
might use Kernel/Patch/Default.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
libtraceevent: switch to meson and add missing dep for libtraceevent-extra
Switch to Meson build system and add missing dependency for
libtraceevent-extra.
This switch indirectly fix a compilation error on 32bit target that
weren't getting correct target CFlags. Using Meson fix honour our CFlags
and fix the compilation error.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Shiji Yang [Thu, 27 Nov 2025 09:39:05 +0000 (17:39 +0800)]
generic: add missing symbol ARM64_CONTPTE
Add the missing symbol to fix build halt on aarch64 targets:
```
Contiguous PTE mappings for user memory (ARM64_CONTPTE) [Y/n/?] (NEW) make[7]: *** [scripts/kconfig/Makefile:85: syncconfig] Error 1
make[6]: *** [Makefile:686: syncconfig] Error 2
```
Shiji Yang [Wed, 26 Nov 2025 16:04:35 +0000 (00:04 +0800)]
treewide: dts: remove {#address,#size}-cells from "spi-nand" compatible node
The child node "partitions" doesn't have "reg" property. Hence, we
don't need to use "#address-cells" and "#size-cells" to describe the
reg property information.
Shiji Yang [Wed, 26 Nov 2025 15:49:55 +0000 (23:49 +0800)]
treewide: dts: remove {#address,#size}-cells from "jedec,spi-nor" compatible node
The child node "partitions" doesn't have "reg" property. Hence, we
don't need to use "#address-cells" and "#size-cells" to describe the
reg property information.
Goetz Goerisch [Mon, 24 Nov 2025 07:56:28 +0000 (08:56 +0100)]
odhcpd: update to Git HEAD (2025-11-23)
8a8bb3c1a673 src: consolidate and improve fallthrough 8ffe79e3f086 src: improve attributes 0a4d4e11c91c odhcpd: simplify signal handling 6af938921628 odhcpd: make ubus optional at runtime 7313ba262b76 odhcpd: update devel-build.sh 038a7bbfc30d dhcpv4: simplify random address selection 8c574bd2fe62 dhcpv6: prevent network loop scenario 76b2d00ee5f0 router: Modify relayed RA PIO L and RA M/O flags according to interface policy d236b2e0c53e github: ci: add MIPS64, PowerPC64 and RISCV64 d1500bb5d64d all: implement RFC8910 captive portal (CP) option 9830e5e2bf37 all: implement RFC8910 captive portal (CP) option for DHCPv4 9b9ea96ca90e statefiles: fix off-by-one-bug c10784ece29c dhcpv4: replace ToS precedence 24f013500691 dhcvp4: use tmp fd in dhcpv4_setup_interface() 3c32b27d8bab dhcpv4: simplify error handling in dhcpv4_setup_interface() 5b7cfef774fb dhcpv4: define val where it is used in dhcpv4_setup_interface() b0739f23c310 dhcpv4: add BPF to dhcpv4_setup_interface() 650a5df88eba ndp: correctness fix for BPF filter
tools: mtd-utils: fix patch 110 for musl
This patch is introducing the same header that the other patch
001-ubifs-utils-link-libmissing.a-in-case-execinfo.h-isn.patch
is guarding against missing in musl libc. We need to
mimic that.
1. Power on FWF-30E and interrupt to show bootmenu
2. Call "[I]: System information." -> "[S]: Set serial port baudrate."
and set baudrate to 9600 bps
3. Call "[R]: Review TFTP parameters.", check TFTP parameters and
connect computer to "Image download port" in the parameters
4. Prepare TFTP server with the parameters obtained above
5. Rename OpenWrt initramfs image to "image.out" and put to TFTP
directory
6. Call "[T]: Initiate TFTP firmware transfer." to download initramfs
image from TFTP server
7. Type "r" key when the following message is showed, to boot initramfs
image without flashing to spi-nor flash
"Save as Default firmware/Backup firmware/Run image without saving:[D/B/R]?"
8. On initramfs image, backup mtd if needed
minimum:
- "firmware-info"
- "kernel"
- "rootfs"
9. On initramfs image, upload sysupgrade image to the device and perform
sysupgrade
10. Wait ~200 seconds to complete flashing and rebooting.
If the device is booted with stock firmware, login to bootmenu and
call "[B]: Boot with backup firmware and set as default." to set the
first OS image as default and boot it.
Notes:
- Both colors of Bi-color LEDs on the front panel cannot be turned on at
the same time.
- "PWR" and "Logo" LEDs are connected to power source directly.
- The following partitions are added for OpenWrt.
These partitions are contained in "uboot" partition (0x0-0x1fffff) on
stock firmware.
(eth0): 70:4C:A5:xx:xx:42 (board-info, 0xd880 (hex))
WAN : 70:4C:A5:xx:xx:43
LAN 1 : 70:4C:A5:xx:xx:44
LAN 2 : 70:4C:A5:xx:xx:45
LAN 3 : 70:4C:A5:xx:xx:46
LAN 4 : 70:4C:A5:xx:xx:47
Andreas Gnau [Wed, 8 Oct 2025 21:00:44 +0000 (23:00 +0200)]
base-files: board_detect: make resilient against power-cuts
If board_detect is interrupted by cutting power on first boot,
board.json might only be half-way written and the file will not be
written again correctly on subsequent boots.
Write to a temporary file first, then rename. Since a rename on the same
file system is an atomic operation, it ensures that either
/etc/board.json does not exist or that the complete file exists.
* SC2166 (warning): Prefer [ p ] && [ q ] as [ p -a q ] is not well
defined.
* SC2086 (info): Double quote to prevent globbing and word splitting.
* SC2091 (warning): Remove surrounding $() to avoid executing output
(or use eval if intentional).