diff --git a/.github/filters.yml b/.github/filters.yml
index 41e4b5a21079c1f6c0eb23306c84d3b09b4676a7..aa6ea75da65e65f29275eaf95a7bd2c0e4eaa15b 100644
--- a/.github/filters.yml
+++ b/.github/filters.yml
@@ -115,6 +115,16 @@
     "targets/generic",
     "targets/targets.mk"
   ],
+  "lantiq-xrx200_legacy": [
+    "targets/lantiq-xrx200_legacy",
+    ".github/workflows/build-gluon.yml",
+    "modules",
+    "Makefile",
+    "patches/**",
+    "scripts/**",
+    "targets/generic",
+    "targets/targets.mk"
+  ],
   "lantiq-xway": [
     "targets/lantiq-xway",
     ".github/workflows/build-gluon.yml",
diff --git a/docs/user/supported_devices.rst b/docs/user/supported_devices.rst
index 24962727dcaa28375e56537836cc70a333177991..809c4a72dcccfe461cf080af757295ee0629b050 100644
--- a/docs/user/supported_devices.rst
+++ b/docs/user/supported_devices.rst
@@ -287,6 +287,9 @@ lantiq-xrx200
   - FRITZ!Box 7362 SL [#eva_ramboot]_ [#lan_as_wan]_
   - FRITZ!Box 7412 [#eva_ramboot]_
 
+lantiq-xrx200_legacy
+--------------------
+
 * TP-Link
 
   - TD-W8970 (v1) [#lan_as_wan]_
diff --git a/modules b/modules
index df7e0e93b5eb3447e39c33c68963e579e4405bbc..493378cf25a6e6c07f5fc625d1e4bb4f46f3343c 100644
--- a/modules
+++ b/modules
@@ -2,14 +2,14 @@ GLUON_FEEDS='gluon packages routing'
 
 OPENWRT_REPO=https://github.com/openwrt/openwrt.git
 OPENWRT_BRANCH=openwrt-24.10
-OPENWRT_COMMIT=5a715cdbcdac03f5cdf1c3e89334c37dc8a008a2
+OPENWRT_COMMIT=4cc1da1e44c28aa153956e179f28b8ee38dc3ac6
 
 PACKAGES_GLUON_REPO=https://github.com/freifunk-gluon/packages.git
 PACKAGES_GLUON_COMMIT=3d08b0fee8dc5d96d8bcdb985fad1d5564de4022
 
 PACKAGES_PACKAGES_REPO=https://github.com/openwrt/packages.git
 PACKAGES_PACKAGES_BRANCH=openwrt-24.10
-PACKAGES_PACKAGES_COMMIT=e558c89b1b65cb1cb0babb3fbf9ee90eb64e21cc
+PACKAGES_PACKAGES_COMMIT=dfeae07c2495539f85dbcb4c633eb52c6a9b2e72
 
 PACKAGES_ROUTING_REPO=https://github.com/openwrt/routing.git
 PACKAGES_ROUTING_BRANCH=openwrt-24.10
diff --git a/patches/openwrt/0005-kernel-bridge-Implement-MLD-Querier-wake-up-calls-Android-bug-workaround.patch b/patches/openwrt/0005-kernel-bridge-Implement-MLD-Querier-wake-up-calls-Android-bug-workaround.patch
index 54c9860b5f88598f9c69f388d268c40b96e85c28..5f90ad3f6531d2901d7d683bf3fdbded78e11241 100644
--- a/patches/openwrt/0005-kernel-bridge-Implement-MLD-Querier-wake-up-calls-Android-bug-workaround.patch
+++ b/patches/openwrt/0005-kernel-bridge-Implement-MLD-Querier-wake-up-calls-Android-bug-workaround.patch
@@ -174,7 +174,7 @@ index 0000000000000000000000000000000000000000..077a563b6066cd1d3aee4b1e82328e8c
 + 
 + int system_bridge_addif(struct device *bridge, struct device *dev)
 diff --git a/target/linux/generic/config-6.6 b/target/linux/generic/config-6.6
-index 105dc0d344fa82c85b09482e051f35a282a60b08..032dd15bbb2b8603799032647f7a47625751836f 100644
+index 2ea1b7910388f57a7ba3e5868a323618c0838d9c..cf46bf89de743c83410ea0ebd856ce13a8d38ed4 100644
 --- a/target/linux/generic/config-6.6
 +++ b/target/linux/generic/config-6.6
 @@ -716,6 +716,7 @@ CONFIG_BRIDGE=y
diff --git a/scripts/target_config_lib.lua b/scripts/target_config_lib.lua
index c20e64013eec6d7e7e0eac56265ced17e536bee0..750a419e9f98f22b4840f66d94f7f6deadee56a2 100644
--- a/scripts/target_config_lib.lua
+++ b/scripts/target_config_lib.lua
@@ -150,7 +150,7 @@ local function handle_target_pkgs(pkgs)
 end
 
 local function get_default_pkgs()
-	local targetinfo_target = string.gsub(openwrt_config_target, '_', '/')
+	local targetinfo_target = string.gsub(openwrt_config_target, '_', '/', 1)
 	local target_matches = false
 	for line in io.lines('openwrt/tmp/.targetinfo') do
 		local target_match = string.match(line, '^Target: (.+)$')
diff --git a/targets/lantiq-xrx200 b/targets/lantiq-xrx200
index 744fdea44e620a1fa050ff2e2a95da862680f0f5..7d000d89d2f81c26d811558e9e60803080934b1c 100644
--- a/targets/lantiq-xrx200
+++ b/targets/lantiq-xrx200
@@ -54,21 +54,3 @@ device('arcadyan-vgv7510kw22', 'arcadyan_vgv7510kw22-nor', {
 	factory = false,
 	aliases = {'o2-box-6431'},
 })
-
-
--- TP-Link
-
--- CAVEAT: These devices don't have a dedicated WAN port.
---         All ethernet ports on the device are bridged and
---         used as WAN ports. Clients connected to these
---         ports will be connected to your private network.
-
-device('tp-link-td-w8970', 'tplink_tdw8970', {
-	factory = false,
-})
-
-device('tp-link-td-w8980', 'tplink_tdw8980', {
-	factory = false,
-	aliases = {'tp-link-td-w9980'},
-	broken = true, -- 5GHz unsupported
-})
diff --git a/targets/lantiq-xrx200_legacy b/targets/lantiq-xrx200_legacy
new file mode 100644
index 0000000000000000000000000000000000000000..c0ff62b0217157afb1384cd61c587daf5fbf8bb0
--- /dev/null
+++ b/targets/lantiq-xrx200_legacy
@@ -0,0 +1,30 @@
+packages {
+	'-ltq-vdsl-vr9-vectoring-fw-installer',
+	'-kmod-ltq-vdsl-vr9-mei',
+	'-kmod-ltq-vdsl-vr9',
+	'-kmod-ltq-atm-vr9',
+	'-kmod-ltq-ptm-vr9',
+	'-kmod-ltq-deu-vr9',
+	'-ltq-vdsl-vr9-app',
+	'-dsl-vrx200-firmware-xdsl-a',
+	'-dsl-vrx200-firmware-xdsl-b-patch',
+	'-ppp-mod-pppoa',
+	'-ltq-dsl-base',
+}
+
+-- TP-Link
+
+-- CAVEAT: These devices don't have a dedicated WAN port.
+--         All ethernet ports on the device are bridged and
+--         used as WAN ports. Clients connected to these
+--         ports will be connected to your private network.
+
+device('tp-link-td-w8970', 'tplink_tdw8970', {
+	factory = false,
+})
+
+device('tp-link-td-w8980', 'tplink_tdw8980', {
+	factory = false,
+	aliases = {'tp-link-td-w9980'},
+	broken = true, -- 5GHz unsupported
+})
diff --git a/targets/targets.mk b/targets/targets.mk
index 45a9f395f63a4f8fed304939ff4f885d10165278..1ee2fe7c35f7f63c00a79bd82dd3a277e65e8b9f 100644
--- a/targets/targets.mk
+++ b/targets/targets.mk
@@ -9,6 +9,7 @@ $(eval $(call GluonTarget,ipq40xx,generic))
 $(eval $(call GluonTarget,ipq40xx,mikrotik))
 $(eval $(call GluonTarget,ipq806x,generic))
 $(eval $(call GluonTarget,lantiq,xrx200))
+$(eval $(call GluonTarget,lantiq,xrx200_legacy))
 $(eval $(call GluonTarget,lantiq,xway))
 $(eval $(call GluonTarget,mediatek,filogic))
 $(eval $(call GluonTarget,mediatek,mt7622))