openwrt/openwrt.git
4 days agomediatek: filogic: add support for NRadio C8-668GL
Yaoguang Bai [Tue, 26 Nov 2024 09:18:28 +0000 (17:18 +0800)]
mediatek: filogic: add support for NRadio C8-668GL

NRadio C8-668GL is a Wi-Fi 6 5G cellular router based on MediaTek MT7981B SoC.

- **SoC**: MediaTek MT7981B (2x Cortex-A53, 1.3GHz)
- **RAM**: Nanya NT5AD512M16C4-JR 1GB DDR4
- **Flash**: ESMT FC51L08SFY3A 8GB eMMC
- **Ethernet**:
  - 1x 2.5GbE (via GMAC0 and GPY211 PHY, shared with MT7531AE)
  - 3x 10/100/1000 Mbps (via MT7531AE, connected to GMAC0)
  - 5G Modem: GMAC1 (via GPY211 PHY - RTL8125BG - RM520N-GL)
- **Wi-Fi**: MediaTek MT7976CN (2.4GHz/5GHz, 802.11ax, 2x2 MIMO, AX3000)
- **Buttons**: Reset, WPS
- **LEDs**: Power, 5G, 4G, WiFi
- **SIM Slot**: 1x Nano SIM
- **5G Modem**: Quectel RM520N-GL (Snapdragon™ X62)
- **Power**: 12V/2A DC, 5.5×2.1 connector

The MAC addresses are derived from the `fac_mac` field in the `bdinfo` partition, formatted as `fac_mac = HWMAC`. The allocation is as follows:

| Vendor  | OpenWrt Interface | Address       | Notes                                          |
|---------|-------------------|---------------|------------------------------------------------|
| LAN     | br-lan            | Label MAC     | Default                                        |
| WAN     | lan4              | Label MAC+1   | Only when lan4 is switched to WAN             |
| 2.4GHz  | phy0-ap0          | Label MAC     |                                                |
| 5GHz    | phy1-ap0          | Label MAC     | (Local Admin bit set)                         |
| Modem   | eth1              | Label MAC+2   |                                                |

1. Log in to the router via `http://192.168.66.1`/.
2. Upgrade the official firmware to dual-system mode.
3. Select **Burn second system** and upload the `sysupgrade.bin` image.
   - Download the image from the OpenWrt build system or build it yourself using the OpenWrt buildroot.
4. Wait for 30 seconds and click **Switch system**.
5. The device will reboot and switch to OpenWrt.

Set the U-Boot environment variable `boot_system=0` and reboot:
```bash
fw_setenv boot_system 0
```

Power off the router, hold the **WPS button**, and power it back on.

1. Rename the stock firmware file to **`recovery.bin`**.
2. Set your PC's Ethernet IP to **192.168.1.88** and connect it to the lan1 port on the router.
3. Run a TFTP server and place the `recovery.bin` file in its root directory.
4. Power off the router, press and hold the **Reset button**, and power it back on.
5. Release the Reset button when the TFTP server shows activity.
6. Wait for the router to flash the firmware and reboot automatically.

- By default, `lan4` is part of `br-lan` and uses the label MAC address.
- To query the RM520N-GL module, use the following command:
  ```bash
  cat /dev/ttyUSB2 & printf 'ATI\r\n' > /dev/ttyUSB2
  ```

Signed-off-by: Yaoguang Bai <0xdeadc0de@badguys.club>
Link: https://github.com/openwrt/openwrt/pull/17093
Signed-off-by: John Crispin <john@phrozen.org>
4 days agoath79: usb: remove reset names
Rosen Penev [Fri, 29 Nov 2024 22:24:38 +0000 (14:24 -0800)]
ath79: usb: remove reset names

Upstream uses devm_reset_control_array_get_optional_shared, which does
not use names. reset-names is also not specified in the documentation.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17118
Signed-off-by: John Crispin <john@phrozen.org>
4 days agoath79: change phy-names to only usb
Rosen Penev [Fri, 29 Nov 2024 04:44:51 +0000 (20:44 -0800)]
ath79: change phy-names to only usb

Both generic-ehci.yaml and generic-ohci.yaml state that phy-names is to
only be usb.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17118
Signed-off-by: John Crispin <john@phrozen.org>
4 days agoath79: usb: remove usb- from reset-names
Rosen Penev [Fri, 29 Nov 2024 04:21:20 +0000 (20:21 -0800)]
ath79: usb: remove usb- from reset-names

This matches the upstream PHY driver, which removed it.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17118
Signed-off-by: John Crispin <john@phrozen.org>
4 days agowifi-scripts: don't fail on unset PSK
David Bauer [Sat, 7 Dec 2024 13:47:29 +0000 (14:47 +0100)]
wifi-scripts: don't fail on unset PSK

Don't fail wireless interface bringup on empty PSK set. This is a valid
configuration, resulting in a PSK network which can't be connected to.
It does not fail the bringup of the hostapd process.

Keep failing the interface setup in case a password with invalid length
is used.

This is also beneficial when intending to configure a PPSK network. It
allows to create a network where no PPSK is yet set.

Signed-off-by: David Bauer <mail@david-bauer.net>
Link: https://github.com/openwrt/openwrt/pull/17197
Signed-off-by: John Crispin <john@phrozen.org>
4 days agomac80211: refresh patch for ath12k
Georgi Valkov [Thu, 12 Dec 2024 09:05:15 +0000 (11:05 +0200)]
mac80211: refresh patch for ath12k

refresh the following patch for ath12k
001-wifi-ath12k-add-11d-scan-offload-support-and-handle-country-code-for-WCN7850.patch

Signed-off-by: Georgi Valkov <gvalkov@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17246
Signed-off-by: John Crispin <john@phrozen.org>
4 days agolantiq: use regulator for USB GPIO
Rosen Penev [Tue, 3 Dec 2024 21:29:37 +0000 (13:29 -0800)]
lantiq: use regulator for USB GPIO

One is already present. The other one can be implemented in terms of the
PHY.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17250
Signed-off-by: John Crispin <john@phrozen.org>
4 days agohostapd: fix building mini variants
Felix Fietkau [Fri, 13 Dec 2024 10:04:04 +0000 (11:04 +0100)]
hostapd: fix building mini variants

Move function and add ifdef to avoid undefined reference to hmac_sha256_kdf.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 days agowifi-scripts: fix mesh/sta setup with ucode scripts
Felix Fietkau [Fri, 13 Dec 2024 09:56:50 +0000 (10:56 +0100)]
wifi-scripts: fix mesh/sta setup with ucode scripts

Ensure that the code doesn't pass macaddr_base with the wrong type (null)
to the supplicant setup/start call.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 days agodropbear: Name pid file by uci section name
Andreas Gnau [Tue, 28 Feb 2023 11:24:57 +0000 (16:54 +0530)]
dropbear: Name pid file by uci section name

Name the pidfile of each dropbear instance according to the
corresponding uci section name. This enables a 1:1 mapping between the
definition of the service instance and its process.

Signed-off-by: Andreas Gnau <andreas.gnau@iopsys.eu>
Link: https://github.com/openwrt/openwrt/pull/15177
Signed-off-by: John Crispin <john@phrozen.org>
4 days agoipq40xx: use PHY to control USB GPIO
Rosen Penev [Tue, 3 Dec 2024 21:37:21 +0000 (13:37 -0800)]
ipq40xx: use PHY to control USB GPIO

Instead of using regulator-output to manually control USB GPIO, let the
PHY handle it.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17221
Signed-off-by: John Crispin <john@phrozen.org>
4 days agobase-files: fix luci TZ default show zonename
Jiale Liu [Sun, 14 Apr 2024 16:27:49 +0000 (00:27 +0800)]
base-files: fix luci TZ default show zonename

fix default timezone to correct GMT0,
origin value 'UTC' is zonename, not timezone.

Signed-off-by: Jiale Liu <admin@licsber.site>
Link: https://github.com/openwrt/openwrt/pull/15128
Signed-off-by: John Crispin <john@phrozen.org>
4 days agohostapd: add support for rxkh_file
Sybil127 [Thu, 23 May 2024 16:49:54 +0000 (18:49 +0200)]
hostapd: add support for rxkh_file

Initial support for dynamic reload of RxKHs.

In order to check if RxKHs need reloading.
RxKHs defined in the rxkh_file first has to be parsed and formated,
the same way as hostapd will read from the file and also output,
with the command GET_RXKHS.
Then each list of RxKHs can be hashed and compared.

Ucode implementation of hostapds rkh_derive_key() function.
Hostapd converts hex keys with 128-bits or more when less than 256-bits
to 256-bits, and truncates those that are more than 256-bits.
See: https://w1.fi/cgit/hostap/commit/hostapd/config_file.c?id=245fc96e5f4b1c566b7eaa19180c774307ebed79

Signed-off-by: Sybil127 <sybil127@outlook.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 days agowifi-scripts: introduce rxkh_file uci option
Sybil127 [Thu, 23 May 2024 15:43:07 +0000 (17:43 +0200)]
wifi-scripts: introduce rxkh_file uci option

