Skip to content

Cix-ACPI: Initial work for support on vendor 2025Q4 & current/edge#9395

Closed
HeyMeco wants to merge 14 commits into
armbian:mainfrom
HeyMeco:cix-acpi-2025Q4
Closed

Cix-ACPI: Initial work for support on vendor 2025Q4 & current/edge#9395
HeyMeco wants to merge 14 commits into
armbian:mainfrom
HeyMeco:cix-acpi-2025Q4

Conversation

@HeyMeco

@HeyMeco HeyMeco commented Feb 12, 2026

Copy link
Copy Markdown
Collaborator

Description

Now that the Cix 2025Q4 Vendor kernel is available I started working on basic support.
+
Current & Edge based on https://github.com/Sky1-Linux latest ACPI additions.

Branch: Current & Edge

What works now (tested on Debian Trixie):

  • Booting via ACPI
  • First Setup (via SSH & Video output)
  • GPU: Panthor via Mesa Backports
  • VPU: Works 🎉 with Upstream Chrome (manual flags for V4L2 required)

What is missing:

  • armchina_npu disabled due to kernel crash on boot

Related sources:

Branch: Vendor

What works now (tested on Debian Trixie):

  • Booting via ACPI
  • First Setup (via SSH & Video output)
  • GPU: Panthor via Mesa Backports
  • Kernel drivers for VPU, NPU, Proprietary Mali GPU. All (untested in user space)

What is missing:

  • Alsa Audio Config, can be installed but might be board dependent (maybe disable the cix audio drivers in general?)

What makes me unhappy:

  • Micro stutters during usage. Not really daily drivable because of this imo but you have to start somewhere
  • Dmesg way too verbose not sure why. Maybe traces cause the stutters from above?

Related sources:

Boards covered by this PR:

  • Radxa Orion O6
  • Radxa Orion O6N (untested)
  • Minisforum MS-R1
  • OrangePI 6 Plus

This is a follow up on #8363

Checklist:

Please delete options that are not relevant.

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • My changes generate no new warnings
  • Any dependent changes have been merged and published in downstream modules

@coderabbitai

coderabbitai Bot commented Feb 12, 2026

Copy link
Copy Markdown
Contributor

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds Cix-ACPI board metadata and runtime hooks, introduces a new cix-p1 family with branch-scoped kernel/GRUB and firmware hooks, and adds three full kernel defconfigs (vendor/current/edge). Also adds a post-family tweak to conditionally install mesa-vulkan-drivers from Debian Trixie backports.

Changes

Cohort / File(s) Summary
Board configuration
config/boards/cix-acpi.conf
Adds BOARD_VENDOR, BOARDFAMILY, expands KERNEL_TARGET to vendor,current,edge, branch-scoped MODULES_BLACKLIST and BOARD_FIRMWARE_INSTALL, and a post_family_tweaks__cix_acpi_mesa_backports() that conditionally installs mesa-vulkan-drivers from trixie-backports.
Family sources & hooks
config/sources/families/cix-p1.conf
Introduces cix-p1 family (ARCH=arm64, LINUXFAMILY, BOOTCONFIG, UEFI_GRUB_TIMEOUT, SERIALCON), vendor branch kernel sources/patches/settings, firmware hook to disable embedded firmware when .config present, family_tweaks to install Sky1/mediatek firmware for current/edge, and a custom configure_grub override with GRUB fragments and optional wallpaper handling.
Kernel defconfigs
config/kernel/.../linux-cix-p1-vendor.config, config/kernel/.../linux-cix-p1-current.config, config/kernel/.../linux-cix-p1-edge.config
Adds three full defconfig payloads (vendor: 6.6, current: 6.18, edge: 6.19) containing large, static CONFIG_ lists enabling broad ARM64/ACPI/PCIe/USB/storage/networking/DRM/audio/power/platform features.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant Builder as Builder (host)
  participant BoardHook as post_family_tweaks (board)
  participant Chroot as chroot_sdcard
  participant Debian as Debian Trixie Backports Repo

  rect rgba(100,150,240,0.5)
  Builder->>BoardHook: invoke post_family_tweaks__cix_acpi_mesa_backports()
  end
  BoardHook->>Builder: display "Installing mesa-vulkan-drivers from backports"
  BoardHook->>Chroot: chroot_sdcard_apt_get install -t trixie-backports mesa-vulkan-drivers
  Chroot->>Debian: request mesa-vulkan-drivers (trixie-backports)
  Debian-->>Chroot: package archive response
  Chroot-->>BoardHook: install result
  BoardHook->>Builder: display success or warning (if not Debian Trixie)
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related issues

