Commit Graph

61674 Commits

Author SHA1 Message Date
Daniel Pawlik
da502be941 mt76: Add firmware files into mt7925-firmware package
The firmware binaries were missing in kmod-mt7925-firmware package.

Signed-off-by: Daniel Pawlik <pawlik.dan@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16239
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-08-24 14:50:20 +02:00
Johannes Truschnigg
b6ac37110f linux-firmware: add Intel CPU-integrated GPU (iGPU) firmware
On latest Intel x86 CPUs, DMC firmware is required for the iGPU to reach
its lowest power states. If the driver cannot load it, it will print a
warning and unnecessarily make the iGPU draw a bit more power when idle.

GUC firmware (various "offload" mechanisms that deal with scheduling GPU
workloads) and HUC firmware (required for accelerated media codec
operations for HEVC/H.265) are probably more niche, but could also
provde useful for some - for example, when building an
Intel/OpenWrt-based security camera.

Signed-off-by: Johannes Truschnigg <johannes@truschnigg.info>
Link: https://github.com/openwrt/openwrt/pull/16069
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-08-24 14:46:28 +02:00
Martin Blumenstingl
fc31261c33 ath79: update Sophos AP15 to indicate that it uses an QCA9557 SoC
Device support for Sophos AP15 is based on Sophos AP55(C) and AP100(C).
Those other Sophos access points uss a QCA9558 SoC (some of them with
one of the three chains on the built-in SoC's wifi disabled) while the
AP15 uses a QCA9557 SoC (which only has two chains enabled in the
package or silicon).

This is mostly cosmetic since QCA9558 and QCA9557 are virtually
identical and all differences are automatically detected and/or managed
by the ART calibration.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Link: https://github.com/openwrt/openwrt/pull/16187
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-08-24 14:38:57 +02:00
Martin Blumenstingl
b35bb09175 ath79: remove 5GHz wifi bits from Sophos AP15
Sophos AP15 only uses the SoC's built-in wifi. There's no external PCIe
chipset.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Link: https://github.com/openwrt/openwrt/pull/16187
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-08-24 14:38:57 +02:00
Rosen Penev
002fdd3781 lantiq: vgv7510kw22: use NVMEM for mac addresses
Userspace handling is deprecated.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16230
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-08-24 12:43:33 +02:00
Pawel Dembicki
cf765b1be6 mpc85xx: Add QCA8327 LED nodes to tl-wdr4900-v1 dts
This commit introduces led nodes in tl-wdr4900-v1 dts.
It allows to configure switch leds from userspace.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16226
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-08-23 10:53:29 +02:00
Pawel Dembicki
71c6d99d57 mpc85xx: add usb trigger to tl-wdr4900-v1 leds
TP-Link tl-wdr4900-v1 has two usb leds. Modern kernels can handle usb
led trigger. Let's enable it.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16226
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-08-23 10:53:29 +02:00
Pawel Dembicki
c43480c2dc mpc85xx: refresh tl-wdr4900-v1 led configuration
This commit change led description in dts file from old method to new
approach accepted by upstream.

USB power gpio is handled by gpio-export now.

Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16226
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-08-23 10:53:29 +02:00
Rosen Penev
5d107bbbbb tmon: make version apk compatible
No need to override version.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2024-08-22 17:53:28 +02:00
Robert Marko
b42f7a1b30 generic: 5.15, 6.1: enable CNP support
Ever since CONFIG_ARM64_PAN was enabled Common Not Private (CNP) is now
visible and kernel builds will stop as they are not set in kernel config
for 5.15 and 6.1.

So, lets enable Common Not Private (CNP) which is ARMv8.2 feature and will
be NOP of CPU-s that dont support it.

Fixes: a2662309aa ("kernel: Enable CONFIG_ARM64_PAN to restrict kernel access to user space memory")
Link: https://github.com/openwrt/openwrt/pull/16211
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-08-22 13:36:15 +02:00
Robert Marko
9c0179ff13 generic: 6.6: disable EPAN support
Enhanced Privileged Access Never (EPAN) is an ARMv8.7 feature, and since
we dont have any SoC-s implementing it lets disable it.

Link: https://github.com/openwrt/openwrt/pull/16211
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-08-22 13:36:15 +02:00
Rany Hany
fca306c563 mediatek/mt7622: fix config symbol for 2.5GE MTK driver
The commit backporting new MTK patches did not update the
Kernel config for mediatek/mt7622 causing the build to
fail.

Simply use the new config symbol name for the driver to
fix the issue.

Fixes: 1069514978 ("mediatek: backport pending Ethernet PHY driver patches")
Signed-off-by: Rany Hany <rany_hany@riseup.net>
Link: https://github.com/openwrt/openwrt/pull/16225
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-08-22 11:42:34 +02:00
Daniel Golle
1069514978 mediatek: backport pending Ethernet PHY driver patches
Use pending patchset for 2.5GE PHY driver, unifying LED handling
accross all MediaTek Ethernet PHYs.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-08-22 00:20:02 +01:00
Daniel Golle
963be1423f kernel: add missing config symbols
Kconfig symbols CONFIG_ARM64_CNP and CONFIG_ARM64_EPAN got exposed
by enabling CONFIG_ARM64_PAN. Enable them as well, as just like for
PAN, also EPAN and CNP will be detected at runtime at no cost.

Fixes: a2662309aa ("kernel: Enable CONFIG_ARM64_PAN to restrict kernel access to user space memory")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-08-22 00:20:02 +01:00
Rosen Penev
949e1a0856 mpc85xx: tl-wdr4900: move platform code to dts
No benefit in doing so in platform file. Code for dts has already been
written. Might as well use it.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16125
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-08-21 21:39:24 +02:00
Rosen Penev
7ac8279bd4 mpc85xx: use NVMEM for wifi
Userspace handling is deprecated. No need for any of this.

Calibration size was adjusted to 440, which is the standard value for
ath9k radios.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16125
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-08-21 21:39:24 +02:00
Rosen Penev
e031ea8aab mpc85xx: tl-wdr4900: use NVMEM for WAN
Now that the ports are defined in DTS, this is trivial to do.

Avoids userspace handling.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16125
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-08-21 21:39:24 +02:00
Felix Fietkau
580ad3e6bb mt76: update to Git HEAD (2024-08-21)
5c9fbdd64313 wifi: mt7915: fix wcid allocation leak
d547c25cabab wifi: mt76: mt7915: fix last argument to mt7915_mcu_add_sta
caed4843c5cd wifi: mt76: fix station muar index
3cd1c1740280 wifi: mt76: mt7915: hold dev->mt76.mutex while disabling tx worker
a5e630ef458c wifi: mt76: mt7916: fix regression in .sta_state migration

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-08-21 16:52:07 +02:00
Mark Mentovai
cddda1d44d x86: enable console keyboard
The kernel support necessary to use a console keyboard was not built on
x86, affecting real and virtual machines alike. The console keyboard
would function properly in GRUB, but would not work at all once Linux
booted. It appeared that the console was intended to work because
console video appeared on the display, including prompts to enter
failsafe or select the debug log level from the keyboard, and the prompt
to "Press Enter to activate this console", but there was no way to
provide input to it. All keystrokes were ignored.

This enables several kernel configuration options to enable HID and USB
HID support (CONFIG_HID, CONFIG_HID_SUPPORT, CONFIG_HID_GENERIC, and
CONFIG_USB_HID), making the keyboard functional. For alignment with
armsr, CONFIG_USB_HIDDEV is also added, although not strictly necessary
for keyboard support. Note that this change also causes
CONFIG_HID_HYPERV_MOUSE to be enabled for x86/64 and x86/generic: it was
already set in these subarchitectures' kernel configurations, but was
ineffective due to CONFIG_HID being absent.

The omission of keyboard support on x86 may not have been widely noticed
because USB HID is not used on production OpenWrt x86 machines such as
pc-engines,apu2 which only have a serial console, or with the default
x86 configuration used by scripts/qemustart, which uses -nographic and
does not configure a virtual physical console but instead uses a serial
console.

This configuration change results in, for x86_64, +40kB in kernel.bin
and just over +40kB in gzip-compressed "combined" images. This should
not be a problem for the non-storage-constrained x86 target.

Until 2a86425de1, CONFIG_HID, CONFIG_USB_HID, and CONFIG_USB_HIDDEV
were set in the target-level kernel configuration, and
CONFIG_HID_GENERIC was set at the subtarget level. These are
reintroduced strictly at the subtarget level by request. This applies to
the 64, generic, and legacy subtargets, omitting geode.

Fixes: https://github.com/openwrt/openwrt/issues/16157
Signed-off-by: Mark Mentovai <mark@mentovai.com>
Link: https://github.com/openwrt/openwrt/pull/16208
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-08-21 12:15:21 +02:00
Hauke Mehrtens
a2662309aa kernel: Enable CONFIG_ARM64_PAN to restrict kernel access to user space memory
Enable the CONFIG_ARM64_PAN kernel security option, which leverages the
ARMv8.1 Privileged Access Never (PAN) extension to prevent the kernel
from directly accessing user space memory.

Instead, copy_to_user and similar functions must be used for data
transfer between kernel and user space. This feature is automatically
disabled at runtime on CPUs without PAN support, making it a no-op in
those cases.

Link: https://github.com/openwrt/openwrt/pull/16189
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-08-21 00:21:05 +02:00
Hauke Mehrtens
fd6ce0dea9 kernel: Activate CONFIG_LIST_HARDENED
Activate the kernel option CONFIG_LIST_HARDENED for all targets.
This adds some inline checks to list_add() and list_del() operations
in the kernel. Before kernel 6.6 these checks were only available with
CONFIG_DEBUG_LIST option, but now a light version is available which
should only add very few extra instructions to such operations.

The performance penalty is very low from my point of view. It should
make it much harder to use bugs in Linux kernel list handling when
exploiting the Linux kernel.

Link: https://github.com/openwrt/openwrt/pull/16189
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-08-21 00:20:27 +02:00
Tianling Shen
1c61a8f958 rockchip: add Radxa ROCK 5B support
Hardware
--------
RockChip RK3588 ARM64 (8 cores)
4/8/16/32GB LPDDR4X RAM
2500 Base-T
RGB LED
eMMC Connector
SPI-NOR 16MB
Micro-SD Slot
2x USB 2.0 Port
2x USB 3.0 Port
Headphone Jack
M.2 E-Key
M.2 M-Key
USB PD 5/9/12/15/20V Power

Install
--------
Uncompress the OpenWrt sysupgrade and write it to a micro SD card or
internal eMMC using dd.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/16149
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-08-21 00:10:47 +02:00
Tianling Shen
ea249af456 uboot-rockchip: add ROCK 5B support
Add support for the Radxa ROCK 5B board.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/16149
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-08-21 00:10:47 +02:00
Tianling Shen
0cfd254913 rockchip: add Radxa ROCK 5A support
Hardware
--------
RockChip RK3588 ARM64 (8 cores)
4/8/16/32GB LPDDR4X RAM
1000 Base-T
Status LED
eMMC/SPI Connector
Micro-SD Slot
2x USB 3.0 Port
2x USB 2.0 Port
Headphone Jack
M.2 E-Key
USB PD/QC 5/9/12/15/20V Power

Install
--------
Uncompress the OpenWrt sysupgrade and write it to a micro SD card or
internal eMMC using dd.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/16149
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-08-21 00:10:47 +02:00
Tianling Shen
d44fcee73c uboot-rockchip: add ROCK 5A support
Add support for the Radxa ROCK 5A board.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/16149
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-08-21 00:10:47 +02:00
Tianling Shen
b672dd6e34 rockchip: extend BOARDNAME
Now we have rk3588 support :)

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/16149
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-08-21 00:10:47 +02:00
Tianling Shen
00dd39c289 rockchip: update Kconfig for rk3588
Enable OTP/USBDP drivers for rk3588.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/16149
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-08-21 00:10:47 +02:00
Tianling Shen
6a0a6c45ed rockchip: backport dts updates for rk3588
Backport upstreamed dts updates for rk3588.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/16149
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-08-21 00:10:47 +02:00
Tianling Shen
7108f5bd9f rockchip: backport driver updates for rk3588
Backport upstreamed clk/mfd/phy/usb updates for rk3588.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/16149
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-08-21 00:10:47 +02:00
Tianling Shen
c7c0b7bc02 rockchip: reorder patches
Reorder to start from 001.

Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/16149
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-08-21 00:10:47 +02:00
Zxl hhyccc
d1bbe65317 kernel: bump 6.1 to 6.1.106
https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.1.106