With rxkh_file, hostapd will read a list of RxKHs from a text file.
This also makes it possible for hostapd to dynamically reload RxKHs.

RxKHs defined in rxkh_file should be formated as described in hostapd.conf,
with one entry per line.

R0KH/R1KH format:
r0kh=<MAC address> <NAS Identifier> <256-bit key as hex string>
r1kh=<MAC address> <R1KH-ID> <256-bit key as hex string>

Reworked behavior of the uci options r0kh and r1kh.

When rxkh_file is not configured:
  Instead of appending the RxKHs to the hostapd bss configuration.
  They will be added to a interface specific file with name
  /var/run/hostapd-phyX-apX.rxkh.
  This file will be used as the rxkh_file in the hostapd bss configuration.

When rxkh_file is configured:
  The specified file will be used in the hostapd bss configuration,
  and will be the only source for configured RxKHs.
  All RxKHs defined with the uci options r0kh or r1kh will be ignored.

Signed-off-by: Sybil127 <sybil127@outlook.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
4 days agowifi-scripts: add macaddr_base wifi-device option
Felix Fietkau [Mon, 9 Dec 2024 19:09:15 +0000 (20:09 +0100)]
wifi-scripts: add macaddr_base wifi-device option

This can be used to configure the base mac address from which all
interface mac addresses are derived

Signed-off-by: Felix Fietkau <nbd@nbd.name>
5 days agowifi-scripts: fix failing mesh setup with missing wpa_supplicant
David Bauer [Thu, 12 Dec 2024 15:36:50 +0000 (16:36 +0100)]
wifi-scripts: fix failing mesh setup with missing wpa_supplicant

The initialization of mesh interfaces currently fail when wpa_supplicant
is not installed. This is due to the script calling the wpa_supplicant
feature indicator without verifying wpa_supplicant is installed at all.

To avoid failing, first check if wpa_supplicant is installed before
determining the available featureset.

Signed-off-by: David Bauer <mail@david-bauer.net>
5 days agoRevert "kernel: modules: fix led-group-multi-color patch"
John Crispin [Thu, 12 Dec 2024 14:43:35 +0000 (15:43 +0100)]
Revert "kernel: modules: fix led-group-multi-color patch"

This reverts commit 1cea889c96a8df4e91236e269539b086d519a60a.
This reverts commit 5fd86d66c15fc4d6f5076f7d07c91e0690d91531.

The patch is causing build servers to fail. Revert it for now.

Signed-off-by: John Crispin <john@phrozen.org>
5 days agokernel: modules: fix led-group-multi-color patch
John Crispin [Thu, 12 Dec 2024 12:52:43 +0000 (13:52 +0100)]
kernel: modules: fix led-group-multi-color patch

Fixes: 5fd86d6 ("kernel: modules: add support for led-group-multicolor")
Signed-off-by: John Crispin <john@phrozen.org>
5 days agokernel: modules: add support for led-group-multicolor
Jonathan Brophy [Tue, 10 Sep 2024 09:43:23 +0000 (21:43 +1200)]
kernel: modules: add support for led-group-multicolor

This option enables support for monochrome LEDs that are grouped into multicolor
LEDs which is useful in the case where LEDs of different colors are physically
grouped in a single multi-color LED and driven by a controller that doesn't have
multi-color support.

Signed-off-by: Jonathan Brophy <professor_jonny@hotmail.com>
Link: https://github.com/openwrt/openwrt/pull/16397
Signed-off-by: John Crispin <john@phrozen.org>
5 days agobase-files: fix cleanup after settings restore
Rodrigo Balerdi [Tue, 30 Apr 2024 11:25:57 +0000 (08:25 -0300)]
base-files: fix cleanup after settings restore

Some devices use file '/tmp/sysupgrade.tar' during settings restore and
this potentially big file was not being cleaned up from RAM afterwards.

See: do_mount_root() (base-files/files/lib/preinit/80_mount_root)

Signed-off-by: Rodrigo Balerdi <lanchon@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/15339
Signed-off-by: John Crispin <john@phrozen.org>
5 days agoipq40xx: disable SPI DMA for Fritzbox 4040
Rouven Czerwinski [Wed, 17 Jul 2024 19:28:11 +0000 (21:28 +0200)]
ipq40xx: disable SPI DMA for Fritzbox 4040

We have seen hung devices and failures during SPI transactions on
Fritzbox devices with a gluon based freifunk network. We have narrowed
down that disabling DMA for spi fixes the problem, so disable dma for
the SPI controller on the Fritzbox 4040.

Signed-off-by: Rouven Czerwinski <rouven@czerwinskis.de>
Link: https://github.com/openwrt/openwrt/pull/15966
Signed-off-by: John Crispin <john@phrozen.org>
5 days ago.gitattributes: ignore some whitespace "violations" in .patch files
Mark Mentovai [Sat, 27 Jul 2024 03:28:36 +0000 (23:28 -0400)]
.gitattributes: ignore some whitespace "violations" in .patch files

git's default core.whitespace[1] setting doesn't agree with .patch
files. This causes whitespace warnings when running `git apply`,
(including via `git am`) and causes red highlighting when viewing diffs
to .patch files via `git diff` (including via `git show`) when
outputting to a terminal.

These types of whitespace “violations” will now be explicitly disabled
for .patch files in the repository-wide .gitattributes file to prevent
git from suggesting that there’s anything wrong with checked-in .patch
files.

A .patch file will naturally have `space-before-tab` if a context line
(not a +/- line) begins with a tab character (as is common in patches to
files that use the tab indent convention), and will also naturally have
`trailing-space` if a context line is blank (also common).

Neither `indent-with-non-tab` nor `tab-in-indent` are enabled in
core.whitespace by default, but could also occur naturally in .patch
files, and are also explicitly disabled here for completeness to cover
cases where they may be enabled in core.whitespace at the global or
system level.

These false violations may be flagged frequently in OpenWrt, because the
repository contains many .patch files. There are currently just over
5,000 .patch files, representing slightly more than half of all files.

[1] https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration#_core_whitespace

Link: https://github.com/openwrt/openwrt/pull/16012
Signed-off-by: Mark Mentovai <mark@mentovai.com>
Link: https://github.com/openwrt/openwrt/pull/16015
Signed-off-by: John Crispin <john@phrozen.org>
5 days agorules.mk: Update ccache's compiler check.
Markus Gothe [Tue, 7 Feb 2023 21:00:33 +0000 (22:00 +0100)]
rules.mk: Update ccache's compiler check.

Update the compiler check for ccache so we don't
end up with the wrong binaries. Right now the
compiler check will not be able to correctly
distinguish the compiler used for build
ARMv8 binaries from the one used to build
ARMv7 binaries.

Signed-off-by: Markus Gothe <markus.gothe@genexis.eu>
Link: https://github.com/openwrt/openwrt/pull/16290
Signed-off-by: John Crispin <john@phrozen.org>
5 days agoccache: Speed up building.
Markus Gothe [Wed, 12 Jan 2022 16:13:43 +0000 (17:13 +0100)]
ccache: Speed up building.

- Disable compression for ccache's cached files.
- Disable the hashing of the CWD inside debug information. This
  increases the cache hits drastically.

Signed-off-by: Markus Gothe <markus.gothe@genexis.eu>
5 days agodnsmasq: pass environment variables to hotplug
Chuck R [Sun, 8 Sep 2024 19:28:06 +0000 (14:28 -0500)]
dnsmasq: pass environment variables to hotplug

dnsmasq passes a limited amount of information via DHCP script arguments. Much
more information is available through environment variables starting with
DNSMASQ_, such as DNSMASQ_INTERFACE. However, when the dhcp-script builds its
JSON environment and passes it to hotplug, all of this information is discarded
since it is not copied to the JSON environment.

Personally, I have a custom-made set of DDNS scripts and rely on environment
variables such as DNSMASQ_INTERFACE in order to determine which DNS zones
to update. So, not being able to access these variables was detrimental to me.
I patched in a quick copy of all DNSMASQ_ variables to the JSON environment
so that they can be used in hotplug scripts. In order to do so I also copied
/usr/bin/env into dnsmasq's chroot jail.

Signed-off-by: Chuck R <github@chuck.cloud>
Link: https://github.com/openwrt/openwrt/pull/16354
Signed-off-by: John Crispin <john@phrozen.org>
5 days agomediatek: add Comfast CF-E395AX support by adding an alternative model name
David Bentham [Tue, 22 Oct 2024 09:46:05 +0000 (10:46 +0100)]
mediatek: add Comfast CF-E395AX support by adding an alternative model name

both these devices share the board and same config, just different model number

Install instructions are the same as the CF-E393AX commit - https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=d8f4453bf2de9fd9baf3d660ed12e0797ff2cfdb

Signed-off-by: David Bentham <db260179@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16389
Signed-off-by: John Crispin <john@phrozen.org>
5 days agombim: sort config variables a little and fix minor bugs
Leon M. Busch-George [Sat, 19 Oct 2024 10:03:08 +0000 (12:03 +0200)]
mbim: sort config variables a little and fix minor bugs

