[xenomai-images][PATCH] Add official support for 6.18 kernels

Jan Kiszka <[email protected]>
Newsgroups dev.linux.lists.xenomai
Message-ID <[email protected]>
From: Jan Kiszka <[email protected]>

So far, we covered this via "head", but this slot is now used by 6.19.
The 6.18 kernel is LTS, thus we should add it properly in recipes and
CI, both for Xenomai 3 and 4.

Signed-off-by: Jan Kiszka <[email protected]>
---
 Kconfig                                       | 20 +++++
 ci/lib/kernel/6_18.yml                        | 88 +++++++++++++++++++
 ci/xenomai_3_dovetail.yml                     |  5 +-
 ci/xenomai_3_next.yml                         |  1 +
 ci/xenomai_4_evl.yml                          |  3 +
 ci/xenomai_4_next.yml                         |  3 +-
 kas/opt/linux-6.18-head.yaml                  | 19 ++++
 kas/opt/linux-6.18.yaml                       | 18 ++++
 recipes-kernel/linux/linux-xenomai-3_6.18.bb  | 14 +++
 .../linux/linux-xenomai-3_latest.bb           |  5 +-
 recipes-kernel/linux/linux-xenomai-4_6.18.bb  | 14 +++
 .../linux/linux-xenomai-4_latest.bb           |  3 +-
 12 files changed, 189 insertions(+), 4 deletions(-)
 create mode 100644 ci/lib/kernel/6_18.yml
 create mode 100644 kas/opt/linux-6.18-head.yaml
 create mode 100644 kas/opt/linux-6.18.yaml
 create mode 100644 recipes-kernel/linux/linux-xenomai-3_6.18.bb
 create mode 100644 recipes-kernel/linux/linux-xenomai-4_6.18.bb

diff --git a/Kconfig b/Kconfig
index dec7458..93958b2 100644
--- a/Kconfig
+++ b/Kconfig
@@ -130,6 +130,14 @@ config KERNEL_HEAD
 	bool "Head of latest Dovetail branch"
 	depends on XENOMAI_HEAD
 
+config KERNEL_6_18_HEAD
+	bool "Head of 6.18 Dovetail branch"
+	depends on XENOMAI_HEAD
+
+config KERNEL_6_18
+	bool "Latest 6.18 Dovetail release"
+	depends on XENOMAI_HEAD
+
 config KERNEL_6_12_HEAD
 	bool "Head of 6.12 Dovetail branch"
 	depends on XENOMAI_HEAD || XENOMAI_3_3_HEAD || XENOMAI_3_3
@@ -175,6 +183,8 @@ endchoice
 config KAS_INCLUDE_KERNEL
 	string
 	default "kas/opt/linux-head.yaml" if KERNEL_HEAD
+	default "kas/opt/linux-6.18-head.yaml" if KERNEL_6_18_HEAD
+	default "kas/opt/linux-6.18.yaml" if KERNEL_6_18
 	default "kas/opt/linux-6.12-head.yaml" if KERNEL_6_12_HEAD
 	default "kas/opt/linux-6.12.yaml" if KERNEL_6_12
 	default "kas/opt/linux-6.1-head.yaml" if KERNEL_6_1_HEAD
@@ -222,6 +232,14 @@ choice
 config EVL_KERNEL_HEAD
 	bool "Head of latest EVL branch"
 
+config EVL_KERNEL_6_18_HEAD
+	bool "Head of 6.18 EVL branch"
+	depends on !ARCH_RISCV64
+
+config EVL_KERNEL_6_18
+	bool "Latest 6.18 EVL release"
+	depends on !ARCH_RISCV64
+
 config EVL_KERNEL_6_12_HEAD
 	bool "Head of 6.12 EVL branch"
 	depends on !ARCH_RISCV64
@@ -243,6 +261,8 @@ endchoice
 config KAS_INCLUDE_EVL_KERNEL
 	string
 	default "kas/opt/linux-head.yaml" if EVL_KERNEL_HEAD
+	default "kas/opt/linux-6.18-head.yaml" if EVL_KERNEL_6_18_HEAD
+	default "kas/opt/linux-6.18.yaml" if EVL_KERNEL_6_18
 	default "kas/opt/linux-6.12-head.yaml" if EVL_KERNEL_6_12_HEAD
 	default "kas/opt/linux-6.12.yaml" if EVL_KERNEL_6_12
 	default "kas/opt/linux-6.1-head.yaml" if EVL_KERNEL_6_1_HEAD