All patches automatically rebased.

Build system: bcm4908 bcm53xx

Signed-off-by: Zxl hhyccc <zxlhhy@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16174
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-08-20 23:45:07 +02:00
Zxl hhyccc
c296141d92 kernel: bump 6.1 to 6.1.105
https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.1.105

Removed upstreamed:
generic/backport-6.1/860-v6.6-bus-mhi-host-pci_generic-add-support-for-Telit-FE990.patch
See: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/diff/drivers/bus/mhi/host/pci_generic.c?h=v6.1.105&id=da578d3b2d236b50e356b1a9d770ad19165de31c

All other patches automatically rebased.

Build system: bcm4908 bcm53xx

Adjusted generic/config-6.1 for new ksym: ARM64_ERRATUM_3194386 and 3312417[2]

https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/diff/arch/arm64/Kconfig?h=linux-6.1.y&id=286c8ca924b220212fdeab81cb652fdaa77e38fe

Signed-off-by: Zxl hhyccc <zxlhhy@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16174
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-08-20 23:45:07 +02:00
John Audia
00aa9017fa kernel: bump 6.6 to 6.6.47
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.47

All patches automatically rebased.

Build system: x86/64
Build-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3
Run-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3
Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/16173
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-08-20 23:41:08 +02:00
John Audia
3eb08538c4 kernel: bump 6.6 to 6.6.46
This commit makes three changes all needed for the update of the 6.6 kernel.