Group 'local' declarations and 'json_get_vars', sort alphabetically within groups, and split off more generic parameters.

- delegate and sourcefilter were not declared as local variables

Signed-off-by: Leon M. Busch-George <leon@georgemail.eu>
Link: https://github.com/openwrt/openwrt/pull/16734
Signed-off-by: John Crispin <john@phrozen.org>
5 days agoncm: sort config variables a little and fix minor bugs
Leon M. Busch-George [Sat, 19 Oct 2024 09:52:51 +0000 (11:52 +0200)]
ncm: sort config variables a little and fix minor bugs

Group 'local' declarations and 'json_get_vars', sort alphabetically within groups, and split off more generic parameters.

- delegate and sourcefilter were not declared as local variables

Signed-off-by: Leon M. Busch-George <leon@georgemail.eu>
5 days agoqmi: sort config variables a little and fix minor bugs
Leon M. Busch-George [Sat, 19 Oct 2024 09:43:23 +0000 (11:43 +0200)]
qmi: sort config variables a little and fix minor bugs

Group 'local' declarations and 'json_get_vars', sort alphabetically within groups, and split off more generic parameters.

- delegate and sourcefilter were not declared as local variables

Signed-off-by: Leon M. Busch-George <leon@georgemail.eu>
5 days agobase-files: add option to set LED brightness
Paweł Owoc [Fri, 6 Dec 2024 16:11:59 +0000 (17:11 +0100)]
base-files: add option to set LED brightness

Add option to set LED brightness via uci:

config led 'led_blue'
        option name 'blue'
        option sysfs 'blue:status'
        option brightness '1'

Signed-off-by: Paweł Owoc <frut3k7@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17190
Signed-off-by: John Crispin <john@phrozen.org>
5 days agopackage/firewall: fix config typo
Liangbin Lian [Sun, 1 Dec 2024 04:45:34 +0000 (12:45 +0800)]
package/firewall: fix config typo

change Support-UDP-Traceroute rule from 'enabled false' to 'enabled 0'

Signed-off-by: Liangbin Lian <jjm2473@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17133
Signed-off-by: John Crispin <john@phrozen.org>
5 days agohostapd: add SAE support for wifi-station and optimize PSK file creation
Rany Hany [Mon, 2 Dec 2024 11:30:07 +0000 (11:30 +0000)]
hostapd: add SAE support for wifi-station and optimize PSK file creation

Regarding SAE support in wifi-station:

Important Note: Unlike PSK wifi-stations, both `mac` and `key` options are required
to make it work. With PSK, hostapd used to perform a brute-force match to find which
PSK entry to use, but with SAE this is infeasible due to SAE's design.

When `mac` is omitted, it will allow any MAC address to use the SAE password if it
didn't have a MAC address assigned to it, but this could only be done once.
The last wildcard entry would be used.

Also, unlike "hostapd: add support for SAE in PPSK option" (commit 913368a),
it is not required to set `sae_pwe` to `0`. This gives it a slight advantage
over using PPSK that goes beyond not needing RADIUS.

Example Configuration:

```
config wifi-vlan
        option iface default_radio0
        option name 999
        option vid 999
        option network management

config wifi-station
        # Allow user with MAC address 00:11:22:33:44:55 and matching
        # key "secretadminpass" to access the management network.
        option iface default_radio0
        option vid 999
        option mac '00:11:22:33:44:55'
        option key secretadminpass

config wifi-vlan
        option iface default_radio0
        option name 100
        option vid 100
        option network guest

config wifi-station
        # With SAE, when 'mac' is omitted it will be the fallback in case no
        # other MAC address matches. It won't be possible for a user that
        # has a matching MAC to use this network (i.e., 00:11:22:33:44:55
        # in this example).
        option iface default_radio0
        option vid 100
        option key guestpass
```

Regarding PSK file creation optimization:

This patch now conditionally runs `hostapd_set_psk_file` depending on `auth_type`.
Previously, `hostapd_set_psk` would always execute `hostapd_set_psk_file`, which
would create a new file if `wifi-station` was in use even if PSK was not enabled.
This change checks the `auth_type` to ensure that it is appropriate to parse the
`wifi-station` entries and create those files.

Furthermore, we now only configure `wpa_psk_file` when it is a supported option
(i.e., psk or psk-sae is used). Previously, we used to configure it when it was
not necessary. While it didn't cause any issues, it would litter `/var/run` with
unnecessary files. This patch fixes that case by configuring it depending on the
`auth_type`.

The new SAE support is aligned with these PSK file changes.

Signed-off-by: Rany Hany <rany_hany@riseup.net>
Link: https://github.com/openwrt/openwrt/pull/17145
Signed-off-by: John Crispin <john@phrozen.org>
6 days agoqualcommax: use ath11k_patch_mac for MR7350
Chukun Pan [Sun, 8 Dec 2024 15:26:01 +0000 (23:26 +0800)]
qualcommax: use ath11k_patch_mac for MR7350

Use ath11k_patch_mac and ath11k_set_macflag functions
instead of fix_wifi_mac script.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/17230
Signed-off-by: Robert Marko <robimarko@gmail.com>
6 days agoqualcommax: ipq60xx: fixes base-files typo
Chukun Pan [Sat, 7 Dec 2024 15:16:15 +0000 (23:16 +0800)]
qualcommax: ipq60xx: fixes base-files typo

 * fix caldata file name
 * fix bootcount file permission

Fixes: 9c55866 ("qualcommax: ipq60xx: add Linksys MR7350 support")
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/17230
Signed-off-by: Robert Marko <robimarko@gmail.com>
6 days agoumdns: update to latest HEAD
John Crispin [Wed, 11 Dec 2024 14:41:21 +0000 (15:41 +0100)]
umdns: update to latest HEAD

93458ac dns: fix response to TYPE_PTR query
68af311 fix unicast response port and timeout
a2b4979 service: announce all services in single dns answer
4537734 display announced services in ubus call umdns browse
0b50c29 display more srv attributes in output of ubus browse function

Signed-off-by: John Crispin <john@phrozen.org>
6 days agoprocd: update to latest HEAD
John Crispin [Wed, 11 Dec 2024 11:32:37 +0000 (12:32 +0100)]
procd: update to latest HEAD

e2f05de state: set_stdio: chdir back to / in case of failure
30542c9 inittab: Disable implicit controlling TTY.

Signed-off-by: John Crispin <john@phrozen.org>
6 days agowifi-scripts: ucode: change default behaviour of the vlan_no_bridge option
John Crispin [Wed, 11 Dec 2024 13:42:47 +0000 (14:42 +0100)]
wifi-scripts: ucode: change default behaviour of the vlan_no_bridge option

Signed-off-by: John Crispin <john@phrozen.org>
6 days agowifi-scripts: ucode: remove debug code
John Crispin [Wed, 11 Dec 2024 11:27:38 +0000 (12:27 +0100)]
wifi-scripts: ucode: remove debug code

Signed-off-by: John Crispin <john@phrozen.org>
6 days agowifi-scripts: ucode: append global options on STA interfaces
John Crispin [Wed, 11 Dec 2024 11:06:55 +0000 (12:06 +0100)]
wifi-scripts: ucode: append global options on STA interfaces

Signed-off-by: John Crispin <john@phrozen.org>
6 days agowifi-scripts: ucode: fix parsing of legacy hwmode option
John Crispin [Wed, 11 Dec 2024 11:02:18 +0000 (12:02 +0100)]
wifi-scripts: ucode: fix parsing of legacy hwmode option

Signed-off-by: John Crispin <john@phrozen.org>
6 days agowifi-scripts: ucode: only set mbssid on ax and be radios
John Crispin [Wed, 11 Dec 2024 10:55:21 +0000 (11:55 +0100)]
wifi-scripts: ucode: only set mbssid on ax and be radios

Signed-off-by: John Crispin <john@phrozen.org>
6 days agowifi-scripts: ucode: typo fix
John Crispin [Wed, 11 Dec 2024 10:54:34 +0000 (11:54 +0100)]
wifi-scripts: ucode: typo fix

Signed-off-by: John Crispin <john@phrozen.org>
6 days agolantiq: grow kernel partition Zyxel P-2812HNU-F1
Isaac de Wolff [Sun, 8 Dec 2024 12:52:40 +0000 (13:52 +0100)]
lantiq: grow kernel partition Zyxel P-2812HNU-F1

Change partition table in dts file.
Change DEVICE_COMPAT_VERSION
Enable automatic build.

To take advantage of the bigger kernel partition,
the uboot environment has to be changed:
setenv nboot 'nand read 0x81000000 0x60000 0x500000; bootm 0x81000000'
setenv bootcmd 'run nboot'
saveenv

Of course you need a u-boot capable of handling this.
The u-boot discussed in this forum thread:
https://forum.openwrt.org/t/zyxel-p2812hnu-f1-u-boot/100281
should be able to handle kernels up to an uncompressed size of 16MiB.