Poem

🐰
I hopped through configs, neat and spry,
Added kernels, hooks, and GRUB to try,
Mesa backports fetched from sky,
Firmware, branches, all set to fly,
Hoppity-hop — builds multiply!

🚥 Pre-merge checks | ✅ 3 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Merge Conflict Detection ⚠️ Warning ❌ Merge conflicts detected (2 files):

⚔️ config/kernel/linux-rockchip-vendor.config (content)
⚔️ extensions/ti-debpkgs.sh (content)

These conflicts must be resolved before merging into main.
Resolve conflicts locally and push changes to this branch.
✅ Passed checks (3 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes the main change: initial support for Cix-ACPI on vendor 2025Q4 and current/edge branches, which aligns with the PR's primary objective of adding Armbian support for the Cix 2025Q4 vendor kernel across multiple branches.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions Bot added size/large PR with 250 lines or more 02 Milestone: First quarter release labels Feb 12, 2026
@github-actions

This comment was marked as outdated.

@github-actions github-actions Bot added Needs review Seeking for review Hardware Hardware related like kernel, U-Boot, ... labels Feb 12, 2026
Comment thread config/sources/families/cix-p1.conf Outdated
Comment thread config/sources/families/cix-p1.conf Outdated
Comment thread config/sources/families/cix-p1.conf Outdated
@chainsx

chainsx commented Feb 13, 2026

Copy link
Copy Markdown
Member

nice work!

@github-actions

This comment was marked as outdated.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@config/kernel/linux-cix-p1-vendor.config`:
- Around line 1191-1192: The vendor kernel config enables KASAN which causes
runtime overhead; remove or disable CONFIG_KASAN and CONFIG_KASAN_HW_TAGS for
release builds by setting CONFIG_KASAN to n (or removing the CONFIG_KASAN line)
and CONFIG_KASAN_HW_TAGS to n (or removing that line) in the vendor config so
KASAN is not compiled into the kernel; ensure any build profiles for development
still re-enable these options separately if needed.
🧹 Nitpick comments (3)
config/kernel/linux-cix-p1-vendor.config (2)

763-765: Multiple debug/test options left enabled — likely source of verbose dmesg.

The PR notes "overly verbose dmesg output (possible trace-related)" as a known issue. Several debug and test configs are enabled that would contribute to this:

  • Line 70: CONFIG_PM_DEBUG=y
  • Line 395: CONFIG_CIX_HF_TEST_CASE=y
  • Lines 763–765: CONFIG_SND_DEBUG=y, CONFIG_SND_DEBUG_VERBOSE=y, CONFIG_SND_PCM_XRUN_DEBUG=y
  • Line 964: CONFIG_DMATEST=y
  • Line 1000: CONFIG_CIX_CLK_DEBUG=y

Consider disabling these for the release config. At minimum, SND_DEBUG_VERBOSE and CIX_CLK_DEBUG are likely high-volume dmesg contributors. Note that since the PR also mentions ALSA audio configuration is missing, disabling the sound debug options should have no negative impact on functionality.

Also applies to: 1000-1000, 395-395, 964-964, 70-70


49-61: Broad architecture enablement for a CIX-specific vendor kernel.

Lines 49–60 enable many unrelated ARM64 SoC families (Actions, Apple, Broadcom, Keembay, NXP, Nuvoton, Realtek, Intel SoCFPGA, STM32, etc.) alongside CONFIG_ARCH_CIX=y. For a vendor-specific kernel targeting CIX boards only, these add unnecessary code to the kernel image and increase build time. Consider trimming to just ARCH_CIX (and any actual dependencies) unless there's a specific reason to keep them.

config/boards/cix-acpi.conf (1)

15-15: Trixie-specific guard is appropriate but will need updating for future releases.

The trixie check is correct for the current target. As a minor note for future maintenance: when Debian moves beyond trixie, this condition and the backports source will need to be revisited. This is acceptable for initial support work.

Comment thread config/kernel/linux-cix-p1-vendor.config Outdated
chroot_sdcard_apt_get_install sky1-firmware

display_alert "Installing Mediatek firmware" "sky1-firmware" "info"
chroot_sdcard_apt_get_install firmware-mediatek # Install Mediatek firmware for WiFi and Bluetooth (used on MS-R1)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mediatek need to be installed from different source -

[🐳|🌱] Installing Mediatek firmware [ sky1-firmware ]
[🐳|🔨]   E: Unable to locate package firmware-mediatek
[🐳|💥] Error 1 occurred in main shell [ at /armbian/lib/functions/logging/runners.sh:15
   chroot_sdcard_apt_get_install() --> lib/functions/logging/runners.sh:15
                  family_tweaks() --> config/sources/families/cix-p1.conf:110
   install_distribution_agnostic() --> lib/functions/rootfs/distro-agnostic.sh:458
                do_with_logging() --> lib/functions/logging/section-logging.sh:81
         build_rootfs_and_image() --> lib/functions/main/rootfs-image.sh:31
   full_build_packages_rootfs_and_image() --> lib/functions/main/default-build.sh:36
          do_with_default_build() --> lib/functions/main/default-build.sh:42
         cli_standard_build_run() --> lib/functions/cli/cli-build.sh:25
        armbian_cli_run_command() --> lib/functions/cli/utils-cli.sh:136
                 cli_entrypoint() --> lib/functions/cli/entrypoint.sh:208
                           main() --> compile.sh:50
 ]
[🐳|💥] Cleaning up [ please wait for cleanups to finish ]

@HeyMeco HeyMeco modified the milestones: 26.02, 26.05 Mar 4, 2026
BOARD_NAME="Cix-ACPI"
BOARD_VENDOR="cixtech"
BOARDFAMILY="cix-p1"
KERNEL_TARGET="current, edge, vendor"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why are there spaces?

@AIWintermuteAI

Copy link
Copy Markdown

Great job! Looking forward to seeing it merged

@EvilOlaf

Copy link
Copy Markdown
Member

Also works for 7.0-rc1 btw.
However these additional spaces between the branch names create all sorts of issue for me.

@HeyMeco

HeyMeco commented Mar 19, 2026

Copy link
Copy Markdown
Collaborator Author

Also works for 7.0-rc1 btw. However these additional spaces between the branch names create all sorts of issue for me.

Will revise. How do those issues show?

@EvilOlaf

Copy link
Copy Markdown
Member

Will revise. How do those issues show?

The most obvious is error messages when motd pops up (requires first boot user setup completed).
Also armbian-install showed errors regarding this.

@SuperKali

Copy link
Copy Markdown
Member

Also armbian-install showed errors regarding this.

I noticed the same thing

@ArminiusTux

Copy link
Copy Markdown

Looking forward to this board addition to Armbian!

Since Linux is allergic to multiple GPUs in one system, hopefully there will be an easy off-switch for the Immortalis iGPU (at least for the Radxa Orion O6).

@ouni666

ouni666 commented Mar 27, 2026

Copy link
Copy Markdown

Hi everyone,

Exciting progress on the CIX front! It looks like CIX has just updated their kernel patchsets for 6.18 and 7.0:

Mainline kernel patches:
https://github.com/cixtech/cix-linux-main

NPU driver (7.0 kernel):
https://github.com/cixtech/cix_opensource__npu_driver/tree/cix_mainline_dev

VPU driver (7.0 kernel):
https://github.com/cixtech/cix_opensource__vpu_driver/tree/cix_mainline_dev

Really nice to see upstream work moving forward. Hopefully this helps the Armbian integration effort!

Cheers

@EvilOlaf

Copy link
Copy Markdown
Member

Has anyone successfully used armbian-install to move OS to nvme? For me it just drops into uefi, refuses to boot. sdcard works fine.

@HeyMeco

HeyMeco commented Mar 30, 2026

Copy link
Copy Markdown
Collaborator Author

For SD Card idk but for nvme I would guess it has something to do with how we don’t do GPT with armbian-install+ move the boot partition on this family

@web0net

web0net commented Mar 30, 2026

Copy link
Copy Markdown

Has anyone successfully used armbian-install to move OS to nvme? For me it just drops into uefi, refuses to boot. sdcard works fine.

install os from armbian build tool stable -> you don't have video -> install mainline kernel 7 and you get video and all hardware work -> update all packages -> armbian-config and move os and boot to nvme -> done!

@SuperKali

Copy link
Copy Markdown
Member

Has anyone successfully used armbian-install to move OS to nvme? For me it just drops into uefi, refuses to boot. sdcard works fine.

You need to go into the BIOS and manually specify the location of the EFI boot file; it doesn't seem to detect it automatically.

@HeyMeco

HeyMeco commented Mar 30, 2026

Copy link
Copy Markdown
Collaborator Author

it doesn't seem to detect it automatically

and that is because we don’t do GPT partitioning and don’t keep the boot partitions efi guid (C12A7328-F81F-11D2-BA4B-00A0C93EC93B). See https://wiki.archlinux.org/title/EFI_system_partition#GPT_partitioned_disks

It is something we are already aware of here: #9454

@EvilOlaf

Copy link
Copy Markdown
Member

just dding the image to nvme works interestingly.

@HeyMeco

HeyMeco commented Mar 30, 2026

Copy link
Copy Markdown
Collaborator Author

just dding the image to nvme works interestingly.

If you don’t keep the storage medium connected from where you installed that is one way currently to keep partition uuid's correct but you have to remove the base storage medium as it will lead to conflict otherwise.

@EvilOlaf

EvilOlaf commented Mar 30, 2026

Copy link
Copy Markdown
Member

I did not dd directly from the microsd but from an actual image which I moved to the sdcard which I booted from beforehand.
Installed gnome via tasksel, GUI works :)
Using 7.0-rc1

Edit: KDE Plasma on Wayland works too but trashes every now and then. However I guess that's a Forky issue. Trixie from what I remember was more stable. Did not test on iGPU yet, only dGPU

@web0net

web0net commented Mar 31, 2026

Copy link
Copy Markdown

@HeyMeco HeyMeco modified the milestones: 26.05, Backlog May 7, 2026
EvilOlaf added a commit to EvilOlaf/build that referenced this pull request May 17, 2026
Squashed commit from PR armbian#9395. Includes:
- Board vendor configuration
- Current (6.18) and edge (6.19) kernel support based on Sky1-Linux
- Firmware and mesa backports for GPU support
- Various fixes and improvements
EvilOlaf added a commit to EvilOlaf/build that referenced this pull request Jun 2, 2026
Squashed commit from PR armbian#9395. Includes:
- Board vendor configuration
- Current (6.18) and edge (6.19) kernel support based on Sky1-Linux
- Firmware and mesa backports for GPU support
- Various fixes and improvements
EvilOlaf added a commit to EvilOlaf/build that referenced this pull request Jun 7, 2026
Squashed commit from PR armbian#9395. Includes:
- Board vendor configuration
- Current (6.18) and edge (6.19) kernel support based on Sky1-Linux
- Firmware and mesa backports for GPU support
- Various fixes and improvements
@EvilOlaf EvilOlaf added the Can be closed? Ping developers on stalled issue / PR label Jun 13, 2026
@HeyMeco

HeyMeco commented Jun 22, 2026

Copy link
Copy Markdown
Collaborator Author

Closed by #9854

@HeyMeco HeyMeco closed this Jun 22, 2026
@HeyMeco HeyMeco removed this from the Backlog milestone Jun 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

02 Milestone: First quarter release Can be closed? Ping developers on stalled issue / PR Hardware Hardware related like kernel, U-Boot, ... Needs review Seeking for review size/large PR with 250 lines or more

Development

Successfully merging this pull request may close these issues.

10 participants