1. Upstream kernel bump to 6.6.46

	Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.46
	Manually rebased:
        	bcm27xx/patches-6.6/950-0320-spi-spidev-Restore-loading-from-Device-Tree.patch
	All other patches automatically rebased.

2. Adjusted the following for new ksym[1] enabling it:

        armsr/config-6.6
        bcm27xx/bcm2712/config-6.6

3. Added a fix to receiving fraglist GSO packets:

	generic/pending-6.6/601-udp-fix-receiving-fraglist-GSO_packets.patch[2]

1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/diff/arch/arm64/Kconfig?id=v6.6.46&id2=v6.6.45
2. https://marc.info/?l=linux-netdev&m=172407994500599&w=2

Build system: x86/64
Build-tested: x86/64/AMD Cezanne
Run-tested: x86/64/AMD Cezanne

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/16173
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-08-20 23:41:08 +02:00
Álvaro Fernández Rojas
2ae5bea856 Revert "bcm27xx: align and enable hwmon/thermal symbols"
This reverts commit f98f95359b.

It seems that this commit is causing issues with the PWM fan on the RPi 5 as
reported here: https://github.com/openwrt/openwrt/issues/16191

So let's revert this for now.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-08-20 18:01:33 +02:00
Samuele Longhi
ba9c269e1e bmips: bcm6328: add support for D-Link DSL-2750B rev B1
The D-Link DSL-2750B rev B1 (AW4339U) is a wifi fast ethernet router, 2.4 GHz single band
with two external antennas.