Signed-off-by: Isaac de Wolff <idewolff@gmx.com>
Link: https://github.com/openwrt/openwrt/pull/17209
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
6 days agotools/cmake: update to 3.31.2
Jack Sun [Mon, 9 Dec 2024 08:43:49 +0000 (16:43 +0800)]
tools/cmake: update to 3.31.2
Release notes: https://cmake.org/cmake/help/latest/release/3.31.html

Refresh patches:
- 120-curl-fix-libressl-linking.patch
- 130-bootstrap_parallel_make_flag.patch
- 150-zstd-libarchive.patch
- 160-disable_xcode_generator.patch

Signed-off-by: Jack Sun <sunjiazheng321521@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17056
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
7 days agoiproute2: update to 6.12.0
Robert Marko [Sat, 7 Dec 2024 16:32:21 +0000 (17:32 +0100)]
iproute2: update to 6.12.0

Release Notes:
https://lore.kernel.org/netdev/20241119092743.6a1bdcb7@hermes.local/T/

Allows us to drop 2 upstreamed patches:
package/network/utils/iproute2/patches/010-bridge-mst-fix-a-musl-build-issue.patch
package/network/utils/iproute2/patches/011-bridge-mst-fix-a-further-musl-build-issue.patch

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
Link: https://github.com/openwrt/openwrt/pull/17206
Signed-off-by: Robert Marko <robimarko@gmail.com>
7 days agomediatek: filogic: Migrate wifi configuration device paths
Hauke Mehrtens [Sun, 8 Dec 2024 15:18:52 +0000 (16:18 +0100)]
mediatek: filogic: Migrate wifi configuration device paths

The device path to the devices changed. Migrate the wifi
configurations from the old path to the new one. This is needed to
migrate Wireless configurations from OpenWrt 23.05 to OpenWrt 24.10.

This script is based on these two files:
target/linux/ramips/mt7621/base-files/etc/hotplug.d/ieee80211/05-wifi-migrate
target/linux/qualcommax/ipq807x/base-files/etc/hotplug.d/ieee80211/05-wifi-migrate

Fixes: 0ef927472148 ("mediatek: filogic: move mt7981 on-SoC blocks to "soc" node in DT")
Fixes: https://github.com/openwrt/openwrt/issues/17174
Link: https://github.com/openwrt/openwrt/pull/17210
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
7 days agomediatek: filogic: prevent faulty mac address assignment
Ondřej Niesner [Sat, 7 Dec 2024 16:55:29 +0000 (17:55 +0100)]
mediatek: filogic: prevent faulty mac address assignment

The vendor U-Boot on the Cudy WR3000 assign random mac addresses on boot
and set the 'local-mac-address' property which prevents Openwrt from
assigning the correct address from evmem.

This patch removes the alias for ethernet0 so that U-Boot doesn't add
the property.

Related to: a55ab9e1343e ("mediatek: filogic: prevent faulty mac address assignment")
Fixes: https://github.com/openwrt/openwrt/issues/15587
Signed-off-by: Ondřej Niesner <ondra.niesner@seznam.cz>
Link: https://github.com/openwrt/openwrt/pull/17201
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
7 days agohostapd: fix processing mbssid config option
Felix Fietkau [Mon, 9 Dec 2024 18:19:46 +0000 (19:19 +0100)]
hostapd: fix processing mbssid config option

Do not strip the first character from the field name

Signed-off-by: Felix Fietkau <nbd@nbd.name>
8 days agobpftool: turn off libbfd feature in host build
Eric Long [Mon, 25 Nov 2024 13:26:47 +0000 (21:26 +0800)]
bpftool: turn off libbfd feature in host build

libbfd feature is not used when building eBPF program, and it makes bpftool fail to build in a clean environment, since binutils in toolchain have libbfd disabled.

Signed-off-by: Eric Long <i@hack3r.moe>
Link: https://github.com/openwrt/openwrt/pull/17073
Signed-off-by: Robert Marko <robimarko@gmail.com>
8 days agoath79: gl-e750: use nvmem for mac addresses
Rosen Penev [Sun, 16 Jun 2024 19:48:40 +0000 (12:48 -0700)]
ath79: gl-e750: use nvmem for mac addresses

This is a simple conversion to dts.

68ac3f2cddab states that the 5ghz wifi address is calculated from ART 0
+ 2.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17066
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
8 days agomediatek/filogic: add Keenetic KN-3811 support
Maxim Anisimov [Wed, 13 Nov 2024 14:17:17 +0000 (17:17 +0300)]
mediatek/filogic: add Keenetic KN-3811 support

Specification:
 * Mediatek MT7981BA
 * 256 MB SPI-NAND
 * 512 MB DDR4 RAM
 * MT7976CN DBDC AX Wi-Fi
 * MediaTek MT7531AE (3x LAN Gigabit ports) + Internal Gbe Phy (1x WAN Gigabit port)
 * 4x LED (power, internet, fn, wifi)
 * 3x buttons (wps, fn, reset)
 * 1x USB 3.0 port

Serial Interface:
 * 3 Pins GND, RX, TX
 * Settings: 115200, 8N1

Notes:
 * The device supports dual boot mode
 * Fn led reassigned to wlan 2.4

Flash instruction:
The only way to flash OpenWrt image is to use tftp recovery mode in U-Boot:

1. Configure PC with static IP 192.168.1.2/24 and tftp server.
2. Rename "openwrt-mediatek-filogic-keenetic_kn-3811-squashfs-factory.bin"
   to "KN-3811_recovery.bin" and place it in tftp server directory.
3. Connect PC with ethernet port, press the reset button, power up
   the device and keep button pressed until status led start blinking.
4. Device will download file from server, write it to flash and reboot.

Signed-off-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17135
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
8 days agobusybox: Save shell history into /tmp
Hannu Nyman [Thu, 5 Dec 2024 20:28:45 +0000 (22:28 +0200)]
busybox: Save shell history into /tmp

Enable the busybox feature to save shell command history.
(.apk size increase 0.5 kB)

To prevent flash wear,
* save history only at the exit from a shell session, and
* set /tmp as the default location for the history file. The history
  is kept on ramdisk until a reboot, when the history is then lost.

If the user wants to save history onto flash, he can change the location
definition in /etc/profile.d/busybox-history-file.sh

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Link: https://github.com/openwrt/openwrt/pull/17179
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
8 days agokernel: packages: fix building package/devel/perf with -O3
Pavel Shirov [Sat, 7 Dec 2024 12:29:28 +0000 (15:29 +0300)]
kernel: packages: fix building package/devel/perf with -O3

Add patch to fix failure to build package/devel/perf when
CONFIG_TARGET_OPTIMIZATION has -O3 enabled with this error:

```
In function 'elf_close',
    inlined from 'elf_close' at elf.c:41:6,
    inlined from 'elf_find_func_offset_from_file' at elf.c:267:2:
elf.c:45:9: error: 'elf_fd.elf' may be used uninitialized [-Werror=maybe-uninitialized]
   45 |         elf_end(elf_fd->elf);
      |         ^~~~~~~~~~~~~~~~~~~~
elf.c: In function 'elf_find_func_offset_from_file':
elf.c:260:23: note: 'elf_fd.elf' was declared here
  260 |         struct elf_fd elf_fd;
      |                       ^~~~~~
In function 'elf_close',
    inlined from 'elf_close' at elf.c:41:6,
    inlined from 'elf_find_func_offset_from_file' at elf.c:267:2:
elf.c:46:9: error: 'elf_fd.fd' may be used uninitialized [-Werror=maybe-uninitialized]
   46 |         close(elf_fd->fd);
      |         ^~~~~~~~~~~~~~~~~
elf.c: In function 'elf_find_func_offset_from_file':
elf.c:260:23: note: 'elf_fd.fd' was declared here
  260 |         struct elf_fd elf_fd;
      |                       ^~~~~~
```

Link: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/commit/?id=fab45b962749
Signed-off-by: Pavel Shirov <nstorm.ahoy166@silomails.com>
Link: https://github.com/openwrt/openwrt/pull/17141
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
9 days agowifi-scripts: fix channels array property parsing in ucode script
Felix Fietkau [Sun, 8 Dec 2024 14:10:51 +0000 (15:10 +0100)]
wifi-scripts: fix channels array property parsing in ucode script

Since the channels array can contain ranges, its type needs to be string, not number.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
9 days agowifi-scripts: fix ucode support for referencing wifi devices by phy name
Felix Fietkau [Sun, 8 Dec 2024 12:55:33 +0000 (13:55 +0100)]
wifi-scripts: fix ucode support for referencing wifi devices by phy name

Rename phys according to board.json

Signed-off-by: Felix Fietkau <nbd@nbd.name>
9 days agowifi-scripts: fix regression with ucode update
Felix Fietkau [Sun, 8 Dec 2024 12:36:41 +0000 (13:36 +0100)]
wifi-scripts: fix regression with ucode update

nl80211.request with GET_WIPHY for a single wiphy no longer returns an array