diff --git a/ci/lib/kernel/6_18.yml b/ci/lib/kernel/6_18.yml
new file mode 100644
index 0000000..88e3915
--- /dev/null
+++ b/ci/lib/kernel/6_18.yml
@@ -0,0 +1,88 @@
+#
+# Xenomai Real-Time System
+#
+# Copyright (c) Siemens AG, 2026
+#
+# Authors:
+#  Jan Kiszka <[email protected]>
+#
+# SPDX-License-Identifier: MIT
+#
+
+build-6.18:qemu-amd64:
+  extends: .build:qemu-amd64
+  variables:
+    LINUX_BUILD_OPTION: ":kas/opt/linux-6.18-head.yaml"
+    KERNEL_VERSION: "6.18"
+    CACHE_KERNEL: dovetail
+
+lava-test-6.18:qemu-amd64:
+  needs: [ "build-6.18:qemu-amd64" ]
+  extends: .lava-test:qemu-amd64
+  variables:
+    KERNEL_VERSION: "6.18"
+
+build-6.18:qemu-armhf:
+  extends: .build:qemu-armhf
+  variables:
+    LINUX_BUILD_OPTION: ":kas/opt/linux-6.18-head.yaml"
+    KERNEL_VERSION: "6.18"
+    CACHE_KERNEL: dovetail
+
+lava-test-6.18:qemu-armhf:
+  needs: [ "build-6.18:qemu-armhf" ]
+  extends: .lava-test:qemu-armhf
+  variables:
+    KERNEL_VERSION: "6.18"
+
+build-6.18:qemu-arm64:
+  extends: .build:qemu-arm64
+  variables:
+    LINUX_BUILD_OPTION: ":kas/opt/linux-6.18-head.yaml"
+    KERNEL_VERSION: "6.18"
+    CACHE_KERNEL: dovetail
+
+lava-test-6.18:qemu-arm64:
+  needs: [ "build-6.18:qemu-arm64" ]
+  extends: .lava-test:qemu-arm64
+  variables:
+    KERNEL_VERSION: "6.18"
+
+build-6.18:rpi4:
+  extends: .build:rpi4
+  variables:
+    LINUX_BUILD_OPTION: ":kas/opt/linux-6.18-head.yaml"
+    KERNEL_VERSION: "6.18"
+    CACHE_KERNEL: dovetail
+
+lava-test-6.18:rpi4:
+  needs: [ "build-6.18:rpi4" ]
+  extends: .lava-test:rpi4
+  variables:
+    KERNEL_VERSION: "6.18"
+
+build-6.18:beagle-bone-black:
+  extends: .build:beagle-bone-black
+  variables:
+    LINUX_BUILD_OPTION: ":kas/opt/linux-6.18-head.yaml"
+    KERNEL_VERSION: "6.18"
+    CACHE_KERNEL: dovetail
+
+lava-test-6.18:beagle-bone-black:
+  needs: [ "build-6.18:beagle-bone-black" ]
+  extends: .lava-test:beagle-bone-black
+  variables:
+    KERNEL_VERSION: "6.18"
+
+build-6.18:x86-64-efi:
+  extends: .build:x86-64-efi
+  variables:
+    LINUX_BUILD_OPTION: ":kas/opt/linux-6.18-head.yaml"
+    KERNEL_VERSION: "6.18"
+    CACHE_KERNEL: dovetail
+
+lava-test-6.18:x86-64-efi:
+  needs: [ "build-6.18:x86-64-efi" ]
+  extends: .lava-test:x86-64-efi
+  variables:
+    KERNEL_VERSION: "6.18"
diff --git a/ci/xenomai_3_dovetail.yml b/ci/xenomai_3_dovetail.yml
index 916d191..ffb903a 100644
--- a/ci/xenomai_3_dovetail.yml
+++ b/ci/xenomai_3_dovetail.yml
@@ -25,6 +25,9 @@ include:
   - local: '/ci/lib/kernel/6_12.yml'
     rules:
       - if: '$KERNEL_VERSION == "6.12"'
+  - local: '/ci/lib/kernel/6_18.yml'
+    rules:
+      - if: '$KERNEL_VERSION == "6.18"'
   - local: '/ci/lib/kernel/head.yml'
     rules:
       - if: '$KERNEL_VERSION == "head"'
@@ -35,4 +38,4 @@ include:
       - if: '$KERNEL_VERSION == "5.10" || $KERNEL_VERSION == "5.15"'
   - local: '/ci/lib/dovetail/xenomai_3_next.yml'
     rules:
-      - if: '$KERNEL_VERSION == "6.1" || $KERNEL_VERSION == "6.12" || $KERNEL_VERSION == "head"'
+      - if: '$KERNEL_VERSION == "6.1" || $KERNEL_VERSION == "6.12" || $KERNEL_VERSION == "6.18" || $KERNEL_VERSION == "head"'
diff --git a/ci/xenomai_3_next.yml b/ci/xenomai_3_next.yml
index b1771f6..74803ed 100644
--- a/ci/xenomai_3_next.yml
+++ b/ci/xenomai_3_next.yml
@@ -13,6 +13,7 @@ include:
   - local: '/ci/lib/gitlab-ci-base.yml'
   - local: '/ci/lib/kernel/6_1.yml'
   - local: '/ci/lib/kernel/6_12.yml'
+  - local: '/ci/lib/kernel/6_18.yml'
   - local: '/ci/lib/kernel/head.yml'
   - local: '/ci/lib/compat/xenomai_3_next.yml'
 
diff --git a/ci/xenomai_4_evl.yml b/ci/xenomai_4_evl.yml
index 0404ca3..283a1fd 100644
--- a/ci/xenomai_4_evl.yml
+++ b/ci/xenomai_4_evl.yml
@@ -17,6 +17,9 @@ include:
   - local: '/ci/lib/kernel/6_12.yml'
     rules:
       - if: '$KERNEL_VERSION == "6.12"'
+  - local: '/ci/lib/kernel/6_18.yml'
+    rules:
+      - if: '$KERNEL_VERSION == "6.18"'
   - local: '/ci/lib/kernel/head.yml'
     rules:
       - if: '$KERNEL_VERSION == "head"'
diff --git a/ci/xenomai_4_next.yml b/ci/xenomai_4_next.yml
index 5a248e5..ffb1ebb 100644
--- a/ci/xenomai_4_next.yml
+++ b/ci/xenomai_4_next.yml
@@ -1,7 +1,7 @@
 #
 # Xenomai Real-Time System
 #
-# Copyright (c) Siemens AG, 2023-2025
+# Copyright (c) Siemens AG, 2023-2026
 #
 # Authors:
 #  Clara Kowalsky <[email protected]>
@@ -13,6 +13,7 @@ include:
   - local: '/ci/lib/gitlab-ci-base.yml'
   - local: '/ci/lib/kernel/6_1.yml'
   - local: '/ci/lib/kernel/6_12.yml'
+  - local: '/ci/lib/kernel/6_18.yml'
   - local: '/ci/lib/kernel/head.yml'
 
 variables:
diff --git a/kas/opt/linux-6.18-head.yaml b/kas/opt/linux-6.18-head.yaml
new file mode 100644
index 0000000..1372dda
--- /dev/null
+++ b/kas/opt/linux-6.18-head.yaml
@@ -0,0 +1,19 @@
+#
+# Xenomai Real-Time System
+#
+# Copyright (c) Siemens AG, 2026
+#
+# Authors:
+#  Jan Kiszka <[email protected]>
+#
+# SPDX-License-Identifier: MIT
+#
+
+header:
+  version: 14
+
+local_conf_header:
+  linux-xenomai-version: |
+    PREFERRED_VERSION_linux-xenomai-3 = "9999-%"
+    PREFERRED_VERSION_linux-xenomai-4 = "9999-%"
+    LATEST_GIT_BRANCH = "6.18"
diff --git a/kas/opt/linux-6.18.yaml b/kas/opt/linux-6.18.yaml
new file mode 100644
index 0000000..99d958c
--- /dev/null
+++ b/kas/opt/linux-6.18.yaml
@@ -0,0 +1,18 @@
+#
+# Xenomai Real-Time System
+#
+# Copyright (c) Siemens AG, 2026
+#
+# Authors:
+#  Jan Kiszka <[email protected]>
+#
+# SPDX-License-Identifier: MIT
+#
+
+header:
+  version: 14
+
+local_conf_header:
+  linux-xenomai-version: |
+    PREFERRED_VERSION_linux-xenomai-3 = "6.18%"
+    PREFERRED_VERSION_linux-xenomai-4 = "6.18%"
diff --git a/recipes-kernel/linux/linux-xenomai-3_6.18.bb b/recipes-kernel/linux/linux-xenomai-3_6.18.bb
new file mode 100644
index 0000000..e6d91ab
--- /dev/null
+++ b/recipes-kernel/linux/linux-xenomai-3_6.18.bb
@@ -0,0 +1,14 @@
+#
+# Xenomai Real-Time System
+#
+# Copyright (c) Siemens AG, 2026
+#
+# Authors:
+#  Jan Kiszka <[email protected]>
+#
+# SPDX-License-Identifier: MIT
+#
+
+require recipes-kernel/linux/linux-xenomai-3-dovetail.inc
+
+SRCREV ?= "v6.18.7-dovetail1"
diff --git a/recipes-kernel/linux/linux-xenomai-3_latest.bb b/recipes-kernel/linux/linux-xenomai-3_latest.bb
index 0a68d11..ce497d6 100644
--- a/recipes-kernel/linux/linux-xenomai-3_latest.bb
+++ b/recipes-kernel/linux/linux-xenomai-3_latest.bb
@@ -1,7 +1,7 @@
 #
 # Xenomai Real-Time System
 #
