From hauke at hauke-m.de Sun Feb 1 09:46:13 2026 From: hauke at hauke-m.de (Hauke Mehrtens) Date: Sun, 1 Feb 2026 18:46:13 +0100 Subject: OpenWrt 25.12.0-rc4 - Release Candidate Message-ID: <7679a72a-f720-4591-824d-4dfcc6e88b83@hauke-m.de> Hi, The OpenWrt community is proud to announce the fourth release candidate of the OpenWrt 25.12 stable series. Download firmware images using the OpenWrt Firmware Selector: * https://firmware-selector.openwrt.org?version=25.12.0-rc4 Download firmware images directly from our download servers: * https://downloads.openwrt.org/releases/25.12.0-rc4/targets/ Please test this version ======================== This is not the final version, this is a test version. Please report problems and bugs in our issue tracker. https://github.com/openwrt/openwrt/issues Highlights in OpenWrt 25.12 =========================== OpenWrt 25.12.0-rc4 incorporates over 4300 commits since branching the previous OpenWrt 24.10 release and has been under development for over one year. Only the main changes are listed below. General changes =============== The hardware requirements did not change significantly, most devices supported by OpenWrt 24.10 should also work with OpenWrt 25.12. Switch package manager from opkg to apk ======================================= OpenWrt has transitioned from the traditional **opkg** package manager to **apk** (Alpine Package Keeper). This change brings several advantages: * apk is still maintained, the OpenWrt opkg fork was not maintained any more. apk supports most features of opkg. Only very few package names changed. The command line arguments of apk are different from the command line arguments of opkg. For users migrating existing systems, an official opkg to apk cheatsheet is available to ease the transition and map common workflows. https://openwrt.org/docs/guide-user/additional-software/opkg-to-apk-cheatsheet Integration of attended sysupgrade ================================== The attended sysupgrade LuCI application is now installed by default. ASU allows devices to: * Upgrade to new OpenWrt firmware versions * Automatically rebuild firmware images with all currently installed packages * Preserve system configuration during upgrades This dramatically simplifies upgrades: with just a few clicks in LuCI and a short wait, a custom firmware image is built and installed without manual intervention. Shell history is preserved ========================== Shell command history is now preserved across sessions by storing it in a **RAM-backed filesystem**. Benefits: * Command history is no longer lost between logins * No unnecessary writes to flash storage by default For users who prefer persistent history storage, this behavior can be changed by editing: `/etc/profile.d/busybox-history-file.sh` ?? **Note:** Storing history on flash will increase write cycles and may impact flash endurance over time. Integration of video feed ========================== The OpenWrt video feed with Qt5 and UI applications is integrated by default. Wi-Fi scripts in ucode ====================== The wifi scripts were rewritten in ucode. Target changes ============== * Extend realtek target with support for more switch SoCs like 10G Ethernet switches. * Extend qualcommax target with support for ipq50xx and ipq60xx SoCs. * Added siflower target for Siflower SF21A6826/SF21H8898 SoCs * Added sunxi/arm926ejs subtarget for Allwinner F1C100/200s SoCs Many new devices added ====================== OpenWrt 25.12 supports over 2180 devices. Support for over 160 new devices was added in addition to the device support by OpenWrt 24.10. Core components update =================== Core components have the following versions in 25.12.0-rc4: * Updated toolchain: * musl libc 1.2.5 * glibc 2.41 * gcc 14.3.0 * binutils 2.44 * Updated Linux kernel * 6.12.66 for all targets * main packages: * cfg80211/mac80211 from kernel 6.18.7 * hostapd master snapshot from August 2025 * dnsmasq 2.91 * dropbear 2025.89 * busybox 1.37.0 In addition to the listed applications, many others were also updated. Upgrading to 25.12 =================== Upgrading from 24.10 to 25.12 should be transparent on most devices, as most configuration data has either remained the same or will be translated correctly on first boot by the package init scripts. * Sysupgrade from 23.05 to 25.12 is not officially supported. * Cron log level was fixed in busybox. `system. at system[0].cronloglevel` should be set to `7` for normal logging. `7` is the default now. If this option is not set, the default is used and no manual action is needed. * Bananapi BPI-R4: Interfaces `eth1` was renamed to `sfp-lan` or `lan4` and the interface `eth2` was renamed to `sfp-wan` to match the labels. You have to upgrade without saving the configuration. Scratch installs/upgrades ========================= If you wish to start from scratch (always the safest, but also the most work), simply download the pre-built image from the [downloads site](https://downloads.openwrt.org/releases/25.12.0-rc4/targets/) or from the [Firmware Selector](https://openwrt.github.io/firmware-selector-openwrt-org?version=25.12.0-rc4) to your device. Make sure to create and save a backup, then install the image using `sysupgrade -n /tmp/firmware.bin` or the LuCI Backup/Flash Firmware, being sure to set "Keep settings and retain the current configuration" to its off position. Restore or reconstruct your configuration using the contents of the backup as a template. Attended Sysupgrade options =========================== Attended Sysupgrade (ASU) allows you to build a custom image that retains all of your installed packages and their configuration transparently. You need to use one of the three ASU clients that interface with the ASU server to produce this custom image: - [Firmware Selector](https://openwrt.github.io/firmware-selector-openwrt-org?version=25.12.0-rc4) - an online builder that requires you to manually supply it with the packages you wish to have installed. This package list is sent to the ASU server, and a new custom device image is created containing those packages. You may then download and install the image in LuCI Backup/Flash Firmware, but for this you would enable "Keep settings..." - [Luci Attended Sysupgrade](https://openwrt.org/docs/guide-user/installation/attended.sysupgrade#from_luci_web_page) - the web interface to the ASU server. This tool allows you to choose a new OpenWrt version, then collects the names of the packages on your device and sends them up to the ASU server. LuCI ASU then downloads the created image directly to your device and allows you to install it, without having to do any of the bookkeeping tasks involved with using the Firmware Selector. - [owut](https://openwrt.org/docs/guide-user/installation/sysupgrade.owut) - a command line package that does the same job as LuCI ASU, but provides more diagnostics and better visibility into what's happening at the various steps before and during the build process. Both the LuCI ASU app and `owut` are optional packages in 24.10, so if you have not installed them, they won't be there by default. Use either the LuCI Package Manager to install them, or you can do it from the command line with `opkg`: ``` $ opkg update $ opkg install luci-app-attendedsysupgrade $ opkg install owut ``` Note that you can install one or the other, or both together, they are completely independent packages. Upgrades with Firmware Selector =============================== The Firmware Selector does an excellent job of searching through the thousands of available device configurations and getting you to the right place. But, some devices have several variants and possibly different image formats, so if you're unsure about which one you need or which device you're dealing with or anything else, go to the [|Firmware Selector support thread](https://forum.openwrt.org/t/the-openwrt-firmware-selector/81721) and ask away. Upgrades with LuCI Attended Sysupgrade ====================================== The LuCI web interface should be fairly self explanatory. Since you have fairly limited options there that should be pretty obvious, but if anything is unclear or you're unsure about something, go to the [LuCI Attended Sysupgrade support thread](https://forum.openwrt.org/t/luci-attended-sysupgrade-support-thread/230552) and ask. Upgrades with owut ================== If you choose to use `owut`, the fact that it's a command line program means you'll need a little more explanation regarding best practices. In any situation, it's always safe to do a `check` to see what's going on. ``` $ owut check --verbose --version-to 25.12 ... a lot of output ... ``` This check should show you all the details of what this upgrade entails with regards to the packages available, and will point out any issues with package versions and so on. Assuming the results of the `check` look good, you can simply do an `upgrade` next. ``` $ owut upgrade --verbose --version-to 25.12 ... even more output ... ``` If you are unsure of anything you see in the `check`, during the `upgrade`, or simply have questions, jump on over to the [owut support thread](https://forum.openwrt.org/t/owut-openwrt-upgrade-tool/200035) on the forum and ask. Known issues ============ * Users of Zyxel EX5601-T0 devices need to check their WAN interfaces as port was renamed from `eth1` to `wan`. * The rockchip target does not build. rockchip will be included in the next release candidate again. ----------------- Full release notes and upgrade instructions are available at https://openwrt.org/releases/25.12/notes-25.12.0-rc4 In particular, make sure to read the regressions and known issues before upgrading: https://openwrt.org/releases/25.12/notes-25.12.0-rc4#known_issues For a detailed list of all changes since 25.12.0-rc3, refer to https://openwrt.org/releases/25.12/changelog-25.12.0-rc4 To download the 25.12.0-rc4 images, navigate to: https://downloads.openwrt.org/releases/25.12.0-rc4/targets/ Use OpenWrt Firmware Selector to download: https://firmware-selector.openwrt.org?version=25.12.0-rc4 As always, a big thank you goes to all our active package maintainers, testers, documenters and supporters. Have fun! The OpenWrt Community --- To stay informed of new OpenWrt releases and security advisories, there are new channels available: * a low-volume mailing list for important announcements: https://lists.openwrt.org/mailman/listinfo/openwrt-announce * a dedicated "announcements" section in the forum: https://forum.openwrt.org/c/announcements/14 * other announcement channels (such as RSS feeds) might be added in the future, they will be listed at https://openwrt.org/contact From noreply at github.com Sun Feb 1 16:49:31 2026 From: noreply at github.com (Stephen Walker) Date: Sun, 01 Feb 2026 16:49:31 -0800 Subject: [sdwalker/sdwalker.github.io] 3e47f6: This week's update Message-ID: Branch: refs/heads/master Home: https://github.com/sdwalker/sdwalker.github.io Commit: 3e47f6b80422823b02f1603d0b175d11fe2e4e6e https://github.com/sdwalker/sdwalker.github.io/commit/3e47f6b80422823b02f1603d0b175d11fe2e4e6e Author: Stephen Walker Date: 2026-02-01 (Sun, 01 Feb 2026) Changed paths: M uscan/index-23.05.html M uscan/index-24.10.html M uscan/index.html Log Message: ----------- This week's update To unsubscribe from these emails, change your notification settings at https://github.com/sdwalker/sdwalker.github.io/settings/notifications From michael at wagenhofer.de Sun Feb 1 23:11:23 2026 From: michael at wagenhofer.de (Michael Wagenhofer) Date: Mon, 2 Feb 2026 08:11:23 +0100 Subject: [PATCH] realtek: add support for Xikestor SKS8300-12E2T2X Message-ID: <20260202071123.3777-1-michael@wagenhofer.de> Add board support for the Xikestor SKS8300-12E2T2X switch. Includes DTS definition and required RTL930x platform setup. Signed-off-by: Michael Wagenhofer --- .../realtek/base-files/etc/board.d/02_network | 3 +- .../dts/rtl9302_xikestor_sks8300-12e2t2x.dts | 392 ++++++++++++++++++ target/linux/realtek/image/rtl930x.mk | 18 + 3 files changed, 412 insertions(+), 1 deletion(-) create mode 100644 target/linux/realtek/dts/rtl9302_xikestor_sks8300-12e2t2x.dts diff --git a/target/linux/realtek/base-files/etc/board.d/02_network b/target/linux/realtek/base-files/etc/board.d/02_network index 09d9b02a4f..7a9d194441 100644 --- a/target/linux/realtek/base-files/etc/board.d/02_network +++ b/target/linux/realtek/base-files/etc/board.d/02_network @@ -89,7 +89,8 @@ realtek_setup_macs() lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr) [ -z "$lan_mac" ] || [ "$lan_mac" = "00:e0:4c:00:00:00" ] && lan_mac=$(macaddr_random) ;; - xikestor,sks8300-8t) + xikestor,sks8300-8t|\ + xikestor,sks8300-12e2t2x) lan_mac="$(get_mac_label)" label_mac="$lan_mac" ;; diff --git a/target/linux/realtek/dts/rtl9302_xikestor_sks8300-12e2t2x.dts b/target/linux/realtek/dts/rtl9302_xikestor_sks8300-12e2t2x.dts new file mode 100644 index 0000000000..85886cfb75 --- /dev/null +++ b/target/linux/realtek/dts/rtl9302_xikestor_sks8300-12e2t2x.dts @@ -0,0 +1,392 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +/dts-v1/; + +#include "rtl930x.dtsi" + +#include +#include + +/ { + compatible = "xikestor,sks8300-12e2t2x", "realtek,rtl9302-soc"; + model = "XikeStor SKS8300-12E2T2X"; + + memory at 0 { + device_type = "memory"; + reg = <0x00000000 0x10000000>, /* first 256 MiB */ + <0x20000000 0x10000000>; /* remaining 256 MiB */ + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + keys { + compatible = "gpio-keys"; + button-reset { + label = "reset"; + gpios = <&gpio0 6 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; + + led_set { + compatible = "realtek,rtl9300-leds"; + active-low; + + /* + * 2,5G Ports LED0 (orange): 10M/100M/1G/LINK/ACT + * 2,5G Ports LED1 (green): 2.5G/LINK/ACT + */ + led_set0 = <(RTL93XX_LED_SET_10M | RTL93XX_LED_SET_100M | RTL93XX_LED_SET_1G | + RTL93XX_LED_SET_LINK | RTL93XX_LED_SET_ACT) + (RTL93XX_LED_SET_2P5G | RTL93XX_LED_SET_LINK | RTL93XX_LED_SET_ACT)>; + + /* + * 10G Ports LED0 (orange): 10M/100M/1G/2.5G/5G/LINK/ACT + * 10G Ports LED1 (green): 10G/LINK/ACT + */ + led_set1 = <(RTL93XX_LED_SET_10M | RTL93XX_LED_SET_100M | RTL93XX_LED_SET_1G | + RTL93XX_LED_SET_2P5G | RTL93XX_LED_SET_5G | + RTL93XX_LED_SET_LINK | RTL93XX_LED_SET_ACT) + (RTL93XX_LED_SET_10G | RTL93XX_LED_SET_LINK | RTL93XX_LED_SET_ACT)>; + }; + + sfp0: sfp-p15 { + compatible = "sff,sfp"; + i2c-bus = <&i2c_sfp0>; + maximum-power-milliwatt = <2500>; + mod-def0-gpios = <&gpio0 12 GPIO_ACTIVE_LOW>; + los-gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>; + #thermal-sensor-cells = <0>; + }; + + sfp1: sfp-p16 { + compatible = "sff,sfp"; + i2c-bus = <&i2c_sfp1>; + maximum-power-milliwatt = <2500>; + mod-def0-gpios = <&gpio0 13 GPIO_ACTIVE_LOW>; + los-gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>; + #thermal-sensor-cells = <0>; + + }; + aliases { + label-mac-device = ðernet0; + }; +}; + +&i2c_mst1 { + status = "okay"; + i2c_sfp0: i2c at 0 { + reg = <0>; + }; + i2c_sfp1: i2c at 1 { + reg = <1>; + }; +}; + +&spi0 { + status = "okay"; + flash at 0 { + compatible = "jedec,spi-nor"; + reg = <0>; + spi-max-frequency = <10000000>; + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + partition at 0 { + label = "u-boot"; + reg = <0x0 0x1c0000>; + read-only; + }; + partition at 1c0000 { + label = "u-boot-env"; + reg = <0x1c0000 0x10000>; + }; + partition at 1d0000 { + label = "sysinfo"; + reg = <0x1d0000 0x10000>; + read-only; + }; + partition at 1e0000 { + label = "factory"; + reg = <0x1e0000 0x10000>; + read-only; + nvmem-layout { + compatible = "fixed-layout"; + #address-cells = <1>; + #size-cells = <1>; + factory_macaddr: macaddr at 80 { + reg = <0x80 0x6>; + }; + }; + }; + partition at 1f0000 { + label = "sysdata"; + reg = <0x1f0000 0x10000>; + }; + partition at 200000 { + label = "jffs2_filesystem"; + reg = <0x200000 0xa00000>; + }; + partition at c00000 { + compatible = "openwrt,uimage", "denx,uimage"; + label = "firmware"; + reg = <0xc00000 0x1400000>; + openwrt,ih-magic = <0x93000000>; + openwrt,offset = <0x10>; + }; + }; + }; +}; + +ðernet0 { + nvmem-cells = <&factory_macaddr>; + nvmem-cell-names = "mac-address"; +}; + +&mdio_bus0 { + phy0: ethernet-phy at 0 { + compatible = "ethernet-phy-ieee802.3-c45"; + reg = <0>; + }; + phy1: ethernet-phy at 1 { + compatible = "ethernet-phy-ieee802.3-c45"; + reg = <1>; + }; + phy2: ethernet-phy at 2 { + compatible = "ethernet-phy-ieee802.3-c45"; + reg = <2>; + }; + phy3: ethernet-phy at 3 { + compatible = "ethernet-phy-ieee802.3-c45"; + reg = <3>; + }; +}; + +&mdio_bus1 { + phy8: ethernet-phy at 8 { + compatible = "ethernet-phy-ieee802.3-c45"; + reg = <8>; + realtek,smi-address = <0>; + }; + phy9: ethernet-phy at 9 { + compatible = "ethernet-phy-ieee802.3-c45"; + reg = <9>; + realtek,smi-address = <1>; + }; + phy10: ethernet-phy at 10 { + compatible = "ethernet-phy-ieee802.3-c45"; + reg = <10>; + realtek,smi-address = <2>; + }; + phy11: ethernet-phy at 11 { + compatible = "ethernet-phy-ieee802.3-c45"; + reg = <11>; + realtek,smi-address = <3>; + }; +}; + +&mdio_bus2 { + phy16: ethernet-phy at 16 { + compatible = "ethernet-phy-ieee802.3-c45"; + reg = <16>; + realtek,smi-address = <0>; + }; + phy17: ethernet-phy at 17 { + compatible = "ethernet-phy-ieee802.3-c45"; + reg = <17>; + realtek,smi-address = <1>; + }; + phy18: ethernet-phy at 18 { + compatible = "ethernet-phy-ieee802.3-c45"; + reg = <18>; + realtek,smi-address = <2>; + }; + phy19: ethernet-phy at 19 { + compatible = "ethernet-phy-ieee802.3-c45"; + reg = <19>; + realtek,smi-address = <3>; + }; +}; + +&mdio_bus3 { + phy24: ethernet-phy at 24 { + compatible = "ethernet-phy-ieee802.3-c45"; + reg = <24>; + realtek,smi-address = <0>; + }; + phy25: ethernet-phy at 25 { + compatible = "ethernet-phy-ieee802.3-c45"; + reg = <25>; + realtek,smi-address = <1>; + }; +}; + +&switch0 { + ports { + #address-cells = <1>; + #size-cells = <0>; + + port at 0 { + reg = <0>; + label = "lan2"; + led-set = <0>; + pcs-handle = <&serdes2>; + phy-handle = <&phy0>; + phy-mode = "10g-qxgmii"; + }; + port at 1 { + reg = <1>; + label = "lan1"; + led-set = <0>; + pcs-handle = <&serdes2>; + phy-handle = <&phy1>; + phy-mode = "10g-qxgmii"; + }; + port at 2 { + reg = <2>; + label = "lan4"; + led-set = <0>; + pcs-handle = <&serdes2>; + phy-handle = <&phy2>; + phy-mode = "10g-qxgmii"; + }; + port at 3 { + reg = <3>; + label = "lan3"; + led-set = <0>; + pcs-handle = <&serdes2>; + phy-handle = <&phy3>; + phy-mode = "10g-qxgmii"; + }; + + port at 8 { + reg = <8>; + label = "lan6"; + led-set = <0>; + pcs-handle = <&serdes3>; + phy-handle = <&phy8>; + phy-mode = "10g-qxgmii"; + }; + port at 9 { + reg = <9>; + label = "lan5"; + led-set = <0>; + pcs-handle = <&serdes3>; + phy-handle = <&phy9>; + phy-mode = "10g-qxgmii"; + }; + port at 10 { + reg = <10>; + label = "lan8"; + led-set = <0>; + pcs-handle = <&serdes3>; + phy-handle = <&phy10>; + phy-mode = "10g-qxgmii"; + }; + port at 11 { + reg = <11>; + label = "lan7"; + led-set = <0>; + pcs-handle = <&serdes3>; + phy-handle = <&phy11>; + phy-mode = "10g-qxgmii"; + }; + + port at 16 { + reg = <16>; + label = "lan10"; + led-set = <0>; + pcs-handle = <&serdes4>; + phy-handle = <&phy16>; + phy-mode = "10g-qxgmii"; + }; + port at 17 { + reg = <17>; + label = "lan9"; + led-set = <0>; + pcs-handle = <&serdes4>; + phy-handle = <&phy17>; + phy-mode = "10g-qxgmii"; + }; + port at 18 { + reg = <18>; + label = "lan12"; + led-set = <0>; + pcs-handle = <&serdes4>; + phy-handle = <&phy18>; + phy-mode = "10g-qxgmii"; + }; + port at 19 { + reg = <19>; + label = "lan11"; + led-set = <0>; + pcs-handle = <&serdes4>; + phy-handle = <&phy19>; + phy-mode = "10g-qxgmii"; + }; + + port at 24 { + reg = <24>; + label = "lan13"; + led-set = <1>; + pcs-handle = <&serdes6>; + phy-handle = <&phy24>; + phy-mode = "usxgmii"; + }; + port at 25 { + reg = <25>; + label = "lan14"; + led-set = <1>; + pcs-handle = <&serdes7>; + phy-handle = <&phy25>; + phy-mode = "usxgmii"; + }; + + port at 26 { + reg = <26>; + label = "lan15"; + led-set = <1>; + pcs-handle = <&serdes8>; + phy-mode = "1000base-x"; + sfp = <&sfp0>; + managed = "in-band-status"; + }; + port at 27 { + reg = <27>; + label = "lan16"; + led-set = <1>; + pcs-handle = <&serdes9>; + phy-mode = "1000base-x"; + sfp = <&sfp1>; + managed = "in-band-status"; + }; + + port at 28 { + reg = <28>; + ethernet = <ðernet0>; + phy-mode = "internal"; + fixed-link { + speed = <10000>; + full-duplex; + }; + }; + }; +}; + +&thermal_zones { + sfp-thermal { + polling-delay-passive = <10000>; + polling-delay = <10000>; + thermal-sensors = <&sfp0>, <&sfp1>; + trips { + sfp-crit { + temperature = <110000>; + hysteresis = <1000>; + type = "critical"; + }; + }; + }; +}; diff --git a/target/linux/realtek/image/rtl930x.mk b/target/linux/realtek/image/rtl930x.mk index 462e6e0a96..75bd5bf46f 100644 --- a/target/linux/realtek/image/rtl930x.mk +++ b/target/linux/realtek/image/rtl930x.mk @@ -114,6 +114,24 @@ define Device/xikestor_sks8300-8x endef TARGET_DEVICES += xikestor_sks8300-8x +define Device/xikestor_sks8300-12e2t2x + SOC := rtl9302 + UIMAGE_MAGIC := 0x93000000 + DEVICE_VENDOR := XikeStor + DEVICE_MODEL := SKS8300-12E2T2X + IMAGE_SIZE := 20480k + $(Device/kernel-lzma) + IMAGE/sysupgrade.bin := \ + pad-extra 16 | \ + append-kernel | \ + pad-to 64k | \ + append-rootfs | \ + pad-rootfs | \ + check-size | \ + append-metadata +endef +TARGET_DEVICES += xikestor_sks8300-12e2t2x + define Device/xikestor_sks8310-8x SOC := rtl9303 UIMAGE_MAGIC := 0x93000000 -- 2.47.3