This ports the device from old target bcm63xx/generic to bmips/bcm6328.
The hardware is the same of D-Link DSL-2740B rev F1 and DSL-2741B rev F1, plus a usb2 port.

Hardware:
 - SoC: Broadcom BCM63281
 - CPU: single core BMIPS4350 @ 320Mhz
 - RAM: 64 MB (Nanya NT5TU32M16DG)
 - Flash: 8 MB NOR (Macronix MX25L6406ENI-12G)
 - Ethernet LAN: 4x 100Mbit (Broadcom BCM63281)
 - Wifi 2.4 GHz: 802.11bgn (Atheros AR9287)
 - USB: 1x 2.0
 - Buttons: 3x
 - LEDs: 10x
 - UART: yes

Installation via CFE web UI:
  1. Power off the router.
  2. Press reset button near the power switch.
  3. Keep it pressed while powering up during ~20+ seconds.
  4. Browse to http://192.168.1.1 and upload the firmware.
  5. Wait a few minutes for it to finish.

Signed-off-by: Samuele Longhi <agave@dracaena.it>
2024-08-20 16:19:11 +02:00
Álvaro Fernández Rojas
b75a7ca0bc bmips: fix gpio-leds DTS nodes
gpio-leds doesn't have reg property and pin number is not an address, so "-"
should be used instead of "@".
6e4436539a/Documentation/devicetree/bindings/leds/leds-gpio.yaml (L24)

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-08-20 12:21:04 +02:00
Álvaro Fernández Rojas
27b816d545 generic: 6.6: backport upstream r8169 patches
- improve RTL8411b phy-down fixup
- remove not needed check in rtl_fw_write_firmware
- remove multicast filter limit
- improve handling task scheduling
- simplify EEE handling
- simplify code by using core-provided pcpu stats allocation
- add generic rtl_set_eee_txidle_timer function
- support setting the EEE tx idle timer on RTL8168h
- add support for returning tx_lpi_timer in ethtool get_eee
- annotate writes on dev->mtu from ndo_change_mtu()
- disable interrupt source RxOverflow
- remove detection of chip version 11 (early RTL8168b)

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-08-19 20:40:59 +02:00
Álvaro Fernández Rojas
400acae2b9 bcm53xx: refresh 6.6 kernel patches
Refresh bcm53xx kernel patches after 17f07040e7.