-# Copyright (c) Siemens AG, 2019-2025
+# Copyright (c) Siemens AG, 2019-2026
 #
 # Authors:
 #  Quirin Gylstorff <[email protected]>
@@ -41,6 +41,7 @@ GIT_BRANCH = "${@ \
     else 'v5.15.y-dovetail-rebase' if is_kernel(d, '5.15') \
     else 'v6.1.y-cip-dovetail-rebase' if is_kernel(d, '6.1') \
     else 'v6.12.y-cip-dovetail-rebase' if is_kernel(d, '6.12') \
+    else 'v6.18.y-dovetail-rebase' if is_kernel(d, '6.18') \
     else d.getVar('LATEST_KERNEL_BRANCH') }"
 
 GIT_REPO:armhf = "${@ \
@@ -52,6 +53,7 @@ GIT_BRANCH:armhf = "${@ \
     else 'v5.15.y-dovetail-rebase' if is_kernel(d, '5.15') \
     else 'v6.1.y-cip-dovetail-rebase' if is_kernel(d, '6.1') \
     else 'v6.12.y-cip-dovetail-rebase' if is_kernel(d, '6.12') \
+    else 'v6.18.y-dovetail-rebase' if is_kernel(d, '6.18') \
     else d.getVar('LATEST_KERNEL_BRANCH') }"
 
 GIT_REPO:arm64 = "${@ \
@@ -63,6 +65,7 @@ GIT_BRANCH:arm64 = "${@ \
     else 'v5.15.y-dovetail-rebase' if is_kernel(d, '5.15') \
     else 'v6.1.y-cip-dovetail-rebase' if is_kernel(d, '6.1') \
     else 'v6.12.y-cip-dovetail-rebase' if is_kernel(d, '6.12') \
+    else 'v6.18.y-dovetail-rebase' if is_kernel(d, '6.18') \
     else d.getVar('LATEST_KERNEL_BRANCH') }"
 
 SRC_URI += "${GIT_REPO};protocol=https;branch=${GIT_BRANCH}"
diff --git a/recipes-kernel/linux/linux-xenomai-4_6.18.bb b/recipes-kernel/linux/linux-xenomai-4_6.18.bb
new file mode 100644
index 0000000..3182404
--- /dev/null
+++ b/recipes-kernel/linux/linux-xenomai-4_6.18.bb
@@ -0,0 +1,14 @@
+#
+# Xenomai Real-Time System
+#
+# Copyright (c) Siemens AG, 2026
+#
+# Authors:
+#  Jan Kiszka <[email protected]>
+#
+# SPDX-License-Identifier: MIT
+#
+
+require recipes-kernel/linux/linux-xenomai-4-evl.inc
+
+SRCREV ?= "v6.18.7-evl1-rebase"
diff --git a/recipes-kernel/linux/linux-xenomai-4_latest.bb b/recipes-kernel/linux/linux-xenomai-4_latest.bb
index 20fa03f..3be54fe 100644
--- a/recipes-kernel/linux/linux-xenomai-4_latest.bb
+++ b/recipes-kernel/linux/linux-xenomai-4_latest.bb
@@ -1,7 +1,7 @@
 #
 # Xenomai Real-Time System
 #
-# Copyright (c) Siemens AG, 2024-2025
+# Copyright (c) Siemens AG, 2024-2026
 #
 # Authors:
 #  Jan Kiszka <[email protected]>
@@ -33,6 +33,7 @@ python () {
 GIT_BRANCH = "${@ \
     'v6.1.y-cip-evl-rebase' if is_kernel(d, '6.1') \
     else 'v6.12.y-cip-evl-rebase' if is_kernel(d, '6.12') \
+    else 'v6.18.y-evl-rebase' if is_kernel(d, '6.18') \
     else d.getVar('LATEST_KERNEL_BRANCH') }"
 GIT_BRANCH:riscv64 = "wip/evl-riscv"
 
-- 
2.47.3
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.