The direction needs to be included in the IOCTL call.
Fixes: b91d7d9d78 ("ltq-*-app: extend ubus metrics/statistics")
Signed-off-by: Jan Hoffmann <jan@3e8.eu>
Link: https://github.com/openwrt/openwrt/pull/19363
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Dell/SonicWall APL27-0B1 (marketed as SonicPoint ACi) is a dual band
wireless access point. Very similar to already supported APL26-0AE,
which all antennas are external, while this variant has internal
antennas. End of life as of 2022-07-31.
Specification
SoC: QualcommAtheros QCA9550
RAM: 256 MB DDR2
Flash: 32 MB SPI NOR
WIFI: 2.4 GHz 3T3R integrated
5 GHz 3T3R QCA9890 oversized Mini PCIe card
Ethernet: 2x 10/100/1000 Mbps QCA8334
port labeled lan1 is PoE capable (802.3at)
USB: 1x 2.0
LEDs: LEDs: 6x which 5 are GPIO controlled and two of them are dual color
Buttons: 1x GPIO controlled
Serial: RJ-45 port, SonicWall pinout
baud: 115200, parity: none, flow control: none
Before flashing, be sure to have a copy of factory firmware, in case You
wish to revert to original firmware.
Installation
1. Prepare TFTP server with OpenWrt sysupgrade image and rename that
image to "ap135.bin".
2. Connect to one of LAN ports.
3. Connect to serial port.
4. Hold the reset button (small through hole on side of the unit),
power on the device and when prompted to stop autoboot, hit any key.
The held button can now be released.
5. Alter U-Boot environment with following commands:
setenv bootcmd bootm 0x9F110000
saveenv
6. Adjust "ipaddr" (access point, default is 192.168.1.1) and "serverip"
(TFTP server, default is 192.168.1.10) addresses in U-Boot
environment, then run following commands:
tftp 0x80060000 ap135.bin
erase 0x9F110000 +0x1EF0000
cp.b 0x80060000 0x9F110000 $filesize
7. After successful flashing, execute:
boot
8. The access point will boot to OpenWrt. Wait few minutes, until the
wrench LED will stop blinking, then it's ready for configuration.
Notes
By default no power is provided on USB port, so attached USB devices
won't enumerate. To change that enable regulator with:
echo "enabled" > /sys/devices/platform/output-usb-vbus/state
To disable power write "disabled" to the same file.
Ther regulator state will reset on reboot, consider running this command
on hotplug event or add it to /etc/rc.local. The hotplug event should
look like this:
if [ "${PRODUCT}" = "1d6b/2/606" ] && [ "${ACTION}" = "add" ]; then
echo "enabled" > /sys/devices/platform/output-usb-vbus/state
fi
Place it in /etc/hotplug.d/usb/10-usb-power.
Known issues
Initramfs image can't be bigger than specified kernel size, otherwise
bootloader will throw LZMA decompressing error. Switching to lzma-loader
should workaround that.
Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
Link: https://patchwork.ozlabs.org/project/openwrt/patch/20250529202033.28250-2-tmn505@terefe.re/
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Allows to enable/disable attached regulators from userspace, i.e. by
simply writing value to a sysfs exported state file. Useful in case of
USB port VBUS toggled by GPIO.
Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
Link: https://patchwork.ozlabs.org/project/openwrt/patch/20250529202033.28250-1-tmn505@terefe.re/
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
glibc 2.39 has removed libcrypt completely.
solution: link against libxcrypt built with glibc compatibility.
Signed-off-by: Konstantin Demin <rockdrilla@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19293
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
glibc 2.39 has removed libcrypt completely.
solution: link against libxcrypt built with glibc compatibility.
Signed-off-by: Konstantin Demin <rockdrilla@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19293
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
glibc 2.39 has removed libcrypt completely.
solution: link against libxcrypt built with glibc compatibility.
Signed-off-by: Konstantin Demin <rockdrilla@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19293
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
glibc 2.39 has removed libcrypt completely.
solution: link against libxcrypt built with glibc compatibility.
Signed-off-by: Konstantin Demin <rockdrilla@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19293
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
glibc 2.39 has removed libcrypt completely.
solution: link against libxcrypt built with glibc compatibility.
Signed-off-by: Konstantin Demin <rockdrilla@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19293
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
glibc 2.39 has removed libcrypt completely.
solution: link against libxcrypt built with glibc compatibility.
Signed-off-by: Konstantin Demin <rockdrilla@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19293
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
glibc 2.39 has removed libcrypt completely.
solution: link against libxcrypt built with glibc compatibility.
Signed-off-by: Konstantin Demin <rockdrilla@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19293
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Add uboot-envtools support for Gateworks venice boards based on i.MX8M
SoC's (imx_cortexa53) which boot from and store their U-Boot env on
eMMC boot0 hardware partition.
Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Link: https://github.com/openwrt/openwrt/pull/19347
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Upstream has disabled SHA-1 algorithms by default since version 2025.87.
SHA-1 has known weakness and most SSH implementations support alternatives.
Signed-off-by: Konstantin Demin <rockdrilla@gmail.com>
It's hard or even impossible to track affected sources
so it's safe to remove all built objects (if any).
Signed-off-by: Konstantin Demin <rockdrilla@gmail.com>
This allows to fine-tune dropbear build options.
This change is heavily based on similar work done by Marius Dinu earlier
so I'd like to say many thanks to original author.
Signed-off-by: Konstantin Demin <rockdrilla@gmail.com>
- update dropbear to latest stable 2025.88;
for the changes see https://matt.ucc.asn.au/dropbear/CHANGES
- rewrite 100-pubkey_path.patch
- refresh remaining patches
Signed-off-by: Konstantin Demin <rockdrilla@gmail.com>
Correctly load the list of basic_rates from UCI. basic-rates shall be
stored as a option-list. The current code did not retrieve this list
correctly.
wpa_supplicant uses a different config option to set basic-rates
when operating in mesh-mode.
Use the correct config key and calculation for mesh-interfaces.
Signed-off-by: David Bauer <mail@david-bauer.net>
Since upstream commit:
b809fc656e763296f227b9b31e8f225e5977a8af ("perf build: Shellcheck support
for OUTPUT directory")
perf will attempt to run shellcheck on the test shell scripts, however
there is no point in doing this in OpenWrt and while perf checks for
shellcheck presence on your host it can fail to build in some cases.
So, simply disable it for now.
Link: https://github.com/openwrt/openwrt/pull/19361
Signed-off-by: Robert Marko <robimarko@gmail.com>
BUILD_BPF_SKEL was set to 1 by default in upstream commit:
9925495d96efc14d885ba66c5696f664fe0e663c ("perf build: Default
BUILD_BPF_SKEL, warn/disable for missing deps")
Prior to that, it was disabled by default and you had to enable it to
build BPF skeleton support.
So in order to fix perf compilation with kernel 6.12, lets disable
BUILD_BPF_SKEL.
Fixes: #19310
Link: https://github.com/openwrt/openwrt/pull/19361
Signed-off-by: Robert Marko <robimarko@gmail.com>
Update to 6.5.
Removed patch from pre-2012: 101-ncurses-5.6-20080628-kbs.patch
Build system: x86/64
Build-tested: x86/64-glibc
Run-tested: x86/64-glibc
Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/19335
Signed-off-by: Robert Marko <robimarko@gmail.com>
Without the newly introduced flag, building with libc ends in errors such the below.
There is an upstream fix[1], but backporting it is not straight forward.
/scratch/union/staging_dir/toolchain-x86_64_gcc-15.1.0_glibc/x86_64-openwrt-linux-gnu/include/c++/15.1.0/cstddef:81:21: error: redefinition of 'struct std::__byte_operand<unsigned char>'
81 | template<> struct __byte_operand<unsigned char> { using __type = byte; };
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/scratch/union/staging_dir/toolchain-x86_64_gcc-15.1.0_glibc/x86_64-openwrt-linux-gnu/include/c++/15.1.0/cstddef:78:21: note: previous definition of 'struct std::__byte_operand<unsigned char>'
78 | template<> struct __byte_operand<bool> { using __type = byte; };
| ^~~~~~~~~~~~~~~~~~~~
make[4]: *** [Makefile:438: ../obj_s/cursesp.o] Error 1
1. https://ncurses.scripts.mit.edu/?p=ncurses.git;a=commit;h=394a1a6cf317912584592e33184ef550e738a4b9
Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/19335
Signed-off-by: Robert Marko <robimarko@gmail.com>
Split the xcrypt package build into two Makefiles and a common part for
the version definition in order to work-around build problems when
combining VARIANT with BUILDONLY and scoped InstallDev.
This is done in order to skip build of libcrypt-compat in case we are
not building against glibc in order to prevent libcrypt.so shared
library being present in staging_dir and by that breaking multiple
packages which then will link against it.
Fixes: e3cf7088f1 ("libcrypt-compat: introduce package")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Link: https://github.com/openwrt/openwrt/pull/19353
Signed-off-by: Robert Marko <robimarko@gmail.com>
6df761e0e6c7 mt76: fix signature of platform_driver remove funtions for newer kernels
5724be1a6b12 wifi: mt76: Replace strlcpy() with strscpy()
c4a114e2b8c9 wifi: mt76: fix queue assignment for deauth packets
243e572d89fc wifi: mt76: add a wrapper for wcid access with validation
e41c7785589f wifi: mac80211: get tx power per link
d70f62b8f1c7 wifi: mt76: fix vif link allocation
7b3cd3274a24 wifi: mt76: mt7996: Fix secondary link lookup in mt7996_mcu_sta_mld_setup_tlv()
cf89b6218043 wifi: mt76: mt7996: Rely on for_each_sta_active_link() in mt7996_mcu_sta_mld_setup_tlv()
d71108eedab1 wifi: mt76: mt7996: Do not set wcid.sta to 1 in mt7996_mac_sta_event()
32f8c5849ed1 wifi: mt76: mt7996: Fix mlink lookup in mt7996_tx_prepare_skb
ffff9f71e29d wifi: mt76: mt7996: Fix possible OOB access in mt7996_tx()
afe63e758196 wifi: mt76: mt7996: Fix valid_links bitmask in mt7996_mac_sta_{add,remove}
68dd28b99dad wifi: mt76: mt7996: Add MLO support to mt7996_tx_check_aggr()
293778652452 wifi: mt76: mt7996: Move num_sta accounting in mt7996_mac_sta_{add,remove}_links
a94166b21e20 wifi: mt76: Get rid of dma_sync_single_for_device() for MMIO devices
87873d854e51 wifi: mt76: mt7925: Fix null-ptr-deref in mt7925_thermal_init()
06ba3d5e91f4 wifi: mt76: mt792x: Limit the concurrent STA and SoftAP to operate on the same channel
b9f4e0df317d wifi: mt76: mt792x: improve monitor interface handling
ec95319fd3fb wifi: mt76: mt7921s: Introduce SDIO WiFi/BT combo module card reset
dd2d862251cb firmware: add missing mt7990 eeprom files
05eaa56bc7a4 firmware: update mt7992 firmware to 20250328
32ca2b6db354 firmware: update mt7996 firmware to 20250328
Signed-off-by: Felix Fietkau <nbd@nbd.name>
The upstream submission for this mandates the node to be named wifi
instead of wmac. Change all ath79 entries to match the new names and
remove the compatibility patch.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19328
Signed-off-by: Robert Marko <robimarko@gmail.com>
The ath9k ahb patch was updated to match the latest upstream version,
however the openwrt DT files still use the older names.
Add those as extra entries in order to remain compatible until DT files
are fixed.
Fixes: 88f4c32060 ("mac80211: update to version 6.14.11")
Signed-off-by: Felix Fietkau <nbd@nbd.name>
nl80211 events were propagated to the wrong interfaces
Fixes: 2ac791e87d ("hostapd: update to version 2025-06-27")
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Manually refreshed:
140-tests-Makefile-make-run-tests-with-CONFIG_TLS.patch
601-ucode_support.patch
Fixed in upstream:
804-hostapd-revert-ACS-Validate-6-GHz-AP-criteria-before.patch [1]
Automatically rebased all other patches.
[1] https://w1.fi/cgit/hostap/commit/?id=0b60826a66885bffa2fd709ed5e48cd5fe241b6b
Signed-off-by: Agustin Lorenzo <agustin.lorenzo@thinco.es>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
802.11be capable platforms are big enough to not need the mini variant,
and removing it here saves space for other other devices.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Updates libnetfilter-conntrack to version 1.1.0.
Removes patches which should no longer be needed according to changelog for
libnetfilter-conntrack 1.1.0
Signed-off-by: Ian Ladd <ianwladd@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19282
Signed-off-by: Robert Marko <robimarko@gmail.com>
Force update_cache_variantsvariants to use reset for Foresee NAND with bad blocks.
Tested on Xiaomi AX3000T + F35SQA001G with bad blocks and without bad blocks
Signed-off-by: Dim Fish <dimfish@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17963
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
Add OS descriptors support. Configuring OS descriptors allows Microsoft
Windows to bind the right drivers without any additional configuration.
Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/19237
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
Automatically rebased: 100-Configure-afalg-support.patch
Changes between 3.5.0 and 3.5.1:
Fix x509 application adds trusted use instead of rejected use.
Issue summary: Use of -addreject option with the openssl x509 application
adds a trusted use instead of a rejected use for a certificate.
Impact summary: If a user intends to make a trusted certificate rejected
for a particular use it will be instead marked as trusted for that use.
(CVE-2025-4575)
Aligned the behaviour of TLS and DTLS in the event of a no_renegotiation
alert being received. Older versions of OpenSSL failed with DTLS if a
no_renegotiation alert was received. All versions of OpenSSL do this for TLS.
From 3.2 a bug was exposed that meant that DTLS ignored no_rengotiation.
We have now restored the original behaviour and brought DTLS back into line
with TLS.
Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/19283
Signed-off-by: Robert Marko <robimarko@gmail.com>
27839f854a58 ubusd: make txq_len field signed
b35b2bc63e8e ubusd: treat EACCES on write like EAGAIN
713e9d19b2b6 ubusd: retry write on EINTR
8bb523ab20e0 ubusd: fix txq_len accounting
b1b783c74742 ubusd: add another tx attempt on enqueueing the first message for a client
Signed-off-by: Felix Fietkau <nbd@nbd.name>
The same function is used twice, so let's make it common.
Signed-off-by: Paweł Owoc <frut3k7@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18818
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Functions ubootenv_add_mtd, ubootenv_add_sys_mtd and ubootenv_add_mmc
can be shared so make them common.
Signed-off-by: Paweł Owoc <frut3k7@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18818
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Currently, uboot-envtools is being built for a (shared) instruction
set (phase2 in buildbots) instead of target-specific (phase1 in builbots).
So the package does not contain the uci-defaults file specific for each
target_subtarget. (Only the fortunate target with coincidentally the same
instruction set and target as the SDK chosen by the buildbot will have the
uci-defaults file.)
This commit sets the nonshared flag correctly in the Makefile so that
uboot-envtools is built for the target-specific (phase 1).
This is done by using the PKGFLAGS variable which is intended for
per-binary flags (instead of PKG_FLAGS which has a global scope), as
stated in some old commits 349e7b635e[1], 2d7eaf2e15[2], 064e7c8f00[3] and
2cb75cd8b9[4].
While at here, use PKG_URL, instead of URL, which is intended for global
scope. As stated in commit e32edf712b[5].
[1] 349e7b635e
[2] 2d7eaf2e15
[3] 064e7c8f00
[4] 2cb75cd8b9
[5] e32edf712bFixes: #19040
Fixes: 46e376c ("uboot-tools: migrate uboot-envtools to uboot-tools")
Signed-off-by: Mario Andrés Pérez <mapb_@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19180
Signed-off-by: Robert Marko <robimarko@gmail.com>
This will allow more flexibility in using PHY drivers as kmods.
Signed-off-by: Mantas Pucka <mantas@8devices.com>
Link: https://github.com/openwrt/openwrt/pull/18435
Signed-off-by: Robert Marko <robimarko@gmail.com>
Add support for Maxlinear GPHY module. Also add support for
kmod-polynomial, which is a dependency for this module.
Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18435
Signed-off-by: Robert Marko <robimarko@gmail.com>
The IgniteNet SunSpot AC Wave2 uses the standard smem-assigned partition
for its bootloader environment.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
The qcomsmem MTD partition parser converts all partition names to
lower case while the vendor solution uses upper case names, which
often made their way into OpenWrt as labels in 'fixed-partitions'
(probably due to contributors and reviewers being unaware of the
qcomsmem parsers).
Use case-insensitive matching of the 'APPSBLENV' name to make
ubootenv_mtdinfo() work in both cases.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
The IgniteNet SunSpot AC Wave2 comes with 2x QCA9994 ath10k chips
connected to the IPQ8068 SoC via PCIe.
Add board-2.bin for both radios on this board.
3ac4a64 qca9984: add BDFs for IgniteNet SS-W2-AC2600
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Override via RSNE is a relatively new feature, which can be used to enable
WPA3 features in a way that is invisible to older clients.
Use it by default to mask the GCMP-256 cipher from older clients, since
there are compatibility issues with existing devices.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Fixes status information and scanning on extra BSS interfaces when operating
on multi-radio devices.
Reported-by: Chad Monroe <chad.monroe@adtran.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
glibc 2.39 has removed libcrypt completely.
solution: build libxcrypt with glibc compatibility.
Signed-off-by: Konstantin Demin <rockdrilla@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19160
Signed-off-by: Robert Marko <robimarko@gmail.com>
On commit 3010ab8 ("base-files: add update_alternatives function") was
implemented the function to handle ALTERNATIVES when using APK (OPKG
handle it internally) but in commit bcc6415 ("base-files: add
compatibility for APK and OPKG") was only called when adding a package,
so call it also when removing packages.
While we are here, check for a more specific *.alternatives files instead
of *.list, and remove redundant "filelist" variable definition.
Fixes: bcc6415 ("base-files: add compatibility for APK and OPKG")
Fixes: https://github.com/openwrt/openwrt/issues/19090
Fixes: https://github.com/openwrt/openwrt/issues/16991
Reported-and-tested-by: Eric Fahlgren <ericfahlgren@gmail.com>
Signed-off-by: Mario Andrés Pérez <mapb_@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19093
Signed-off-by: Robert Marko <robimarko@gmail.com>
9389775ceb47 rpc-sys: update packagelist call to handle apk abiversion tag
ed0d01e4360b file: linkstat to get link stat info
Signed-off-by: Eric Fahlgren <ericfahlgren@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19211
Signed-off-by: Robert Marko <robimarko@gmail.com>
Add support for Check Point V-81 to add/edit bootcmd variables for
booting OpenWrt.
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16904
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Add support for Check Point V-80 to add/edit bootcmd variables for
booting OpenWrt.
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16904
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Add support for the tar archive compressed by gzip to emmc_upgrade_tar()
function.
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16904
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
1. No need to explicitly call the defaults
2. There is efficient way how to set PKG_BUILD_DIR,
which allows to drop PKG_SOURCE_DIR.
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19105
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
In the development history of Intel's drivers, the i40evf driver was later
renamed the iavf driver. For example, some documents mention that
Intel® Network Connections Software Version 24.0 renamed the i40evf
and ixlv drivers to iavf. In subsequent versions, the i40evf driver was
gradually removed, and its functions were taken over by the iavf driver.
In the Linux system, relevant configuration instructions also exist. For
instance, the User Guide for X722 Onboard Network Card states that the
i40evf driver module should be disabled, and the iavf driver should be
installed and used.
blamed commit: 5d81b28a82
Signed-off-by: xiao bo <peterwillcn@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19197
Signed-off-by: Robert Marko <robimarko@gmail.com>
The stm32-dfsdm-adc module depends on it (kernel 6.12).
Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/18740
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
The memory mapped TPM interface (TIS) can be used for
emulated or virtualized TPM instances with QEMU and
a simulation package like swtpm.
On QEMU the device will appear in the device tree
with a "tcg,tpm-tis-mmio" compatible.
For example:
qemu-system-aarch64 -machine virt -cpu max \
-bios u-boot.bin \
-nographic \
.... \
-hda openwrt-armsr-armv8-combined-efi.img \
-chardev socket,id=chrtpm,path=/tmp/mytpm/swtpm-sock \
-tpmdev emulator,id=tpm0,chardev=chrtpm \
-device tpm-tis-device,tpmdev=tpm0
Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/19188
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This file is a leftover of cns3xxx target which has been dropped
in commit a9790dff53 ("cns3xxx: drop target").
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19191
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Ensure that hapd->own_addr is set properly, since hostapd_setup_bss
only handles it for secondary BSS interfaces
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Change deprecated function strlcpy to strscpy
for compatibility with kernel 6.12.
strlcpy() reads the entire source buffer first.
This read may exceed the destination size limit.
This is both inefficient and can lead to linear read
overflows if a source string is not NUL-terminated [1].
In an effort to remove strlcpy() completely [2], replace
strlcpy() here with strscpy().
Direct replacement is safe here since DEV_ASSIGN is only used by
TRACE macros and the return values are ignored.
[1] https://www.kernel.org/doc/html/latest/process/deprecated.html#strlcpy
[2] https://github.com/KSPP/linux/issues/89
Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18927
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Backport accepted BCM5325 patches from net-next.
These patches will be merged in the v6.17 kernel window.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Glibc since 2.41 tries to include linux/sched/types.h from sched.h, and
pointing KERNEL_INCLUDE to the kernel headers makes it use
linux/sched/types.h from the kernel headers instead of the installed
one.
This then breaks the configure (test) compile for setns() and the test:
mips-openwrt-linux-gnu-gcc -I/fork.openwrt/build_dir/target-mips_24kc_glibc/linux-ath79_generic/linux-6.6.93/include/uapi -o config.HaAJYe/setnstest config.HaAJYe/setnstest.c
In file included from /fork.openwrt/build_dir/target-mips_24kc_glibc/linux-ath79_generic/linux-6.6.93/include/uapi/linux/sched/types.h:5,
from /fork.openwrt/staging_dir/toolchain-mips_24kc_gcc-14.3.0_glibc/include/bits/sched.h:63,
from /fork.openwrt/staging_dir/toolchain-mips_24kc_gcc-14.3.0_glibc/include/sched.h:43,
from config.HaAJYe/setnstest.c:2:
/fork.openwrt/build_dir/target-mips_24kc_glibc/linux-ath79_generic/linux-6.6.93/include/uapi/linux/types.h:10:2: warning: #warning "Attempt to use kernel headers from user space, see https://kernelnewbies.org/KernelHeaders" [-Wcpp]
10 | #warning "Attempt to use kernel headers from user space, see https://kernelnewbies.org/KernelHeaders"
| ^~~~~~~
In file included from /fork.openwrt/build_dir/target-mips_24kc_glibc/linux-ath79_generic/linux-6.6.93/include/uapi/linux/posix_types.h:5,
from /fork.openwrt/build_dir/target-mips_24kc_glibc/linux-ath79_generic/linux-6.6.93/include/uapi/linux/types.h:14:
/fork.openwrt/build_dir/target-mips_24kc_glibc/linux-ath79_generic/linux-6.6.93/include/uapi/linux/stddef.h:5:10: fatal error: linux/compiler_types.h: No such file or directory
5 | #include <linux/compiler_types.h>
| ^~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
Fix this by pointing KERNEL_INCLUDE to the toolchain headers, which
include the installed kernel headers.
Tested with musl, glibc, and SDK.
Fixes: 60738feded ("iproute2: Fix KERNEL_INCLUDE in SDK")
Reported-by: Signed-off-by: Konstantin Demin <rockdrilla@gmail.com>
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
libs/slang2 is getting picked up from the packages feed, if the slang2
is compiled first and then if you try to compile perf, it fails
due to unmet dependency.
Fixes:
Package perf is missing dependencies for the following libraries:
libslang.so.2
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19123
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Add support for Xiaomi AX6000.
Speficiations:
* SoC: Qualcomm IPQ5018 (64-bit dual-core ARM Cortex-A53 @ 1.0Ghz)
* Memory: Etrontech EM6HE16EWAKG 512 MiB DDR3L-933
* Serial Port: 1v8 TTL 115200n8
* Wi-Fi: IPQ5018 (2x2 2.4 Ghz 802.11b/g/n/ax - up to 574 Mbps)
QCN9024 (4x4 5 Ghz 802.11an/ac/ax - up to 4804 Mbps)
QCA9887 (1x1 5 Ghz 802.11ac/n - up to 433 Mbps)
* Ethernet: IPQ5018 integrated virtual switch connected to:
- external QCA8337 switch (3 LAN Ports 10/100/1000)
- QCA8081 Phy WAN port (10/100/1000/2500)
* Flash: Either of:
- Gigadevice GD5F1GQ4RE9IGD (128 MiB)
- ESMT F50D1G41LB (128 MiB)
* LEDs: 1x WLAN Link (GPIO 23 Active High)
1x System Blue (GPIO 24 Active High)
1x System Yellow (GPIO 25 Active High)
1x WAN Link Blue (GPIO 26 Active High)
1x WAN Link Yellow (GPIO 27 Active High)
1x Green - Unused(GPIO 28 Active High)
3x LAN Phy Green
1x WAN Phy Green
* Buttons: 1x Reset (GPIO 38 Active Low)
Known issue:
- QCA9887 doesn't come up (possibly due to 1-lane PCIe phy not coming up or missing method to drive power),
hence the host PCIe controller is disabled in the DTS.
Flash instructions:
Download XMIR Patcher: https://github.com/openwrt-xiaomi/xmir-patcher
First flash a ubinized OpenWrt initramfs that will serve as the intermediate step, since
OpenWrt uses unified rootfs in order to fully utilize NAND and provide enough space for
packages, through either of the below two methods:
Installation via XMIR Patcher:
1. Load the initramfs image: openwrt-qualcommax-ipq50xx-xiaomi_ax6000-initramfs-factory.ubi
Installation via ubiformat method, through SSH:
1. If needed, enable SSH using XMIR Patcher.
2. Copy the file openwrt-qualcommax-ipq50xx-xiaomi_ax6000-initramfs-factory.ubi to the /tmp directory
3. Open an SSH shell to the router
4. Check which rootfs partition is your router booted in (0 = rootfs | 1 = rootfs_1):
nvram get flag_boot_rootfs
5. Find the rootfs and rootfs_1 mtd indexes respectively:
cat /proc/mtd
Please confirm if mtd18 and mtd19 are the correct indexes from above!
6. Use the command ubiformat to flash the opposite mtd with UBI image:
If nvram get flag_boot_rootfs returned 0:
ubiformat /dev/mtd19 -y -f /tmp/openwrt-qualcommax-ipq50xx-xiaomi_ax6000-initramfs-factory.ubi && nvram set flag_boot_rootfs=1 && nvram set flag_last_success=1 && nvram commit
otherwise:
ubiformat /dev/mtd18 -y -f /tmp/openwrt-qualcommax-ipq50xx-xiaomi_ax6000-initramfs-factory.ubi && nvram set flag_boot_rootfs=0 && nvram set flag_last_success=0 && nvram commit
7. Reboot the device by:
reboot
Continue in order to pernamently flash OpenWrt:
1. Upload the sysupgrade image to /tmp/ using SCP:
scp -O <path to image> root@192.168.1.1:/tmp/
2. Open an SSH shell to 192.168.1.1 from a PC within the same subnet
3. Use sysupgrade to flash the sysupgrade image:
sysupgrade -n -v /tmp/openwrt-qualcommax-ipq50xx-xiaomi_ax6000-squashfs-sysupgrade.bin
Device will reboot with OpenWrt, and then sysupgrade can be used to upgrade the device when desired.
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19004
Signed-off-by: Robert Marko <robimarko@gmail.com>
5be4c60a9084 ipq5018: add BDF for Xiaomi AX6000
22588512b844 qcn9074: add BDF for Xiaomi AX6000
4810aacf3b1c qca9889: add BDF for Xiaomi AX6000
Signed-off-by: Robert Marko <robimarko@gmail.com>
QCN6122 wifi in fw-memory-mode 1 has a slightly larger caldb size than
currently defined in the ath11k driver. When coldboot calibration was
disabled, the fw mem mode was changed from 2 (256MB mem profile) to 1
(512MB mem profile), which is the correct setting for devices in scope.
However, in fw mem mode, the caldb size is 0x500000 instead of the max
0x480000 defined in the driver, causing QCN6122 wifi failing to boot:
ath11k b00a040.wifi1: qmi mem size is low to load caldata
ath11k b00a040.wifi1: failed to assign qmi target memory: -22
As such, change the max caldb memory size accordingly.
This macro is used by the driver only as a max size limit to validate
the requested caldb size returned by QMI. Different ath11k wifi chips
have different caldb sizes (for ex. the size for IPQ5018 is 0x200000).
Fixes: cf715a2305 ("wifi: ath11k: disable coldboot calibration for ipq5018")
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19118
Signed-off-by: Robert Marko <robimarko@gmail.com>
54b00e3b1fa9 ubus: fix double registry clear on disconnect
69521b55855c ubus: fix use-after-free on deferred request reply() method
22e8c16d9deb debug: fix crash when passing tagged string to getinfo()
2c9eea5174d6 ubus: use ucv_resource_create_ex for connections/channels
0a4cf4b7e71a ubus: use ucv_resource_create_ex for for ubus.request resources
99ee75a69cd3 ubus: use ucv_resource_create_ex for ubus.deferred resources
f085a42b977f ubus: use ucv_resource_create_ex for objects
94ad17d13a0d ubus: use ucv_resource_create_ex for ubus.notify resources
a3fa47fdda3e ubus: use ucv_resource_create_ex for ubus.listener resources
9ab5fa869dec ubus: use ucv_resource_create_ex for ubus.subscriber resources
be92ebd70633 CI: debian: install cmake package
fd202fd40bd1 socket: respect port argument in sockinst.connect()
767c209b917b socket: properly handle async `connect(2)` errors in socket.connect()
37ac8f112af6 socket: improve port argument validation in sockinst.connect()
Fixes: https://github.com/jow-/ucode/issues/302
Fixes: https://github.com/jow-/ucode/issues/303
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Remove upstream backport patch.
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/19100
Signed-off-by: Robert Marko <robimarko@gmail.com>
I-O DATA WN-DAX3000GR is a 2.4/5 GHz band 11ax (Wi-Fi 6) router, based
on IPQ5018.
Specification:
- SoC : Qualcomm IPQ5018
- RAM : DDR3 512 MiB
- Flash : SPI-NAND 128 MiB (Macronix MX35UF1G24AD-Z4I)
- WLAN : 2.4/5 GHz 2T2R
- 2.4 GHz : Qualcomm IPQ5018 (SoC)
- 5 GHz : Qualcomm Atheros QCN6102
- Ethernet : 5x 10/100/1000 Mbps
- wan (phy) : Qualcomm IPQ5018 (SoC)
- lan (switch) : Qualcomm Atheros QCA8337
- LEDs/Keys (GPIO): 7x/5x
- UART : through-hole on PCB (J3)
- assignment : 3.3V, TX, RX, NC, GND from tri-angle marking
- settings : 115200n8
- USB : USB 2.0 Type-A (through-hole on PCB, "J6")
- Power : 12 VDC, 1A (Typ. 930 mA)
Flash instruction using factory.bin image:
1. Boot WN-DAX3000GR with router mode
2. Access to the WebUI ("http://192.168.0.1/") on the device and open
the firmware update page ("ファームウェア")
3. Select the OpenWrt factory.bin image and click update ("更新") button
4. Wait ~120 seconds to complete flashing
Switching to the stock firmware:
1. Load the elecom.sh script
. /lib/upgrade/elecom.sh
2. Check the current index of rootfs
bootconfig_rw_index 0:bootconfig rootfs
3. Set the index to inverted value
bootconfig_rw_index 0:bootconfig rootfs <value>
bootconfig_rw_index 0:bootconfig1 rootfs <value>
example:
- step2 returned "0":
bootconfig_rw_index 0:bootconfig rootfs 1
bootconfig_rw_index 0:bootconfig1 rootfs 1
- step2 returned "1":
bootconfig_rw_index 0:bootconfig rootfs 0
bootconfig_rw_index 0:bootconfig1 rootfs 0
4. Reboot
Partition Layout (Stock FW, bootconfig(rootfs)=1):
0x000000000000-0x000000080000 : "0:SBL1"
0x000000080000-0x000000100000 : "0:MIBIB"
0x000000100000-0x000000140000 : "0:BOOTCONFIG"
0x000000140000-0x000000180000 : "0:BOOTCONFIG1"
0x000000180000-0x000000280000 : "0:QSEE"
0x000000280000-0x000000380000 : "0:QSEE_1"
0x000000380000-0x0000003c0000 : "0:DEVCFG"
0x0000003c0000-0x000000400000 : "0:DEVCFG_1"
0x000000400000-0x000000440000 : "0:CDT"
0x000000440000-0x000000480000 : "0:CDT_1"
0x000000480000-0x000000500000 : "0:APPSBLENV"
0x000000500000-0x000000640000 : "0:APPSBL"
0x000000640000-0x000000780000 : "0:APPSBL_1"
0x000000780000-0x000000880000 : "0:ART"
0x000000880000-0x000000900000 : "0:TRAINING"
0x000000900000-0x000003c40000 : "rootfs_1"
0x000003c40000-0x000003fc0000 : "Config"
0x000003fc0000-0x000007300000 : "rootfs"
0x000007300000-0x000007680000 : "Config_2"
0x000007680000-0x000007700000 : "idmkey"
0x000007700000-0x000007c00000 : "Reserved"
0x000007c00000-0x000007c80000 : "FWHEADER"
0x000007c80000-0x000007d00000 : "Factory"
Known Issues:
- This device has a Macronix MX35UF1G24AD SPI-NAND chip registered as
oobsize=128 in Linux Kernel. But using BCH8 breaks I/O on the chip
with the following errors, so this support uses BCH4 instead.
[ 1.542261] 0x000000480000-0x000000500000 : "0:appsblenv"
[ 1.547959] 1 fixed-partitions partitions found on MTD device 0:appsblenv
[ 1.551265] Creating 1 MTD partitions on "0:appsblenv":
[ 1.558096] 0x000000000000-0x000000040000 : "env-data"
[ 1.627282] u-boot-env-layout 79b0000.qpic-nand:flash@0:partitions:partition-0-appsblenv:partition@0:nvmem-layout: probe with driver u-boot-env-layout failed with error -74
root@OpenWrt:~# strings /dev/mtdblock10
[ 77.806720] mtdblock: MTD device '0:appsblenv' is NAND, please consider using UBI block devices instead.
[ 77.807554] I/O error, dev mtdblock10, sector 0 op 0x0:(READ) flags 0x80700 phys_seg 4 prio class 0
[ 77.815977] I/O error, dev mtdblock10, sector 8 op 0x0:(READ) flags 0x80700 phys_seg 3 prio class 0
[ 77.824721] I/O error, dev mtdblock10, sector 16 op 0x0:(READ) flags 0x80700 phys_seg 2 prio class 0
[ 77.834095] I/O error, dev mtdblock10, sector 24 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 0
[ 77.843278] I/O error, dev mtdblock10, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[ 77.851577] Buffer I/O error on dev mtdblock10, logical block 0, async page read
Notes:
- This device has dual-boot feature and it's managed by the index in the
0:bootconfig and 0:bootconfig1 partitions.
- There are through-holes on PCB for USB 2.0, but it cannot be accessed
without disassembly of the housing. So it's not enabled in this
support.
- WN-DAX3000GR has the "bt_fw" volume in the firmware UBI in addition to
the volumes that will be removed in the section of ELECOM WRC-X3000GS2
in /lib/upgrade/platform.sh.
That volume is unnecessary for OpenWrt and add
`remove_oem_ubi_volume bt_fw` to remove that volume when sysupgrade.
(that function doesn't anything without errors if no specified volume)
MAC Addresses:
LAN : 50:41:B9:xx:xx:64 (0:APPSBLENV, "ethaddr"/"eth1addr" (text))
WAN : 50:41:B9:xx:xx:66 (0:APPSBLENV, "eth0addr" (text))
2.4 GHz: 50:41:B9:xx:xx:64 (0:APPSBLENV, "wifi0" (text))
5 GHz : 50:41:B9:xx:xx:65 (0:APPSBLENV, "wifi1" (text))
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19053
Signed-off-by: Robert Marko <robimarko@gmail.com>
Add support for I-O DATA WN-DAX3000GR to update bootdelay variable while
sysupgrade.
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19053
Signed-off-by: Robert Marko <robimarko@gmail.com>
Coldboot calibration does not work causes the firmware to crash during
wifi startup. So let's disable coldboot calibration until a solution is
found.
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/19083
Signed-off-by: Robert Marko <robimarko@gmail.com>
Rework the generation of the index.json version of the package
indexes to match the original intent (i.e., for use by the ASU
server and other downstream projects). The current file contains
package names that have ABI versioning, making them unusable by ASU,
so we now remove the ABI suffixes.
Also adds a 'version' field to the json, so downstream utilities
can detect the new semantics of the package name fields.
Links: 218ce40cd7
Signed-off-by: Eric Fahlgren <ericfahlgren@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19051
Signed-off-by: Robert Marko <robimarko@gmail.com>
Add new setting CONFIG_NET_DSA_REALTEK_RTL8366RB_LEDS which
was introduced in kernel 6.12 and allows enabling LEDs for
the Realtek RTL8366RB subdriver.
Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/18654
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
3efd75dc7e49 crypto: fix segfault when passing --hash
51306cf1424e test: export APK_CONFIG=/dev/null
b91e9e17ceb6 build: mark scdoc dependency as native
123fa05b787a build: mark lua interpreter dependency as native
5fbb85426ea0 libfetch: fix fetch_err* for negative error codes
1458737d58c2 db, index: fix 'index' loading of old index
cbd1e6b49add add: use solver error when arch is incompatible
f66d84fcd42d doc: update apk-package(5) regarding arch validation
f5df274d248c test: don't use temporary files for diffing output
42034f7961f0 apk: allow per-applet option to override group options
b6ca99d44119 serializer: start_array(num=-1) indicates unknown amount
14881b9ffb2e query: a new api and applet to search and output information
dd2255e10ee9 package: use apk_array_foreach
ae17b61de83b info: use apk_array_foreach
6d4471f55ada solver: use apk_array_foreach
7951798121c1 db: use apk_array_foreach
5e3cac4ccb85 commit: use apk_array_foreach
86c725d97afd db: allocate protected paths with balloc
0fe23ce1a501 array: make apk_array_foreach* evaluate end only once
a50f7ea2dd02 io_url_wget: correctly init wget_out on apk_io_url_init call
2cdfdd86e3d4 commit: Fix 'upgrade' typo on cache-pre-download
3fb50f645203 Add man page for protected_paths.d
652a1365aa30 fetch: account existing files to progress
0257acf6b120 doc: remove .d from apk-protected_paths(5) man page name
aeb74de67818 db: include index file name for APK_REPOTYPE_NDX
6ec4fe6fa334 mkpkg: handle apk_blob_split failure
c47b6e17fe6d extract: handle apk_blob_split failure
b7c6b0b468d7 mkpkg: print error message when using forbidden fields
b9483c46bdf9 fetch: fix APK_BLOB_STRLIT used with char argument
d495be9e9f25 adbsign: fix recompressing when alg is NONE or level is 0
5348babed78e mkndx: fix memory leak when with large dependency list in v2 packages
11dd5923f6a1 mkndx: don't return ADB_ERROR from mkndx_parse_v2meta
8415dbf6df42 mkndx: reset pkginfo on error
684bef440cde mkndx: remove workaround for abuild license field
a94fa1878df9 pkg: move same origin check after replaces check
3abcd400bdbf pkg: fix package repos after 16th missing
216ac57b7a1a arch: reserve wasi32 architecture name for WASI APKs
3761e38d1a00 add wasi32/wasi64 reservations to apk-package(5)
68c1fa58113e dot: only initialize qs->mode.empty_matches_all once
56019c5ed390 {blob,tar,adb}: avoid overflow when pulling numbers
5112b60c4440 index: only check file name for old index
345863787484 db: fix ${name} check in apk_db_get_pkg_by_name
5ce64d14ead8 manifest: replace memset 0 with apk_blob_pushed
7765f134215d info: include name and version when --all is used
d2ca47f9f3b4 fix indentation
33c822e93267 build: install apk_repoparser.h header
0762b25eb2ad ctx: initialize progress_char in apk_ctx_init
0a3fa796a532 doc: fix typos
10a184f3f43d search: fix incorrect error when no match was found
aa9502dc3720 ctx: fix closing of root_fd
2ac55a0f26bd io: fix id_cache when root_fd is 0
c39b22fe49c7 fetch: fix outdir_fd when openat returns 0
9d42be2316fc meson: Build Python module using standard Meson python build functions
48c6e526ee6f meson: Allow overriding the names of the Lua binary and pkgconfig file
249f0d937afb ci: Add build test on Fedora Linux
10dbdf7263eb pkg: replace files/dirs from packages that will be removed
acae571db2b9 pkg: apk_pkg_replaces_{dir,file} access ipkgs consistently
8b0b567544b7 io: initialize 'r' in apk_dir_foreach_config_file
55ab583de9a3 io: fix undefined behaviour in apk_istream_get_delim
deadab38aea9 db: flush progress notes after opening indexes
32b3a448c3e2 info: always show name/version for no-legacy-info
dbba5797269b crypto: make crypto backend an implementation detail
c0288de355e6 test: fix failing tests due to missing PATH_MAX definition
1863ccbf7abb make: remove -DCRYPTO_USE_*
e2fb020c96ca apk: shared error message for invalid arguments
29040298f5de adb: fix handling of empty adb blocks
2aa08ec9da6a adb: fix exact comparison of objects containing arrays
e475a2fab226 Update apk-v3.5.scd
76c629d79473 doc: combine --no-* and --* descriptions
afc1ee46ca55 mkpkg: convert --rootnode to APK_OPT_BOOL
2c52e9415653 pkg: correctly check empty atoms in apk_package
f384d7d11229 test: add tests for query
0c044cb8323d tests: fix permissions on replaces.sh
31bc2263a10f defines: make BIT() always return a 64-bit type
dc86ad784eef solver: always resolve conflict names in install-if
8b6e9c9d6421 db, pkg: separate "virtual" repository for command line packages
d7f77eb68aa5 adb: reduce alignment of ADB_TYPE_INT_64 to 32 bits
1ffd648aca45 array: generalize apk_deps_balloc to apk_array_balloc
2089f8a8225b adb, pkg, query: add support for 'recommends'
59c207b582cc array: generalize apk_deps_bclone to apk_array_bclone
617ba801f760 commit: fix size_diff on package removal
649859806c65 commit, upgrade: never suggest --force-broken-world
4f84ee8156e1 help: group option group help first
44a7498d6102 fetch: fix error reporting if package is not selected
7516cf61fe94 adb: return bool from adb_block_is_ext
f47cb4bdac15 adb: validate signature header version specific size
1925de55beef adb, pkg: add support for custom tags
f174f287b1b2 db, doc: update and document environment variables for scripts
603eeea614b5 upgrade: improve the mechanism to detect self-upgrade done
97c2d3318d8d upgrade: determine apk-tools package name from /proc/self/exe
088f88cdb6a5 build, test: fix limits.h including and testing selfupgrade
8acf4c0e95da pkg: export APK_PACKAGE for package scripts
ab907a6b682e io: ignore dot files in apk_dir_foreach_file()
f5e4cbc3900e info: make --legacy-info the default for the time being
7f1afedb7cae doc/apk-v3(5): document that multiple SIG blocks are allowed
2204c49b9d7e adb: validate block type before testing the allowed mask
9331888de6bd apk-tools-3.0.0_rc5
Signed-off-by: Eric Fahlgren <ericfahlgren@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19043
Signed-off-by: Robert Marko <robimarko@gmail.com>
Add kernel package for DesignWare I2C platform controller.
This controller is used on the RP1 SoC found on RPi 5 devices.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
The ENC28J60 is a 10 Mbps half-duplex Ethernet controller interfaced via SPI.
It achieves real-world bandwidth up to 5Mbit/s on devices like the RPi Zero due
to SPI limits.
Commonly used with Raspberry Pi Zero boards for wired network connectivity.
Signed-off-by: Albrecht Lohofener <albrechtloh@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19048
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Add kernel packages for DesignWare SPI core and MMIO controllers.
This is needed for the RP1 SoC found on RPi 5 devices.
Tested with a Microchip ENC28J60 Ethernet controller on a RPi 5.
Signed-off-by: Albrecht Lohofener <albrechtloh@gmx.de>
Link: https://github.com/openwrt/openwrt/pull/19049
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
building with CONFIG_ALL_KMODS unearthed all sorts of interesting
failures
ERROR: module 'crypto/chacha-x86_64.ko' is missing.
ERROR: module 'crypto/poly1305-x86_64.ko' is missing.
ERROR: module 'crypto/curve25519-x86_64.ko' is missing.
ERROR: module 'crypto/camellia-x86_64.ko' is missing.
These stem from the main UML Makefile.
|# UML only makes sense on linux
|ifeq ($(HOST_OS),Linux)
| ifeq ($(HOST_ARCH),x86_64)
|
|ARCH:=x86_64
|BOARD:=uml
The modules in question define x86_64 optimized version and
the OpenWrt's buildsystem expects that these modules will be present.
SPI is not available due to the UML Architecture not setting HAS_IOMEM.
In the future, UML could get (virtualized) IOMEM and/or SPI could drop
the HAS_IOMEM dependency. A patch for the latter has been sent:
<https://lore.kernel.org/linux-spi/20250530234941.950431-1-chunkeey@gmail.com/T/#u>
mt76: Unfortunately, the firmware packages are picked up, but the
associated drivers can't be build because iowrite32+ioread32 are
not defined.
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
This adds support for RTL8814AE/RTL8814AU PCI/USB adapters.
Run-tested: x86/64/rockchip
USB adapter tested: Hawking HW17ACU Wireless-AC1750.
Signed-off-by: Marty Jones <mj8263788@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19052
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This adds firmware support for the RTL8814AE/RTL8814AU WiFi adapters.
Signed-off-by: Marty Jones <mj8263788@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19052
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Apply same patches to gmp on the host side to fix GCC 15 build errors.
31800db91d
Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/18992
Signed-off-by: Robert Marko <robimarko@gmail.com>
Add a patch in order to fix it.
Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/18991
Signed-off-by: Robert Marko <robimarko@gmail.com>
Convert old style declarations to modern ones.
Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18600
Signed-off-by: Robert Marko <robimarko@gmail.com>
Add a patch in order to fix it.
Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18600
Signed-off-by: Robert Marko <robimarko@gmail.com>
Backport two patches in order to fix it.
Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18600
Signed-off-by: Robert Marko <robimarko@gmail.com>
Disable -Wunterminated-string-initialization for now.
Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18600
Signed-off-by: Robert Marko <robimarko@gmail.com>
This release includes several fixes, most notable are
"-Wunterminated-string-initialization" fixes for upcoming GCC 15.x
Signed-off-by: Konstantin Demin <rockdrilla@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19011
Signed-off-by: Robert Marko <robimarko@gmail.com>
Import libxcrypt from the packages feed to the main OpenWrt repo,
as glibc 2.41 doesn't provide libcrypt (since 2.39 release).
Signed-off-by: Konstantin Demin <rockdrilla@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19011
Signed-off-by: Robert Marko <robimarko@gmail.com>
The plumbing is there in the ucode files to set the parameter using
nl80211. However, the option is never forwarded because it was missing
in mac80211.sh. Add it there and in the schema file.
Signed-off-by: Benjamin Berg <benjamin@sipsolutions.net>
Link: https://github.com/openwrt/openwrt/pull/19030
Signed-off-by: Robert Marko <robimarko@gmail.com>
61ae5732adea iprule: amend ipproto netlink nla_put_u32 to nla_put_u8
d610d68c71b8 device: add support for configuring vrf
a1b6386a20a6 device: fix bonding primary port selection
e8bbf246ce2e system-linux: fix sysfs name for all_ports_active flag
723c699e84f4 Restore disable_ipv6 sysctl after removing a device from bridge or bond
d476e18e8d43 iprule: resolve ipproto by name
7901e66c5f27 netifd: iprule add sport and dport
Signed-off-by: Robert Marko <robimarko@gmail.com>
Inverted condition caused wrong value for eht_oper_centr_freq_seg0_idx
get selected in ETH320 mode, causing AP fail to start.
Signed-off-by: Mantas Pucka <mantas@8devices.com>
Link: https://github.com/openwrt/openwrt/pull/18998
Signed-off-by: Robert Marko <robimarko@gmail.com>
Linux 6.8 changed the directory structure for the video-code driver.
Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Link: https://github.com/openwrt/openwrt/pull/19029
Signed-off-by: Nick Hainke <vincent@systemli.org>
The original OF code effectively does a reset at ahb.c but then again in
hw.c. For AR9330, it's already done in the driver and with the others,
there are patches in here that do the same. hw.c looks like the proper
place to handle this.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19031
Signed-off-by: Robert Marko <robimarko@gmail.com>
Fixes ath9k on ar934x platforms.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19031
Signed-off-by: Robert Marko <robimarko@gmail.com>
Building against recent kernel versions (noticed with 6.12) and -Werror
can fail because a macro MAX(a,b) is already defined in minmax.h or
kernel.h before 5.10.
In file included from ../mwlwifi-2025.02.06~db97edf2/hif/fwcmd.h:23,
from ../mwlwifi-2025.02.06~db97edf2/core.c:25:
../mwlwifi-2025.02.06~db97edf2/hif/hostcmd.h:1124:9: error: "MAX" redefined [-Werror]
1124 | #define MAX(a, b) (((a) > (b)) ? (a) : (b))
| ^~~
In file included from usr/include/mac80211-backport/linux/minmax.h:4,
from ./include/linux/kernel.h:28,
from usr/include/mac80211-backport/linux/kernel.h:3,
from ./include/linux/skbuff.h:13,
from usr/include/mac80211-backport/linux/skbuff.h:3,
from ./include/linux/if_ether.h:19,
from usr/include/mac80211-backport/linux/if_ether.h:3,
from ./include/linux/etherdevice.h:20,
from usr/include/mac80211-backport/linux/etherdevice.h:3,
from ../mwlwifi-2025.02.06~db97edf2/core.c:18:
./include/linux/minmax.h:330:9: note: this is the location of the previous definition
330 | #define MAX(a,b) __cmp(max,a,b)
| ^~~
Add a pending upstream patch which replaces the MAX(a,b) macro to avoid
conflicts and allow compilation with 6.12
Signed-off-by: Stefan Kalscheuer <stefan@stklcode.de>
Link: https://github.com/openwrt/openwrt/pull/18980
Signed-off-by: Robert Marko <robimarko@gmail.com>
Request Softwire46 (S46) [RFC 7598] options when the map and/or ds-lite
packages are installed. This is required as the behaviour of odhcp6c has
changed to not include these OROs by default.
See openwrt/odhcp6c#89
Signed-off-by: Richard Patterson <richard@helix.net.nz>
Signed-off-by: Shengyu Qu <wiagn233@outlook.com>
446db12b1fd3 MP: fix uniphy reset in phy to phy link scenario
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18774
Signed-off-by: Robert Marko <robimarko@gmail.com>
3423fdacac63 ssdk_clk: Remove MP_PHY clocks resets and init logic
Signed-off-by: George Moussalem <george.moussalem@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18774
Signed-off-by: Robert Marko <robimarko@gmail.com>
Every time "sysupgrade -b -" runs it would generate a new
(synthetic) "/etc/uci-defaults/10_disable_services" file with
the current time as the modified time. This unfortunately
creates a non-deterministic tarball, so if you run a cron job
to save your state, you don't have a trivial way of seeing if
it changed or not without unpacking the archive, deleting this
file, and comparing the entire directory tree to the previous
backup.
Fixes: #16145
Fixes: 0ad062a21b ("base-files: sysupgrade: include uci-defaults script disabling services #2")
Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
When running ACS on multi-radio devices, ACS on one band can block another.
Increase the number of retries and prevent bouncing interfaces between AP
and STA mode during attempts.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Generate network configuration replacing netmask with CIDR.
Depends on:
https://github.com/openwrt/openwrt/pull/13765
Using CIDR provides the following advantages:
* Consolidate notation for IPv4 and IPv6 addresses.
* Consolidate notation for IP addresses and routing targets.
* Simplify network configuration and troubleshooting.
* Follow the transition from net-tools to iproute2.
Resulting configuration example:
```
config interface 'loopback'
option device 'lo'
option proto 'static'
list ipaddr '127.0.0.1/8'
config interface 'lan'
option device 'br-lan'
option proto 'static'
list ipaddr '192.168.1.1/24'
```
Signed-off-by: Vladislav Grigoryev <vg.aetera@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/13780
Signed-off-by: Robert Marko <robimarko@gmail.com>
Some modems and SIM cards take a bit longer to initialize after UIM has been
powered off. Waiting too little time can cause the qmi protocol to end up
in a loop repeatedly power-cycling the SIM card.
Avoid that by
a) increasing the time we unconditionally sleep after --uim-power-on
b) increasing the time we allow uqmi to wait for response for --uim-get-sim-state
Signed-off-by: Antti Seppälä <a.seppala@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18772
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
The call to 'ipcalc' is used in 'dnsmasq' init script to create the
configuration. If the 'ipaddr' is in the configured range then 'ipcalc' exited
with an error whereby the START/STOP variables are unavailable.
This behaviour has changed during 'ipcalc' refactoring and now leads to a
problem when starting 'dnsmasq' if the 'ipaddr' is inside this range. To
restore the old behaviour, only a warning is issued as before and the
required variables for the 'dnsmasq' are still set.
Fixes: 854739b32c (base-files: ipcalc.sh: Rewrite in pure shell)
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
Link: https://github.com/openwrt/openwrt/pull/18641
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
If the uci 'dhcp' configuration for the dhcp leases is incorrect then
the call to 'ipclac' fails. However, the problem is that the dnsmasq
configuration option 'dhcp-range' is still written for this uci section
even though the information generated by ipcalc is incorrect or not set.
Due to the incorrectly generated configuration for dnsmasq, the service
cannot start.
To prevent an incorrect configuration from being written to the configuration,
a check is now made beforehand to ensure that the required variables are
present and valid. If the configuration is incorrect, a message is emitted
to the log that this configuration section is incorrect and this uci
configuration section is omitted.
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
Link: https://github.com/openwrt/openwrt/pull/18641
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
The ucode-based wifi interface validation is based on `hostapd.conf`
specific options, which means it's missing the OpenWrt-specific
'network' property.
This causes schema validation warnings like:
```
daemon.notice netifd: radio1 (1340): wifi-scripts: network is not present in the schema
```
The description is taken from the OpenWrt wiki:
https://openwrt.org/docs/guide-user/network/wifi/basic#common_options1
Signed-off-by: Sean Khan <datapronix@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/18946
Signed-off-by: Robert Marko <robimarko@gmail.com>
Support new libpcap dependency and drop an old kernel version dependency.
Also improve formatting and avoid using unneeded deferred make variables.
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18712
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
The initial 6.12 merge leaves package/zram menuconfig behaviour confusing.
Selecting "kmod-zram" opens a submenu of the available algorithms to build
and the actual algo to use. However, when "lzo-rle" is shown as the default
used, it still remains missing from the available list. Only enabling a
_different_ compression algo to build will also reveal "lzo-rle" as
available.
Update the Kconfig to show "lzo-rle" as available if used/referenced.
Fixes: 4708057e27 ("package/zram: update for kernel 6.12")
Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18712
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
263a0cb87b50 udebug: use proper libudebug API
ca9b8765aea3 dns: rework packet API
ea40cfdf7eb0 cache: send multiple queries in a single packet
d62813727e53 cache: add explicit lookup for host addresses
0ce73d80dc0c dns: add cache/queue for outgoing queries
083be33749b1 cache: improve service refresh behavior
55d0c1bc1ac5 interface: ask for unicast responses by default
ce508467a533 service: add support for setting service specific hostname
632953a1582d interface: when interface properties change, reinitialise
695ac3708aa0 ubus: fix ubus announcements txt fields
cecbe1c0caae Make mdns responder case-insensitive.
2b28094d31ca dns: add support for reverse address mapping queries
Signed-off-by: Felix Fietkau <nbd@nbd.name>
By OpenWrt's design, hostapd runs in a single global instance for all radios supported by the device, rather than one instance per radio like hostapd usually does.
Signed-off-by: Agustin Lorenzo <agustin.lorenzo@thinco.es>
Link: https://github.com/openwrt/openwrt/pull/18426
Signed-off-by: Robert Marko <robimarko@gmail.com>
Manually refreshed:
301-mesh-noscan.patch
601-ucode_support.patch
770-radius_server.patch
Automatically rebased all other patches.
Signed-off-by: Agustin Lorenzo <agustin.lorenzo@thinco.es>
Link: https://github.com/openwrt/openwrt/pull/18426
Signed-off-by: Robert Marko <robimarko@gmail.com>
The driver tries to access ioports (0x2f9!!) which UML doesn't have.
This causes lots of warnings to appear on boot:
| WARNING: CPU: 0 PID: 1 at lib/logic_iomem.c:188 serial8250_config_port+0x20a/0x1260
| Invalid writeqb of 0xff at address 2f9
| Modules linked in:
| CPU: 0 UID: 0 PID: 1 Comm: swapper Tainted: G W 6.12.25 #0
| Tainted: [W]=WARN
| Stack:
| Call Trace:
| [<60001000>] ? set_reset_devices+0x0/0x16
| [<60452cba>] ? serial8250_config_port+0x20a/0x1260
| [<6071e91f>] ? dump_stack_lvl+0x55/0x71
| [<606e127c>] ? _printk+0x0/0x4f
| [<60044bbb>] ? __warn+0x11b/0x120
| [<6003b5d0>] ? um_set_signals+0x0/0x40
| [<606de721>] ? warn_slowpath_fmt+0x81/0x8c
| [<606de6a0>] ? warn_slowpath_fmt+0x0/0x8c
| [<60452cba>] ? serial8250_config_port+0x20a/0x1260
(they are even recursive!)
Now, the situation gets more confusing. Because from what I can tell,
this was seemingly done intenionally. Upstream patches in related areas:
|commit ddd268c42871b78c75e12a5c28207fb481138f41
|Author: Niklas Schnelle <schnelle@linux.ibm.com>
|Date: Wed Apr 3 14:43:00 2024 +0200
|
| um: Select HAS_IOREMAP for UML_IOMEM_EMULATION
|
| In a future patch HAS_IOPORT=n will disable inb()/outb() and friends at
| compile time. UML supports these via its UML_IOMEM_EMULATION so let that
| select HAS_IOPORT and also reflect this in NO_IOPORT_MAP.
hint that there's ongoing work in this area. But unfortunately, this future
hasn't arrived yet. Once this future arrives, please nuke this patch.
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
Add an additional bootmenu option and commands to overwrite the GPT
table with the custom one for upstream U-Boot.
This is needed as the pre-installed GPT table differ and updating the
GPT table is a requirement to install the upstream U-Boot (or the old
U-Boot will be loaded)
To make the migration to new U-Boot bootloader an user can now load the
system with mtk_uartboot and select "Load GPT Table ..." in conjunction
with other update command.
Link: https://github.com/openwrt/openwrt/pull/18874
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
ALFA Network AP120C-AX is a dual-band ceiling AP, based on Qualcomm
IPQ6000 + QCN5021 + QCN5052 + QCA8072 chipsets bundle.
Specifications:
- SOC: Qualcomm IPQ6000 (quad-core Cortex-A53 1.2 GHz)
- DRAM: DDR3 512 MB (Micron MT41K256M16TW-107)
- Flash: 16 MB SPI NOR (Macronix MX25U12832F, boot device)
128 MB NAND (Macronix MX30UF1G18AC, dual-firmware)
- Ethernet: 2x 10/100/1000 Mbps Ethernet (QCA8072)
802.3at/af PoE input in WAN port
- Wi-Fi: 2x2 2.4 GHz Wi-Fi 6 (QCN5021 + RFFM8227 FEM)
2x2 5 GHz Wi-Fi 6 (QCN5152 + QPF4568 FEM)
- Antenna: for indoor version: dual-band, internal
2x (or 4x) U.FL antenna connectors on the PCB
- LED: for indoor/outdoor versions: 5x on external module (status,
2x Wi-Fi, 2x Ethernet), PoE LED on-board
8-pin on-board header for LED module (1.27 mm pitch, J14)
- Button: 1x button (reset)
- USB: 1x 4-pin on-board header for USB 2.0 (2.54 mm pitch, J22)
- UART: 1x micro USB Type-B for system console (Holtek HT42B534)
1x 4-pin on-board header (2.54 mm pitch, J11)
- Power: 802.3at/af PoE or 12 V DC/2 A (DC jack)
- Other: 8-pin and 4-pin on-board headers for external Bluetooth
module (1.27 mm pitch, J15, J16, unavailable, thus untested)
MAC addresses:
- WAN: 00:c0:ca:xx:xx:6c (art 0x0, device's label -2)
- LAN: 00:c0:ca:xx:xx:6d (art 0x6, device's label -1)
- 2.4 GHz (IPQ6000): 00:c0:ca:xx:xx:6e (art 0xc, device's label)
- 5 GHz (IPQ6000): 00:c0:ca:xx:xx:6f (device's label + 1)
Flash instructions:
Due to the lack of direct GUI based update capability and dual-firmware
partition configuration, it is recommended to use TFTP + serial console
based approach (console is available in micro USB connector):
1. Set a static IP 192.168.1.1/24 on PC and start TFTP server with the
'...-factory.ubi' image renamed to 'firmware.bin'.
2. Make sure you can access board's serial console over micro USB.
3. Power up the device, hit any key to enter U-Boot CLI and issue below
commands.
3.1 Restore U-Boot's environment to default values (double check first
the '0:APPSBLENV' partition offset using 'smem' command):
sf probe
sf erase 0x510000 0x10000
saveenv
3.2 Download and install OpenWrt in both partitions and reset the board:
tftpb 0x44000000 firmware.bin
flash rootfs
flash rootfs_1
reset
Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
Replace bootmenu shortmenu mediatek patch with a better version proposed
upstream that implement a more clean implementation.
Also the mediatek patch seems to be bugged and with lots of bootmenu
elements it's gets very bugged and unusable.
Refresh any affected patch.
Upstream-Status: Submitted [https://lore.kernel.org/u-boot/20250525134407.3760-1-ansuelsmth@gmail.com/]
Link: https://github.com/openwrt/openwrt/pull/18919
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
This allows us to use the full size of nand, which increases ubi size
from 64M to 122.25M.
If you are at factory firmware, please refer commit 63b8d98dd0 ("mediatek: add support for Cudy TR3000 v1")
to boot into OpenWrt initramfs (stock layout).
Flash instructions:
1. Login into the device and backup everything, especially 'Factory' part.
1. Unlock mtd partitions:
apk update && apk add kmod-mtd-rw
insmod mtd-rw i_want_a_brick=1
3. Write new BL2 and FIP
mtd write openwrt-mediatek-filogic-cudy_tr3000-v1-ubootmod-preloader.bin BL2
mtd write openwrt-mediatek-filogic-cudy_tr3000-v1-ubootmod-bl31-uboot.fip FIP
4. Set static IP on your PC:
IP 192.168.1.254/24, GW 192.168.1.1
5. Serve OpenWrt initramfs image using TFTP server.
6. Cut off the power and re-engage, wait for TFTP recovery to complete.
7. After OpenWrt has booted, perform sysupgrade.
Tested-by: Yangyu Chen <cyy@cyyself.name>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Some MBIM devices can exist on an MHI bus (over PCIe) instead of being presented as USB devices.
In such cases the interface name lookup needs to be done from /sys/class/wwan/ instead of /sys/class/usbmisc/
Add another readlink call in case the first lookup fails.
This allows the MBIM protocol to find the interface name and then work with both type of devices provided that /etc/config/network has the right device for MBIM interface (such as /dev/wwan0mbim0 in case of MHI)
Signed-off-by: Antti Seppälä <a.seppala@gmail.com>
The device manufacturer name for Qualcomm Atheros is listed
as "Qualcomm, Atheros" for PCI devices but "Qualcomm Atheros" under
"compatible". This gives inconsistent results in `iwinfo` and
```
Hardware: 0x168c:0x0046 0x168c:0xcafe [Qualcomm, Atheros QCA9984]
Hardware: embedded [Qualcomm Atheros IPQ8074]
```
Signed-off-by: Sean Khan <datapronix@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/18039
Signed-off-by: Robert Marko <robimarko@gmail.com>
The 'unknown' string was misspelled as 'unknonw'.
Signed-off-by: Sean Khan <datapronix@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/18039
Signed-off-by: Robert Marko <robimarko@gmail.com>
Add 'dBm' units to 'Signal' and 'Noise' to match what non-ucode iwinfo shows.
Before:
Signal: -49 Noise: -103
After:
Signal: -49 dBm Noise: -103 dBm
Signed-off-by: Sean Khan <datapronix@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/18039
Signed-off-by: Robert Marko <robimarko@gmail.com>
When bitrate is unknown, the units shouldn't be displayed. This is
consistent with other "unknown" fields and non-ucode iwinfo.
Signed-off-by: Sean Khan <datapronix@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/18039
Signed-off-by: Robert Marko <robimarko@gmail.com>
There is no practical value in keeping GCC11 around, as even OpenWrt 23.05
uses GCC12 as the default one, so drop it.
Signed-off-by: Robert Marko <robimarko@gmail.com>
Currently, MaxLinear/Exar USB serial devices are supported via out-of-tree
usb-serial-xr_usb_serial_common driver which is broken on 6.12.
So since upstream has support for these devices since 6.5 lets package
the in-tree driver to be able to drop the out-of-tree one.
Link: https://github.com/openwrt/openwrt/pull/18926
Signed-off-by: Robert Marko <robimarko@gmail.com>
SOC: MediaTek MT7981b
RAM: 256MB DDR3
FLASH: 128MB SPI-NAND (Winbond W25N01GV)
WIFI: Mediatek MT7981b DBDC 802.11ax 2.4/5 GHz
ETH: MediaTek MT7531 Switch
UART: 3V3 115200 8N1 (Pinout silkscreened / Do not connect VCC)
Interface MAC Algorithm
LAN 8C:AE:DB:2C:xx:xx label
WAN 8C:AE:DB:2C:xx:xx label +1
WLAN 2.4G 8C:AE:DB:2C:xx:xx label +2
WLAN 5G 8C:AE:DB:2C:xx:xx label +3
Installation
-------------------Install openwrt image-------------------------------:
Set a static ip on the ethernet interface of your PC. (ip address:
192.168.1.254, subnet mask:255.255.255.0) .
Download the OpenWrt uboot image
(openwrt-mediatek-filogic-snr_cpe-ax2-bl31-uboot.fip).
SSH/SCP opened by default on the stock firmware (3.0.1).
Username: Admin, default password: Admin. Check it on the bottom of
the router.
Copy uboot image using SCP (WinSCP) to /tmp dir on SNR-CPE-AX2.
Download recovery file.
openwrt-mediatek-filogic-snr_snr-cpe-ax2-initramfs-recovery.itb.
Copy the recovery image to a TFTP server reachable at 192.168.1.254/24.
Open ssh shell to the SNR-CPE-AX2.
Run commands:
mtd write \
/tmp/openwrt-mediatek-filogic-snr_snr-cpe-ax2-bl31-uboot.fip FIP
reboot
Wait until recovery boot.
Open web 192.168.1.1 and do sysupgrade by
openwrt-mediatek-filogic-snr_cpe-ax2-squashfs-sysupgrade.itb
Signed-off-by: Nikolay March <palladin82@yandex.ru>
Link: https://github.com/openwrt/openwrt/pull/18700
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Upstream seems to be using led-sources instead of custom properties.
Code mostly taken from mt76.
Changed all(few) users of qca,led_pin to use the new format.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18805
Signed-off-by: Robert Marko <robimarko@gmail.com>
Currently adb uses libopenssl for certain authentication tasks between
the host and the target device such as certificate generation, hashing,
base64 encoding and pki signatures.
Add a patch to use functionalities available in mbedtls instead.
Also switch package makefile and dependency to libmbedtls and drop
patches and references to lib{crypto,openssl} as they are no longer
required.
This conserves considerable amount of space on the device as openwrt
ships with libmbedtls by default.
Signed-off-by: Antti Seppälä <a.seppala@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18819
Signed-off-by: Robert Marko <robimarko@gmail.com>
Debian Changelogs from 20250512:
* New upstream microcode datafile 20250512
- Mitigations for INTEL-SA-01153 (ITS: Indirect Target Selection):
CVE-2024-28956: Processor may incompletely mitigate Branch Target
Injection due to indirect branch predictions that are not fully
constrained by eIBRS nor by the IBPB barrier. Part of the "Training
Solo" set of vulnerabilities.
- Mitigations for INTEL-SA-01244:
CVE-2025-20103: Insufficient resource pool in the core management
mechanism for some Intel Processors may allow an authenticated user
to potentially enable denial of service via local access.
CVE-2025-20054: Uncaught exception in the core management mechanism
for some Intel Processors may allow an authenticated user to
potentially enable denial of service via local access.
- Mitigations for INTEL-SA-01247:
CVE-2024-43420, CVE-2025-20623: Exposure of sensitive information
caused by shared microarchitectural predictor state that influences
transient execution for some Intel Atom and some Intel Core
processors (10th Generation) may allow an authenticated user to
potentially enable information disclosure via local access.
CVE-2024-45332 (Branch Privilege Injection): Exposure of sensitive
information caused by shared microarchitectural predictor state that
influences transient execution in the indirect branch predictors for
some Intel Processors may allow an authenticated user to potentially
enable information disclosure via local access.
- Mitigations for INTEL-SA-01322:
CVE-2025-24495 (Training Solo): Incorrect initialization of resource
in the branch prediction unit for some Intel Core Ultra Processors
may allow an authenticated user to potentially enable information
disclosure via local access (IBPB bypass)
CVE-2025-20012 (Training Solo): Incorrect behavior order for some
Intel Core Ultra Processors may allow an unauthenticated user to
potentially enable information disclosure via physical access.
- Improved fix for the Vmin Shift Instability for the Intel Core 13th
and 14th gen processors under low-activity scenarios (sig 0xb0671).
This microcode update is supposed to be delivered as a system
firmware update, but according to Intel it should be effective when
loaded by the operating system if the system firmware has revision
0x12e.
- Fixes for unspecified functional issues on several processor models
* New microcodes or new extended signatures:
sig 0x000a06d1, pf_mask 0x95, 2025-02-07, rev 0x10003a2, size 1664000
sig 0x000a06d1, pf_mask 0x20, 2025-02-07, rev 0xa0000d1, size 1635328
sig 0x000b0650, pf_mask 0x80, 2025-03-18, rev 0x000a, size 136192
sig 0x000b06d1, pf_mask 0x80, 2025-03-18, rev 0x011f, size 79872
sig 0x000c0662, pf_mask 0x82, 2025-03-20, rev 0x0118, size 90112
sig 0x000c06a2, pf_mask 0x82, 2025-03-20, rev 0x0118
sig 0x000c0652, pf_mask 0x82, 2025-03-20, rev 0x0118
sig 0x000c0664, pf_mask 0x82, 2025-03-20, rev 0x0118
* Updated microcodes:
sig 0x00050657, pf_mask 0xbf, 2024-12-12, rev 0x5003901, size 39936
sig 0x0005065b, pf_mask 0xbf, 2024-12-12, rev 0x7002b01, size 30720
sig 0x000606a6, pf_mask 0x87, 2025-01-07, rev 0xd000404, size 309248
sig 0x000606c1, pf_mask 0x10, 2025-01-07, rev 0x10002d0, size 300032
sig 0x000706a8, pf_mask 0x01, 2024-12-05, rev 0x0026, size 76800
sig 0x000706e5, pf_mask 0x80, 2025-01-07, rev 0x00ca, size 115712
sig 0x000806c1, pf_mask 0x80, 2024-12-01, rev 0x00bc, size 112640
sig 0x000806c2, pf_mask 0xc2, 2024-12-01, rev 0x003c, size 99328
sig 0x000806d1, pf_mask 0xc2, 2024-12-11, rev 0x0056, size 105472
sig 0x000806ec, pf_mask 0x94, 2024-11-17, rev 0x0100, size 106496
sig 0x000806f8, pf_mask 0x87, 2025-01-28, rev 0x2b000639, size 591872
sig 0x000806f7, pf_mask 0x87, 2025-01-28, rev 0x2b000639
sig 0x000806f6, pf_mask 0x87, 2025-01-28, rev 0x2b000639
sig 0x000806f5, pf_mask 0x87, 2025-01-28, rev 0x2b000639
sig 0x000806f4, pf_mask 0x87, 2025-01-28, rev 0x2b000639
sig 0x000806f8, pf_mask 0x10, 2025-01-28, rev 0x2c0003f7, size 624640
sig 0x000806f6, pf_mask 0x10, 2025-01-28, rev 0x2c0003f7
sig 0x000806f5, pf_mask 0x10, 2025-01-28, rev 0x2c0003f7
sig 0x000806f4, pf_mask 0x10, 2025-01-28, rev 0x2c0003f7
sig 0x00090672, pf_mask 0x07, 2024-12-12, rev 0x003a, size 226304
sig 0x00090675, pf_mask 0x07, 2024-12-12, rev 0x003a
sig 0x000b06f2, pf_mask 0x07, 2024-12-12, rev 0x003a
sig 0x000b06f5, pf_mask 0x07, 2024-12-12, rev 0x003a
sig 0x000b06f6, pf_mask 0x07, 2024-12-12, rev 0x003a
sig 0x000b06f7, pf_mask 0x07, 2024-12-12, rev 0x003a
sig 0x000906a3, pf_mask 0x80, 2024-12-12, rev 0x0437, size 224256
sig 0x000906a4, pf_mask 0x80, 2024-12-12, rev 0x0437
sig 0x000906a4, pf_mask 0x40, 2024-12-06, rev 0x000a, size 119808
sig 0x000906ed, pf_mask 0x22, 2024-11-14, rev 0x0104, size 106496
sig 0x000a0652, pf_mask 0x20, 2024-11-14, rev 0x0100, size 97280
sig 0x000a0653, pf_mask 0x22, 2024-11-14, rev 0x0100, size 98304
sig 0x000a0655, pf_mask 0x22, 2024-11-14, rev 0x0100, size 97280
sig 0x000a0660, pf_mask 0x80, 2024-11-14, rev 0x0102, size 98304
sig 0x000a0661, pf_mask 0x80, 2024-11-14, rev 0x0100, size 97280
sig 0x000a0671, pf_mask 0x02, 2024-12-01, rev 0x0064, size 108544
sig 0x000a06a4, pf_mask 0xe6, 2025-02-13, rev 0x0024, size 140288
sig 0x000a06f3, pf_mask 0x01, 2025-02-10, rev 0x3000341, size 1542144
sig 0x000b0671, pf_mask 0x32, 2025-03-17, rev 0x012f, size 219136
sig 0x000b0674, pf_mask 0x32, 2025-03-17, rev 0x012f
sig 0x000b06a2, pf_mask 0xe0, 2025-01-15, rev 0x4128, size 224256
sig 0x000b06a3, pf_mask 0xe0, 2025-01-15, rev 0x4128
sig 0x000b06a8, pf_mask 0xe0, 2025-01-15, rev 0x4128
sig 0x000b06e0, pf_mask 0x19, 2024-12-06, rev 0x001d, size 139264
sig 0x000c06f2, pf_mask 0x87, 2025-03-14, rev 0x210002a9, size 563200
sig 0x000c06f1, pf_mask 0x87, 2025-03-14, rev 0x210002a9
* Removed microcodes (ES/QS steppings):
sig 0x00050656, pf_mask 0xbf, 2023-07-28, rev 0x4003605, size 38912
sig 0x000c06f1, pf_mask 0x87, 2025-03-14, rev 0x210002a9 [EXCLUDED]
Build system: x86/64
Build-tested: x86/64
Run-tested: x86/64
Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/18869
Signed-off-by: Robert Marko <robimarko@gmail.com>
A lot of warnings were treated as errors after the default compiler
switched to GCC14. It's hard to fix them one by one, and this u-boot
is not maintained by upstream, so let's just silence these warnings.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18833
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This U-Boot version is used to generate a 'reference'
U-Boot binary for QEMU's 'virt' machine on both
armv7 and armv8.
It has not been updated since EFI support was merged
into the then-armvirt target, so we should bring it up
to the latest version.
The 'mkeficapsule' tool is disabled due to a host-side
dependency on GnuTLS.
Signed-off-by: Mathew McBride <matt@traverse.com.au>
Link: https://github.com/openwrt/openwrt/pull/18862
Signed-off-by: Robert Marko <robimarko@gmail.com>
After removing kernel 6.6 support for x86 targets,
kernel 6.12 conditions no longer need to be checked.
Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18848
Signed-off-by: Robert Marko <robimarko@gmail.com>
Define define fb-io-fops module - Fbdev helpers for framebuffers in I/O memory
By creating a hidden module it is possible to load fb_io_fops.ko
according to the kernel version.
Fixes: 5048c9d ("kernel: modules: adjust the object files of kmod-fb ")
Package kmod-drm-radeon is missing dependencies for the following libraries:
fb_io_fops.ko
make[2]: *** [modules/video.mk:620: /__w/openwrt/openwrt/openwrt/bin/targets/x86/geode/packages/kmod-drm-radeon-6.12.28-r1.apk] Error 1
time: package/kernel/linux/compile#45.35#40.01#75.34
Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18771
Signed-off-by: Robert Marko <robimarko@gmail.com>
rtw_ndev_notifier_call should ignore network devices created by other drivers, and it does so,
but when CONFIG_WIRELESS_EXT=n, it does not behave as expected.
Signed-off-by: Liangbin Lian <jjm2473@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18801
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Update to current SSDK head for 6.12 compatibility.
We must disable warnings for missing declarations and prototypes since
whole SSDK is litered with them and actually fixing them is like doing
whack a mole.
Link: https://github.com/openwrt/openwrt/pull/18795
Signed-off-by: Robert Marko <robimarko@gmail.com>
Version 6.14 - April 7, 2025
* Feature: list PHYs (--show-phys)
* Feature: target a specific PHY with some commands (--phy)
* Feature: more attributes for C33 PSE (--show-pse, --set-pse)
* Feature: source information for cable tests (--cable-test[-tdr])
* Feature: JSON output for module info (-m)
* Feature: misc RSS hash info improvements (-x)
* Feature: tsinfo hwtstamp provider (--{get,set}-hwtimestamp-cfg)
* Fix: fix wrong auto-negotiation state (no option)
* Fix: more explicit RSS context action (-n)
* Fix: print PHY address as decimal (no option)
* Fix: fix return value on flow hashing error (-N)
* Fix: fix JSON output for IRQ coalescing
* Fix: fix MDI-X info output (no option)
* Misc: code cleanup in module parsers
* Misc: provide module_info JSON schema
* Misc: add '-j' alias for --json
* Misc: provide AppStream metainfo XML
* Misc: update message descriptions for debugging output
Signed-off-by: Piotr Kubik <piotr.kubik@adtran.com>
Signed-off-by: Chad Monroe <chad@monroe.io>
Link: https://github.com/openwrt/openwrt/pull/18803
Signed-off-by: Robert Marko <robimarko@gmail.com>
Add package for linux intel_vpu driver for Intel NPU/VPU
Signed-off-by: Joe Zheng <joe.zheng@intel.com>
Link: https://github.com/openwrt/openwrt/pull/17904
Signed-off-by: Robert Marko <robimarko@gmail.com>
Intel NPU device is an AI inference accelerator integrated with Intel
client CPUs, starting from Intel Core Ultra generation of CPUs
(formerly known as Meteor Lake). It enables energy-efficient execution
of artificial neural network tasks.
The full device name is Neural Processing Unit, but the Linux kernel
driver uses the older name - Versatile Processing Unit (VPU).
This package is for NPU/VPU firmware.
Details in https://github.com/intel/linux-npu-driver
Intel VPU firmware is now part of linux-firmware.
The current FW file names in linux-firmware do not match intel vpu
driver, create links to fix it
details in
https://github.com/torvalds/linux/blob/master/drivers/accel/ivpu/ivpu_fw.c
Signed-off-by: Joe Zheng <joe.zheng@intel.com>
Link: https://github.com/openwrt/openwrt/pull/17904
Signed-off-by: Robert Marko <robimarko@gmail.com>
TP-Link EAP625-Outdoor HD is a 802.11ax AP claiming AX1800 support.
It is wall or pole mountable, and rated for outdoor use. It can only
be powered via PoE.
Hardware-wise, it is very similar to the older EAP610-Outdoor model.
Software-wise, I couldn't find a difference other than the board
data files, and device name. For this reason, the majority of the
devicetree from the EAP610-Outdoor is reused.
This device currently comes in a "v1", and "v1.6" version. The
"support-list" of the vendor firmware does not have a distinction
between these versions. This commit was tested on a 'V1.6" device.
Specifications:
---------------
* CPU: Qualcomm IPQ6018 Quad core Cortex-A53
* RAM: 512 MB
* Storage: 128MB NAND
* Ethernet:
* Gigabit RJ45 port with PoE input
* WLAN:
* 2.4GHz/5GHz
* LEDs:
* Multi-color System LED (Green/Amber)
* Buttons:
* 1x Reset
* UART: 4-pin unpopulated header
* 1.8 V level, Pinout 1 - TX, 2 - RX, 3 - GND, 4 - 1.8V
Installation:
=============
Web UI method
-------------
Set up the device using the vendor's web UI. After that go to
Management->SSH and enable the "SSH Login" checkbox. Select "Save".
The connect to the machine via SSH:
ssh -o hostkeyalgorithms=ssh-rsa <ip_of_device>
Disable signature verification:
cliclientd stopcs
Rename the "-web-ui-factory" image to something less than 63
characters, maintaining the ".bin" suffix.
* Go to System -> Firmware Update.
* Under "New Firmware File", click "Browse" and select the image
* Select "Update" and confirm by clicking "OK".
If the update fails, the web UI should show an error message.
Otherwise, the device should reboot into OpenWRT.
NOTE: If ssh continues to complain that "no matching host key type
found. Their offer: ssh-rsa,ssh-dss" it likely means that yor distro
has completely disabled deprecated siphers in ssh. In that case, run
the ssh command from a docker container of an older distro.
TFTP method
-----------
To flash via tftp, first place the initramfs image on the TFTP server.
setenv serverip <ip of tftp server>
setenv ipaddr <ip in same subnet as tftp server>
tftpboot tplink_eap625-outdoor-hd-v1-initramfs-uImage.itb
bootm
This should boot OpenWRT. Once booted, flash the sysupgrade.bin image
using either luci or the commandline.
Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18584
Signed-off-by: Robert Marko <robimarko@gmail.com>
It's the proper function to handle this stuff in.
The original patch abused the fact that the ath9k driver in init called
ath9k_init_platform to populate all the needed configuration. This is
the wrong place to do so and it also goes away in 6.13.
Move 553-ath9k_of_gpio_mask.patch contents to ath9k_of_init where they
belong.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18764
Signed-off-by: Robert Marko <robimarko@gmail.com>
Adjust the 'inline' declaration order to fix the build warning:
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xway/ltq-adsl-mei-danube/ltq-adsl-mei/drv_mei_cpe.c:188:1: error: 'inline' is not at beginning of declaration [-Werror=old-style-declaration]
188 | static void inline MEI_MASK_AND_ACK_IRQ(int x)
| ^~~~~~
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
fix inline declaration warning
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
There are a lot of missing-prototypes warnings, It's not worth to
fix them one by one. Let us just ignore them.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
Fix incomplete type error by including the correct header.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
* Mark some functions as static.
* Add missing prototypes.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
These functions return the register memory addresses. Usually
they are fixed values, hence I think it's safe to remove the
qualifier "volatile".
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
Convert .remove to .remove_new so that it can be compatible with
both 6.6 and 6.12 kernels.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
* Mark some functions as static.
* Include function prototypes header file.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
Adjust the 'inline' declaration order to fix the build warning.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
Include missing header "drv_vmmc_api.h" to fix the compilation errors.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
Add LANTIQ prefix to workaround the build warnings.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
There are a lot of missing-prototypes warnings, It's not worth to
fix them one by one.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
NULL and fixed addresses are constant, const qualifier are useless.
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_vmmc-1.9.0/src/mps/drv_mps_vmmc_ar9.c:47:1: error: type qualifiers ignored on function return type [-Werror=ignored-qualifiers]
47 | const void (*ifx_bsp_basic_mps_decrypt)(unsigned int addr, int n) = NULL;
| ^~~~~
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_vmmc-1.9.0/src/mps/drv_mps_vmmc_ar9.c:246:49: error: type qualifiers ignored on function return type [-Werror=ignored-qualifiers]
246 | ifx_bsp_basic_mps_decrypt = (const void (*)(unsigned int, int))0xbf0017c4;
| ^~~~~
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_vmmc-1.9.0/src/mps/drv_mps_vmmc_ar9.c:249:49: error: type qualifiers ignored on function return type [-Werror=ignored-qualifiers]
249 | ifx_bsp_basic_mps_decrypt = (const void (*)(unsigned int, int))0xbf001ea4;
| ^~~~~
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_vmmc-1.9.0/src/mps/drv_mps_vmmc_ar9.c:252:49: error: type qualifiers ignored on function return type [-Werror=ignored-qualifiers]
252 | ifx_bsp_basic_mps_decrypt = (const void (*)(unsigned int, int))0xbf001f38;
| ^~~~~
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
Fix incomplete type error by including the correct header.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
Add missing header to fix the build errors on 6.12 kernel.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
Mark cgu_get_pp32_clock() as static.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
This patch fixes the following build warnings by adding
missing prototypes:
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xway/ltq-deu-danube/ltq-deu/ifxmips_deu_danube.c💯5: error: no previous prototype for 'input_swap' [-Werror=missing-prototypes]
100 | u32 input_swap(u32 input)
| ^~~~~~~~~~
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xway/ltq-deu-ar9/ltq-deu/ifxmips_deu_ar9.c:91:5: error: no previous prototype for 'input_swap' [-Werror=missing-prototypes]
91 | u32 input_swap(u32 input)
| ^~~~~~~~~~
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xway/ltq-deu-ar9/ltq-deu/ifxmips_deu_ar9.c:131:6: error: no previous prototype for 'chip_version' [-Werror=missing-prototypes]
131 | void chip_version(void)
| ^~~~~~~~~~~~
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
This patch fixes various missing-prototypes build warnings by:
* Mark some functions as static.
* Add missing prototypes.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
This patch fixes various missing-prototypes build warnings on
6.12 kernel.
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_ase/ltq-atm-ase/ltq-atm/ifxmips_atm_amazon_se.c:257:13: error: no previous prototype for 'ase_fw_ver' [-Werror=missing-prototypes]
257 | extern void ase_fw_ver(unsigned int *major, unsigned int *minor)
| ^~~~~~~~~~
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_ase/ltq-atm-ase/ltq-atm/ifxmips_atm_amazon_se.c:266:5: error: no previous prototype for 'ase_init' [-Werror=missing-prototypes]
266 | int ase_init(struct platform_device *pdev)
| ^~~~~~~~
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_ase/ltq-atm-ase/ltq-atm/ifxmips_atm_amazon_se.c:283:6: error: no previous prototype for 'ase_shutdown' [-Werror=missing-prototypes]
283 | void ase_shutdown(void)
| ^~~~~~~~~~~~
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_ase/ltq-atm-ase/ltq-atm/ifxmips_atm_amazon_se.c:297:5: error: no previous prototype for 'ase_start' [-Werror=missing-prototypes]
297 | int ase_start(int pp32)
| ^~~~~~~~~
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_ase/ltq-atm-ase/ltq-atm/ifxmips_atm_amazon_se.c:323:6: error: no previous prototype for 'ase_stop' [-Werror=missing-prototypes]
323 | void ase_stop(int pp32)
| ^~~~~~~~
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
Mark some functions as static to fix various missing-prototypes
build warnings on 6.12 kernel.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
fix undefined type error:
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/ltq-atm-vr9/ltq-atm/ltq_atm.c:1776:43: error: invalid use of undefined type 'const struct of_device_id'
1776 | ops = (struct ltq_atm_ops *) match->data;
| ^~
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
This package is maintained by the OpenWrt local repository. There
is no need to modify it with the patch file. Just apply all patches
to the source files.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
Mark some functions as static.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
* Mark some functions as static.
* Include function prototypes header file.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
* Mark some functions as static.
* Include function prototypes header file.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
These functions return the register memory addresses. Usually
they are fixed values, hence I think it's safe to remove the
qualifier "volatile".
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
Convert .remove to .remove_new so that it can be compatible with
both 6.6 and 6.12 kernels.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
Add prototype definition for exported function ifx_mei_atm_led_blink().
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
Add prototype definition for exported function IFX_Var_Fifo_getRoom().
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
Add LANTIQ prefix to avoid name conflicts.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
PCI_IRQ_LEGACY was renamed to PCI_IRQ_INTX for kernel 6.10. Fix
compilation error:
/home/db/owrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-ipq40xx_generic/vrx518_ep-2.1.0/ep.c:469:69: error: 'PCI_IRQ_LEGACY' undeclared (first use in this function); did you mean 'NR_IRQS_LEGACY'?
469 | err = pci_alloc_irq_vectors(pdev, nvec, nvec, PCI_IRQ_MSI | PCI_IRQ_LEGACY);
| ^~~~~~~~~~~~~~
| NR_IRQS_LEGACY
Signed-off-by: Andre Heider <a.heider@gmail.com>
Co-authored-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18744
Signed-off-by: Robert Marko <robimarko@gmail.com>
Changelog:
0379096 libtracefs: version 1.8.2
e2e0b4d sqlhist: Add bash completion for the sqlhist utility
78dd6d5 libtracefs: Add trace_sql.bash for tracefs_sql() bash completions
4f66bca libtracefs: Fix trace_sql() to handle buckets cast
6680dae libtracefs: Have tracefs_sql() cast handle stacktrace
4668195 libtracefs: Handle synthetic events with dynamic strings as fields
48a7752 libtracefs: Fix COMM for use as a field for tracefs_sqlhist()
a8d57d2 libtracefs: Fix mistaken update to TRACEFS_STACKTRACE macro
6e913f7 libtracefs: utest: Do not fail if uprobes are not supported by kernel
5db5cf5 libtracefs: Rerun bison and flex via make sqlhist_remake
1514530 libtracefs: Add make sqlhist_remake to run bison and flex
d49b6fa libtrace: Fix memory leak in tracefs_cpu
07cff64 libtracefs: Fix the read file failure code checking
457f02f trace-cmd: Unit test for tracefs_instance_file_append() API
a2bfb49 libtracefs: utest: Rename private functions to fix static building
65f629e libtracefs utest: Do not test more events than what the ring buffer can hold
05a5dc4 libtracefs utest: Fix min percent test
0a46992 libtracefs utest: Add test to check handling multiple dynamic events
bd47435 libtracefs: Destroy synthetic and eprobes before other events
78d8d2e libtracefs: Have tracefs_dynevent_get_all() find kprobes and uprobes properly
ef70c00 libtracefs .gitignore: Ignore utest/trace-utest in git
ff20336 libtracefs utest: Do not test kprobe interface if there's no kprobes
93d9049 libtracefs: Have tracefs_instance_tracers() return instance tracers
4cbebed libtracefs: Documentation: Add missing documentation to meson.build
Link: https://github.com/openwrt/openwrt/pull/18783
Signed-off-by: Nick Hainke <vincent@systemli.org>
567207a9bf16 fs: implement fileno() on directory handles
eb1d93235509 fs: support passing directory handle or fd in chdir()
38a2254337f1 build: detect whether toolchain employs default source fortification
6eddfc9dff17 resolv: fix fd leak in send_queries
3d36856b2dc5 uci: fix memory leak on cursor() error
aafde95f1ecf uci: add cursor() flags argument
d8cebc5a6bfd Revert "WIP: lib: support map() over objects"
2599cf80736b zlib: incorporate latest PR changes
830f316a7e49 socker: let sock.peercred() clear error on success
4cbac141406e types: rename u64_to_constant flag to ext_flag
d802fe5da5cd types: add support for resources with embedded data/values
71b4fdc6f60b types: add support for setting resource persistent flag
141f799eba08 uloop: use container_of instead of direct pointer casts
1396f8f2988d uloop: use uc_fn_thisval
9a121fc7440c uloop: drop object_registry
11b804d97086 socket: do not clear last_error in socket.error()
d5b3a9dc1091 socket: add strerror() method
Fixes: https://github.com/jow-/ucode/issues/285
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Backport patches to support scans of WiFi 7 APs.
Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Link: https://github.com/openwrt/openwrt/pull/18741
Signed-off-by: Robert Marko <robimarko@gmail.com>
Enable Device Provisioning Protocol (DPPv2) in hostapd
for the "full" build-variants.
DPPv2 currently does not compile with WolfSSL due to
missing PKCS7 and certificate support.
Link: https://github.com/openwrt/openwrt/pull/18485
Signed-off-by: Gustavo Bertoli <gubertoli@gmail.com>
This new version introduces many compilation error fixes for
the upcoming 6.12 kernel. Changelogs:
04923c5 "Fix build failures observed so far" - take three.
b4263cc "Fix build failures observed so far" - take two.
de595b4 Fix build failures observed so far
1c0066a Zero checksum handling for UDP4->UDP6
b42c37d Fix crash when viewing nat46 kernel module config
3a9f630 nat46-module: fix modpost warning
88b91ca gha: use checkout@v4 action instead of checkout@v2
84ba13a gha: enable github action on push/PR
f367088 fix the compilation error
03c14bf gha: clean-up the yaml definition
d964921 Create c-compile.yml
cb69317 "Add network namespace awareness to nat46" - take two.
8302f42 Revert "Add network namespace awareness to nat46"
91b8e68 Add network namespace awareness to nat46
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Instead of having to deal with patch files, lets use the newly made
OpenWrt GIT repo as the SSDK upstream[1].
All existing patches have been applied to the same source commit, so
there should be no intended changes.
[1] https://github.com/openwrt/qca-nss-dp.git
Signed-off-by: Robert Marko <robimarko@gmail.com>
Instead of having to deal with patch files, lets use the newly made
OpenWrt GIT repo as the SSDK upstream[1].
All existing patches have been applied to the same source commit, so
there should be no intended changes.
[1] https://github.com/openwrt/qca-ssdk.git
Signed-off-by: Robert Marko <robimarko@gmail.com>
Commit 7db0748b7b ("kernel: modules: split package fs-fscache") modified
the KCONFIG section of KernelPackage/fs-netfs but missed to add a
backslash to escape a linebreak. Add it now.
Fixes: 7db0748b7b ("kernel: modules: split package fs-fscache")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
The legacy FW tarball hash is wrong, fix it.
Fixes: ea83f7de2b ("ath11k-firmware: add wifi firmware for IPQ5018")
Signed-off-by: Robert Marko <robimarko@gmail.com>
In this new version channel 177 is supported.
Dropped patches:
[1] 001-patch-version.patch
[2] 205-ath10k-ct-silence-warning-caused-by-unsupported-retr.patch
[1] [2] 8adb310f84
Signed-off-by: Paweł Owoc <frut3k7@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18731
Signed-off-by: Robert Marko <robimarko@gmail.com>
On big endian platforms, scans show invalid info for WiFi 6 APs.
This commit backports patches to fix this issue.
Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Link: https://github.com/openwrt/openwrt/pull/18717
Signed-off-by: Robert Marko <robimarko@gmail.com>
The RPi 5 Compute Module expects the same NVRAM as the one from RPi 4
on a different file.
Signed-off-by: Dave Marquard <dave-atx@users.noreply.github.com>
Link: https://github.com/openwrt/openwrt/pull/18722
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
With kernel 6.11 iio-core gained a dependency to DMA_SHARED_BUFFER,
so add the appropriate dependency.
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
With kernel 6.11 several mtk usb functions were moved from btusb to
btmtk, adding a usb core depdendency to btmtk (if enabled).
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
libiconv 1.17 fails to compile with GCC15 when doing the host build,
luckily version 1.18 already contains the fixes required so update to it.
New in 1.18:
* Many more transliterations, in particular also of Emoji characters.
* The iconv_open function is now POSIX:2024 compliant: it recognizes a
suffix //NON_IDENTICAL_DISCARD in the 'tocode' argument, with the effect
that characters that cannot be represented in the target character set
will be silently discarded. Whereas the suffix //IGNORE in the 'tocode'
argument has the effect of discarding not only characters that cannot be
represented in the target character set, but also invalid multibyte
sequences in the input.
Accordingly, the iconvctl function accepts requests
ICONV_GET_DISCARD_INVALID, ICONV_SET_DISCARD_INVALID,
ICONV_GET_DISCARD_NON_IDENTICAL, ICONV_SET_DISCARD_NON_IDENTICAL.
* The iconv_open function and the iconv program now support multiple suffixes,
such as //TRANSLIT//IGNORE, not only one.
* GB18030 is now an alias for GB18030:2005. A new converter for GB18030:2022
is added. Since this encoding merely cleans up a few private-use-area
mappings, you can continue to use the GB18030 converter, for backward
compatibility. Its Unicode to GB18030 conversion direction has been
enhanced, to help transitioning away from PUA code points.
* When converting from/to an EBCDIC encoding, a non-standard way of
converting newlines can be requested
- at the C level, by calling iconvctl with argument ICONV_SET_FROM_SURFACE
or ICONV_SET_TO_SURFACE, or
- from the iconv program, by setting the environment variable
ICONV_EBCDIC_ZOS_UNIX to a non-empty value.
* Special support for z/OS: The iconv program adds a charset metadata tag to
its output file. (Contributed by Mike Fulton.)
* For conversions from UCS-2, UCS-4, UTF-16, UTF-32, invoking
iconv(cd,NULL,NULL,...) now preserves the byte order state.
Link: https://github.com/openwrt/openwrt/pull/18698
Signed-off-by: Robert Marko <robimarko@gmail.com>
It seems that this was required many years ago (It was added in 2012),
probably due to relying on outdated or broken libtool versions, but 1.17
uses libtool 2.4.7.
After trying building both host and target libiconv versions on Fedora and
MacOS I cannot seem to find what patch-libtool is supposed to fixup.
So, I can only presume that it is completely uneeded these days and can
be dropped.
Link: https://github.com/openwrt/openwrt/pull/18698
Signed-off-by: Robert Marko <robimarko@gmail.com>
Bump version to fix compiling with GCC14.
This fixes the following compile problem:
```
dns320l-daemon.c: In function 'main':
dns320l-daemon.c:740:18: error: implicit declaration of function 'isprint' [-Wimplicit-function-declaration]
740 | else if (isprint (optopt))
| ^~~~~~~
dns320l-daemon.c:50:1: note: include '<ctype.h>' or provide a declaration of 'isprint'
49 | #include "dns320l-daemon.h"
+++ |+#include <ctype.h>
50 |
dns320l-daemon.c:799:5: error: implicit declaration of function 'umask' [-Wimplicit-function-declaration]
799 | umask(0);
| ^~~~~
dns320l-daemon.c:864:5: error: 'return' with no value, in function returning non-void [-Wreturn-mismatch]
864 | return;
| ^~~~~~
dns320l-daemon.c:691:5: note: declared here
691 | int main(int argc, char *argv[])
| ^~~~
```
Link: https://github.com/openwrt/openwrt/pull/18688
Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
This fixes the following compile problem:
```
dns320l-daemon.c: In function 'main':
dns320l-daemon.c:740:18: error: implicit declaration of function 'isprint' [-Wimplicit-function-declaration]
740 | else if (isprint (optopt))
| ^~~~~~~
dns320l-daemon.c:50:1: note: include '<ctype.h>' or provide a declaration of 'isprint'
49 | #include "dns320l-daemon.h"
+++ |+#include <ctype.h>
50 |
dns320l-daemon.c:799:5: error: implicit declaration of function 'umask' [-Wimplicit-function-declaration]
799 | umask(0);
| ^~~~~
dns320l-daemon.c:864:5: error: 'return' with no value, in function returning non-void [-Wreturn-mismatch]
864 | return;
| ^~~~~~
dns320l-daemon.c:691:5: note: declared here
691 | int main(int argc, char *argv[])
| ^~~~
```
Link: https://github.com/openwrt/openwrt/pull/18688
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This fixes the following compile problem:
```
arv7506pw11.c: In function 'show_boot_progress':
arv7506pw11.c:59:24: error: 'return' with a value, in function returning void [-Wreturn-mismatch]
59 | return 0;
| ^
arv7506pw11.c:56:6: note: declared here
56 | void show_boot_progress(int arg)
| ^~~~~~~~~~~~~~~~~~
arv7506pw11.c:71:16: error: 'return' with a value, in function returning void [-Wreturn-mismatch]
71 | return 0;
| ^
arv7506pw11.c:56:6: note: declared here
56 | void show_boot_progress(int arg)
| ^~~~~~~~~~~~~~~~~~
```
Link: https://github.com/openwrt/openwrt/pull/18688
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This fixes the following compile problem:
```
checking for asm/types.h... dsl_cpe_linux.c: In function 'DSL_CPE_ThreadInit':
dsl_cpe_linux.c:779:25: error: assignment to 'DSL_CPE_Thread_t' {aka 'int'} from 'pthread_t' {aka 'struct __pthread *'} makes integer from pointer without a cast [-Wint-conversion]
779 | pThrCntrl->tid = tid;
| ^
dsl_cpe_linux.c: In function 'DSL_CPE_ThreadDelete':
dsl_cpe_linux.c:862:44: error: passing argument 1 of 'pthread_cancel' makes pointer from integer without a cast [-Wint-conversion]
862 | switch(pthread_cancel(pThrCntrl->tid))
| ~~~~~~~~~^~~~~
| |
| DSL_CPE_Thread_t {aka int}
In file included from dsl_cpe_linux.h:35:
/builder/shared-workdir/build/staging_dir/toolchain-mips_mips32_gcc-14.2.0_musl/include/pthread.h:98:20: note: expected 'pthread_t' {aka 'struct __pthread *'} but argument is of type 'DSL_CPE_Thread_t' {aka 'int'}
98 | int pthread_cancel(pthread_t);
| ^~~~~~~~~
dsl_cpe_linux.c: In function 'DSL_CPE_ThreadIdGet':
dsl_cpe_linux.c:1123:11: error: returning 'pthread_t' {aka 'struct __pthread *'} from a function with return type 'DSL_CPE_Thread_t' {aka 'int'} makes integer from pointer without a cast [-Wint-conversion]
1123 | return pthread_self();
| ^~~~~~~~~~~~~~
```
While at it, fix also some additional build warnings.
Link: https://github.com/openwrt/openwrt/pull/18688
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Fix following warnings by including the corresponding headers:
backports-6.12.6/drivers/net/wireless/ath/ath9k/hsr.c:50:6: error: no previous prototype for 'ath9k_hsr_init' [-Werror=missing-prototypes]
50 | void ath9k_hsr_init(struct ath_hw *ah)
| ^~~~~~~~~~~~~~
backports-6.12.6/drivers/net/wireless/ath/ath9k/hsr.c:165:5: error: no previous prototype for 'ath9k_hsr_disable' [-Werror=missing-prototypes]
165 | int ath9k_hsr_disable(struct ath_hw *ah)
| ^~~~~~~~~~~~~~~~~
backports-6.12.6/drivers/net/wireless/ath/ath9k/hsr.c:177:5: error: no previous prototype for 'ath9k_hsr_enable' [-Werror=missing-prototypes]
177 | int ath9k_hsr_enable(struct ath_hw *ah, int bw, int fq)
| ^~~~~~~~~~~~~~~~
backports-6.12.6/drivers/net/wireless/ath/ath9k/hsr.c:234:5: error: no previous prototype for 'ath9k_hsr_status' [-Werror=missing-prototypes]
234 | int ath9k_hsr_status(struct ath_hw *ah)
| ^~~~~~~~~~~~~~~~
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18637
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Update USB shutdown callback for the 6.12 kernel. A sprintf
overlaps issue is also fixed in this patch. Unfortunately,
there are dozens of missing-prototypes warnings so it's hard
to fix them one by one. Let's just silence them.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18637
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This patch fixes a lot of missing-prototypes warnings for the
upcoming 6.12 kernel.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18637
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Convert platform driver .remove to .remove_new to fix the
incompatible pointer type error on 6.12 kernel.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18637
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Fix mt76 build error on 6.12 kernel:
In file included from /workspaces/openwrt/build_dir/target-x86_64_musl/linux-x86_64/mt76-2025.04.11~be28ef77/mt76x0/eeprom.c:13:
/workspaces/openwrt/staging_dir/target-x86_64_musl/usr/include/mac80211-backport/asm/unaligned.h:3:15: fatal error: asm/unaligned.h: No such file or directory
3 | #include_next <asm/unaligned.h>
| ^~~~~~~~~~~~~~~~~
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18637
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Move rt2x00lib_read_eeprom() function prototype from rt2800lib.h to
rt2x00.h and make rt6352_enable_pa_pin() static to fix the missing
prototypes warnings:
/workspaces/openwrt/build_dir/target-x86_64_musl/linux-x86_64/mac80211-regular/backports-6.12.6/drivers/net/wireless/ralink/rt2x00/rt2x00eeprom.c:213:5: error: no previous prototype for 'rt2x00lib_read_eeprom' [-Werror=missing-prototypes]
213 | int rt2x00lib_read_eeprom(struct rt2x00_dev *rt2x00dev)
| ^~~~~~~~~~~~~~~~~~~~~
/workspaces/openwrt/build_dir/target-x86_64_musl/linux-x86_64/mac80211-regular/backports-6.12.6/drivers/net/wireless/ralink/rt2x00/rt2800lib.c:308:6: error: no previous prototype for 'rt6352_enable_pa_pin' [-Werror=missing-prototypes]
308 | void rt6352_enable_pa_pin(struct rt2x00_dev *rt2x00dev, int enable)
| ^~~~~~~~~~~~~~~~~~~~
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18637
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
A patch was added upstream to temporary enable RTC clock configuration only
for STM32MP15 boards. Use this patch instead of reverting commit 03a581e2.
Now for STM32MP135 boards RTC clock configuration is handled by optee-os.
Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/18628
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This reverts commit 5687f448a4.
This unfortunately is currently breaking all targets during building
as in 6.6 kernel there is
no CONFIG_NET_DSA_TAG_VSC73XX_8021Q, it was added in 6.11 AFAIK.
So they will all fail due to $(LINUX_DIR)/net/dsa/tag_vsc73xx_8021q.ko missing.
So revert until kmod is fixed.
Signed-off-by: Robert Marko <robimarko@gmail.com>
Update policycoreutils to latest 3.8.1 release and add a fix for building
with GCC14 and musl.
Fix will be sent upstream.
Link: https://github.com/openwrt/openwrt/pull/18674
Signed-off-by: Robert Marko <robimarko@gmail.com>
Update libsemanage to latest 3.8.1 release and add an upstream backport[1]
that fixes compilation with GCC14 due to basename.
[1] a339594da6
Link: https://github.com/openwrt/openwrt/pull/18674
Signed-off-by: Robert Marko <robimarko@gmail.com>
Add missing depends kmod-fb.
Package kmod-backlight is missing dependencies for the following libraries:
fb.ko
Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/16547
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Add missing depends kmod-i2c-core.
Package kmod-hwmon-core is missing dependencies for the following libraries:
i2c-core.ko
Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/16547
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Updated for compatibility with kernels 6.6 and 6.12.
Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/16547
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Create a crypto-lib-aescfb package needed for new deps for kmod-tpm.
Package kmod-tpm is missing dependencies for the following libraries:
ecdh_generic.ko
kpp.ko
libaescfb.ko
Co-authored-by: John Audia <therealgraysky@proton.me>
Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/16547
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Trying to compile EAD with now default GCC14 will fail due to now erroring
out on implicit int type as well as implicit function declarations.
Due to this, the packaged configure script will fail on the simple compiler
test as the generated test uses main loop with an implicit int type.
So, instead of patching multiple test cases in the shipped configure script
for tinysrp lets run autoreconf on it so its regenerated.
We also need to pass -Wno-error=implicit-function-declaration as there are
multiple instances of tinysrp code relying on implicit function declarations.
Link: https://github.com/openwrt/openwrt/pull/18645
Signed-off-by: Robert Marko <robimarko@gmail.com>
with more new device, now able to flash oem
images from luci, fwtools erroneously marks
firmware as incompatible and does not warn
across keeping configs during update.
this patch aims to add both oem detection
and a warning msg advising firmware is compatible
(OpenWrt -> OEM) but configuration is not
tested on ipq5018: gl-b3000
Signed-off-by: Scott Mercer <TheRootEd24@gmail.com>
package: basefiles: add oem image dectection to fwtool
some new devices are now able to flash oem
images from luci, fwtools erroneously marks
firmware as incompatible and does not warn
of keeping configs during update for this condition.
this patch aims to add both oem detection
and trigger the existing warning msg, advising firmware is compatible
(OpenWrt -> OEM) but configuration is not
tested on ipq5018: gl-b3000
Signed-off-by: Scott Mercer <TheRootEd24@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18554
Signed-off-by: Robert Marko <robimarko@gmail.com>
- only run a single poll in the uloop_fd cb to avoid use-after-free on close
- delete the uloop_fd on close
- when calling into ucode, fetch the vm pointer before the call in order
to avoid accessing the stale uline context
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Easy way to add compatibility for kernel 6.12.
Since the linux 3.8 patch undoes a bunch of stuff in platform, just
modiify everything in platform.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18616
Signed-off-by: Robert Marko <robimarko@gmail.com>
YAFFS support in U-Boot is basically abandoned and will even fail to
build with GCC14, so simply disable it.
Link: https://github.com/openwrt/openwrt/pull/18598
Signed-off-by: Robert Marko <robimarko@gmail.com>
uImage.FIT validation was restricted to certain sub-image types
which is problematic as it then won't validate eg. 'filesystem' type
subimages. Also prevent decompressing sub-images into a arbitrary
sized buffer just to then free that buffer -- there is not need to
do this and creating malicious compressed payloads which overflow the
buffer is too easy.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Since the irq gets copied to sc, it's a really bad idea to use devm,
especially when probe fails.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Fixes: 4e18d22 ("mac80211: ath9k: simplify probe with devm")
Link: https://github.com/openwrt/openwrt/pull/18570
Signed-off-by: Robert Marko <robimarko@gmail.com>
Instead of enabling RSS support, let's introduce a variant and let users
choose between both variants since it can cause network issues.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
We need both ENABLE_RSS_SUPPORT and ENABLE_MULTIPLE_TX_QUEUE in order to
support multiple RX and TX queues.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
We need both ENABLE_RSS_SUPPORT and ENABLE_MULTIPLE_TX_QUEUE in order to
support multiple RX and TX queues.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
We need both ENABLE_RSS_SUPPORT and ENABLE_MULTIPLE_TX_QUEUE in order to
support multiple RX and TX queues.
Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18509
[bump release, improve commit description and package changes]
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Disable ASPM support for this NIC, fixing strange behavior problems, such as
increased latency, strange uneven throughput, etc.
With this option disabled the NIC achieves stable performance.
Upsteam r8169 driver disables ASPM by default for this NIC.
Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18509
[bump release, fix commit description, split 2nd tx queue part]
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
This allows the network interface naming to be stable, free from any
possible interaction from external USB network devices that might
claim usb* interface names.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
This allows the network interface naming to be stable, free from any
possible interaction from external USB network devices that might
claim usb* interface names.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
This allows the network interface naming to be stable, free from any
possible interaction from external USB network devices that might
claim usb* interface names.
Signed-off-by: Pavel Kubelun <be.dissent@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18509
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
This allows the network interface naming to be stable, free from any
possible interaction from external USB network devices that might
claim usb* interface names.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
This allows the network interface naming to be stable, free from any
possible interaction from external USB network devices that might
claim usb* interface names.
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
ELECOM WRC-X3000GS2 is a 2.4/5 GHz band 11ax (Wi-Fi 6) router, based on
IPQ5018.
Specification:
- SoC : Qualcomm IPQ5018
- RAM : DDR3 256 MiB (Zentel A3T2GF40CBF-HP)
- Flash : SPI-NAND 128 MiB (Macronix MX35UF1G24AD-Z4I)
- WLAN : 2.4/5 GHz 2T2R
- 2.4 GHz : Qualcomm IPQ5018 (SoC)
- 5 GHz : Qualcomm Atheros QCN6102
- Ethernet : 5x 10/100/1000 Mbps
- wan (phy) : Qualcomm IPQ5018 (SoC)
- lan (switch) : Qualcomm Atheros QCA8337
- LEDs/Keys (GPIO): 8x/3x
- UART : through-hole on PCB, 4pins near the barcode
- assignment : 3.3V, TX, RX, NC, GND from the barcode side
- settings : 115200n8
- Power : 12 VDC, 1 A (Max. 11.5W)
Flash instruction using initramfs-factory.bin image:
1. Boot WRC-X3000GS2 normally with router mode
2. Access to the WebUI ("http://192.168.2.1/") on the device and open
the firmware update page ("ファームウェア更新")
3. Select the OpenWrt factory.bin image and click apply ("適用") button
4. Wait ~120 seconds to complete flashing
Switching to the stock firmware:
1. Load the elecom.sh script
. /lib/upgrade/elecom.sh
2. Check the current index of rootfs
bootconfig_rw_index 0:bootconfig rootfs
3. Set the index to inverted value
bootconfig_rw_index 0:bootconfig rootfs <value>
bootconfig_rw_index 0:bootconfig1 rootfs <value>
example:
- step2 returned "0":
bootconfig_rw_index 0:bootconfig rootfs 1
bootconfig_rw_index 0:bootconfig1 rootfs 1
- step2 returned "1":
bootconfig_rw_index 0:bootconfig rootfs 0
bootconfig_rw_index 0:bootconfig1 rootfs 0
4. Reboot
Partition Layout (Stock FW):
0x000000000000-0x000000080000 : "0:SBL1"
0x000000080000-0x000000100000 : "0:MIBIB"
0x000000100000-0x000000140000 : "0:BOOTCONFIG"
0x000000140000-0x000000180000 : "0:BOOTCONFIG1"
0x000000180000-0x000000280000 : "0:QSEE"
0x000000280000-0x000000380000 : "0:QSEE_1"
0x000000380000-0x0000003c0000 : "0:DEVCFG"
0x0000003c0000-0x000000400000 : "0:DEVCFG_1"
0x000000400000-0x000000440000 : "0:CDT"
0x000000440000-0x000000480000 : "0:CDT_1"
0x000000480000-0x000000500000 : "0:APPSBLENV"
0x000000500000-0x000000640000 : "0:APPSBL"
0x000000640000-0x000000780000 : "0:APPSBL_1"
0x000000780000-0x000000880000 : "0:ART"
0x000000880000-0x000000900000 : "0:TRAINING"
0x000000900000-0x000003c40000 : "rootfs"
0x000003c40000-0x000003fc0000 : "Config"
0x000003fc0000-0x000007300000 : "rootfs_1"
0x000007300000-0x000007680000 : "Config_2"
0x000007680000-0x000007b80000 : "Reserved"
0x000007b80000-0x000007c00000 : "FWHEADER"
0x000007c00000-0x000007c80000 : "Factory"
Known Issues:
- All Wi-Fi related peripherals are disabled.
This device has only 256 MiB RAM and it's too few for ath11k. To
prevent OOM when using LuCI or other softwares, disable Wi-Fi related
peripherals in device tree at the moment.
- This device has a Macronix MX35UF1G24AD SPI-NAND chip registered as
oobsize=128 in Linux Kernel. But using BCH8 breaks I/O on the chip
with the following errors, so this support uses BCH4 instead.
root@OpenWrt:~# strings /dev/mtdblock10
[26427.133154] mtdblock: MTD device '0:appsblenv' is NAND, please consider using UBI block devices instead.
[26427.134125] I/O error, dev mtdblock10, sector 0 op 0x0:(READ) flags 0x80700 phys_seg 4 prio class 2
[26427.142240] I/O error, dev mtdblock10, sector 8 op 0x0:(READ) flags 0x80700 phys_seg 3 prio class 2
[26427.151427] I/O error, dev mtdblock10, sector 16 op 0x0:(READ) flags 0x80700 phys_seg 2 prio class 2
[26427.160440] I/O error, dev mtdblock10, sector 24 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 2
[26427.169619] I/O error, dev mtdblock10, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[26427.178083] Buffer I/O error on dev mtdblock10, logical block 0, async page read
Notes:
- This device has dual-boot feature and it's managed by the index in the
0:bootconfig and 0:bootconfig1 partitions.
MAC Addresses:
LAN : 38:97:A4:xx:xx:60 (0:APPSBLENV, "eth1addr"/"ethaddr" (text))
WAN : 38:97:A4:xx:xx:63 (0:APPSBLENV, "eth0addr" (text))
2.4 GHz: 38:97:A4:xx:xx:61 (0:APPSBLENV, "wifi0" (text))
5 GHz : 38:97:A4:xx:xx:62 (0:APPSBLENV, "wifi1" (text))
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18543
Signed-off-by: Robert Marko <robimarko@gmail.com>
Add support for ELECOM WRC-X3000GS2 to update "bootdelay" variable
configured as "0" by default when sysupgrade.
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18543
Signed-off-by: Robert Marko <robimarko@gmail.com>
Changes: https://github.com/u-boot/u-boot/compare/v2025.01...v2025.04
Drop patch 100-rockchip-add-FriendlyElec-NanoPi-R3S.patch. U-Boot
upstream now supports this board.
Tested on Radxa ROCK 5B+.
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
The TP-link Deco X80-5G is a AX WIFI router with a single 1G (LAN) and 1 2.5G (WAN) port with a built in Quectel 5G modem.
Specifications:
Architecture ARMv8-A (aarch64 Cortex A53, 4 cores)
Vendor Qualcomm
Bootloader U-Boot (2016)
System-On-Chip Qualcomm IPQ8074A (Networking Pro 1210 platform)
CPU/Speed 2.2GHZ
Flash-Chip ESMT F59D1G81MB-45TI 1G-bit NAND
Flash MB 128MB (1Gbit)
RAM-chip 2* ESMT M15T4G16256A-DEBG2G 2Gb DDR3L (32bit)
RAM MB 512MB (4Gbit)
WLan System-On-Chip (5g) Qualcomm QCN5054
WLan Front end modules (5g) 8* Qorvo QPF4588
WLAN (5G) A/N/AC/AX
WLAN Antenna (int) 8* (4 shared with 2.5G)
WLan System-On-Chip (2.4G) Qualcomm QCN5024
WLan Front end modules (2.4G) 4* Skyworks SKY85340-11
WLAN (2.4G) B/G/N/AX
WLAN Antenna (int) 4* (shared with 5g)
Eithernet-phy (1Gbit) Qualcomm (Atheros) AR8033-AL1A
Ethernet (1Gbit) 1*
Eithernet-phy (2.5Gbit) Qualcomm QCA8081
Ethernet (2.5Gbit) 1*
Switch Embedded in the SOC?
Serial 1.8v 8n1 (testpoints)
Modem System-On-Chip Qualcomm 5G RG50xQ (Snapdragon X55 platform)
5G modem capability 5000Mbps down 900Mbps up
5G modem bands N1/N3/N5/N7/N8/N20/N28/N38/N40/N41/N77/N78/N79
4G modem capability 4.5G LTE-Advanced Pro (Cat20 down 2Gbps) (Cat18 up 200Mbps)
4G modem FDD bands B1/B3/B5/B7/B8/B18/B19/B20/B26/B28
4G modem TDD bands B34/B38/B39/B40/B41/B42/B43
Modem antenna (int) 8* (5G/4G use)
Modem antenna (ext) 2* SMA connectors (5G/4G use)
SIM type 1* Nano SIM
Telephony 1* POTS RJ11
(see wiki for more info:)
https://openwrt.org/inbox/toh/tp-link/x80-5g_v1
Notes:
Installation Instructions:
Between antennas 7 and 8 on the PCB with the RGB harness there are three test pads labelled TP1 TP2 and TP3 connections are as follows:
|TP2|-- RX
|TP1|-- TX
|TP3|-- GND
RX requires an external pullup to operate somewhere around 5 K ohm but your luck may vary the Uart is 1.8v
Set a static IP and set up a tftpserver and terminal.
power the router and quickly type the magic string “tpl” and press enter to break into u-boot
in the shell set the environment variables to enable tftp booting
setenv ipaddr (routerIP)
setenv serverip (server IP)
load you initramfs:
tftpboot 0x44000000 (serverIP):openwrt-qualcommax-ipq807x-tplink_x80-5g-initramfs-uImage.itb
boot your initramfs
bootm
upload your factory image to /tmp
format and install the factory image:
ubiformat /dev/mtd12 -y -f /tmp/openwrt-qualcommax-ipq807x-tplink_x80-5g-squashfs-factory.ubi
Note as this device swaps root partitions upon update your boot partition may be set as mtd13
Update script to mount factory tplink partition's for MAC recovery and device data.
Capture Labelmac from Factory_data partition.
Patch LAN from Labelmac.
Patch ART from Labelmac.
Set GPIO to make modem operational from boot.
GPIO fan tables work like the stock device with three fan maps high active idle with a top fan speed of 6800 RPM.
High temp 70 deg speeds 6-8
Active temp 50 deg speeds 2-5
low temp 25 degree speed 0-1
Signed-off-by: jonathan brophy <professor_jonny@hotmail.com>
Link: https://github.com/openwrt/openwrt/pull/16329
Signed-off-by: Robert Marko <robimarko@gmail.com>
Prevent flashing truncated or otherwise corrupted uImage.FIT images
by verifying checksums and hashes of all sub-images before flashing
using the newly packaged fit_check_sign tool.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Introduce special handling for return code 74 (EBADMSG) of
platform_check_image which will mark the image as broken and hence
not allow the user to override the check using the --force option.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
APK is currently broken when built with GCC15 and LTO as it will then hang
indefinitevely on the package/install step.
Luckily, upstream was able to find the issue and fix it, so lets backport
the fix as GCC15 is the default compiler on Fedora 42(And soon more distros)
Link: https://github.com/openwrt/openwrt/pull/18549
Signed-off-by: Robert Marko <robimarko@gmail.com>
The Xiaomi MiWiFi 3A wireless router has a similar system architecture as the Xiaomi Mi 4A router, which is already officially supported by OpenWrt.
Product website: https://www.mi.com/miwifi3a
Device specification
--------------------
SoC: MT7628AN MIPS_24KEc @ 580 MHz 2.4G-bgn 2x2
WiFi: MT7612EN 5G-an, ac 80 MHz 2T2R
Flash: 16 MB
DRAM: 64 MB
Switch: MT7628AN (integrated in SoC)
Ethernet: 1 x 10 /100 Mbps
USB: None
Antennas: 2 x 2,4 GHz and 2 x 5 GHz (all are external and non-detachable)
LEDs: blue/red/amber
Buttons: Reset
Serial: 115200,8n1
MAC addresses as verified by OEM firmware:
------------------------------------------
use address source
LAN *:DD factory 0x28
WAN *:DD factory 0x28
2g *:DE factory 0x4
5g *:DF factory 0x8004
OEM firmware uses VLAN's to create the network interface for WAN and LAN.
Bootloader info:
----------------
The stock bootloader uses a "Dual ROM Partition System".
OS1 is a deep copy of OS2.
The bootloader starts OS2 by default.
To force start OS1 it is needed to set "flag_try_sys2_failed=1".
How to install:
---------------
1- Use OpenWRTInvasion to gain Telnet, SSH and FTP access: https://github.com/acecilia/OpenWRTInvasion
[IP: 192.168.31.1 | Username: root | Password: root | FTP-Port: 21]
2- Connect to router using telnet or ssh.
3- Backup all partitions. Use command "dd if=/dev/mtd0 of=/tmp/mtd0". Copy /tmp/mtd0 to computer using ftp.
4- Copy openwrt-ramips-mt76x8-xiaomi_miwifi-3a-squashfs-sysupgrade.bin to /tmp in router using ftp.
5- Enable UART access and change start image to OS1.
nvram set uart_en=1
nvram set flag_last_success=1
nvram set boot_wait=on
nvram set flag_try_sys2_failed=1
nvram commit
6- Erase OS1 & OS2 and install OpenWrt
mtd erase OS1
mtd erase OS2
mtd -r write /tmp/openwrt-ramips-mt76x8-xiaomi_miwifi-3a-squashfs-sysupgrade.bin OS1
Credits:
--------
This PR is based on the work of Zehao Zhang (Github: @ZZH-Finalize) that he had published in the PR: #15698
Signed-off-by: Olgun Demir <olgun.demir@mail.com.tr>
Link: https://github.com/openwrt/openwrt/pull/18427
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
If SYS_statmount/SYS_listmount is not provided by the libc,
util-linux will fall back to __NR_statmount/__NR_listmount from the
kernel UAPI headers.
However it is not guaranteed that these symbols are actually visible in
mount-api-utils.
Include linux/unistd.h which provides syscall numbers.
While this header is specific to Linux, the code is already using
linux/mount.h.
Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18539
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Some ISPs require the client ID to be set in the DHCP and DHCPv6
requests. OpenWrt sets the client id for IPv6 but not for IPv4 by
default.
Align this behavior between DHCPv4 and DHCPv6.
ISPs that require this measure are Deutsche Glasfaser as well as some
Entega connections.
Signed-off-by: David Bauer <mail@david-bauer.net>
Add support for GL.iNET (AX3000) B3000.
Speficiations:
* SoC: Qualcomm IPQ5018 (64-bit dual-core ARM Cortex-A53 @ 1.0Ghz)
* Memory: Winbond W634GU6NQB-11 (512 MiB DDR3-933)
* Serial Port: 3v3 TTL 115200n8
* Wi-Fi: IPQ5018 (2x2 2.4 Ghz 802.11b/g/n/ax)
* Wi-Fi: QCN6102 (2x2:2 5 Ghz 802.11an/ac/ax)
* Ethernet: IPQ5018 integrated virtual switch connected to an external
QCA8337 switch (3 Ports 10/100/1000 GBASE-T)
* Flash: Winbond W25N01GWZEIG (128 MiB)
* LEDs: 1x single-color blue LED (GPIO 24 Active High)
1x single-color white LED (GPIO 23 Active High)
* Buttons: 1x Reset (GPIO 27 Active Low)
Flash Instructions:
*** The .img files are now universal ! ***
Openwrt --> openwrt-qualcommax-ipq50xx-glinet_gl-b3000-squashfs-factory.img
GL.iNet OEM --> openwrt-b3000-4.5.18-0731-1722397535.img
Either file can be flashed, in any of the available upgrade options, in both Firmwares.
Pick a file .. pick a method .. and SEND IT !!
Signed-off-by: Scott Mercer <TheRootEd24@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17903
Signed-off-by: Robert Marko <robimarko@gmail.com>
The nvram file is generic for all stm32 boards, add a symlink for
STM32MP157C-DK2 and the SCMI variant.
Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/18119
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Add entry for STM32MP157C-DK2 and the SCMI variant.
Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/18119
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Add entry for STM32MP157C-DK2 and the SCMI variant.
Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/18119
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Add entry for STM32MP157C-DK2 and the SCMI variant.
Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/18119
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Add backport patch that fixes ath12k regdomain parsing failure in
6GHz band triggered by the latest regdb/board-2.bin update.
Signed-off-by: Mantas Pucka <mantas@8devices.com>
Link: https://github.com/openwrt/openwrt/pull/18512
Signed-off-by: Robert Marko <robimarko@gmail.com>
Previous commits missed some refreshing
Signed-off-by: Mantas Pucka <mantas@8devices.com>
Link: https://github.com/openwrt/openwrt/pull/18512
Signed-off-by: Robert Marko <robimarko@gmail.com>
During envtools conversion to the generic uboot-tools package, a syncconfig
call was added to the configure step which was previously not there.
We received multiple spourious reports that now envtools were failing to
build [1], but it was not reproducible.
However, it seems that this could easily be reproduced on MacOS 15 and
somehow that syncconfig call is breaking build by Makefile.autoconf not
being executed and thus no "include/config.h" is generated.
So, since this call was not previously there and U-Boot will actually do
syncconfig on its own when needed lets drop it.
[1] 293d5f1366 (commitcomment-154347516)
Link: https://github.com/openwrt/openwrt/pull/18515
Signed-off-by: Robert Marko <robimarko@gmail.com>
Look for OPENWRT_VERBOSE and pass it down to the U-Boot so we actually
get verbose build info when needed for debugging.
Link: https://github.com/openwrt/openwrt/pull/18515
Signed-off-by: Robert Marko <robimarko@gmail.com>
Fix an issue where NCM interface initialization fails because of wrong
modem manufacturer detection.
gcom call returns an output with Windows-style line breaks (containing \r)
what makes awk call return empty or malformed manufacturer name. Changing
awk RS variable to handle both \n and \r\n as line break fixes this issue.
Fixes#17448 and #17998 GitHub issues.
Signed-off-by: Jakub Łabuz <jakub@labuz.dev>
Link: https://github.com/openwrt/openwrt/pull/18460
Signed-off-by: Robert Marko <robimarko@gmail.com>
Update uboot-ath79 package to v2025.04 for ath79 devices.
Additionally, new "CONFIG_NO_NET" option was introduced and replaced
disabled CONFIG_NET option ("# CONFIG_NET is not set"). So replace
that old options in the NEC Aterm devices as well.
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18475
Signed-off-by: Robert Marko <robimarko@gmail.com>
The submenu of two diag modules is missing, fix it.
Fixes: 65de1e0 ("kernel: add missing symbols for lxc")
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/18480
Signed-off-by: Robert Marko <robimarko@gmail.com>
updated 200-ubus_dns.patch
all remaining patches not required
Changelog for version 2.91 - https://thekelleys.org.uk/dnsmasq/CHANGELOG
version 2.91
Fix spurious "resource limit exceeded messages". Thanks to
Dominik Derigs for the bug report.
Fix out-of-bounds heap read in order_qsort().
We only need to order two server records on the ->serial field.
Literal address records are smaller and don't have
this field and don't need to be ordered on it.
To actually provoke this bug seems to need the same server-literal
to be repeated twice, e.g., --address=/a/1.1.1.1 --address-/a/1.1.1.1
which is clearly rare in the wild, but if it did exist it could
provoke a SIGSEGV. Thanks to Daniel Rhea for fuzzing this one.
Fix buffer overflow when configured lease-change script name
is too long.
Thanks to Daniel Rhea for finding this one.
Improve behaviour in the face of non-responsive upstream TCP DNS
servers. Without shorter timeouts, clients are blocked for too long
and fail with their own timeouts.
Set --fast-dns-retries by default when doing DNSSEC. A single
downstream query can trigger many upstream queries. On an
unreliable network, there may not be enough downstream retries
to ensure that all these queries complete.
Improve behaviour in the face of truncated answers to queries
for DNSSEC records. Getting these answers by TCP doesn't now
involve a faked truncated answer to the downstream client to
force it to move to TCP. This improves performance and robustness
in the face of broken clients which can't fall back to TCP.
No longer remove data from truncated upstream answers. If an
upstream replies with a truncated answer, but the answer has some
RRs included, return those RRs, rather than returning and
empty answer.
Fix handling of EDNS0 UDP packet sizes.
When talking upstream we always add a pseudo header, and set the
UDP packet size to --edns-packet-max. Answering queries from
downstream, we get the answer (either from upstream or local
data) If local data won't fit the advertised size (or 512 if
there's not an EDNS0 header) return truncated. If upstream
returns truncated, do likewise. If upstream is OK, but the
answer is too big for downstream, truncate the answer.
Modify the behaviour of --synth-domain for IPv6.
When deriving a domain name from an IPv6 address, an address
such as 1234:: would become 1234--.example.com, which is
not legal in IDNA2008. Stop using the :: compression method,
so 1234:: becomes
1234-0000-0000-0000-0000-0000-0000-0000.example.com
Fix broken dhcp-relay on *BSD. Thanks to Harold for finding
this problem.
Add --dhcp-option-pxe config. This acts almost exactly like
--dhcp-option except that the defined option is only sent when
replying to PXE clients. More importantly, these options are sent
in reply PXE clients when dnsmasq in acting in PXE proxy mode. In
PXE proxy mode, the set of options sent is defined by the PXE standard
and the normal set of options is not sent. This config allows arbitrary
options in PXE-proxy replies. A typical use-case is to send option
175 to iPXE. Thanks to Jason Berry for finding the requirement for
this.
Support PXE proxy-DHCP and DHCP-relay at the same time.
When using PXE proxy-DHCP, dnsmasq supplies PXE information to
the client, which also talks to another "normal" DHCP server
for address allocation and similar. The normal DHCP server may
be on the local network, but it may also be remote, and accessed via
a DHCP relay. This change allows dnsmasq to act as both a
PXE proxy-DHCP server AND a DHCP relay for the same network.
Fix erroneous "DNSSEC validated" state with non-DNSSEC
upstream servers. Thanks to Dominik Derigs for the bug report.
Handle queries with EDNS client subnet fields better. If dnsmasq
is configured to add an EDNS client subnet to a query, it is careful
to suppress use of the cache, since a cached answer may not be valid
for a query with a different client subnet. Extend this behaviour
to queries which arrive a dnsmasq already carrying an EDNS client
subnet.
Handle DS queries to auth zones. When dnsmasq is configured to
act as an authoritative server and has an authoritative zone
configured, and receives a query for that zone _as_forwarder_
it answers the query directly rather than forwarding it. This
doesn't affect the answer, but it saves dnsmasq forwarding the
query to the recursor upstream, which then bounces it back to dnsmasq
in auth mode. The exception should be when the query is for the root
of zone, for a DS RR. The answer to that has to come from the parent,
via the recursor, and will typically be a proof-of-non-existence
since dnsmasq doesn't support signed zones. This patch suppresses
local answers and forces forwarding to the upstream recursor for such
queries. It stops breakage when a DNSSEC validating client makes
queries to dnsmasq acting as forwarder for a zone for which it is
authoritative.
Implement "DNS-0x20 encoding", for extra protection against
reply-spoof attacks. Since DNS queries are case-insensitive,
it's possible to randomly flip the case of letters in a query
and still get the correct answer back.
This adds an extra dimension for a cache-poisoning attacker
to guess when sending replies in-the-blind since it's expected
that the legitimate answer will have the same pattern of upper
and lower case as the query, so any replies which don't can be
ignored as malicious. The amount of extra entropy clearly depends
on the number of a-z and A-Z characters in the query, and this
implementation puts a hard limit of 32 bits to make resource
allocation easy. This about doubles entropy over the standard
random ID and random port combination. This technique can interact
badly with rare broken DNS servers which don't preserve the case
of the query in their reply. The first time a reply is returned
which matches the query in all respects except case, a warning
will be logged. In this release, 0x020-encoding is default-off
and must be explicitly enabled with --do-0x20-encoding. In future
releases it may default on. You can avoid a future release
changing the behaviour of an installation with --no-x20-encode.
Fix a long-standing problem when two queries which are identical
in every repect _except_ case, get combined by dnsmasq. If
dnsmasq gets eg, two queries for example.com and Example.com
in quick succession it will get the answer for example.com from
upstream and send that answer to both requestors. This means that
the query for Example.com will get an answer for example.com, and
in the modern DNS, that answer may not be accepted.
Signed-off-by: Rudy Andram <rmandrad@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18357
Signed-off-by: Robert Marko <robimarko@gmail.com>
Update ca-certificates to version 20241223
* Update Mozilla certificate authority bundle to version 2.70.
The following certificate authorities were added (+):
+ Telekom Security TLS ECC Root 2020
+ Telekom Security TLS RSA Root 2023
+ FIRMAPROFESIONAL CA ROOT-A WEB
+ TWCA CYBER Root CA
+ SecureSign Root CA12
+ SecureSign Root CA14
+ SecureSign Root CA15
The following certificate authorities were removed (-):
- Security Communication Root CA (closes: #1063093)
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Link: https://github.com/openwrt/openwrt/pull/18468
Signed-off-by: Robert Marko <robimarko@gmail.com>
Currently, ls-rcw package is being included in the individual
profile DEVICE_PACKAGES but using the feature that allows skipping their
inclusion in the end image package list if prefixed with a tilde(~) which
was added in:
377b66990b ("build: introduce support to declare skip package")
But it not added to Image Builder so currently trying to build layerscape
device images in Image Builder will fail with:
ERROR: '~ls-rcw' is not a valid world dependency, format is name(@tag)([<>~=]version)
So, instead of having to rely on support for skipping package installation
and declaring the ls-rcw package in DEVICE_PACKAGES lets select it when
layerscape/armv7 target is selected.
Fixes: #18411
Link: https://github.com/openwrt/openwrt/pull/18462
Signed-off-by: Robert Marko <robimarko@gmail.com>
Currently, ls-ddr-phy package is being included in the individual
profile DEVICE_PACKAGES but using the feature that allows skipping their
inclusion in the end image package list if prefixed with a tilde(~) which
was added in:
377b66990b ("build: introduce support to declare skip package")
But it not added to Image Builder so currently trying to build layerscape
device images in Image Builder will fail with:
ERROR: '~ls-ddr-phy' is not a valid world dependency, format is name(@tag)([<>~=]version)
So, instead of having to rely on support for skipping package installation
and declaring the ls-ddr-phy package in DEVICE_PACKAGES lets select it when
layerscape/armv8_64b target is selected.
Fixes: #18412
Link: https://github.com/openwrt/openwrt/pull/18462
Signed-off-by: Robert Marko <robimarko@gmail.com>
Currently, ls-dpl package is being included in the individual
profile DEVICE_PACKAGES but using the feature that allows skipping their
inclusion in the end image package list if prefixed with a tilde(~) which
was added in:
377b66990b ("build: introduce support to declare skip package")
But it not added to Image Builder so currently trying to build layerscape
device images in Image Builder will fail with:
ERROR: '~ls-dpl' is not a valid world dependency, format is name(@tag)([<>~=]version)
So, instead of having to rely on support for skipping package installation
and declaring the ls-dpl package in DEVICE_PACKAGES lets select it when
layerscape/armv8_64b target is selected.
Fixes: #18412
Link: https://github.com/openwrt/openwrt/pull/18462
Signed-off-by: Robert Marko <robimarko@gmail.com>
Currently, ls-mc package is being included in the individual
profile DEVICE_PACKAGES but using the feature that allows skipping their
inclusion in the end image package list if prefixed with a tilde(~) which
was added in:
377b66990b ("build: introduce support to declare skip package")
But it not added to Image Builder so currently trying to build layerscape
device images in Image Builder will fail with:
ERROR: '~ls-mc' is not a valid world dependency, format is name(@tag)([<>~=]version)
So, instead of having to rely on support for skipping package installation
and declaring the ls-mc package in DEVICE_PACKAGES lets select it when
layerscape/armv8_64b target is selected.
Fixes: #18412
Link: https://github.com/openwrt/openwrt/pull/18462
Signed-off-by: Robert Marko <robimarko@gmail.com>
Currently, fman-ucode package is being included in the individual
profile DEVICE_PACKAGES but using the feature that allows skipping their
inclusion in the end image package list if prefixed with a tilde(~) which
was added in:
377b66990b ("build: introduce support to declare skip package")
But it not added to Image Builder so currently trying to build layerscape
device images in Image Builder will fail with:
ERROR: '~fman-ucode' is not a valid world dependency, format is name(@tag)([<>~=]version)
So, instead of having to rely on support for skipping package installation
and declaring the fman-ucode package in DEVICE_PACKAGES lets select it when
layerscape/armv8_64b target is selected.
Fixes: #18412
Link: https://github.com/openwrt/openwrt/pull/18462
Signed-off-by: Robert Marko <robimarko@gmail.com>
Currently, tfa-layerscape packages are being included in the individual
profile DEVICE_PACKAGES but using the feature that allows skipping their
inclusion in the end image package list if prefixed with a tilde(~) which
was added in:
377b66990b ("build: introduce support to declare skip package")
But it not added to Image Builder so currently trying to build layerscape
device images in Image Builder will fail with:
ERROR: '~trusted-firmware-a-ls1012a-frdm' is not a valid world dependency, format is name(@tag)([<>~=]version)
So, instead of having to rely on support for skipping package installation
and declaring the individual TFA packages in DEVICE_PACKAGES we can just
do what other targets do and set BUILD_DEVICES so that TFA packages are
automatically set.
Fixes: #18412
Link: https://github.com/openwrt/openwrt/pull/18462
Signed-off-by: Robert Marko <robimarko@gmail.com>
Currently, bcm63xx-cfe is being installed into kernel build dir, however
that does not work for Image Builder as only certain artifacts from kernel
build dir are included in Image Builder.
So, simply install bcm63xx-cfe into image staging dir so its artifacts can
be used in Image Builder as well.
Fixes: #18408Fixes: #18409
Link: https://github.com/openwrt/openwrt/pull/18463
Signed-off-by: Robert Marko <robimarko@gmail.com>
The Radxa ROCK 4SE[1] is a single board computer using the Rockchip
RK3399-T.
Hardware
--------
- Dual-core Cortex-A72 and quad-core Cortex-A53 CPU
- Mali-T860MP4 GPU
- LPDDR4 4GB RAM
- M.2 M Key slot (PCIe 2.1 x4)
- eMMC connector
- microSD card slot
- Wi-Fi 5 (not supported)
- Gigabit Ethernet with PoE support (additional PoE HAT required)
- USB 3.0 Type-A OTG port
- USB 3.0 Type-A HOST port
- 2x USB 2.0 Type-A HOST ports
- USB Type-C power port (5V only)
- 40 Pin GPIO header
[1] https://radxa.com/products/rock4/4se
Installation
------------
Uncompress the OpenWrt sysupgrade and write it to the micro SD card or
internal eMMC using dd.
Signed-off-by: FUKAUMI Naoki <naoki@radxa.com>
Link: https://github.com/openwrt/openwrt/pull/17554
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
The Radxa ROCK 4C+[1] is a single board computer with dual HDMI using
the Rockchip RK3399-T.
Hardware
--------
- Dual-core Cortex-A72 and quad-core Cortex-A53 CPU
- Mali-T860MP4 GPU
- LPDDR4 4GB RAM
- eMMC connector
- microSD card slot
- Wi-Fi 5 (not supported)
- Gigabit Ethernet with PoE support (additional PoE HAT required)
- USB 3.0 Type-A OTG port
- USB 3.0 Type-A HOST port
- 2x USB 2.0 Type-A HOST ports
- USB Type-C power port (5V only)
- 40 Pin GPIO header
[1] https://radxa.com/products/rock4/4cp
Installation
------------
Uncompress the OpenWrt sysupgrade and write it to the micro SD card or
internal eMMC using dd.
Signed-off-by: FUKAUMI Naoki <naoki@radxa.com>
Link: https://github.com/openwrt/openwrt/pull/17554
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit adds support for Mercusys MR80X(EU) v3 router.
Device specification:
- SoC: Mediatek MT7981b, Cortex-A53, 64-bit
- RAM: 512MB
- Flash: SPI NAND GigaDevice GD5F1GQ5UEYIGY (128 MB)
- Ethernet: 4x 100/1000 Mbps LAN1,LAN2,LAN3 & WAN
- Wireless: 2.4GHz (802.11 b/g/n/ax)
- Wireless: 5GHz (802.11 a/n/ac/ax)
- LEDs: 1 orange and 1 green status LEDs, 4 green gpio-controlled LEDs
on ethernet ports
- Buttons: 1 (Reset)
- Bootloader: Main U-Boot - U-Boot 2022.01-rc4. Additionally, both UBI
slots contain "seconduboot" (also U-Boot 2022.01-rc4)
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; setenv bootcmd bootm 0x46000000; 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.
Stock layout:
0x000000000000-0x000000200000 : "boot"
0x000000200000-0x000000300000 : "u-boot-env"
0x000000300000-0x000003500000 : "ubi0"
0x000003500000-0x000006700000 : "ubi1"
0x000006700000-0x000006f00000 : "userconfig"
0x000006f00000-0x000007300000 : "tp_data"
ubi0/ubi1 format:
U-Boot at boot checks that all volumes are in place:
+-------------------------------+
| Volume Name: uboot Vol ID: 0|
| Volume Name: kernel Vol ID: 1|
| Volume Name: rootfs Vol ID: 2|
+-------------------------------+
MAC addresses:
+---------+-------------------+-----------+
| | MAC | Algorithm |
+---------+-------------------+-----------+
| label | 94:0C:xx:xx:xx:12 | label |
| WAN | 94:0C:xx:xx:xx:13 | label+1 |
| LAN | 94:0C:xx:xx:xx:12 | label |
| WLAN 2g | 94:0C:xx:xx:xx:11 | label-1 |
| WLAN 5g | 94:0C:xx:xx:xx:10 | label-2 |
+---------+-------------------+-----------+
label MAC address was found in UBI partition "tp_data", file
"default-mac".
Signed-off-by: Schneider Azima <Schneider-Azima12@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/18181
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Some ath12k radios can take long time to initialize and register a
phy. This can cause netifd to fail to detect them during initial scan.
To address this issue, a hotplug script has been added to retry
configuration once they have registered their phy.
Signed-off-by: Mantas Pucka <mantas@8devices.com>
Link: https://github.com/openwrt/openwrt/pull/18459
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Add patches to enable QCN9274 radios that support both 5GHz and 6GHz
bands.
Signed-off-by: Mantas Pucka <mantas@8devices.com>
Link: https://github.com/openwrt/openwrt/pull/18459
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
In board-2.bin available at linux-firmare regdb is stored with
board-id=255. This change is needed to properly use it.
Signed-off-by: Mantas Pucka <mantas@8devices.com>
Link: https://github.com/openwrt/openwrt/pull/18459
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
lldpd can send several hardware inventory TLV fields. Extend the init
script to provide these when the existing flag 'lldpmed_no_inventory' is
disabled. Five new methods provide default values for some of them,
taken from /etc/os-release and /etc/board.json.
There is no homogeneous method to determine the hardware serial number,
so it can be provided manually, as can asset ID.
Note: properties >= 32 characters are truncated at send time (by lldpd),
and some (Cisco) equipment displays junk after strings >= 32 characters.
So truncate to 31.
Tested on: 24.10.0 (known compatible with 22 and 23 also)
===
Example
===
The following lldpd config lines:
configure inventory hardware-revision "v0"
configure inventory software-revision "r28427-6df0e3d02a"
configure inventory firmware-revision "OpenWrt 24.10.0"
configure inventory serial-number "ABCDEF-123456"
configure inventory manufacturer "glinet"
configure inventory model "GL.iNet GL-MT6000"
# 32 characters:
configure inventory asset "abcdefghijklmnopqrstuvwxyz 12345"
Produce the following TLV (decoded by Wireshark):
Telecommunications Industry Association TR-41 Committee - Inventory - Hardware Revision
1111 111. .... .... = TLV Type: Organization Specific (127)
.... ...0 0000 0110 = TLV Length: 6
Organization Unique Code: 00:12:bb (Telecommunications Industry Association TR-41 Committee)
Media Subtype: Inventory - Hardware Revision (0x05)
Hardware Revision: v0
Telecommunications Industry Association TR-41 Committee - Inventory - Firmware Revision
1111 111. .... .... = TLV Type: Organization Specific (127)
.... ...0 0001 0011 = TLV Length: 19
Organization Unique Code: 00:12:bb (Telecommunications Industry Association TR-41 Committee)
Media Subtype: Inventory - Firmware Revision (0x06)
Firmware Revision: OpenWrt 24.10.0
Telecommunications Industry Association TR-41 Committee - Inventory - Software Revision
1111 111. .... .... = TLV Type: Organization Specific (127)
.... ...0 0001 0101 = TLV Length: 21
Organization Unique Code: 00:12:bb (Telecommunications Industry Association TR-41 Committee)
Media Subtype: Inventory - Software Revision (0x07)
Software Revision: r28427-6df0e3d02a
Telecommunications Industry Association TR-41 Committee - Inventory - Serial Number
1111 111. .... .... = TLV Type: Organization Specific (127)
.... ...0 0001 0100 = TLV Length: 20
Organization Unique Code: 00:12:bb (Telecommunications Industry Association TR-41 Committee)
Media Subtype: Inventory - Serial Number (0x08)
Serial Number: ABCDEF-123456
Telecommunications Industry Association TR-41 Committee - Inventory - Manufacturer Name
1111 111. .... .... = TLV Type: Organization Specific (127)
.... ...0 0000 1010 = TLV Length: 10
Organization Unique Code: 00:12:bb (Telecommunications Industry Association TR-41 Committee)
Media Subtype: Inventory - Manufacturer Name (0x09)
Manufacturer Name: glinet
Telecommunications Industry Association TR-41 Committee - Inventory - Model Name
1111 111. .... .... = TLV Type: Organization Specific (127)
.... ...0 0001 0101 = TLV Length: 21
Organization Unique Code: 00:12:bb (Telecommunications Industry Association TR-41 Committee)
Media Subtype: Inventory - Model Name (0x0a)
Model Name: GL.iNet GL-MT6000
Telecommunications Industry Association TR-41 Committee - Inventory - Asset ID
1111 111. .... .... = TLV Type: Organization Specific (127)
.... ...0 0010 0011 = TLV Length: 35
Organization Unique Code: 00:12:bb (Telecommunications Industry Association TR-41 Committee)
Media Subtype: Inventory - Asset ID (0x0b)
Asset ID: abcdefghijklmnopqrstuvwxyz 1234
The Cisco DUT displays:
Hardware Revision: v0
Firmware Revision: OpenWrt 24.10.0
Software Revision: r28427-6df0e3d02a
Serial Number: ABCDEF-123456
Manufacturer Name: glinet
Model Name: GL.iNet GL-MT6000
Asset ID: abcdefghijklmnopqrstuvwxyz 1234
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18354
Signed-off-by: Robert Marko <robimarko@gmail.com>
Partially revert removal of 003 patch to fix compilation error with
kernel 6.6.
In 6.6 .remove still require int and .remove_new needs to be used.
Fixes: bfb106e8ae ("mac80211: backport API change for sta rate control update")
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
This simplifies script or API usage of this command to remove values directly
without having to calculate the index
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Hardware specification:
SoC: MediaTek MT7986A 4x A53
Flash: ESMT F50L1G41LB 128MB
RAM: M16U4G16256A DDR4 512MB
Ethernet: 2x 2.5G + 3x 1G
USB: 1x USB 3.0
WiFi1: MT7975N 2.4GHz 4T4R
WiFi2: MT7975PN 5GHz 4T4R
Button: Reset, WPS
Power: DC 12V 2A
Flash instructions:
Connect to the router using ssh or telnet,
username: useradmin, password is the web
login password of the router.
Use scp to upload bl31-uboot.fip and flash:
"mtd write xxx-bl31-uboot.fip FIP"
"mtd erase ubi"
Connect to the router via the Lan port,
set a static ip of your PC.
(ip 192.168.1.254, gateway 192.168.1.1)
Download initramfs image, reboot router,
waiting for tftp recovery to complete.
After openwrt boots up, perform sysupgrade.
Note:
Back up all mtd partitions before flashing.
Signed-off-by: Yujie Zhu <libriunc@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18138
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Add qualcommbe to the supported target of dwc3-qcom kernel module. USB3
is correctly supported on IPQ95xx and can be enabled.
Link: https://github.com/openwrt/openwrt/pull/17788
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Currently if a target wants to use acm or ncm gadget config,
they need to select both usbgadget and the config package
such as usbgadget-acm.
It's better if the target just select usbgadget-acm and get
all dependencies satisfied.
Adding a dependency using +usbgadget fixes this.
Link: http://patchwork.ozlabs.org/project/openwrt/patch/20250403-dns313-usb-serial-v2-3-d84de8e86931@linaro.org/
Reviewed-by: Chuanhong Guo <gch981213@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
ath9k uses a deprecated GPIO API that assumes a starting base of 0. This
is no longer the case and so must be fixed.
Upstream pending patch.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17445
Signed-off-by: Robert Marko <robimarko@gmail.com>
This is only used by mach files, which are no longer used in OpenWrt.
Allows removing a custon ath9k_platform.h file.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17445
Signed-off-by: Robert Marko <robimarko@gmail.com>
These only work with and are useful with mach files. Now that those are
gone, this can go too.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17445
Signed-off-by: Robert Marko <robimarko@gmail.com>
Simplify patch with gpiochip_add_data, struct reduction, new GPIO API,
and header cleanup.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17445
Signed-off-by: Robert Marko <robimarko@gmail.com>
Specifications:
* SoC: Qualcomm IPQ6018 (64-bit Quad-core Arm Cortex-A53 @ 1800MHz)
* Memory: 1 GiB
* Serial Port: 3v3 TTL 115200n8
* Wi-Fi: QCN9074 (4x4 5 GHz 802.11ax)
* Wi-Fi: IPQ6018 (4x4 2.4 GHz 802.11b/g/n/ax)
* Ethernet: RTL8211F (10/100/1GBASE-T)
* Flash: ESMT F59D1G81MB (128 MiB)
* LEDs: 1x Green Status (GPIO 37 Active High), 1x Yellow Status (GPIO 32
Active High) and an LED global control GPIO (GPIO 36 Active High, set
up by U-Boot)
* Buttons: 1x Reset (GPIO 9 Active Low)
Installation Instructions (Serial+TFTP):
1. Solder 4 pin header to the pads near T32 and T31.
2. Connect 3V3 TTL port to TX, RX, and GND, which are pad T31, T32 and
the pad near T31 respectively. Be sure not to connect VCC and
crossover TX and RX.
3. Copy RAM firmware image
openwrt-qualcommax-ipq60xx-tplink_eap623od-hd-v1-initramfs-uImage.itb
to TFTP server root, available at 192.168.0.1.
4. Connect PoE ethernet cable to the RJ45 port and hold Ctrl+B in the
serial console (115200 baud) until autoboot is halted.
5. Run the following commands in the U-boot prompt:
# setenv serverip 192.168.0.1
# setenv ipaddr 192.168.0.99
# tftpboot 0x44000000 openwrt-qualcommax-ipq60xx-tplink_eap623od-hd-v1-initramfs-uImage.itb
# bootm
You may need to type Ctrl+C and Enter before running these commands
to clear invisible characters from the buffer.
6. Run the following command in a terminal to copy the sysupgrade image
to be installed (check IP address):
$ scp openwrt-qualcommax-ipq60xx-tplink_eap623od-hd-v1-squashfs-sysupgrade.bin root@192.168.1.1:/tmp/
7. Activate the OpenWrt serial console and run the following commands:
# cd /tmp
# sysupgrade -n openwrt-qualcommax-ipq60xx-tplink_eap623od-hd-v1-squashfs-sysupgrade.bin
8. The AP will reboot and OpenWrt will be successfully installed.
Signed-off-by: Yang Xiwen <forbidden405@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18389
Signed-off-by: Robert Marko <robimarko@gmail.com>
In recent glibc versions rpc functionality has been moved to a separate
library instead of glibc itself.
Depend on this library when rpc functionality is needed and glibc is
used.
Signed-off-by: Matthias Franck <matthias.franck@softathome.com>
Link: https://github.com/openwrt/openwrt/pull/17796
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
For WIFI7 devices (such as mt7925e), the dev width is currently
always "20 MHz (no HT)" in monitor mode.
Add EHT and HE160 support to iw_htmode to fix this issue.
Additionally, the following changes are made:
1. Set iw_htmode to 160MHz for VHT160. The reason for the current
VHT160 setting is unclear and seems to have been in place for
over a decade (ibss_htmode [1]). If anyone knows its impact,
please inform me so I can restore it.
2. Modify MHZ to MHz. The original matching table in the current
iw tool uses MHz. Although the match is case-insensitive,
correcting this won't hurt.
[1]: 768d09be87
Signed-off-by: Ming Kuang <ming@imkuang.com>
Link: https://github.com/openwrt/openwrt/pull/18319
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Enable building U-Boot/qca9558_nec_aterm profile for NEC Aterm WG2200HP.
This model has almost the same hardware as the other Aterm devices based
on Qualcomm Atheros QCA9558.
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17584
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This PR adds support for netis NX31 router.
Specification
-------------
- SoC : MediaTek MT7981BA dual-core ARM Cortex-A53 1.3 GHz
- RAM : 256 MiB DDR3
- Flash : SPI-NAND 128 MiB (ESMT)
- WLAN : MediaTek MT7976CN dual-band WiFi 6
- 2.4 GHz : b/g/n/ax, MIMO 2x2
- 5 GHz : a/n/ac/ax, MIMO 2x2
- Ethernet : 10/100/1000 Mbps x3 (LAN, MediaTek MT7531AE)
10/100/1000 Mbps x1 (WAN, SoC internal phy)
- USB : No
- Buttons : Mesh, Reset
- LEDs : 1x Power (blue), unmanaged
1x Status (blue), gpio-controlled
1x WiFi 2.4 GHz (blue), gpio-controlled
1x WiFi 5 GHz (blue), gpio-controlled
3x LAN activity (blue), switch-controlled
1x WAN activity (blue), gpio-controlled
- Power : 12 VDC, 1 A
Installation
------------
1. Connect to the router using ssh (user: admin, pass: web interface
password)
2. Make mtd backup:
cat /dev/mtd0 | gzip -1 -c > /tmp/mtd0_spi0.0.bin.gz
cat /dev/mtd1 | gzip -1 -c > /tmp/mtd1_BL2.bin.gz
cat /dev/mtd2 | gzip -1 -c > /tmp/mtd2_u-boot-env.bin.gz
cat /dev/mtd3 | gzip -1 -c > /tmp/mtd3_Factory.bin.gz
cat /dev/mtd4 | gzip -1 -c > /tmp/mtd4_FIP.bin.gz
cat /dev/mtd5 | gzip -1 -c > /tmp/mtd5_ubi.bin.gz
3. Download mtd backup from the /tmp dir of the router to your PC using
scp protocol
4. Upload OpenWrt 'bl31-uboot.fip', 'preloader.bin' images to the /tmp
dir of the router using scp protocol
5. Write FIP and BL2 (replace bootloader):
mtd write /tmp/openwrt-mediatek-filogic-netis_nx31-bl31-uboot.fip FIP
mtd write /tmp/openwrt-mediatek-filogic-netis_nx31-preloader.bin BL2
6. Place OpenWrt
'openwrt-mediatek-filogic-netis_nx31-initramfs-recovery.itb' image on
the tftp server (IP: 192.168.1.254)
7. Erase 'ubi' partition and reboot the router:
mtd erase ubi
reboot
8. U-Boot automatically boot OpenWrt recovery image from tftp server to
the RAM
9. Upload OpenWrt 'sysupgrade.itb' image to the /tmp dir of the router
(IP: 192.168.1.1) using scp protocol
10. Connect to the router using ssh and run:
sysupgrade -n openwrt-mediatek-filogic-netis_nx31-squashfs-sysupgrade.itb
Return to stock
---------------
1. Unpack stock BL2 and FIP partitions backup
2. Upload stock BL2 and FIP partitions backup to the /tmp dir of the
router using scp protocol
3. Connect to the router using ssh and run:
apk update && apk add kmod-mtd-rw
insmod mtd-rw i_want_a_brick=1
mtd unlock BL2
mtd unlock FIP
4. Restore backup:
mtd write /tmp/mtd4_FIP.bin FIP
mtd write /tmp/mtd1_BL2.bin BL2
5. Erase ubi and reboot:
mtd erase ubi
reboot
6. Power off the router
7. Press Reset button and power on the router. Release the button after
~10 sec
8. Navigate to U-Boot recovery web server (http://192.168.1.1/) and
upload the OEM firmware
Recovery
--------
1. Place OpenWrt
'openwrt-mediatek-filogic-netis_nx31-initramfs-recovery.itb' image 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
MAC addresses
-------------
+---------+-------------------+-----------+
| | MAC | Algorithm |
+---------+-------------------+-----------+
| LAN | dc:xx:xx:d1:xx:18 | label |
| WAN | dc:xx:xx:d1:xx:1a | label+2 |
| WLAN 2g | de:xx:xx:11:xx:19 | |
| WLAN 5g | de:xx:xx:71:xx:19 | |
+---------+-------------------+-----------+
The LAN MAC was found in 'Factory', 0x1fef20
The WAN MAC was found in 'Factory', 0x1fef26
The WLAN 2g/5g MAC prototype was found in 'Factory', 0x4
Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18324
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
**Huasifei WH3000 eMMC / Fudy MT3000**
Portable Wi-Fi 6 travel router based on MediaTek MT7981A SoC.
MT7981B+MT7976CN+RTL8221B Dual Core 1.3GHZ
**Specifications**
SoC: Filogic 820 MT7981A (1.3GHz)
RAM: DDR4 1GB
Flash: eMMC 8GB
WiFi: 2.4GHz and 5GHz with 3 antennas
Ethernet:
1x WAN (10/100/1000M)
1x LAN (10/100/1000/2500M)
USB: 1x USB 3.0 port
Two buttons: power/reset and mode (BTN_0)
LEDS: blue, red, blue+red=pink
UART: 3.3V, TX, RX, GND / 115200 8N1
**Installation via U-Boot rescue**
1. Set static IP 192.168.1.2 on your computer and default route as 192.168.1.1
2. Connect to the WAN port and hold the reset button while booting the device.
3. Wait for the LED to blink 5 times, and release the reset button.
4. Open U-boot web page on your browser at http://192.168.1.1
5. Select the OpenWRT sysupgrade image, upload it, and start the upgrade.
6. Wait for the router to flash the new firmware.
7. Wait for the router to reboot itself.
**Installation via sysupgrade**
Just flash sysupgrade file via [LuCI upgrade page](http://192.168.1.1/cgi-bin/luci/admin/system/flash) without saving the settings.
**Installation via SSH**
Upload the file to the router `/tmp` directory, `ssh root@192.168.1.1` and issue a command:
```
sysupgrade -n /tmp/openwrt-mediatek-filogic-huasifei_wh3000-emmc-squashfs-sysupgrade.bin
```
**Factory MAC**
You can find your Factory MAC which is mentioned on the box at `/dev/mmcblck0p2` partition `factory` starting from `0x4`
```
dd if=/dev/mmcblk0p2 bs=1 skip=4 count=6 | hexdump -C
```
**Enlarging a partition**
Though device has 8GB eMMC, it uses only 2GB `/dev/mmcblck0p6` as `rootfs` for `/rom` and `/overlay` leaving `/dev/mmcblck0p7` as empty unused space.
```
sgdisk -p /dev/mmcblk0
```
```
Disk /dev/mmcblk0: 15269888 sectors, 7.3 GiB
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 2BD17853-102B-4500-AA1A-8A21D4D7984D
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 14942174
Partitions will be aligned on 1024-sector boundaries
Total free space is 11197 sectors (5.5 MiB)
Number Start (sector) End (sector) Size Code Name
1 8192 9215 512.0 KiB 8300 u-boot-env
2 9216 13311 2.0 MiB 8300 factory
3 13312 21503 4.0 MiB 8300 fip
4 21504 29695 4.0 MiB 8300 config
5 29696 62463 16.0 MiB 8300 kernel
6 62464 4256767 2.0 GiB 8300 rootfs
7 4257792 14940159 5.1 GiB 8300
```
You can fix that by loading into `initramfs-kernel`, deleting empty `mmcblck0p7` partition and resizing `mmcblck0p6`
```
sysupgrade -F /tmp/openwrt-initramfs-kernel.bin
```
Install and run cfdisk
```
opkg update && opkg install cfdisk
cfdisk /dev/mmcblck0
```
- Select `mmcblck0p7` -> Delete
- Select `mmcblck0p6` -> Resize -> Write -> yes -> Quit
You will not see any difference in `cat /proc/partitions` after that but just flash a `sysupgrade` and you'll get the whole 7.3GB space for the `/overlay`.
Co-developed-by: hecatae <horus.ra@gmail.com>
Signed-off-by: Fil Dunsky <filipp.dunsky@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18220
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
ATF supports rk3588 since version 2.12, so let's enable it in
arm-trusted-firmware-rockchip.
We still need the TPL to initialize RAM, but keeping rk3588 in rkbin
would cause a duplicate package name, so rename rk3588 to rk3588-tpl in
rkbin.
Finally, point uboot-rockchip for rk3588 to bl31 built by this package,
and add a dependency on the new trusted-firmware-a-rk3588-tpl pacakge.
While this doesn't necessarily add features, we now no longer rely on
the rk3588_bl31_v1.45.elf blob provided by Rockchip, which is always a
good thing.
Tested on Radxa ROCK 5B+.
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
And remove no-warn-rwx-segments hack, as this is no longer needed and
actually causes build to fail. See also commit c117d7a37a
("include/trusted-firmware-a.mk: remove the no-warn-rwx-segments hack").
Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Currently, building at91 subtargets via image builder will fail as the
required built at91bootstrap is not present in the image builder at all
since its presumed to be in the binary directory which obviously does not
exist yet.
So, lets install the at91bootstrap binary into image staging directory and
use that instead
Link: https://github.com/openwrt/openwrt/pull/18414
Signed-off-by: Robert Marko <robimarko@gmail.com>
Currently, building at91 subtargets via image builder will fail as the
required built u-boot is not present in the image builder at all since its
presumed to be in the binary directory which obviously does not exist yet.
So, lets install the u-boot binary into image staging directory and use
that instead.
Link: https://github.com/openwrt/openwrt/pull/18414
Signed-off-by: Robert Marko <robimarko@gmail.com>
Netgear WAX610 / WAX610Y is a 802.11ax AP claiming AX1800 support.
Specifications:
---------------
* CPU: Qualcomm IPQ6018 Quad core Cortex-A53
* RAM: 512MB
* Storage: Winbond W29N01HZBINF 128MB NAND
* Ethernet:
* 2.5GbE RJ45 port with PoE input
* WLAN:
* 2.4GHz/5GHz
* LEDs:
* Power: Dual-color LED (Green / Orange), Single-color LED (Blue)
* Ethernet: Dual-color LED (Green / Orange)
* 2.4Ghz WiFi: 2x Single-color LED (Blue, Green)
* 5Ghz WiFi: 2x Single-color LED (Blue, Green)
* Buttons:
* 1x Reset
* UART: 4-pin populated header
* Pinout 1 - VCC, 2 - GND, 3 - TX, 4 - RX
Installation:
=============
Web UI method
-------------
Set up the device using the stock web UI in local management mode.
Download the ui-factory.tar image.
* Enter the Management tab
* Select Maintenance->Upgrade->Firmware Upgrade
* Ensure the "Upgrade Options" field has "Local" selected
* Click "Browse File" and select the image
* Click "Upgrade" (NOT "Upgrade Now") at the bottom of the page
The device will install the image but reboot back into the vendor
firmware. Return the to Firmware Upgrade page as above and select
"Boot up Backup Firmware". The device should reboot into OpenWRT.
TFTP method
-----------
To flash via tftp, first place the initramfs image on the TFTP server.
setenv serverip <ip of tftp server>
setenv ipaddr <ip in same subnet as tftp server>
tftpboot netgear_wax610-initramfs-uImage.itb
bootm
This should boot OpenWRT. Once booted, flash the sysupgrade.bin image
using either luci or the command line.
Signed-off-by: Erik Servili <serverror@serverror.com>
Link: https://github.com/openwrt/openwrt/pull/18377
Signed-off-by: Robert Marko <robimarko@gmail.com>
The ath10k dt-binding property "qcom,coexist-support" was
explicitly defined as type uint8 since upstream commit
ed09c61eb19d ("dt-bindings: net: Convert ath10k to YAML").
Therefore, this hack patch no longer makes sense.
Link: ed09c61eb1
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18393
Signed-off-by: Robert Marko <robimarko@gmail.com>
Backport two commits to resolve issues with ath1kk causing it to fail
driver registration on iommuless systems with DRAM outside of 32bit
addressing such as a 4GiB imx8mm:
commit 1bcd20981834 ("wifi: ath11k: Fix DMA buffer allocation
to resolve SWIOTLB issues")
commit eeadc6baf8b3 ("wifi: ath11k: Use dma_alloc_noncoherent
for rx_tid buffer allocation")
Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Link: https://github.com/openwrt/openwrt/pull/17751
Signed-off-by: Robert Marko <robimarko@gmail.com>
This reverts commit 1375a7bae0.
This version does not activate the CONFIG_LEDS_CLASS_MULTICOLOR option,
this option is controlled by the generic target configuration.
Signed-off-by: jonathan brophy <professor_jonny@hotmail.com>
Link: https://github.com/openwrt/openwrt/pull/17277
[Reword commit message]
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Although ath10k pre-calibration data and board description file
have similar data structures, they are completely different things.
Therefore, let's remove these incorrect and confusing links.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18069
Signed-off-by: Robert Marko <robimarko@gmail.com>
This new version fixes some memory leak and NULL pointer issues.
Upstreamed patches:
[1] 010-api_update.patch
[2] 201-wifi-ath10k-add-LED-and-GPIO-controlling-support-for.patch
The new 003 patch was introduced to fix the build error on old LTS
kernel. The patch 004 was used to fix the issue of IPQ4019 radio
not being able to start.
Tested on QCA9882 and IPQ4019.
[1] bca8bc0399
[2] 8e1debd824
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/18368
Signed-off-by: Robert Marko <robimarko@gmail.com>
Remove settings and depends that are not used anywhere.
Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Link: https://github.com/openwrt/openwrt/pull/18291
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
b6e5157527d3 fw4: fix reading kernel version
42d3b3d4ca21 fw4: allow family any for ipsets not matching IP addresses
edfdfc6df484 Revert "fw4: allow family any for ipsets not matching IP addresses"
97962771aa3c config: drop to-be-forwarded-nowhere packets on wans
00fc6943a297 init: remove unnecessary stop logic
ad3cba79c192 fw4: allow family any for ipsets not matching IP addresses
Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
[fix PKG_MIRROR_HASH]
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18283
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Fix compilation error for old stable version caused by
genlmsg_multicast_allns backport fix pushed middle version.
Version 5.15 version 0-169, 6.1 version 0-115, 6.6 version 0-58 have the
old genlmsg_multicast_allns version with flags variable.
Compiling backport project with these version result in a compilation
error. To handle this, introduce a backport function for the affected
kernel version.
Link: https://github.com/openwrt/openwrt/pull/18373
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Add U-Boot build for the ASUS ZenWiFi BT8 intended to replace the
stock loader.
Signed-off-by: John Crispin <john@phrozen.org>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Other than most boards with DDR4 the ASUS ZenWiFi BT8 cannot use the
"comb" DDR calibration option and needs only the "ddr4" option set
instead.
Build TF-A SPIM-NAND with UBI as well as to boot from RAM with
mtk_uartboot for MT7988 with DDR4 RAM.
Signed-off-by: John Crispin <john@phrozen.org>
Codename: Divo
Hardware specification:
========
SoC: Qualcomm IPQ6018
RAM: 512MB (2x ESMT 256MB DDR3L M15T2G16128A–DEBG2R)
NAND Flash: 512MB (Macronix MX30UF4G18AC or SK Hynix H27S4G8F2EDA-BC)
Ethernet: 1x 10/100/1000/2500/5000Mbps (Marvell AQR114C-B0)
Ethernet: 4x 10/100/1000Mbps (Qualcomm QCA8075)
WiFi1: 6GHz ax 4x4@20/40/160 MHz (Qualcomm QCN9024 + Skyworks SKY85784-11) - channels 33-229
WiFi2: 5GHz ax 2x2@20/40/80 MHz (Qualcomm QCN5052 + Skyworks SKY85755-11) - channels 36-177
WiFi3: 2.4GHz ax 2x2@20/40 MHz (Qualcomm QCN5022 + Skyworks SKY8340-11)
IoT: Bluetooth 5 (CSR8811) - not implemented
LED: 1x RGB status + USB Blue (PWM)
USB: 1x USB 3.0
Button: WPS, Reset
Flash instructions (Without Serial):
========
Open Linksys Web UI - http://192.168.1.1/ca or http://linksysxxxxx.lan/ca depending on your setup.
xxxxx is the last 5 digits from the SN found on a sticker under the device.
Click on the Linksys Logo to by-pass smart app registration.
Login with your admin password. The default password can be found on the same sticker.
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.
Flash instructions (With Serial):
========
1. Installation using serial connection from OEM firmware (default login: root, password: admin):
- fw_printenv -n boot_part
In case of 2:
- flash_erase /dev/mtd13 0 0
- nandwrite -p /dev/mtd13 openwrt-qualcommax-ipq60xx-linksys_mr7500-squashfs-factory.bin
or in case of 1:
- flash_erase /dev/mtd15 0 0
- nandwrite -p /dev/mtd15 openwrt-qualcommax-ipq60xx-linksys_mr7500-squashfs-factory.bin
After first boot install firmware on second partition:
- mtd -r -e kernel -n write openwrt-qualcommax-ipq60xx-linksys_mr7500-squashfs-factory.bin kernel
or:
- mtd -r -e alt_kernel -n write openwrt-qualcommax-ipq60xx-linksys_mr7500-squashfs-factory.bin alt_kernel
2. Installation from initramfs image using USB drive:
Put the initramfs image on the USB drive:
- dd bs=1M if=openwrt-qualcommax-ipq60xx-linksys_mr7500-initramfs-uImage.itb of=/dev/sda
Stop u-boot and run:
- usb start && usbboot $loadaddr 0 && bootm $loadaddr
Write firmware to the flash from initramfs:
- mtd -e kernel -n write openwrt-qualcommax-ipq60xx-linksys_mr7500-squashfs-factory.bin kernel
and:
- mtd -r -e alt_kernel -n write openwrt-qualcommax-ipq60xx-linksys_mr7500-squashfs-factory.bin alt_kernel
3. Back to the OEM firmware:
- mtd -e kernel -n write FW_MR7500_1.1.12.211919_prod.img kernel
and:
- mtd -r -e alt_kernel -n write FW_MR7500_1.1.12.211919_prod.img alt_kernel
4. USB recovery:
Put the initramfs image on the USB:
- dd bs=1M if=openwrt-qualcommax-ipq60xx-linksys_mr7500-initramfs-uImage.itb of=/dev/sda
Set u-boot env:
- fw_setenv bootusb 'usb start && usbboot $loadaddr 0 && bootm $loadaddr'
- fw_setenv bootcmd 'run bootusb; if test $auto_recovery = no; then bootipq; elif test $boot_part = 1; then run bootpart1; else run bootpart2; fi'
AQR firmware:
========
0. Firmware extracting:
To extract the firmware, use unblob (unblob.org)
1. Firmware loading:
To properly load the firmware and initialize AQR PHY, we must use the u-boot aq_load_fw function.
To do this, you need to modify u-boot env:
With USB recovery:
- fw_setenv bootcmd 'aq_load_fw; run bootusb; if test $auto_recovery = no; then bootipq; elif test $boot_part = 1; then run bootpart1; else run bootpart2; fi'
and without:
- fw_setenv bootcmd 'aq_load_fw; if test $auto_recovery = no; then bootipq; elif test $boot_part = 1; then run bootpart1; else run bootpart2; fi'
2. Firmware updating:
Newer firmware (AQR114C.cld) is available in the latest OEM firmware (https://downloads.linksys.com/support/assets/firmware/FW_MR7500_1.1.12.211919_prod.img).
Copy AQR114C.cld to /lib/firmware/marvell
Link: openwrt#17428
Signed-off-by: Weikai Kong <priv@pppig236.com>
Link: https://github.com/openwrt/openwrt/pull/18185
Signed-off-by: Robert Marko <robimarko@gmail.com>
MR7500 features IPQ6018 which is CPPE, however, it also utilizes AQR114CB0 as WAN.
Previously, without this patch, aquantia_phy_api_ops was never called.
Therefore, enable `IN_AQUATIA_PHY` so that AQR PHY gets initialized properly on boot.
[ 3.973942] Aquantia AQR114C 90000.mdio-1:08: loading firmware version 'v5.6.5 Cybertan Divo 090221 14:43:44' from 'NVMEM'
[ 16.059953] aquantia_phy_api_ops_init[1485]:INFO:qca probe aquantia phy driver succeeded!
[ 17.930149] Aquantia AQR114C 90000.mdio-1:08: attached PHY driver (mii_bus:phy_addr=90000.mdio-1:08, irq=POLL)
Signed-off-by: Weikai Kong <priv@pppig236.com>
Link: https://github.com/openwrt/openwrt/pull/18185
Signed-off-by: Robert Marko <robimarko@gmail.com>
Changes:
- Support of both Apple Silicon and Intel for macOS package.
- Add cvlan/svlan/tpmr capabilities.
- Disable LLDP in firmware for Intel X7xx cards on FreeBSD.
- Add lldpctl_watch_sync_unblock to liblldpctl.
- Add C++ wrapper for lldpctl.
Fix:
- Fix AppArmor policy for /run/lldpd/lldpd.socket.lock.
- Do not query stats for a down interface on Linux.
```
# lldpd -vv
lldpd 1.0.19
Built on 2025-03-24T17:43:44Z
Additional LLDP features: LLDP-MED, Dot1, Dot3, Custom TLV
Additional protocols: CDP, FDP, EDP, SONMP
SNMP support: no
Old kernel support: no (Linux 2.6.39+)
Privilege separation: enabled
Privilege separation user: lldp
Privilege separation group: lldp
Privilege separation chroot: /var/run/lldp
Configuration directory: /tmp
C compiler command: C compiler command is not available for reproducible builds
Linker command: Linker compiler command is not available for reproducible builds
```
Tested on: 24.10.0
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/18345
Signed-off-by: Nick Hainke <vincent@systemli.org>
With this patch, iw can now scan APs in the 6 GHz band and shows
their operation parameters:
~~~
6 Ghz Operation Information: 0x0103070f06
Primary Channel: 1
Channel Width: 80+80 or 160 MHz
Regulatory Info: 0
Center Frequency Segment 0: 7
Center Frequency Segment 1: 15
Minimum Rate: 6
~~~
Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Link: https://github.com/openwrt/openwrt/pull/18240
Signed-off-by: Robert Marko <robimarko@gmail.com>
ChangeLog
417c2e3 libtracefs: version 1.8.1
41efd9e libtracefs: Add meson build targets to Makefile
310b796 libtracefs utest: Add better logic to cause missed events
b589e32 libtracefs: Add cpu-map sample to trace mapped buffer
4ede86e libtracefs: Enable mmapped ring buffer
e6737d4 libtracefs: Initialize val in build_filter()
590e452 libtracefs: Close dir in the error path in tracefs_event_systems()
0309a87 libtracefs: Close dir in the error path in tracefs_system_events()
f34fb1f libtracefs: Prevent memory leak in tracefs_dynevent_get_all()
48e906b libtracefs: my_yyinput() should return 0 when no data can be read
5e5b2a7 libtracefs: Prevent memory leak in tracefs_instance_create()
8f2593f libtracefs: Prevent a memory leak in open_cpu_files()
7d77b83 libtracefs: Prevent a memory leak in tracefs_system_events()
7fcd8d2 libtracefs: Prevent a memory leak in add_func_str()
a01d0ba libtracefs: Don't leak socket file descriptor in open_vsock()
efdf7f7 libtracefs: Prevent memory leak in tracefs_event_systems()
2342293 libtracefs: Prevent a memory leak in tracefs_synth_add_end_field()
1c95394 libtracefs: Prevent a memory leak in update_fields()
6b35665 libtracefs: Prevent memory leak in append_filer()
aecc0b7 libtracefs: Call va_end() before exiting tracefs_hist_set_sort_key()
a5e37f7 libtracefs: Add trace-mmap.c to meson build
8f62e96 libtracefs meson: Use SemVer in the build description
e04fa01 meson: Add utest option
fb213a4 libtracefs: Update trace_buffer_meta
04505a0 libtracefs utest: Include libgen.h for basename()
7b4a9c9 libtracefs utest: Define _LARGEFILE64_SOURCE for lseek64() with musl
ba75081 libtracefs utest: Add PATH_MAX if it is not already defined
5f27b7f libtracefs: Update the kbuf for previous read in trace_mmap_load_subbuf()
73ac9c1 libtracefs: Fix tracefs_instance_reset() of triggers
7d15d77 libtracefs meson: build tracefs-mmap by default
Link: https://github.com/openwrt/openwrt/pull/18349
Signed-off-by: Nick Hainke <vincent@systemli.org>
ChangeLog:
bd47bd5 libtraceevent: 1.8.4
fe0bc49 libtraceevent: Print function pointer address when TEP_EVENT_FL_PRINTRAW is specified
f2224d5 libtraceevent: Have sizeof() parsing handle u8/s8 through u64/s64
5f570de libtraceevent: Print arrays like Linux does
645a883 libtraceevent: 1.8.3
d4c1fb4 libtraceevent: Add meson build targets to Makefile
c3dc220 libtraceevent: Fix a double free in process_op()
021da90 libtraceevent: Do not return a local stack pointer in get_field_str()
340e2e6 libtraceevent: Have unit test fail when any tests fail
c84155f libtraceevent: prevent a memory leak in tep_plugin_add_option()
03551eb libtraceevent: Prevent a memory leak in process_fields()
34ece90 libtraceevent: Close shared object in the error path of load_plugin()
8802f0f libtraceevent: Avoid a simple asprintf case
76a0eb8 libtraceevent: Fix event-parse memory leak in process_cond
5bc98bd libtraceevent: Have single quotes represent characters
ec8e0cc libtraceevent: Fix tests running on big endian arch
60ed6c3 libtraceevent: build: Various fixes for the Meson build of libtraceevent
0351241 libtraceevent utest: Include libgen.h for basename() with musl
Link: https://github.com/openwrt/openwrt/pull/18349
Signed-off-by: Nick Hainke <vincent@systemli.org>
Currently, both envtools and the rest of U-Boot tools are being built
regardless if the dumpimage package has been selected.
This will fail if only envtools are selected since the rest of tools
require OpenSSL while envtools do not require them.
So, only build tools if dumpimage is selected.
Fixes: 46e376c935 ("uboot-tools: migrate uboot-envtools to uboot-tools")
Fixes: #18327
Tested-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Link: https://github.com/openwrt/openwrt/pull/18329
Signed-off-by: Robert Marko <robimarko@gmail.com>
Specifications:
SoC: Qualcomm IPQ6000
RAM: 512 MiB
Flash: 128 MiB NAND
ETH: Qualcomm QCA8075
WLAN1: 2.4GHz 802.11b/g/n/ax 2x2
WLAN2: 5GHz 802.11a/n/ac/ax 2x2
Button: Reset, Switch
USB: 1x 3.0
SD slot: 1 in GL-AXT1800
Install via stock firmware:
Upload factory.bin in stock firmware's upgrade page,
do not preserve settings.
Install via uboot web failsafe:
Push the reset button for 5 seconds, then use broswer
to access http://192.168.1.1, and upload factory.ubi.
Afterwards upgrade can use sysupgrade image.
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/14950
Signed-off-by: Robert Marko <robimarko@gmail.com>
Do not verify the format of TLV. Leave that to lldpd.
These lldpd config entries:
config custom-tlv
list ports 'eth0'
option tlv 'replace oui 33,44,55 subtype 254 oui-info 55,55,55,55,55'
config custom-tlv
option tlv 'oui 33,44,44 subtype 232'
list ports 'br-lan'
list ports 'eth0'
config custom-tlv # oui-info truncated
option tlv 'add oui 33,44,33 subtype 66 oui-info 5555555555'
config custom-tlv
option tlv 'add oui 33,44,31 subtype 44'
config custom-tlv # invalid oui
option tlv 'add oui 3322 subtype 79'
config custom-tlv # invalid oui
option tlv 'oui 3312 subtype 74'
Produce the following lldpd.conf content:
configure ports eth0 lldp custom-tlv replace oui 33,44,55 subtype 254 oui-info 55,55,55,55,55
configure ports br-lan,eth0 lldp custom-tlv oui 33,44,44 subtype 232
configure lldp custom-tlv add oui 33,44,33 subtype 66 oui-info 5555555555
configure lldp custom-tlv add oui 33,44,31 subtype 44
configure lldp custom-tlv add oui 3322 subtype 79
configure lldp custom-tlv oui 3312 subtype 74
And lldpd (v1.0.13 on v22) logs the following:
Sat Mar 16 19:11:39 2024 daemon.info lldpd[10916]: custom TLV op replace oui 33:44:55 subtype fe
Sat Mar 16 19:11:39 2024 daemon.info lldpd[10916]: custom TLV op add oui 33:44:44 subtype e8
Sat Mar 16 19:11:39 2024 daemon.info lldpd[10916]: custom TLV op add oui 33:44:33 subtype 42
Sat Mar 16 19:11:39 2024 daemon.info lldpd[10916]: custom TLV op add oui 33:44:33 subtype 42
Sat Mar 16 19:11:39 2024 daemon.info lldpd[10916]: custom TLV op add oui 33:44:31 subtype 2c
Sat Mar 16 19:11:39 2024 daemon.info lldpd[10916]: custom TLV op add oui 33:44:31 subtype 2c
Sat Mar 16 19:11:39 2024 daemon.warn lldpcli[10915]: invalid OUI value '3322'
Sat Mar 16 19:11:39 2024 daemon.info lldpcli[10915]: an error occurred while executing last command
Sat Mar 16 19:11:39 2024 daemon.warn lldpcli[10915]: invalid OUI value '3312'
Sat Mar 16 19:11:39 2024 daemon.info lldpcli[10915]: an error occurred while executing last command
Sat Mar 16 19:11:39 2024 daemon.info lldpcli[10915]: lldpd should resume operations
( The last two TLV are invalid: their oui must be three hex bytes, comma
separated. Only the first hex byte of oui-info 5555555555 is used )
Depends on #14867 and its release version bump
Tested on: 22.03.6
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/14872
Signed-off-by: Robert Marko <robimarko@gmail.com>
where csv = comma separated value(s)
Make the function more generic. Can use it for not only 'config'.
Now it can be used to parse interfaces for additional lldpd settings,
e.g. custom-tlv.
Tested on: 22.03.6
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/14872
Signed-off-by: Robert Marko <robimarko@gmail.com>
Add uboot-tools stub package skeleton which will replace uboot-envtools
and also provide target-builds for other U-Boot tools.
Signed-off-by: Scott Mercer <TheRootEd24@gmail.com>
As described in #13873, from 23.05.0 onwards logging to a file on an
external filesystem fails under some conditions.
This occurs because the log initscript had code added to prevent start
logging to an external filesystem on boot, and added a trigger to start
said logging when the external filesystem gets mounted.
The issue is that for filesystems mount with fstab uci, the fstab
scripts runs at START=11, while log runs at START=12, which means the
external filesystem may already be mounted by the time the log initscript
runs. Since the external filesystem is already mounted it does not
trigger a hotplug event to trigger the trigger to start logging. This
combination means the logging never automatically starts when the log
file is on an external filesystem.
We therefore add a check for the presence of a mounted filesystem when
the log file is being sent to an fstab mounted filesystem. If the
filesystem is mounted, we don't skip starting logging during boot.
If the filesystem is not mounted then file logging is not started and
the trigger will start the logging when the filesystem is mounted.
Signed-off-by: Daniel F. Dickinson <dfdpublic@wildtechgarden.ca>
[improved commit message]
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
PKG_MIRROR_HASH is incorrect and the package check is currently failing.
Fixes: 4990ce613b ("ipq-wifi: update to 2024-02-17")
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Add support for the Intel E800 series of cards, with switchdev
support enabled for lower CPU usage.
Signed-off-by: Stephen Howell <howels@allthatwemight.be>
Link: https://github.com/openwrt/openwrt/pull/17564
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This service automatically establishes connections to any hosts that are members
of the same unet network, and allows publish/subscribe exchanges via ubus channels.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
This is useful for keeping specific data on a device across factory reset.
It uses a separate partition (only UBI supported at the moment) to store
the data. The primary use case is storing sensitive data like cryptographic
keys for maintaining a device as part of a network.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
This does not actually create a new private key. Instead, the salt is replaced,
and a xor key is generated which when merged with the key derived from the new
password transforms into the original private key.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Apparently U-Boot will discard whole node if requested pin function is
unknown to the driver. This resulted in inability to interact with
U-Boot on the said board, as U-Boot always assumed the recovery key
pressed and issued recovery procedure. Log snippet:
button_gpio gpio-keys: pinctrl_select_state_full: pinctrl_config_one: err=-38
reset button found
button pushed, resetting environment
Recovery procedure also booted recovery image, which didn't affect much
the 23.05.x release, since the root fs argument was valid, so changes
persisted. But as 24.10.x hit with fitblk, the board will boot only
recovery image (initramfs) because of default bootargs will reset on each
boot and U-Boot provided bootargs took precedence.
Fixes: 42eeb22450 ("uboot-mediatek: fix factory/reset button")
Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
Link: https://patchwork.ozlabs.org/project/openwrt/patch/20250304164507.60511-1-tmn505@terefe.re/
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Sets the boot flag for the i40e network device driver
to load it at a more early stage of the boot process.
With commit 0a47d518df,
I added a boot priority for the mlx4 and mlx5 drivers.
Also, increase those priorities because I think they
are too low since there is currently no "room" for
built-in network device drivers.
That can cause interface order, i.e., name inconsistencies,
when Mellanox ConnectX cards are inserted or removed.
Signed-off-by: Til Kaiser <mail@tk154.de>
Link: https://github.com/openwrt/openwrt/pull/17990
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
ZTE MF286 is an indoor LTE category 12 CPE router with simultaneous
dual-band 802.11ac plus 802.11n Wi-Fi radios and quad-port gigabit
Ethernet switch, FXS and external USB 2.0 port.
Software-wise it's compatible with previous MF286A, save for different
5GHz Wi-Fi board definition file, requiring a separate image.
Hardware highlights:
- CPU: QCA9563 SoC at 775MHz,
- RAM: 128MB DDR2,
- NOR Flash: MX25L1606E 2MB SPI Flash, for U-boot only,
- NAND Flash: W25N01GV 128MB SPI NAND-Flash, for all other data,
- Wi-Fi 5GHz: QCA9886 2x2 MIMO 802.11ac Wave2 radio,
- WI-Fi 2.4GHz: QCA9563 3x3 MIMO 802.11n radio,
- Switch: QCA8337v2 4-port gigabit Ethernet, with single SGMII CPU port,
- WWAN: MDM9250-based category 12 internal LTE modem
in extended mini-PCIE form factor, with 5 internal antennas and
2 external antenna connections, single mini-SIM slot.
- FXS: one external ATA port (handled entirely by modem part) with two
physical connections in parallel,
- USB: Single external USB 2.0 port,
- Switches: power switch, WPS, Wi-Fi and reset buttons,
- LEDs: Wi-Fi, Test (internal). Rest of LEDs (Phone, WWAN, Battery,
Signal state) handled entirely by modem. 4 link status LEDs handled by
the switch on the backside.
- Label MAC device: eth0
Internal modem of MF286C is supported via uqmi.
Console connection: connector X2 is the console port, with the following
pinout, starting from pin 1, which is the topmost pin when the board is
upright:
- VCC (3.3V). Do not use unless you need to source power for the
converer from it.
- TX
- RX
- GND
Default port configuration in U-boot as well as in stock firmware is
115200-8-N-1.
Installation:
Due to different flash layout from stock firmware, sysupgrade from
within stock firmware is impossible, despite it's based on QSDK which
itself is based on OpenWrt.
STEP 0: Stock firmware update:
As installing OpenWrt cuts you off from official firmware updates for
the modem part, it is recommended to update the stock firmware to latest
ath79: support ZTE MF286C
STEP 1: Booting initramfs image:
Method 1: using serial console (RECOMMENDED):
- Have TFTP server running, exposing the OpenWrt initramfs image, and
set your computer's IP address as 192.168.0.22. This is the default
expected by U-boot. You may wish to change that, and alter later
commands accordingly.
- Connect the serial console if you haven't done so already,
- Interrupt boot sequence by pressing any key in U-boot when prompted
- Use the following commands to boot OpenWrt initramfs through TFTP:
setenv serverip 192.168.0.22
setenv ipaddr 192.168.0.1
tftpboot 0x81000000 openwrt-ath79-nand-zte_mf286c-initramfs-kernel.bin
bootm 0x81000000
(Replace server IP and router IP as needed). There is no emergency
TFTP boot sequence triggered by buttons, contrary to MF283+.
- When OpenWrt initramfs finishes booting, proceed to actual
installation.
STEP 2: Backing up original software:
As the stock firmware may be customized by the carrier and is not
officially available in the Internet, IT IS IMPERATIVE to back up the
stock firmware, if you ever plan to returning to stock firmware.
It is highly recommended to perform backup using both methods, to avoid
hassle of reassembling firmware images in future, if a restore is
needed.
Method 1: after booting OpenWrt initramfs image via TFTP:
- Connect your USB-UART adapter
- Dump stock firmware located on stock kernel and ubi partitions:
ssh root@192.168.1.1: cat /dev/mtd9 > mtd3_ubiconcat0.bin
ssh root@192.168.1.1: cat /dev/mtd4 > mtd4_kernel.bin
ssh root@192.168.1.1: cat /dev/mtd9 > mtd5_ubiconcat1.bin
And keep them in a safe place, should a restore be needed in future.
Method 2: using stock firmware:
- Connect an external USB drive formatted with FAT or ext4 to the USB
port.
- The drive will be auto-mounted to /var/usb_disk
- Check the flash layout of the device:
cat /proc/mtd
It should show the following:
mtd0: 000a0000 00010000 "u-boot"
mtd1: 00020000 00010000 "u-boot-env"
mtd2: 00140000 00010000 "reserved1"
mtd3: 000a0000 00020000 "fota-flag"
mtd4: 00080000 00020000 "art"
mtd5: 00080000 00020000 "mac"
mtd6: 000c0000 00020000 "reserved2"
mtd7: 00400000 00020000 "cfg-param"
mtd8: 00400000 00020000 "log"
mtd9: 000a0000 00020000 "oops"
mtd10: 00500000 00020000 "reserved3"
mtd11: 00800000 00020000 "web"
mtd12: 00300000 00020000 "kernel"
mtd13: 01a00000 00020000 "rootfs"
mtd14: 01900000 00020000 "data"
mtd15: 03200000 00020000 "fota"
mtd16: 01d00000 00020000 "firmware"
Differences might indicate that this is NOT a MF286C device but
one of other variants.
- Copy over all MTD partitions, for example by executing the following:
for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do cat /dev/mtd$i > \
/var/usb_disk/mtd$i; done
"Firmware" partition can be skipped, it is a concatenation
of "kernel" and "rootfs".
- If the count of MTD partitions is different, this might indicate that
this is not a MF286C device, but one of its other variants.
- (optionally) rename the files according to MTD partition names from
/proc/mtd
- Unmount the filesystem:
umount /var/usb_disk; sync
and then remove the drive.
- Store the files in safe place if you ever plan to return to stock
firmware. This is especially important, because stock firmware for
this device is not available officially, and is usually customized by
the mobile providers.
STEP 3: Actual installation:
- Set your computer IP to 192.168.1.22/24
- scp the sysupgrade image to the device:
scp -O openwrt-ath79-nand-zte_mf286a-squashfs-sysupgrade.bin \
root@192.168.1.1:/tmp/
- ssh into the device and execute sysupgrade:
sysupgrade -n /tmp/openwrt-ath79-nand-zte_mf286a-squashfs-sysupgrade.bin
- Wait for router to reboot to full OpenWrt.
STEP 4: WAN connection establishment
Since the router is equipped with LTE modem as its main WAN interface, it
might be useful to connect to the Internet right away after
installation. To do so, please put the following entries in
/etc/config/network, replacing the specific configuration entries with
one needed for your ISP:
config interface 'wan'
option proto 'qmi'
option device '/dev/cdc-wdm0'
option auth '<auth>' # As required, usually 'none'
option pincode '<pin>' # If required by SIM
option apn '<apn>' # As required by ISP
option pdptype '<pdp>' # Typically 'ipv4', or 'ipv4v6' or 'ipv6'
For example, the following works for most polish ISPs
config interface 'wan'
option proto 'qmi'
option device '/dev/cdc-wdm0'
option auth 'none'
option apn 'internet'
option pdptype 'ipv4'
The required minimum is:
config interface 'wan'
option proto 'qmi'
option device '/dev/cdc-wdm0'
In this case, the modem will use last configured APN from stock
firmware - this should work out of the box, unless your SIM requires
PIN which can't be switched off.
If you have build with LuCI, installing luci-proto-qmi helps with this
task.
Restoring the stock firmware:
- Boot to initramfs as in step 3:
- Completely detach ubi0 partition using ubidetach /dev/ubi0_0
- Copy over the stock kernel image using scp to /tmp
- Erase kernel and restore stock kernel:
(scp mtd4_kernel.bin root@192.168.1.1:/tmp/)
mtd write kernel /tmp/mtd4_kernel.bin
rm /tmp/mtd4_kernel.bin
- Copy over the stock partition backups one-by-one using scp to /tmp, and
restore them individually. Otherwise you might run out of space in
tmpfs:
(scp -O mtd3_ubiconcat0.bin root@192.168.1.1:/tmp/)
mtd write ubiconcat0 /tmp/mtd3_ubiconcat0.bin
rm /tmp/mtd3_ubiconcat0.bin
(scp -O mtd5_ubiconcat1.bin root@192.168.1.1:/tmp/)
mtd write ubiconcat1 /tmp/mtd5_ubiconcat1.bin
rm /tmp/mtd5_ubiconcat1.bin
- If the write was correct, force a device reboot with
reboot -f
Quirks and known issues
- It was observed, that CH340-based USB-UART converters output garbage
during U-boot phase of system boot. At least CP2102 is known to work
properly.
- Kernel partition size is increased to 4MB compared to stock 3MB, to
accomodate future kernel updates - at this moment OpenWrt 5.10 kernel
image is at 2.5MB which is dangerously close to the limit. This has no
effect on booting the system - but keep that in mind when reassembling
an image to restore stock firmware.
- uqmi seems to be unable to change APN manually, so please use the one
you used before in stock firmware first. If you need to change it,
please use protocok '3g' to establish connection once, or use the
following command to change APN (and optionally IP type) manually:
echo -ne 'AT+CGDCONT=1,"IP","<apn>' > /dev/ttyUSB0
- The only usable LED as a "system LED" is the blue debug LED hidden
inside the case. All other LEDs are controlled by modem, on which the
router part has some influence only on Wi-Fi LED.
- GPIO5 used for modem reset is a suicide switch, causing a hardware
reset of whole board, not only the modem. It is attached to
gpio-restart driver, to restart the modem on reboot as well, to ensure
QMI connectivity after reboot, which tends to fail otherwise.
- Modem, as in MF283+, exposes root shell over ADB - while not needed
for OpenWrt operation at all - have fun lurking around.
The same modem module is used as in older MF286.
Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17620
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
PKG_MIRROR_HASH is incorrect and fails the download from mirrors.
Fixes: 0aaabffdea ("selinux-policy: update to version v2.6")
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
The CONFIG_NET_SWITCHDEV option is needed by CONFIG_DSA and some other
options. It is boolean, we have to compile it into the kernel it self.
Activate it for all targets in the generic configuration, it is already
activated for most of them. This allows to install DSA drivers as a
module.
On the ramips/mt7620 target the kernel would grown by 4.5kB.
For some small targets which do not support a DSA switch by default the
option is deactivated.
Link: https://github.com/openwrt/openwrt/pull/17668
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This has several advantages:
* reduction in the size of the kernel and the complete image. Individual
devices only need two of the four binaries. In combination with the second
commit it reduces kernel size by 64.2 kB and image size by 22.8 kB,
* the option to extend this package with firmware for future SoCs,
* combining the kernel and binary blobs with another licence may not be
fully compatible with the licence used by Linux. The current PHY firmware
is built into the kernel. This comit converts it to a package.
Tested on AVM 5490 and BT Home Hub 5A.
Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
Link: https://github.com/openwrt/openwrt/pull/17669
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
The Zyxel LTE7490-M904 is an 802.3at PoE powered LTE outdoor (IP68) CPE
with integrated directional antennas.
Specifications:
- SoC: MediaTek MT7621AT
- RAM: 256 MB
- Flash: 128 MB MB NAND (MX30LF1G18AC)
- WiFi: MediaTek MT7603E 802.11b/g/n
- Switch: 1 LAN port (1 Gbps)
- LTE/3G/2G: Quectel EG18-EA LTE-A Cat. 18 connected by USB3 to SoC
- SIM: 1 micro-SIM slots under transparent cover
- Buttons: Reset, WLAN under same cover
- LEDs: Multicolour green/red/amber under same cover (visible)
- Power: 802.3at PoE via LAN port
The device is built as an outdoor ethernet to LTE bridge or router.
The wifi interface is intended for installation and/or temporary
management purposes only.
UART Serial:
57600N1, located on populated 5 pin header J5:
[o] GND
[ ] key - no pin
[o] RX
[o] TX
[o] 3.3V Vcc
Remove the SIM/button/LED cover and 12 screws holding the back plate
and antenna cover together. Be careful with the cables.
Installation from OEM web GUI:
- Log in as "admin" on OEM web GUI
- Upload OpenWrt initramfs-recovery.bin image on the
Maintenance -> Firmware page
- Wait for OpenWrt to boot and ssh to root@192.168.1.1
- Sysupgrade to the OpenWrt sysupgrade image and reboot
For more details about flashing see:
2449a63208 (ramips: mt7621: Add support for ZyXEL NR7101, 2021-04-19)
Main porting work done by Ernesto Castellotti <ernesto@castellotti.net>:
bf1c12f68b (ramips: add support for ZyXEL LTE7490-M904, 2023-12-20)
Signed-off-by: Eric Schäfer <eric@es86.de>
Link: https://github.com/openwrt/openwrt/pull/17485
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>