Fixes: 17f07040e7 ("kernel: prevent tunnel drivers from mangling fraglist GSO packets")
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-08-19 20:39:03 +02:00
Álvaro Fernández Rojas
052732bddb generic: 6.6: fix early RTL8221B detection
Fixes the issue of RTL8221B-VB-CG not being detected correctly after ca44690.

Fixes: ca4469045f ("generic: 6.6: backport upstream RealTek PHY patches")
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2024-08-19 18:46:18 +01:00
Álvaro Fernández Rojas
5eec1df01e generic: 6.6: backport realtek phy patches from v6.11
- add support for rtl8224 2.5Gbps PHY
- add support for PHY LEDs on RTL8211F

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-08-19 18:46:18 +01:00
Mark Mentovai
1310e4f1ae failsafe: fix console failsafe shell
When running a failsafe shell on a console, job control was unavailable,
and ^C did not function correctly.

This change invokes console failsafe shells via `setsid`, making them
session leaders and allowing them to claim controlling terminals, which
makes job control function properly. To support this, the busybox
`setsid` utility is enabled. This has a minimal 149-byte size impact on
a test x86_64 squashfs rootfs image.

^C was ignored in subprocesses of failsafe shells: it was not possible
to ^C out of a program that would not exit on its own, such as many
typical `ping` invocations. As job control was unavailable, it was not
possible to suspend these subprocesses either, causing a hung program to
tie up a console indefinitely, unless another means to signal the
program was available. This was caused by SIGINT being placed at
disposition SIG_IGN by the shell running preinit, which it did because
the console shell was executed asynchronously with &. That disposition
was inherited by the console shell and its subprocesses, generally
causing ^C to have no effect.

As there is no way in busybox `ash` to reset the disposition of a signal
already ignored at shell entry, and no apparent way to avoid SIGINT
being placed at SIG_IGN when & is used in preinit, an alternative
construct is needed. Now, `start-stop-daemon` is used to start (-S) the
console failsafe shell in the background (-b). This approach does not
alter SIGINT, allowing the console shell to be started with that
signal's handling intact, and normal ^C processing to occur.