Signed-off-by: Felix Fietkau <nbd@nbd.name>
9 days agokernel: fallback-sprom: create separate header files
Mieczyslaw Nalewaj [Sun, 1 Dec 2024 18:17:13 +0000 (19:17 +0100)]
kernel: fallback-sprom: create separate header files

Create a separate header files fallback-sprom.h
for BCMA and SSB Fallback SPROM Driver
to add function prototypes to fallback-sprom.c as well.
This prevents missing function prototype errors.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/17138
Signed-off-by: Robert Marko <robimarko@gmail.com>
9 days agoqualcommax: ipq807x: add Netgear DEVICE_VARS
Robert Marko [Sat, 7 Dec 2024 21:08:18 +0000 (22:08 +0100)]
qualcommax: ipq807x: add Netgear DEVICE_VARS

Add NETGEAR_BOARD_ID and NETGEAR_HW_ID to DEVICE_VARS as multiple devices
set them in their recipes, so without them being added to DEVICE_VARS then
simply the value from last recipe that gets evaluated is used and images
are generated with the wrong ID-s.

Link: https://github.com/openwrt/openwrt/pull/17203
Signed-off-by: Robert Marko <robimarko@gmail.com>
10 days agoqualcommax: ipq60xx: add Linksys MR7350 support
Vladyslav Andreichykov [Thu, 7 Mar 2024 09:47:04 +0000 (11:47 +0200)]
qualcommax: ipq60xx: add Linksys MR7350 support

Linksys MR7350 is a 802.11ax Dual-band router/AP.
Specifications:
* CPU: Qualcomm IPQ6000 Quad core Cortex-A53(A73) 1.5GHz
* RAM: 512MB of DDR3
* Storage: 256Mb NAND
* Ethernet: 5x1G RJ45 ports (QCA8075)
* WLAN:
* 2.4GHz: Qualcomm QCN5022 2x2 802.11b/g/n/ax 574 Mbps PHY rate
* 5GHz: Qualcomm QCN5052 2x2@80MHz or  802.11a/b/g/n/ac/ax 1201 Mbps PHY rate
* LED-s:
* RGB system led
* USB blue led

* Buttons: 1x Soft reset 1x WPS
* Power: 12V DC Jack

Installation instructions:
Open Linksys Web UI - http://192.168.1.1/ca or http://10.65.1.1/ca depending on your setup.
Login with your admin password. The default password can be found on a sticker under the device.
To enter into the support mode, click on the “CA” link and the bottom of the page.
Open the “Connectivity” menu and upload the squash-factory image with the “Choose file” button.
Click start. Ignore all the prompts and warnings by click “yes” in all the popups.
The Wifi radios are turned off by default. To configure the router, you will need to connect your computer to the LAN port of the device.
Then you would need to write openwrt to the other partition for it to work
- First Check booted partition:
fw_printenv -n boot_part

- Change the partition:
fw_setenv boot_part 1
or
fw_setenv boot_part 2
depending on the current partition

- Then install Openwrt to the other partition if booted in slot 1:
mtd -r -e alt_kernel -n write openwrt-qualcommax-ipq60xx-linksys_mr7350-squashfs-factory.bin alt_kernel

- If in slot 2:
mtd -r -e kernel -n write openwrt-qualcommax-ipq60xx-linksys_mr7350-squashfs-factory.bin kernel

Co-Authored-by: Chukun Pan <amadeus@jmu.edu.cn>
Co-Authored-by: Robert Marko <robimarko@gmail.com>
Signed-off-by: Vladyslav Andreichykov <vladdrako007@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/14807
Signed-off-by: Robert Marko <robimarko@gmail.com>
10 days agoqualcommax: enable userspace regulator for ipq60xx as well
Robert Marko [Sun, 17 Nov 2024 19:41:11 +0000 (20:41 +0100)]
qualcommax: enable userspace regulator for ipq60xx as well

Userspace regulator consumer is rather usefull so enable it for ipq60xx
as well and remove from ipq807x only kernel config.

Link: https://github.com/openwrt/openwrt/pull/14807
Signed-off-by: Robert Marko <robimarko@gmail.com>
10 days agoqualcommax: refresh config
Robert Marko [Sun, 17 Nov 2024 19:40:48 +0000 (20:40 +0100)]
qualcommax: refresh config

Refresh the kernel config via kernel_menuconfig.

Link: https://github.com/openwrt/openwrt/pull/14807
Signed-off-by: Robert Marko <robimarko@gmail.com>
10 days agoucode: update to Git HEAD (2024-12-06)
Robert Marko [Fri, 6 Dec 2024 17:21:20 +0000 (18:21 +0100)]
ucode: update to Git HEAD (2024-12-06)

47b54cf5a4b6 types: introduce `ucv_array_sort_r()` and `ucv_object_sort_r()`
efeb57806552 types, vm: refactor usage of global variables
f9d2faf67de6 vm: reset signals when freeing VM
4e86847d802d lib: utilize `ucv_array_sort_r()` and `ucv_object_sort_r()`
c71444ea301f types: ucv_resource_create(): rename `typename` parameter to `type`
373df7299c79 nl80211: properly support split_wiphy_dump for single phys
9bcd25f54708 lexer: Preserve keyword, regexp flags until processing non-comment tokens
0a7ff4715cb8 main: pretty-print `-p` output by default
4c3d5b469156 struct: Add new buffer API for incremental packing/unpacking
efc4122124cb struct: do not use global variables for caching types

Fixes: https://github.com/jow-/ucode/issues/248
Fixes: https://github.com/jow-/ucode/issues/250
Fixes: https://github.com/efahl/owut/issues/25
Link: https://github.com/openwrt/openwrt/pull/17191
Signed-off-by: Robert Marko <robimarko@gmail.com>
11 days agogeneric: mtd: spinand: add support for FORESEE F35SQA001G
Bohdan Chubuk [Thu, 5 Dec 2024 22:17:56 +0000 (00:17 +0200)]
generic: mtd: spinand: add support for FORESEE F35SQA001G

Add support for FORESEE F35SQA001G SPI NAND.

Similar to F35SQA002G, but differs in capacity.
Datasheet:
  -  https://cdn.ozdisan.com/ETicaret_Dosya/704795_871495.pdf

Tested on Xiaomi AX3000T flashed with OpenWRT.

Signed-off-by: Bohdan Chubuk <chbgdn@gmail.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/16915
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
11 days agogeneric: mtd: spinand: add support for FORESEE F35SQA002G
Bohdan Chubuk [Sun, 10 Nov 2024 23:57:31 +0000 (01:57 +0200)]
generic: mtd: spinand: add support for FORESEE F35SQA002G

Add support for FORESEE F35SQA002G SPI NAND.
Datasheet:
  https://www.longsys.com/uploads/LM-00006FORESEEF35SQA002GDatasheet_1650183701.pdf

Refresh all affected patch with make target/linux/refresh.

Signed-off-by: Martin Kurbanov <mmkurbanov@salutedevices.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Signed-off-by: Bohdan Chubuk <chbgdn@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16915
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
11 days agoqualcommax: ipq60xx: add Qihoo 360V6 support
Chukun Pan [Fri, 21 Jun 2024 15:18:21 +0000 (23:18 +0800)]
qualcommax: ipq60xx: add Qihoo 360V6 support

Specifications:
  SoC:     Qualcomm IPQ6000 1.5GHz
  RAM:     NTCC256M16ER-EK 512MiB
  Flash:   W29N01HZSINA 128MiB
  ETH:     QCA8075 (3x LAN, 1x WAN)
  WLAN1:   2.4GHz 802.11b/g/n/ax 2x2
  WLAN2:   5GHz 802.11a/n/ac/ax 2x2
  Power:   DC 12V 1.5A
  Button:  Reset, Wps
  USB:     1x 2.0

Flash instructions:
  1. Download the initramfs image, rename it to
     initramfs.itb, host it with the tftp server.
  2. Interrupt U-Boot and run these commands:
     tftpboot initramfs.itb
     bootm
  3. After openwrt boots up, use scp or luci web
     to upload sysupgrade.bin to upgrade.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/15940
Signed-off-by: Robert Marko <robimarko@gmail.com>
11 days agoqualcommax: image: cleanup whitespace
Chukun Pan [Wed, 10 Jul 2024 15:18:15 +0000 (23:18 +0800)]
qualcommax: image: cleanup whitespace

Replace whitespaces with tab.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/15940
Signed-off-by: Robert Marko <robimarko@gmail.com>
11 days agoipq-wifi: update to version 2024-11-28
Chukun Pan [Thu, 28 Nov 2024 14:26:10 +0000 (22:26 +0800)]
ipq-wifi: update to version 2024-11-28

Contains following updates:

 * ipq8074: add TP-Link_deco-x80-5g BDF
 * ipq6018: add BDF for Qihoo 360V6

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/15940
Signed-off-by: Robert Marko <robimarko@gmail.com>
11 days agoipq40xx: remove default MAC assignments
Rosen Penev [Mon, 25 Nov 2024 23:09:28 +0000 (15:09 -0800)]
ipq40xx: remove default MAC assignments

