The OEM firmware has telnet enabled by default. If not, it can be enabled
from the firmware web interface. You need a TFTP server on your computer
and the OpenWrt factory image should be available as "n650factory.bin".
It is assumed that your computer has the IP 192.168.1.1 and the N650
192.168.1.20 (default IP address).
1. Connect via Telnet to the device and log in with the default credentials
"admin:admin"
2. Exploit the limited interface by typing "ps & /bin/sh"
3. Press <ENTER> to start the shell
4. Enter the following commands:
UART installation is possible since the serial header is already soldered
on. The pinout is GND - Tx - Rx - VCC from top to bottom (RJ45 ports are
at the bottom). Connect with 115200 8N1.
First, boot OpenWrt from TFTP. Enter the following commands in the U-Boot
shell, assuming your computer has the IP address 192.168.1.1 and a TFTP
server running where the initramfs image is provided as n650.bin:
Back to stock is only possible if you saved a partition backup before
installing OpenWrt. Assuming you have fullbackup.bin covering the whole
flash, you need to prepare the image as follows:
This commit adds OpenWrt U-Boot (UBI) layout support for MERCUSYS MR90X
v1.
Stock U-Boot UBI size: 50 MiB
OpenWrt U-boot UBI size: 126 MiB
Install
-------
1. Perform steps 1-14 of the OpenWrt installation guide (use OpenWrt
initramfs-recovery.itb instead of initramfs-kernel.bin at the step 10,
12 and 14). Link: https://openwrt.org/toh/mercusys/mr90x_v1#installation
2. Make backups:
```
cat /dev/mtd0 > /tmp/boot.bin
cat /dev/mtd5 > /tmp/tp_data.bin
```
Copy /tp_data dir content, /tmp/boot.bin and /tmp/tp_data.bin and to
your PC using scp. You can also backup the remaining partititons. Copy
backups to a safe place, they are required for the next steps and stock
firmware recovery.
3. Reboot to OpenWrt initramfs:
```
reboot
```
4. Copy OpenWrt ubi-bl31-uboot.fip, ubi-preloader.bin,
ubi-squashfs-sysupgrade.itb and MT7986_EEPROM.bin, default-mac (from
/tp_data backup) to the /tmp folder of the router using scp.
Recovery
--------
1. Place OpenWrt initramfs-recovery.itb image (with original name) on the
tftp server (IP: 192.168.1.254).
2. Press "reset" button and power on the router. After ~10 sec release the
button.
3. Use OpenWrt initramfs system for recovery.
4. Erase UBI and reboot:
```
mtd erase ubi
reboot
```
5. Open U-Boot web recovery, upload stock firmware image and start
upgrade. Link: http://192.168.1.1
6. Complete steps 1-9 of the OpenWrt installation guide to get root
rights. Link: https://openwrt.org/toh/mercusys/mr90x_v1#installation
7. Upload "tp_data" partition backup (tp_data.bin) to the /tmp folder of
the router using scp.
Christoph Krapp [Sun, 17 Nov 2024 22:01:00 +0000 (23:01 +0100)]
ath79: Unify Sophos AP15/AP15C dts files
The recently added AP15C dts file only differs by the definition of the
reset button. Unify the shared definition into a dtsi to reduce code
duplication.
Signed-off-by: Christoph Krapp <achterin@gmail.com> Tested-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> Link: https://github.com/openwrt/openwrt/pull/16998 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Marty Jones [Mon, 25 Nov 2024 17:58:57 +0000 (12:58 -0500)]
mac80211: realtek: backport support for RTL8812AU/RTL8821AU
Backport support for RTL8812AU/RTL8821AU USB adapters
Manually backported patch:
045-v6.13-wifi-rtw88-Enable-the-new-RTL8821AU-RTL8812AU-driver
Patches from 046 to 051 are pending.
Signed-off-by: Marty Jones <mj8263788@gmail.com> Link: https://github.com/openwrt/openwrt/pull/17079
[Move BPAUTO_WANT_DEV_COREDUMP to original patch] Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
"ethaddr" is stored into the "u-boot-env" (stock: "Config") partition
and it's quoted with double-quotations, but that format is not supported
by the current NVMEM u-boot-env driver (and mac_pton() function) and the
MAC address won't be parsed to byte array.
This causes random MAC addresses on the adapters, so revert the above
commit.
Rosen Penev [Thu, 28 Nov 2024 21:15:29 +0000 (13:15 -0800)]
apk: build static
libapk as a library is used nowhere else and makes no sense to link it
shared. By linking static, we can take advantage of LTO and get the size
reduced further.
Robert Marko [Thu, 28 Nov 2024 18:16:23 +0000 (19:16 +0100)]
image: apk: dont fail on removing a package that doesnt exist
Currently, in case when a package in the device package list is marked with
the "-"" prefix meaning that its supposed to be removed for that device but
it was not actually previously built it will cause the APK to error out it
and thus image generation will also fail.
So, lets do what OPKG build step does and supress the error with the "-"
prefix in make.
Fixes: #17103 Fixes: d788ab376f85 ("build: add APK package build capabilities") Link: https://github.com/openwrt/openwrt/pull/17106 Signed-off-by: Robert Marko <robimarko@gmail.com>
Flash instruction:
The only way to flash OpenWrt image is to use tftp recovery mode in U-Boot:
1. Configure PC with static IP 192.168.1.2/24 and tftp server.
2. Rename "openwrt-mediatek-filogic-keenetic_kn-3911-squashfs-factory.bin"
to "KN-3911_recovery.bin" and place it in tftp server directory.
3. Connect PC with ethernet port, press the reset button, power up
the device and keep button pressed until status led start blinking.
4. Device will download file from server, write it to flash and reboot.
George Oldfort [Tue, 26 Nov 2024 14:14:56 +0000 (15:14 +0100)]
mediatek: filogic: add KTD2026/7 driver to Acer Connect Vero W6m
This commit adds kmod-leds-ktd202x to the OpenWrt image for the device
"Acer Connect Vero W6m" which is equipped with one KTD2026 controlling the
device's status LED via I2C.
George Oldfort [Tue, 26 Nov 2024 14:04:45 +0000 (15:04 +0100)]
generic: backport support for KTD2026/7 rgb(w) led controller
This commit adds the Linux kernel mainline driver "leds-ktd202x" for the
KinetIC KTD2026 and KTD2027 RGB/RBGW controller with I2C interface that was
introduced in kernel version 6.7, last changed in mainline on 2024-05-31.
At least the Acer Connect Vero W6m (a variant of the Acer Predator Connect
W6 without 2.5G eth1 port, usb3 port, and the 6 on-board gpio RGB LEDs) is
equipped with a KTD2026 (and a single RGB LED attached to it used by the
stock firmware as status LED), and maybe other router devices also are.
Daniel Golle [Wed, 27 Nov 2024 20:37:57 +0000 (21:37 +0100)]
meson: honor MESON_ARGS and MESON_HOST_ARGS when calling ninja
Set MESON_ARGS and MESON_HOST_ARGS when calling ninja for building.
This is required eg. to be able to set PYTHONPATH= not just for the
Meson (==configure) run but also for the build phase itself.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
86da5cbcdb9d system-linux: do not pull ifindex/flags from netlink messages on rtnl events cd96f61ba63e proto-shell: fix spurious interface teardowns with host deps a39fe3a8b150 wireless: add support for adding a list of devices for a wifi-iface d29cf707478c iprule: add ipproto property 768027c5a764 system-linux: restore reading flags from netlink messages
George Oldfort [Tue, 26 Nov 2024 05:42:25 +0000 (06:42 +0100)]
mediatek: remove ktd-202x driver filogic image (Aer Vero W6m)
Image build fails with PR #16861 merged while PR #16860 not merged.
Removing kmod-leds-ktd202x from filogic.mk will fix the build process.
Fixes: 2898d1d1269a ("mediatek: add support for Acer Predator W6d and Acer Vero W6m") Signed-off-by: George Oldfort <openwrt@10099.de> Link: https://github.com/openwrt/openwrt/pull/17087 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Petr Štetiar [Mon, 25 Nov 2024 21:23:54 +0000 (21:23 +0000)]
Revert "target,base-files: unify handling of procd-ujail"
This reverts commit ac640718aa0ceae55969bb9e7e45d00bb7bc228a as it
removes base-files package when KERNEL_NAMESPACES is deselected, as
base-files depends on procd-ujail which needs KERNEL_NAMESPACES.
Robert Marko [Sun, 24 Nov 2024 20:15:08 +0000 (21:15 +0100)]
ramips: mt7621: support openwrt,netdev-name for renaming interfaces
Edgerouter X currently has its eth1 port on the switch missing since there
is a naming conflict currently.
So, as the root cause is mixing kernel support for DSA interfaces having
predictable names set via "label" property vs others having it assigned
dynamically lets avoid the conflict by using our own custom property as
suggested upstream [1].
So, add support via "openwrt,netdev-name" property and use it on ERX.
Fixes: 2a25c6ace8d8 ("ramips: get rid of downstream network device label patch") Fixes: #15643 Link: https://github.com/openwrt/openwrt/pull/17062 Signed-off-by: Robert Marko <robimarko@gmail.com>
Petr Štetiar [Mon, 4 Nov 2024 09:04:04 +0000 (09:04 +0000)]
openwrt-keyring: apk: use just snapshot key explicitly
Currently we're going to ship all the apk keys in the keyring, but the
preference is to ship and use single release/branch specific key so lets
use openwrt-snapshots.pem for apk explicitly as well.
Fixes: 2cea05002489 ("openwrt-keyring: add apk public key for signing of package indexes") Signed-off-by: Petr Štetiar <ynezz@true.cz> Link: https://github.com/openwrt/openwrt/pull/16852 Signed-off-by: Robert Marko <robimarko@gmail.com>
John Audia [Sun, 29 Oct 2023 08:32:21 +0000 (04:32 -0400)]
kernel: enable pressure interface
PSI provides a canonical way to see resource pressure increases as
they develop, with pressure metrics for three major resources:
memory, CPU, and IO. PSI stats are like barometers that provide
fair warning of impending resource shortages, enabling users to
take more proactive, granular, and nuanced steps when resources
start becoming scarce.
This commit adds OpenWrt U-Boot layout support for Routerich AX3000. The
aims:
1. Get open-source U-Boot;
2. Get maximum available free space in OpenWrt.
Install
-------
1. Copy OpenWrt ubootmod-bl31-uboot.fip, ubootmod-preloader.bin, to the
/tmp folder of the router using scp.
2. Make mtd partitions backups:
http://192.168.1.1/cgi-bin/luci/admin/system/flash -> Save mtdblock
contents
5. Copy OpenWrt ubootmod-initramfs-recovery.itb to the tftp server root
with IP 192.168.1.254.
6. Reboot router:
```
reboot
```
U-Boot will automatically download from the tftp server and boot OpenWrt
initramfs system.
7. Copy OpenWrt ubootmod-squashfs-sysupgrade.itb to the /tmp dir of the
router using scp.
8. Run sysupgrade:
```
sysupgrade -n /tmp/squashfs-sysupgrade.itb
```
Recovery
--------
1. Place OpenWrt initramfs-recovery.itb image (with original name) on the
tftp server (IP: 192.168.1.254).
2. Press "reset" button and power on the router. After ~10 sec release the
button.
3. Use OpenWrt initramfs system for recovery.
BL2 and FIP recovery
--------------------
Use mtk_uartboot and UART connection if BL2 or FIP in UBI is destroyed: Link: https://github.com/981213/mtk_uartboot
Return to stock:
----------------
1. Copy partition backups (BL2.bin and FIP.bin) to the /tmp dir of the
router using scp.
The mt76x8 series SoCs use the MIPS generic systick timer. Sync the
upstream Ralink systick driver changes and disable it for mt76x8
target to reduce the kernel size.
Hauke Mehrtens [Sun, 24 Nov 2024 13:39:57 +0000 (14:39 +0100)]
x86: Deactivate kernel options with extra overhead
Deactivate CONFIG_CONTEXT_TRACKING_USER_FORCE: Force user context
tracking: This is a testing feature which should not be activate in
production environments according to the Kconfig help. It adds an extra
overhead.
Deactivate CONFIG_RCU_NOCB_CPU_DEFAULT_ALL: Offload RCU callback
processing from all CPUs by default: This option should only be used in
aggressive HPC or real-time workloads which we do not have in OpenWrt.
For normal workloads it increases the number of context switches.
In the default Arch Linux kernel both options are not activated.
Robert Marko [Sat, 23 Nov 2024 13:46:29 +0000 (14:46 +0100)]
config: dont select procd-seccomp via USE_SECCOMP
base-files is including procd-secccomp as a dependency when USE_SECCOMP
is selected, so there is no point in selecting the package directly here
as well.
Robert Marko [Sat, 23 Nov 2024 13:29:49 +0000 (14:29 +0100)]
config: rename SECCOMP to USE_SECCOMP
It seems that we have some kind of a symbol name conflict which causes
CONFIG_SECCOMP to always be read as y.
Unfortunatelly, I could not figure out what is causing this, but simply
renaming SECCOMP to USE_SECCOMP seems to properly work and leaves the
symbol unset unless arch dependencies are satisfied.
This fixes qoriq and others that dont support seccomp from failing due
to procd-seccomp package being selected to get included but it cannot be
built for them:
ERROR: unable to select packages:
procd-seccomp (no such package):
required by: base-files-1637~52b6c92479[procd-seccomp]
Fixes: 4c65359af49b ("build: fix including busybox, procd and apk/opkg in imagebuilder") Link: https://github.com/openwrt/openwrt/pull/17048 Signed-off-by: Robert Marko <robimarko@gmail.com>
MAC:
LAN MAC: label mac
WAN MAC: label mac + 1
2.4G MAC: label mac
5G MAC: label mac + 1 with LA bit set
Installation
------------
1. Connect to the serial port as described in the "Hardware" section.
2. Power on the device + press reset pin. Keep pressing reset pin to enter the U-Boot shell.
3. Download the OpenWrt initramfs image. Place it on an TFTP server
connected to the Cudy LAN ports. Make sure the server is reachable at
192.168.1.88. Rename the image to "cudy3000s.bin"
David Bauer [Sat, 23 Nov 2024 19:00:57 +0000 (20:00 +0100)]
mediatek: fix Cudy AP3000 Outdoor label-mac
The label-mac does not match the one assigned to the ethernet interface.
Use the mac-address assigned to the wifi interface instead, as it
matches the one found on the device label.
George Oldfort [Mon, 11 Nov 2024 10:18:19 +0000 (11:18 +0100)]
mediatek: add support for Acer Predator W6d and Acer Vero W6m
This commit adds support for two variants of the already supported router
Acer Predator Connect W6: The Acer Predator Connect W6d (W6 without 6 GHz
wifi) and the Acer Connect Vero W6m (W6 without 2.5G eth1 port, usb3 port,
and the 6 on-board gpio RGB LEDs, and with a KTD2026 RGB LED controller
instead of the KTD2061 LED controller of the W6/W6d).
The device tree for the W6m refers to the KTD202x driver suggested in
PR #16860.
Patching target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh
removes the code repetition in (old) lines 121 to 124 on the occasion.
This is the last of four commits into which the original commit was split
to make reviews easier and more targeted.
George Oldfort [Mon, 11 Nov 2024 09:40:45 +0000 (10:40 +0100)]
mediatek: improve device tree for Acer Predator Connect W6
In order to prepare for OpenWrt support other Acer W6 devices and to get
a step further to full hardware support for Acer Predator Connect W6, this
commit
- adjusts the product name ("Acer Predator Connect W6")
- updates gpio LED labels to function/color scheme
- show router status by using first rgb led instead of it's red color only
(blue: booting/failsafe mode; red: sysupgrade; green: running – was: red)
- changes switch/eth1 led configuration to reflect RX/TX activity and speed
(green: full 1Gbps/2.5Gbps speed; amber: lower speed; blink: RX/TX)
- shortens dummy dm-mod.create string in bootargs
- enables W6's i2c interface
This is the third of four commits into which the original commit was split
to make reviews easier and more targeted.
George Oldfort [Mon, 11 Nov 2024 09:14:55 +0000 (10:14 +0100)]
mediatek: make use of Acer Predator Connect W6's u-boot environment
In order to prepare OpenWrt support for other Acer W6 devices and to adapt
the procedure to read and set mac addresses which other devices of the same
target are using (instead of needing an additional script and creating an
additional structure in the file system), this commit
- reads device mac addresses from u-boot environment
- avoids the detour via the file system to set the mac addresses
- drops redundant file /lib/preinit/05_extract_factory_data.sh
The idea and the implementation were thankfully taken from PR #16410.
This is the second of four commits into which the original commit was split
to make reviews easier and more targeted.
George Oldfort [Mon, 11 Nov 2024 08:25:56 +0000 (09:25 +0100)]
mediatek: split Acer/W6 dts into W6 common dtsi and device specific dts
In order to prepare OpenWrt support for other Acer W6 devices, this commit
moves all device tree components that are used by all Acer W6/W6e/W6d/W6m
routers from mt7986a-acer-predator-w6.dts to mt7986a-acer-w6-common.dtsi
(new file) and includes this dtsi file in mt7986a-acer-predator-w6.dts.
Minor changes had to be made to the device tree in order to improve clarity
and – notably – to reduce the number of dtc warnings:
- replace (obviously wrong) led@<N> gpio led entities by led-<N>
- remove unnecessary (default-state = "off") gpio led statements
- rename entity “memory” to “memory@0”
- add missing #address-cells and #address-size in /soc/mmc@11230000
- add missing #address-cells and #address-size in /soc/pcie@11280000
- introduce symbols “nvmem” and “swport0” in dtsi (referenced in dts)
The changes were checked with `diff -BEZbdtwy --suppress-common-lines ...`
(comparing two dts files created using old and new fdt-1 blobs again), see
https://github.com/openwrt/openwrt/pull/16861/#issuecomment-2455680020 .
This is the first of four commits into which the original commit was split
to make reviews easier and more targeted.
Tim Noack [Mon, 21 Oct 2024 12:21:59 +0000 (12:21 +0000)]
ath79: add support for TP-Link CPE710-v2
TP-Link CPE710-v2 is an outdoor wireless CPE for 5 GHz with one Ethernet
port based on the AP152 reference board. Compared to the CPE710-v1, the
only change observed in hardware is that the mdio address of the ethernet
physical changed from 0x4 to 0x0.
Specifications:
- SoC: QCA9563-AL3A MIPS 74kc @ 775MHz, AHB @ 258MHz
- RAM: 128MiB DDR2 @ 650MHz
- Flash: 16MiB SPI NOR Based on the GD25Q128
- Wi-Fi 5Ghz: ath10k chip (802.11ac for up to 867Mbps on 5GHz wireless
data rate), based on the QCA9896
- Ethernet: one 1GbE port
- 23dBi high-gain directional 2×2 MIMO parabolic antenna
- Power, LAN, WLAN5G Blue LEDs
Flashing instructions:
Flash factory image through stock firmware WEB UI or through TFTP
To get to TFTP recovery just hold reset button while powering on for around
30-40 seconds and release.
Rename factory image to recovery.bin
Stock TFTP server IP:192.168.0.100
Stock device TFTP address:192.168.0.254
Backup the stock firmware, settings and calibration data:
This router comes with PandoraBox OpenWrt firmware, so it is
possible to get all MTD partitions using scp.
Installation:
- Using the bootloader web server. Hold the reset button while turning
the power on. Upload the sysupgrade image on http://192.168.1.1.
- Using the sysupgrade command in PandoraBox OpenWrt.
LEDs:
- LAN1,LAN2,LAN3,LAN4,WAN,WLAN2G use GPIO pins of the MT7628AN SoC
(GPIOs 43,42,41,40,39,44)
- WLAN5G uses pin of MT7612EN.
- The POWER LED is directly connected to the VCC. It can be reconnected to
the GPIO 37 of the MT7628AN SoC by resoldering SMD resistor on the PCB.
Buttons:
- The RESET button is connected to the GPIO 38 of the MT7628AN SoC.
MAC addresses as verified by OEM firmware:
use address source
2g *:b0 factory 0x4 (label)
5g *:b1 factory 0x8004
LAN *:b2 factory 0x28
WAN *:b3 factory 0x2e
Antonio Pastor [Sat, 16 Nov 2024 20:09:49 +0000 (15:09 -0500)]
kernel: modules: appletalk: add for Netatalk v4
Netatalk v4 reintroduces AppleTalk and this module is required for
layer 3 protocol support.
Module was removed in kernel 4.14 for OpenWrt 18.06 (commmit 14a0131, 22/02/2018). At the time nothing used it as Netatalk v3
did not support AppleTalk.
Not building ipddp feature/module like it was in the past, as
recommended by upstream Netatalk maintainers.
Thomas Richard [Thu, 26 Sep 2024 14:55:22 +0000 (16:55 +0200)]
stm32: add new stm32 target
New stm32 target introduces support for stm32mp1 based devices.
For now it includes an initial support of the STM32MP135F-DK device.
The specifications bellow only list supported features.
Romanov Danila [Mon, 21 Oct 2024 18:34:34 +0000 (21:34 +0300)]
mediatek: change Routerich AX3000 ubi size
All new routers are shipped with ubi size 112MB since early September.
Bootloader update required (ask vendor , see wiki)
These partitions weren't used:
firmware_backup
zrsave
config2
Til Kaiser [Fri, 15 Nov 2024 15:49:14 +0000 (16:49 +0100)]
x86: add all ports to the Gowin 1U default network config
Commit e52c57bb1b30375e0bcc5523db76a672a4a8b4a4 renamed all
network ports to match the faceplate of the Gowin 1U Rack
Mount Server and added the br-lan bridge for the eth* ports.
This commit adds the PoE port to the br-lan bridge and a
br-wan bridge for the two SFP ports so that all ports are
part of the default network configuration.
Hauke Mehrtens [Fri, 22 Nov 2024 23:34:30 +0000 (00:34 +0100)]
wifi-scripts: Fix parsing of Capabilities
Fixup capabilities parsing in iw output.
In addition to the normal capabilities iw now also outputs HE MAC, HE
PHY and EHT MAC and EHT PHY capabilities. Exclude them in the parsing.
The grep returns this with mac80211-hwsim:
```
root@OpenWrt:~# iw phy phy0 info | grep 'Capabilities:'
Capabilities: 0x107e
HE PHY Capabilities: (0x02bfce0000000000000000):
EHT PHY Capabilities: (0x7c0000feffff7f01):
HE PHY Capabilities: (0x02bfce0000000000000000):
EHT PHY Capabilities: (0x7c0000feffff7f01):
HE PHY Capabilities: (0x02bf000000000000000000):
Capabilities: 0x107e
HE PHY Capabilities: (0x1cbfce0000000000000000):
EHT PHY Capabilities: (0xfc1f3ffeffff7f37):
HE PHY Capabilities: (0x1cbfce0000000000000000):
EHT PHY Capabilities: (0xfc1f3ffeffff7f37):
HE PHY Capabilities: (0x1cbf000000000000000000):
HE PHY Capabilities: (0x1cbfce0000000000000000):
EHT PHY Capabilities: (0xfefffffeffffff7f):
HE PHY Capabilities: (0x1cbfce0000000000000000):
EHT PHY Capabilities: (0xfefffffeffffff7f):
HE PHY Capabilities: (0x1cbf000000000000000000):
Capabilities: 0x107e
```
With busybox 1.36.1 the ht_cap_mask variable will be set to
-72057598332895361. With busybox 1.37.0 it will be set to -1.
Both values are wrong, after this change it will be set to 4222
(0x107E).
pwm1 value fan rotation speed cpu temperature notes
-----------------------------------------------------------------
0 maximal 31.5 Celsius too noisy
40 optimal 35.2 Celsius no noise hearable
95 minimal
above 95 does not rotate 55.5 Celsius
-----------------------------------------------------------------
At the moment we have following cooling levels:
cooling-levels = <255 96 0>;
for cpu-active-high, cpu-active-medium and cpu-active-low modes correspondingly.
Thus only cpu-active-high and cpu-active-low are usable. I think this is wrong.
This patch fixes cpu-active-medium settings for bpi-r3 board.
PS: I know, the patch is not ideal as it can break pwm fan for some users.
There are some peoples that use handmade cooling solutions, but:
* discussed cooler is the only 'official' pwm cooler for bpi-r3
available on the market.
* most peoples will use passive cooling available on the market or
the discussed cooler.
* the pwm-fan dts section was added before the official cooler
appears on the market.
Thus it should not be a lot of harm from this fix.
Eric Fahlgren [Thu, 21 Nov 2024 13:50:21 +0000 (05:50 -0800)]
build: fix filtering of non-upgradable packages
Add anchor to name search so that we don't inadvertently filter out
packages containing, say, "kernel-" as part of their name.
Fixes: openwrt/packages#25372 Signed-off-by: Eric Fahlgren <ericfahlgren@gmail.com> Link: https://github.com/openwrt/openwrt/pull/17032 Signed-off-by: Robert Marko <robimarko@gmail.com>
Robert Marko [Wed, 20 Nov 2024 12:51:53 +0000 (13:51 +0100)]
include/package-pack: actually call default_postinist/prerm when using APK
Currently, when you install a package that ships uci-defaults scripts they
are not getting executed during package installation.
For example, if you install a new LuCI theme it ships a uci-defaults script
to add it to the UCI LuCI config so the theme is actually selectable but
that does not happen until the device is rebooted so that uci-defaults
script is actually executed.
It turns out that the recipe for post-install is the issue since it will
include contents of postinst-pkg before the call to default_postinist.
This is an issue since postinst-pkg will exit with code 0 before we ever
reach the call to default_postinist.
So, lets simply make the call to default_postinist before postinst-pkg
inclusion which is what OPKG based installation does.
The same issue affects pre-deinstall script but its not actually being hit
since we dont seem to be actually even generating prerm-pkg scripts but
lets fix this theoretical issue as well.
Fixes: #16987 Fixes: d788ab376f85 ("build: add APK package build capabilities") Link: https://github.com/openwrt/openwrt/pull/17023 Signed-off-by: Robert Marko <robimarko@gmail.com>
Robert Marko [Tue, 19 Nov 2024 22:56:19 +0000 (23:56 +0100)]
imagebuilder: fix OPKG package_whatdepends support
Trying to use 'package_whatdepends' feature of the ImageBuilder with OPKG
will currently fail as OPKG does not support "list --depends" call at all,
it seems that this is a mixup from the original APK support commit.
So, lets restore 'package_whatdepends' support for OPKG by calling
"whatdepends -A" instead as we used to before APK support.
Robert Marko [Tue, 19 Nov 2024 22:38:02 +0000 (23:38 +0100)]
imagebuilder: fix APK package_depends support
Currently trying to use the 'package_depends' feature of ImageBuilder will
result in it trying to call OPKG:
make package_depends PACKAGE="usbutils"
OK: 26 MiB in 142 packages
bash: line 1: openwrt-imagebuilder-qualcommax-ipq807x.Linux-x86_64/staging_dir/host/bin/opkg: No such file or directory
make: *** [Makefile:363: package_depends] Error 127
It looks like a copy/paste error when APK support was being added, so lets
fix it by calling APK and its "info --depends" command.
Fixes: #16996 Fixes: d788ab376f85 ("build: add APK package build capabilities") Link: https://github.com/openwrt/openwrt/pull/17022 Signed-off-by: Robert Marko <robimarko@gmail.com>
Changes: e3464d0 db: make repository description an atom instead of allocation 417a93c pkg: truncate apkv3 description to 256 bytes d26b65d db, audit: remove support for files without embedded checksum 64ff8c7 db: allow files starting with a dot in the root directory of apk3 packages 89e4bf1 db, fs: do not extract devices in --usermode 4050f9e db: fix hardlink handling: root directory and v3 checksums ade0be3 db, extract: handle file/directory extraction errors more consistently a4837ae package: don't call make_device_tree when APK_NO_CHROOT is set 1e04115 package: respect libexecdir instead of hard-coding /usr/libexec 76970a9 package: move the location of executable package scripts 19b1df7 blob: refactor apk_blob_for_each_segment into apk_blob_foreach_word e38d5b5 test: add missing alpine tests makefile fcd4def test: move vertest to cmocka based unit testing infrastructure 8a13ed9 test: fix solver.sh for parallel use 5add6fc (tag: v3.0.0_pre4) apk-tools-3.0.0_pre4 5dd91e3 db: consider --force-no-chroot when determining /dev/fd availability d86afde db: print message when a file is written to .apk-new a5aeb3d test: unify makefile and meson tests a236fdd pkg: use memfd_create only if target root has dev/fd working 563d364 tests: minor updates to root tests 08b4d21 tests: move solver test data to separate directory c259642 tests: rework solver tests to not require apk-test binary d2aaf13 commit: sort matched dependencies on error analysis 98d7196 db: fix permissions of arch file b231eac db: simplify add_repos_from_file 2a3dbfc db: add and use apk_db_parse_file helper to parse files line by line c1a3e69 db: validate package arch against compatible arches
Robert Marko [Tue, 19 Nov 2024 13:36:17 +0000 (14:36 +0100)]
imagebuilder: fix APK architecture setting
Currently, when "apk add --initdb" is called it will populate the
/etc/apk/arch file with the architecture of the host instead of the target
package architecture and this will then make it impossible for new packages
to be installed on the device as the target architecture will not match
after APK is updated to include [1].
So, lets use override the architecture by passing the target package one
by using the "--arch" argument to "apk add".
Robert Marko [Tue, 19 Nov 2024 12:12:28 +0000 (13:12 +0100)]
include/package-pack: translate PKGARCH for APK
We have a lot of script-only packages that are universal for all arch-s
and those set PKGARCH:=all to indicate it.
Unfortunately, APK expects architecture to be set to "noarch" instead to
indicate that its universal so instead of having to update all packages
that set PKGARCH:=all and thus break OPKG lets simply translate "all" to
"noarch" when generating the APK package.
This will be required as soon we update APK to include [1] as it will start
enforcing package architecture checks.
Rodrigo Balerdi [Thu, 14 Nov 2024 20:37:32 +0000 (17:37 -0300)]
ipq806x: tr4400v2: fix dtc warnings by deleting stock partitions
The original set of stock partitions was kept in the TR4400 v2 port,
with the same partition numbers but their names prefixed with 'stock_'.
This allowed scripts (installation, back to stock, etc) to run on both
stock and OpenWrt firmware. But this triggers warnings in the device
tree compiler, as partitions of the old and new schemes overlap.
This commit fixes the dtc warnings by deleting the stock partitions,
also renumbering some of the remaining MTD partitions in the process.
Additionally, the 'fw_env' partition is set to read-only.
These changes can break existing scripts as well as user configurations
that utilize the 'extra' partition. Users wanting to run old scripts can
do so by reverting to the 23.05 series releases.
Robert Marko [Mon, 18 Nov 2024 18:55:57 +0000 (19:55 +0100)]
include/package-pack: add default 'provider_priority' for APK packages
Currently, trying to use APK to install a package that has a dependency on
a virtual package that needs to be resolved via 'provides' it will fail if
package does not have 'DEFAULT_VARIANT:=1' like:
apk add usbutils
ERROR: unable to select packages:
libudev (virtual):
note: please select one of the 'provided by' packages explicitly
provided by: libudev-zero
required by: usbutils-017-r1[libudev]
Issue is that we dont set 'provider_priority' that APK uses to break ties
when choosing a virtual package to satisfy a dependency and thus despite
only one package providing the dependency it will still end up with a tie
and just error out.
So, lets simply fix this by providing a default value for
'provider_priority' when 'DEFAULT_VARIANT' is not set and then APK will
be able to resolve dependencies.
David Bauer [Sun, 17 Nov 2024 12:23:09 +0000 (13:23 +0100)]
net: phy: broadcom: update dependency condition
The broadcom PHY driver only has to depend upon PTP_1588_CLOCK_OPTIONAL
if NETWORK_PHY_TIMESTAMPING is enabled. The PTP functionality is stubbed
in this case.
Reflect this circumstance in the dependence condition. This allows to
build the driver as a built-in module even if PTP is built as a module.
This is required to include the broadcom PHY module regardless of the
built-setting of the PTP subsystem. On ath79 (and probably more)
targets with Broadcom PHY, Gigabit operation is currently broken as the
PHY driver is only built as a module in case all kernel-packages are
built. Due to this circumstance, affected devices fall back to using the
generic PHY driver.
Robert Marko [Mon, 18 Nov 2024 16:15:54 +0000 (17:15 +0100)]
omnia-eeprom: depend only on subtarget
Now that omnia-eeprom is marked nonshared building the cortex-a9 mvebu
subtarget will fail with:
ERROR: unable to select packages:
omnia-eeprom (no such package):
required by: world[omnia-eeprom]
This is because omnia-eeprom depends on TARGET_mvebu_cortexa9_DEVICE_cznic_turris-omnia
which will not be satisfied in buildbots since CONFIG_TARGET_ALL_PROFILES
and CONFIG_TARGET_PER_DEVICE_ROOTFS are set in which case
CONFIG_TARGET_mvebu_cortexa9_DEVICE_cznic_turris-omnia is not set.
So, lets simply depend on the mvebu/cortex-a9 subtarget.
Daniel Golle [Sat, 16 Nov 2024 15:29:24 +0000 (15:29 +0000)]
mtd-utils: add ubihealthd to nand-utils
Add ubihealthd to the nand-utils package, auto-create UCI config for
each UBI device and launch the daemon on boot.
The default time interval between scrubbing a random PED is 120 seconds
which means that a fully used 128 MiB flash chip gets scrubbed in about
a day and a half. The interval can be adjusted in UCI using the
'interval' option.
Suggested-by: Rodrigo Balerdi <lanchon@gmail.com> Signed-off-by: Daniel Golle <daniel@makrotopia.org> Link: https://github.com/openwrt/openwrt/pull/16973 Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>