busybox `ash` has some behaviors conditional on SHLVL, and while the
console shells ought to run at SHLVL=1, they were not by virtue of being
started by the shell-based preinit system. Additionally, a variety of
detritus was present in the console shell's environment, carried over
from preinit. These conditions are corrected by running the console
shell via `env -i` to clear the environment and establish a minimum and
correct set of environment variables for operation, in the same manner
as `login`. HOME is not explicitly set, because it's addressed in
/etc/profile. For non-failsafe console shells when
system.@system[0].ttylogin = 0, `login -f root` achieves a similar
effect. (`login` already started non-failsafe console shells when
ttylogin = 1 and behaved correctly. This brings the ttylogin = 0 case to
parity.) Note that even `login -f` is somewhat undesirable for failsafe
shells because it requires a viable /etc/passwd, hence the `env -i`
construct in that case.

The TERM environment variable from the preinit environment, with value
"linux", would rarely be correct for serial consoles. Now, the preinit
TERM value is preserved (or set to "linux" if unset) only when the
console is /dev/console or /dev/tty[0-9]*. Otherwise, it will be set to
a safe default appropriate for serial consoles, "vt102", as used for
serial consoles by busybox init. This "linux"/"vt102" TERM setting is
also duplicated for non-failsafe console shells.

This also indicates failsafe mode by showing "- failsafe -" on all
consoles (not just the last-defined one). It sets a hostname of
"OpenWrt-failsafe" in failsafe mode which is rendered in the shell's
prompt as a reminder of the mode during interactive failsafe use.
Previously, no hostname was set, which resulted in the kernel-default
hostname, "(none)", appearing in failsafe shell prompts.

Signed-off-by: Mark Mentovai <mark@mentovai.com>
Link: https://github.com/openwrt/openwrt/pull/16113
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-08-19 18:55:00 +02:00
Matt Eaton
60951f0515 xfrm: remove requirement for underlying device
Since kernel 5.3, phydev (dev) is no longer required

   torvalds/linux@22d6552

Signed-off-by: Matt Eaton <git@divinehawk.com>
Link: https://github.com/openwrt/openwrt/pull/16046
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-08-19 18:49:49 +02:00
Sylvain Monné
88186c85f9 uhttpd: restart daemon if certificate has changed
Fixes #16075

When the SSL certificate used by uhttpd has been changed, calling
`/etc/init.d/uhttpd reload` will now have the effect of restarting the
daemon to make the change effective.

Signed-off-by: Sylvain Monné <sylvain@monne.contact>
Link: https://github.com/openwrt/openwrt/pull/16076
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-08-19 18:46:08 +02:00
Rosen Penev
7abc89dabe mpc85xx: panda: use DSA B53 driver
It's upstream and a replacement for the swconfig driver.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16124
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-08-19 18:42:45 +02:00
Rosen Penev
40452223d6 ramips: ethernet: use devm for request_irq
Allows removing free_irq. Simpler.

Oddly enough the other switch code already does this.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16050
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-08-19 10:45:06 +02:00
Álvaro Fernández Rojas
5d2a008670 kernel: r8126: print link status when link up
Like other Ethernet drivers, print link speed and duplex mode
when the interface is up. Formatting output at the same time.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
2024-08-18 19:57:47 +02:00
Álvaro Fernández Rojas
a57a3e5cc5 kernel: r8125: print link status when link up
Like other Ethernet drivers, print link speed and duplex mode
when the interface is up. Formatting output at the same time.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
2024-08-18 19:57:41 +02:00
Álvaro Fernández Rojas
2f846a3315 kernel: r8168: print link status when link up
Like other Ethernet drivers, print link speed and duplex mode
when the interface is up. Formatting output at the same time.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
2024-08-18 19:57:36 +02:00
Álvaro Fernández Rojas
fe0240f27e kernel: r8101: print link status when link up
Like other Ethernet drivers, print link speed and duplex mode
when the interface is up. Formatting output at the same time.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-08-18 19:31:55 +02:00