1006 and 5006 are defaults that get set based on the calibration data.
There's no need to explicitly specify them.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17128
Signed-off-by: Robert Marko <robimarko@gmail.com>
11 days agoramips: mt76x8: add support for Keenetic KN-3211
Ivan Davydov [Mon, 2 Dec 2024 12:47:08 +0000 (15:47 +0300)]
ramips: mt76x8: add support for Keenetic KN-3211

Keenetic KN-3211 is a 2.4 Ghz band 11n (Wi-Fi 4) Wi-Fi repeater, based on MT7628AN.

Specification:
- System-On-Chip: MT7628AN
- CPU/Speed: 575 MHz
- Flash-Chip: Winbond w25q256
- Flash size: 32768 KiB
- RAM: 64 MiB
- 1x 10/100 Mbps Ethernet
- 2x external, non-detachable antennas
- UART (J1) header on PCB (115200 8n1)
- Wireless No1 (2T2R): SoC Built-in 2.4 GHz 802.11bgn
- 3x LED, 1x button, 1x mode switch

Notes:
- The device supports dual boot mode
- The firmware partitions were concatenated into one
- The status button has been reassigned as the WPS button.

Flash instruction:
This device doesn't support sysupgrade, so the only way to flash OpenWrt image
is to use tftp recovery mode in U-Boot:

1. Configure PC with static IP 192.168.1.2/24 and tftp server.
2. Rename "openwrt-ramips-mt76x8-keenetic_kn-3211-squashfs-factory.bin"
   to "KN-3211_recovery.bin" and place it in tftp server directory.
3. Connect PC with the ethernet port, press the reset button, power up
   the router and keep button pressed until power led starts blinking.
4. Router will download file from server, write it to flash and reboot.

Signed-off-by: Ivan Davydov <lotigara@lotigara.ru>
Link: https://github.com/openwrt/openwrt/pull/17080
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
11 days agoapk: add dependency on wget provider
Eric Fahlgren [Thu, 5 Dec 2024 15:06:46 +0000 (07:06 -0800)]
apk: add dependency on wget provider

The apk-* packages contain no declared dependencies on a wget provider,
which is required for proper operation.  Let's add it.

Fixes: https://github.com/openwrt/openwrt/issues/17173
Signed-off-by: Eric Fahlgren <ericfahlgren@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17176
Signed-off-by: Robert Marko <robimarko@gmail.com>
11 days agobusybox: Fix cron log level to match previous behavior
Hannu Nyman [Sun, 1 Dec 2024 11:07:05 +0000 (13:07 +0200)]
busybox: Fix cron log level to match previous behavior

Change the cron log level in init script from 5 to 7
in order to match previous log behavior and to avoid
log spam every minute.

Busybox cron only uses levels 5,7,8, where 5 is debug and
7 and 8 are normal logging. Use 7 as default.

(Fun note: this is needed because upstream corrected an
ancient bug in their own log level handling and now 5 actually
means something.)

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Link: https://github.com/openwrt/openwrt/pull/17107
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
11 days agobusybox: update to 1.37.0
Rui Salvaterra [Thu, 28 Nov 2024 18:41:37 +0000 (20:41 +0200)]
busybox: update to 1.37.0

Add a patch to fix non-x86 builds, refresh patches and update/fix the
configuration as described in 98b09ba250 (cited here for future reference).

Config refresh:

Refresh commands, run after busybox is first built once:

cd package/utils/busybox/config/
../convert_menuconfig.pl ../../../../build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/busybox-default/busybox-1.37.0
cd ..
./convert_defaults.pl ../../../build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/busybox-default/busybox-1.37.0/.config > Config-defaults.in

Manual edits needed after config refresh:

* Config-defaults.in: OpenWrt config symbol IPV6 logic applied to
  BUSYBOX_DEFAULT_FEATURE_IPV6

* Config-defaults.in: OpenWrt config TARGET_bcm53xx logic applied to
  BUSYBOX_DEFAULT_TRUNCATE (commit 547f1ec)

* Config-defaults.in: OpenWrt logic applied to
  BUSYBOX_DEFAULT_LOGIN_SESSION_AS_CHILD (commit dc92917)

* Config-defaults.in: correct the default ports that get reset
  BUSYBOX_DEFAULT_FEATURE_HTTPD_PORT_DEFAULT    80
  BUSYBOX_DEFAULT_FEATURE_TELNETD_PORT_DEFAULT  23

* config/editors/Config.in: Add USE_GLIBC dependency to
  BUSYBOX_CONFIG_FEATURE_VI_REGEX_SEARCH (commit f141090)

* config/shell/Config.in: change at "Options common to all shells" the conditional symbol
  SHELL_ASH --> BUSYBOX_CONFIG_SHELL_ASH
  (discussion in http://lists.openwrt.org/pipermail/openwrt-devel/2021-January/033140.html
  Apparently our script does not see the hidden option while
  prepending config options with "BUSYBOX_CONFIG_" which leads to a
  missed dependency when the options are later evaluated.)

* Edit a few Config.in files by adding quotes to sourced items in
  config/Config.in, config/networking/Config.in and config/util-linux/Config.in (commit 1da014fcca)

Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
[rebased with the change download line commit]
[corrected version in the refresh example in commit message]
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Link: https://github.com/openwrt/openwrt/pull/17107
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
12 days agowifi-scripts: fix roaming setup with ucode scripts
Felix Fietkau [Thu, 5 Dec 2024 13:17:32 +0000 (14:17 +0100)]
wifi-scripts: fix roaming setup with ucode scripts

- fix variable references for ft key
- add r0kh and r1kh if ft_generate_local is not set (logic inversion bug)

Signed-off-by: Felix Fietkau <nbd@nbd.name>
12 days agofeeds.conf.default: enable video feed by default
Daniel Golle [Thu, 5 Dec 2024 01:32:00 +0000 (01:32 +0000)]
feeds.conf.default: enable video feed by default

As discussed in the previous OpenWrt meeting the easiest way to have
regular builds of packages on the video feed without adding additional
complexity is by enabling the video feed by default.
If that slows down the buildbots beyond being useful we can always
disable it again and find another way to only sporadically build
packages of the video feed.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
13 days agohostapd: enable EAP-pwd support only for the SSL variants
Robert Marko [Wed, 4 Dec 2024 14:09:23 +0000 (15:09 +0100)]
hostapd: enable EAP-pwd support only for the SSL variants

The internal hostapd version cannot be built with EAP-pwd support, so
enable it only for the SSL variants.

Fixes: #17163
Fixes: 6365316fab87 ("hostapd: add ubus support for wired driver")
Link: https://github.com/openwrt/openwrt/pull/17164
Signed-off-by: Robert Marko <robimarko@gmail.com>
13 days agowifi-scripts: add option to set per-device ifname prefix
Felix Fietkau [Wed, 4 Dec 2024 10:59:14 +0000 (11:59 +0100)]
wifi-scripts: add option to set per-device ifname prefix

Simplifies setting ifname to a different pattern for all affected
interfaces.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
13 days agowifi-scripts: remove leftover legacy (non-netifd) wifi script support
Felix Fietkau [Tue, 19 Nov 2024 13:08:38 +0000 (14:08 +0100)]
wifi-scripts: remove leftover legacy (non-netifd) wifi script support

cfg80211 is the only supported wireless API

Signed-off-by: Felix Fietkau <nbd@nbd.name>
13 days agobuild: add locking around dtc call after running mkits.sh
Felix Fietkau [Wed, 4 Dec 2024 12:31:24 +0000 (13:31 +0100)]
build: add locking around dtc call after running mkits.sh

mkits.sh creates a root.*.pagesync file with padding, which is global, and
the generated .its files reference it. Since dtc reads this file, it must
not run at the same time as mkits.sh
Fixes generating itb images with broken rootfs.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
13 days agoapk: update to Git HEAD (2024-11-30)
Robert Marko [Mon, 2 Dec 2024 18:54:36 +0000 (19:54 +0100)]
apk: update to Git HEAD (2024-11-30)

3da6c104f0f5 database: use APK_DB_LAYER_ROOT in more places
5437e3abada1 audit: add usr/lib/apk to the list of protected paths under --full
de9baf912245 change default db location to /usr, but detect and use /lib if exists
218fdaa1a1a2 context: close root_fd on free
d33294236cb4 database: add support for only-when-modified trigger paths
36935db0ef3b package: fix memfd_create warnings on Linux kernels < 6.7
1c3fc36051a3 blob: add and use apk_blob_trim_{start,end}
af5f9e3f93b0 pkg: fix v3 package size setting to installeddb
9428e34694c8 version: allow --check and --test to work without database
4b4add5326a8 test: fix unit test registration function to be unique
eac18cb200d4 test: add testlib.sh for user tests
20dae205b006 mkpkg: fix creation of package with hardlinks
7bdecdca6a95 pkg: only allow tags in world and some commands
76de228bcc0b commit: show tags of world constrains
9a1b1cf68420 test: use testlib for solver.sh
99fc2a2a5efc test: remove dependency on GNU tar
6927746b9a10 Revert usrmerge/LFS related changes to apk used paths
5d287a9b06e9 apk-tools-3.0.0_pre5
8d93a79fb895 mkpkg: fix hardlink on big-endian system

Link: https://github.com/openwrt/openwrt/pull/17148
Signed-off-by: Robert Marko <robimarko@gmail.com>
2 weeks agowifi-scripts: various minor fixes to the new ucode scripts
John Crispin [Tue, 3 Dec 2024 13:22:26 +0000 (14:22 +0100)]
wifi-scripts: various minor fixes to the new ucode scripts

* cosmetic clean up
* properly import the digest module
* typo fixes

Signed-off-by: John Crispin <john@phrozen.org>
2 weeks agobuild: Unconditionally append kmod feed for BuildBot
Christian Marangi [Tue, 3 Dec 2024 10:30:18 +0000 (11:30 +0100)]
build: Unconditionally append kmod feed for BuildBot

Recent changes to BuildBot config moved the kmods to a dedicated
directory and dropped them from the packages dir. This was needed as
both OPKG and APK gets confused if both entry are present.

To fix this, unconditionally append the kmod feed line if
CONFIG_BUILDBOT is enabled.

Fixes: #17146
Link: https://github.com/openwrt/openwrt/pull/17151
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2 weeks agomeson: allow using staging python
Daniel Golle [Mon, 2 Dec 2024 01:05:01 +0000 (01:05 +0000)]
meson: allow using staging python

Introduce package flag MESON_USE_STAGING_PYTHON which allows packages
to be built with the OpenWrt-built python3/host instead of relying on the
buildhost's Python distribution.
This is useful for packages using Meson which require additional Python
modules during build.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2 weeks agofstools: update to latest HEAD
John Crispin [Tue, 5 Nov 2024 08:40:24 +0000 (09:40 +0100)]
fstools: update to latest HEAD

Rename jffs2reset to factoryreset. Convert all scripts to using the new command
line. Print a deprecation notice when jffs2reset is invoked.

49d36ba jffs2reset: rename to factoryreset
b135064 jffs2reset: print deprecation message

Signed-off-by: John Crispin <john@phrozen.org>
2 weeks agotarget/metadata: set OpenWrt One as the default menuconfig target/profile
John Crispin [Fri, 29 Nov 2024 08:13:52 +0000 (09:13 +0100)]
target/metadata: set OpenWrt One as the default menuconfig target/profile

Signed-off-by: John Crispin <john@phrozen.org>
2 weeks agomediatek: filogic: enable CONFIG_LEDS_TRIGGER_PATTERN
John Crispin [Mon, 2 Dec 2024 11:37:52 +0000 (12:37 +0100)]
mediatek: filogic: enable CONFIG_LEDS_TRIGGER_PATTERN

The boot LED on OpenWrt One is PWM driven and sets the pattern trigger as the
default inside its devicetree.

Signed-off-by: John Crispin <john@phrozen.org>
2 weeks agowifi-scripts: add ucode based scripts
John Crispin [Thu, 17 Oct 2024 13:12:55 +0000 (15:12 +0200)]
wifi-scripts: add ucode based scripts

Add an ucode based re-implementation of the shell script based wifi code.

The new code is jsonschema driven. The code has been refactored into several
files making it easier to follow.

The new scripts are also way faster than the previous sh implementation.

The new code is currently opt-in via WIFI_SCRIPTS_UCODE and defaults to
EXPERIMENTAL.

Signed-off-by: John Crispin <john@phrozen.org>
2 weeks agowifi-scripts: add ucode based iwinfo
John Crispin [Tue, 22 Oct 2024 07:58:48 +0000 (09:58 +0200)]
wifi-scripts: add ucode based iwinfo

Add an ucode based re-implementation of iwinfo. The tool behaves like the old
one with a few minor output differences. It is now possible to add -j to any
command resulting in JSON output.

The new code is currently opt-in via WIFI_SCRIPTS_UCODE and defaults to
EXPERIMENTAL.

Signed-off-by: John Crispin <john@phrozen.org>
2 weeks agoucode: update to latest HEAD
John Crispin [Fri, 1 Nov 2024 08:26:15 +0000 (09:26 +0100)]
ucode: update to latest HEAD

b0b5d93 Merge pull request #234 from IdWV/fs
60e7a88 Merge pull request #232 from sebastianertz/lib-digest
1752779 digest: implement compile time option to exclude less common algorithms
c7268a1 ci: include libmd in MacOS CI builds
fcb6f70 lib: introduce digest library
1323a27 Merge pull request #246 from jow-/fix-upvalue-resolve
ed5ce8f types: resolve upvalue values in arrays and objects
a6e0641 vm: resolve upvalues before pushing them onto the stack
ef1baab ci: drop OpenWrt tests for now
63e18ea fs: eliminate the usage of global variables
b1bd7b5 types: add ucv_resource_create() helper
3408edf Merge pull request #244 from nbd168/nl80211
8af77e7 nl80211: add new attributes for multi-radio support
1423ad7 nl80211: cover extended feature and EHT rate info attributes
ee1d6d8 Merge pull request #237 from sebastianertz/math
4b18a9b Merge pull request #213 from jow-/improve-vector-macros
1f022c0 math: removed global variable for thread safety
e5fe6b1 treewide: refactor vector usage code
20307ee utils: improve vector utilities
aa18952 Merge pull request #241 from jow-/socket-local-fanout-decl
79ccd9c socket: provide local definition of `struct fanout_args`
402280d Merge pull request #239 from jow-/safe-insert-during-obj-iteration
07afe96 Merge pull request #240 from jow-/stricter-number-conversion
736d450 types: fix potential use after free on adding keys during iteration
4134e71 vallist: more thoroughly check for trailing garbage after numeric string
9cf53dd Merge pull request #226 from jow-/lexer-improvements
2b2e732 lexer: make api functions public
855854f lexer: emit comment and template statement block tokens
328a50f lexer: improve token position reporting
fa22732 Merge pull request #225 from jow-/compiler-fix-keyword-property-labels-after-spread
6e88c62 Merge pull request #224 from jow-/lib-fs-readline-leak
94d1211 compiler: properly treat property names after spread expressions
67cd123 fs: fix potential memory leak on i/o errors in .read()

Signed-off-by: John Crispin <john@phrozen.org>
2 weeks agohostapd: expose owe_transition_ifname inside bss_info method
John Crispin [Tue, 5 Nov 2024 08:41:20 +0000 (09:41 +0100)]
hostapd: expose owe_transition_ifname inside bss_info method

This allows iwinfo to match OWE interfaces.

Signed-off-by: John Crispin <john@phrozen.org>
2 weeks agohostapd: add ubus support for wired driver
John Crispin [Mon, 14 Oct 2024 11:11:38 +0000 (13:11 +0200)]
hostapd: add ubus support for wired driver

Use and alternate ubus object when the config contains "driver=wired". This
commit is in preparation of the ieee8021x-wired daemon.

Signed-off-by: John Crispin <john@phrozen.org>
2 weeks agohostapd: add radius WISPr rate control AVPs
John Crispin [Fri, 29 Nov 2024 07:40:08 +0000 (08:40 +0100)]
hostapd: add radius WISPr rate control AVPs

This allows a radius server to send AVPs for client rate control inside the
accept message. Further add the ratelimits to the sta-authorized ubus
notification.

Signed-off-by: John Crispin <john@phrozen.org>
2 weeks agohostapd: enable CONFIG_EAP_PSK
John Crispin [Mon, 2 Dec 2024 09:33:55 +0000 (10:33 +0100)]
hostapd: enable CONFIG_EAP_PSK

Without this option using the eap_server in combination with wifi-station
entries will fail.

Signed-off-by: John Crispin <john@phrozen.org>
2 weeks agouboot-mediatek: increase USB probe delay on OpenWrt One
John Crispin [Fri, 29 Nov 2024 09:58:06 +0000 (10:58 +0100)]
uboot-mediatek: increase USB probe delay on OpenWrt One

This solves compatibility issues with some pendrives.
Originally reported by "HIDE-r" on the forum.

Signed-off-by: John Crispin <john@phrozen.org>
2 weeks agobase-files: allow forcing all LEDs to on/off/blink state
John Crispin [Fri, 9 Feb 2024 17:10:12 +0000 (18:10 +0100)]
base-files: allow forcing all LEDs to on/off/blink state

* add a UCI option to disable all LEDs.
* add an init.d parameter to blink all LEDs
* add on/off parameters to init.d

Signed-off-by: John Crispin <john@phrozen.org>
2 weeks agobuild: remove targetinfo invalidation based on .config
Felix Fietkau [Mon, 2 Dec 2024 11:27:35 +0000 (12:27 +0100)]
build: remove targetinfo invalidation based on .config

Target info no longer depends on config settings

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2 weeks agorpcd: update to Git HEAD (2024-12-02)
Robert Marko [Mon, 2 Dec 2024 10:26:32 +0000 (11:26 +0100)]
rpcd: update to Git HEAD (2024-12-02)

cc9a471c32e1 rpc-sys: rework packagelist call for apk

Link: https://github.com/openwrt/openwrt/pull/17144
Signed-off-by: Robert Marko <robimarko@gmail.com>
2 weeks agonetifd: check if /sbin/wifi exists before calling it
Andris PE [Tue, 26 Mar 2024 19:53:06 +0000 (21:53 +0200)]
netifd: check if /sbin/wifi exists before calling it

Avoid harmless error from network script by checking presence of
now-optional wifi support script, most notably confusing users of x86
snapshots.

Fixes: #14964
Signed-off-by: Andris PE <neandris@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/14986
Signed-off-by: Robert Marko <robimarko@gmail.com>
2 weeks agoath79: remove wmac mac address defaults
Rosen Penev [Sun, 23 Jun 2024 19:25:34 +0000 (12:25 -0700)]
ath79: remove wmac mac address defaults

1002 and 5006 are default addresses as part of the calibration data.
Don't bother specifying them explicitly.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17082
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2 weeks agoath79: add support for KuWFi N650 CPE
Andreas Böhler [Sun, 24 Nov 2024 18:49:20 +0000 (19:49 +0100)]
ath79: add support for KuWFi N650 CPE

The KuWFi N650 is a 5GHz outdoor wireless bridge based on QCA9563.

Specs
=====

CPU: QCA9563, 775MHz
RAM: 128MiB
Flash: 16MiB
Wireless: QCA9888 (5GHz only)
Ethernet: 2x GBit (via QCA8337), 48V passive PoE

Installation
============

From OEM firmware
-----------------

The OEM firmware has telnet enabled by default. If not, it can be enabled
from the firmware web interface. You need a TFTP server on your computer
and the OpenWrt factory image should be available as "n650factory.bin".
It is assumed that your computer has the IP 192.168.1.1 and the N650
192.168.1.20 (default IP address).

1. Connect via Telnet to the device and log in with the default credentials
   "admin:admin"
2. Exploit the limited interface by typing "ps & /bin/sh"
3. Press <ENTER> to start the shell
4. Enter the following commands:

$ cd /tmp
$ tftp -r n650factory.bin -g 192.168.1.1
$ cat << EOF > /tmp/openwrt.sh
#!/bin/sh

IMAGE_NAME="\$1"

if [ ! -e \${IMAGE_NAME} ]; then
  echo "Image file not found: \${IMAGE_NAME}"
  exit 1
fi

. /usr/sbin/common.sh

kill_remaining TERM
sleep 3
kill_remaining KILL

run_ramfs mtd write \${IMAGE_NAME} firmware
sleep 2
reboot -f
EOF

$ chmod +x /tmp/openwrt.sh
$ /tmp/openwrt.sh n650factory.bin

Once the device reboots, it should load OpenWrt.

From UART
---------

UART installation is possible since the serial header is already soldered
on. The pinout is GND - Tx - Rx - VCC from top to bottom (RJ45 ports are
at the bottom). Connect with 115200 8N1.

First, boot OpenWrt from TFTP. Enter the following commands in the U-Boot
shell, assuming your computer has the IP address 192.168.1.1 and a TFTP
server running where the initramfs image is provided as n650.bin:

  setenv ipaddr 192.168.1.20
  setenv serverip 192.168.1.1
  tftpboot 0x84000000 n650.bin
  bootm

Once booted, transfer -loader.bin and -sysupgrade.bin images to the device
at /tmp. Enter the following commands, replacing the filenames:

  mtd write /tmp/loader.bin loader
  sysupgrade /tmp/sysupgrade.bin

Reboot and OpenWrt should load from flash.

Back to Stock
-------------

Back to stock is only possible if you saved a partition backup before
installing OpenWrt. Assuming you have fullbackup.bin covering the whole
flash, you need to prepare the image as follows:

$ dd if=fullbackup.bin of=fwconcat0.bin bs=65536 skip=4 count=212
$ dd if=fullbackup.bin of=loader.bin bs=65536 skip=216 count=1
$ dd if=fullbackup.bin of=fwconcat1.bin bs=65536 skip=217 count=22
$ cat fwconcat0.bin fwconcat1.bin > firmware.bin

Transfer firmware.bin and loader.bin to the OpenWrt device. First, flash
loader.bin to mtd device loader, then force sysupgrade:

$ mtd write loader.bin loader
$ sysupgrade -F firmware.bin

The reason for the two-step process is the way the flash layout is designed
for OpenWrt in contrast to the OEM firmware partition.

Signed-off-by: Andreas Böhler <dev@aboehler.at>
Link: https://github.com/openwrt/openwrt/pull/17089
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2 weeks agomediatek: MERCUSYS MR90X v1: add OpenWrt U-Boot (UBI) layout
Mikhail Zhilkin [Sun, 20 Oct 2024 12:21:33 +0000 (12:21 +0000)]
mediatek: MERCUSYS MR90X v1: add OpenWrt U-Boot (UBI) layout

This commit adds OpenWrt U-Boot (UBI) layout support for MERCUSYS MR90X
v1.

Stock U-Boot UBI size:   50 MiB
OpenWrt U-boot UBI size: 126 MiB

Install
-------
1. Perform steps 1-14 of the OpenWrt installation guide (use OpenWrt
   initramfs-recovery.itb instead of initramfs-kernel.bin at the step 10,
   12 and 14).
Link: https://openwrt.org/toh/mercusys/mr90x_v1#installation
2. Make backups:
```
cat /dev/mtd0 > /tmp/boot.bin
cat /dev/mtd5 > /tmp/tp_data.bin
```
   Copy /tp_data dir content, /tmp/boot.bin and /tmp/tp_data.bin and to
   your PC using scp. You can also backup the remaining partititons. Copy
   backups to a safe place, they are required for the next steps and stock
   firmware recovery.

3. Reboot to OpenWrt initramfs:
```
reboot
```

4. Copy OpenWrt ubi-bl31-uboot.fip, ubi-preloader.bin,
   ubi-squashfs-sysupgrade.itb and MT7986_EEPROM.bin, default-mac (from
   /tp_data backup) to the /tmp folder of the router using scp.

5. Prepare UBI:
```
ubidetach -p /dev/mtd3; ubiformat /dev/mtd3 -y; ubiattach -p /dev/mtd3
ubimkvol /dev/ubi0 -N fip -t static -s 1MiB
ubiupdatevol /dev/ubi0_0 /tmp/ubi-bl31-uboot.fip
ubimkvol /dev/ubi0 -N ubootenv -s 0x1f000
ubimkvol /dev/ubi0 -N ubootenv2 -s 0x1f000
```

6.  Install kmod-mtd-rw and unlock partitions:
```
opkg update && opkg install kmod-mtd-rw
insmod mtd-rw i_want_a_brick=1
mtd unlock boot
mtd unlock bl2
mtd unlock factory
```

7. Prepare "factory" partition:
```
dd if=/dev/zero bs=$((0x8000)) count=1 | tr '\000' '\377' > /tmp/factory.bin
dd if=/tmp/MT7986_EEPROM.bin of=/tmp/factory.bin conv=notrunc
dd if=/tmp/default-mac >> /tmp/factory.bin
```

8. Write "factory" partition:
```
mtd erase factory
mtd write /tmp/factory.bin factory
```

9. Write preloader partition:
```
mtd erase bl2
mtd write /tmp/ubi-preloader.bin bl2
```

10. Write OpenWrt sysupgrade image:
```
sysupgrade -n /tmp/ubi-squashfs-sysupgrade.itb
```

Recovery
--------
1. Place OpenWrt initramfs-recovery.itb image (with original name) on the
   tftp server (IP: 192.168.1.254).
2. Press "reset" button and power on the router. After ~10 sec release the
   button.
3. Use OpenWrt initramfs system for recovery.

BL2 and FIP recovery
--------------------
Use mtk_uartboot and UART connetion if BL2 or FIP in UBI is destroyed:
Link: https://github.com/981213/mtk_uartboot
Link: https://openwrt.org/toh/mercusys/mr90x_v1#serial
Return to stock:
----------------
1. Copy "boot" partition backup (boot.bin) to the /tmp dir of the router
   using scp.

2. Install kmod-mtd-rw:
```
opkg update && opkg install kmod-mtd-rw
```

3. Restore stock U-Boot:
```
   insmod mtd-rw i_want_a_brick=1
   mtd unlock boot
   mtd erase boot
   mtd write /tmp/boot.bin boot
```

4. Erase UBI and reboot:
```
mtd erase ubi
reboot
```

5. Open U-Boot web recovery, upload stock firmware image and start
   upgrade.
Link: http://192.168.1.1
6. Complete steps 1-9 of the OpenWrt installation guide to get root
   rights.
Link: https://openwrt.org/toh/mercusys/mr90x_v1#installation
7. Upload "tp_data" partition backup (tp_data.bin) to the /tmp folder of
   the router using scp.

8. Restore stock calibrations:
```
mtd write /tmp/tp_data.bin tp_data
reboot
```

9. Perform "factory restore" via stock firmware web interface.

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16744
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>