Skip to content

Conversation

lanefu
Copy link
Member

@lanefu lanefu commented Jul 14, 2025

Description

We Need ACPI enabled for uefi-arm64-cloud images to boot successfully. Changes look drastic because I used ./compile.sh kernel-config and it sanitized things.

Resolves: not booting and 100% cpu and blank screen.

Pairs will with #8376

Tech debt:

@lanefu lanefu requested a review from rpardini as a code owner July 14, 2025 02:06
Copy link
Contributor

coderabbitai bot commented Jul 14, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

Replaces the linux-uefi-arm64-cloud kernel config contents: removes AWS/Azure-specific virtualization and EFI options; adds IPC (SYSVIPC, POSIX_MQUEUE), BPF (syscall, JIT), debug info (DWARF5, BTF, FTRACE_SYSCALLS), expanded cgroups and namespaces (MEMCG, CGROUP_SCHED, CGROUP_BPF, USER_NS, etc.), and container/security options (PERSISTENT_KEYRINGS, ENCRYPTED_KEYS, SELinux, AppArmor). Enables broad virtio drivers, 9P, SCSI_VIRTIO, networking stacks (netfilter, nftables, IPVS, bridging, VLAN, NET_SCHED), filesystems (EXT4, XFS, BTRFS, OVERLAY_FS, NFS, 9P), WireGuard, ZRAM, and various ARM64/architecture options while retaining NUMA/HZ_1000 and other platform features. No source code or API declarations were changed — only kernel CONFIG flags.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Possibly related PRs

Suggested reviewers

  • rpardini
  • igorpecovnik
  • EvilOlaf
  • SuperKali
  • chainsx

📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e57234f and 8c3724f.

📒 Files selected for processing (1)
  • config/kernel/linux-uefi-arm64-cloud.config (4 hunks)
✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@github-actions github-actions bot added 08 Milestone: Third quarter release size/large PR with 250 lines or more Needs review Seeking for review Hardware Hardware related like kernel, U-Boot, ... labels Jul 14, 2025
@coderabbitai coderabbitai bot added 05 Milestone: Second quarter release size/small PR with less then 50 lines labels Jul 14, 2025
@lanefu lanefu requested a review from igorpecovnik July 14, 2025 02:07
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Nitpick comments (1)
config/kernel/linux-uefi-arm64-cloud.config (1)

255-256: DWARF5 + BTF debug info balloons image size

CONFIG_DEBUG_INFO_DWARF5=y & CONFIG_DEBUG_INFO_BTF=y roughly double build time and can add ≈ 200 MB to vmlinux/modules.*.
For distro kernels that never ship the unstripped images, consider:

-CONFIG_DEBUG_INFO_DWARF5=y
-CONFIG_DEBUG_INFO_BTF=y
+# CONFIG_DEBUG_INFO_DWARF5 is not set
+# CONFIG_DEBUG_INFO_BTF is not set

Unless you explicitly need CO-RE/BPF or full DWARF5 in cloud builds.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 370bedb and 5b7a5e6.

📒 Files selected for processing (1)
  • config/kernel/linux-uefi-arm64-cloud.config (4 hunks)
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: EvilOlaf
PR: armbian/build#8328
File: lib/functions/compilation/patch/drivers_network.sh:542-545
Timestamp: 2025-06-24T10:08:40.313Z
Learning: In the Armbian build system, when a PR removes build support for a specific kernel version, version check issues for that removed version become practically irrelevant even if they appear incorrect in isolation. Context about which kernel versions are being deprecated/removed is important for understanding the impact of version-related code changes.
Learnt from: libiunc
PR: armbian/build#8033
File: config/kernel/linux-starfive2-vendor.config:43-43
Timestamp: 2025-03-31T12:57:13.880Z
Learning: For StarFive2 platform kernel configurations, maintain alignment with vendor-provided configurations rather than modifying security settings like SECCOMP. This ensures hardware compatibility as intended by the manufacturer.
Learnt from: pyavitz
PR: armbian/build#8361
File: config/kernel/linux-sunxi64-edge.config:594-597
Timestamp: 2025-07-06T16:27:45.349Z
Learning: In Armbian sunxi64-edge kernel configurations, PCI/PCIe support may be enabled for future-proofing purposes to support upcoming Allwinner SoCs like the T536 that include PCIe Gen2 interfaces, even if current primary targets like H616 lack PCIe controllers. This forward-looking approach prepares the configuration for next-generation hardware in the same SoC family.
Learnt from: EvilOlaf
PR: armbian/build#0
File: :0-0
Timestamp: 2025-06-16T03:24:00.458Z
Learning: In Armbian board configuration files (.csc), the standard pattern is to have only one line as a comment describing the board hardware specifications. This single-line description typically includes the SoC model, core count, RAM options, and key features like connectivity options, storage interfaces, and special features.
Learnt from: EvilOlaf
PR: armbian/build#8330
File: config/sources/families/sun55iw3.conf:32-36
Timestamp: 2025-06-25T03:42:09.086Z
Learning: In Armbian build system configuration files like config/sources/families/*.conf, KERNELSOURCE is explicitly declared when using unofficial or 3rd party kernel repositories (like the "dev" branch using https://github.com/apritzel/linux), but can be omitted when using the standard mainline kernel (like the "edge" branch) since it will fall back to the default mainline source.
Learnt from: Grippy98
PR: armbian/build#8152
File: lib/functions/configuration/interactive.sh:209-266
Timestamp: 2025-05-05T12:35:07.143Z
Learning: For the interactive kernel selection in Armbian, KERNEL_MAJOR_MINOR and KERNEL_DESCRIPTION are parsed from family.conf but deliberately not set as environment variables to avoid potential interference with other parts of the build system.
Learnt from: EvilOlaf
PR: armbian/build#8330
File: config/sources/families/sun55iw3.conf:32-36
Timestamp: 2025-06-25T03:40:52.109Z
Learning: In Armbian build system configuration files like config/sources/families/*.conf, when KERNELSOURCE is not explicitly declared in a case branch, the system falls back to a default KERNELSOURCE value, so missing KERNELSOURCE declarations are not critical issues.
config/kernel/linux-uefi-arm64-cloud.config (7)
Learnt from: libiunc
PR: armbian/build#8033
File: config/kernel/linux-starfive2-vendor.config:43-43
Timestamp: 2025-03-31T12:57:13.880Z
Learning: For StarFive2 platform kernel configurations, maintain alignment with vendor-provided configurations rather than modifying security settings like SECCOMP. This ensures hardware compatibility as intended by the manufacturer.
Learnt from: pyavitz
PR: armbian/build#8361
File: config/kernel/linux-sunxi64-edge.config:594-597
Timestamp: 2025-07-06T16:27:45.349Z
Learning: In Armbian sunxi64-edge kernel configurations, PCI/PCIe support may be enabled for future-proofing purposes to support upcoming Allwinner SoCs like the T536 that include PCIe Gen2 interfaces, even if current primary targets like H616 lack PCIe controllers. This forward-looking approach prepares the configuration for next-generation hardware in the same SoC family.
Learnt from: EvilOlaf
PR: armbian/build#0
File: :0-0
Timestamp: 2025-06-16T03:24:00.458Z
Learning: In Armbian board configuration files (.csc), the standard pattern is to have only one line as a comment describing the board hardware specifications. This single-line description typically includes the SoC model, core count, RAM options, and key features like connectivity options, storage interfaces, and special features.
Learnt from: EvilOlaf
PR: armbian/build#8330
File: config/sources/families/sun55iw3.conf:32-36
Timestamp: 2025-06-25T03:40:52.109Z
Learning: In Armbian build system configuration files like config/sources/families/*.conf, when KERNELSOURCE is not explicitly declared in a case branch, the system falls back to a default KERNELSOURCE value, so missing KERNELSOURCE declarations are not critical issues.
Learnt from: EvilOlaf
PR: armbian/build#8328
File: lib/functions/compilation/patch/drivers_network.sh:542-545
Timestamp: 2025-06-24T10:08:40.313Z
Learning: In the Armbian build system, when a PR removes build support for a specific kernel version, version check issues for that removed version become practically irrelevant even if they appear incorrect in isolation. Context about which kernel versions are being deprecated/removed is important for understanding the impact of version-related code changes.
Learnt from: EvilOlaf
PR: armbian/build#8330
File: config/sources/families/sun55iw3.conf:32-36
Timestamp: 2025-06-25T03:42:09.086Z
Learning: In Armbian build system configuration files like config/sources/families/*.conf, KERNELSOURCE is explicitly declared when using unofficial or 3rd party kernel repositories (like the "dev" branch using https://github.com/apritzel/linux), but can be omitted when using the standard mainline kernel (like the "edge" branch) since it will fall back to the default mainline source.
Learnt from: Grippy98
PR: armbian/build#8152
File: lib/functions/configuration/interactive.sh:209-266
Timestamp: 2025-05-05T12:35:07.143Z
Learning: For the interactive kernel selection in Armbian, KERNEL_MAJOR_MINOR and KERNEL_DESCRIPTION are parsed from family.conf but deliberately not set as environment variables to avoid potential interference with other parts of the build system.
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Shell script analysis
🔇 Additional comments (2)
config/kernel/linux-uefi-arm64-cloud.config (2)

14-16: IKCONFIG exposed ‒ good call

Keeping CONFIG_IKCONFIG=y and CONFIG_IKCONFIG_PROC=y is handy for later auditing which options shipped in the running kernel. 👍


41-43: ACPI enablement un-blocks UEFI boot path

CONFIG_ACPI=y is the critical bit that was missing for cloud images on arm64-UEFI. This should resolve the early-boot hang you described.

Copy link
Member

@SuperKali SuperKali left a comment

Choose a reason for hiding this comment

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

Have a compiled version to test? i have some issue with my server and can't compile it :)

@lanefu
Copy link
Member Author

lanefu commented Jul 18, 2025

Have a compiled version to test? i have some issue with my server and can't compile it :)

@SuperKali https://refuge.armsurvivors.icu/lanefu/lanefu_25.08.0-trunk_Uefi-arm64_trixie_cloud_6.12.39/

@github-actions github-actions bot removed the size/small PR with less then 50 lines label Jul 18, 2025
@coderabbitai coderabbitai bot requested review from chainsx and SuperKali July 19, 2025 00:00
@coderabbitai coderabbitai bot added BSP Board Support Packages Ready to merge Reviewed, tested and ready for merge size/medium PR with more then 50 and less then 250 lines labels Jul 19, 2025
@igorpecovnik
Copy link
Member

igorpecovnik commented Jul 19, 2025

Changes look drastic because I used ./compile.sh kernel-config and it sanitized things.

Here we could use AI to divide it back to sections following by opening a PR with those changes. POC for doing something with AI: https://github.com/armbian/armbian.github.io/pull/52/files In case someone finds this interesting enough for integrating .I will proceed on this, but dunno when.

@github-actions github-actions bot removed size/medium PR with more then 50 and less then 250 lines Ready to merge Reviewed, tested and ready for merge labels Jul 19, 2025
@rpardini
Copy link
Member

Changes look drastic because I used ./compile.sh kernel-config and it sanitized things

I took the liberty to force-push a fix:

  1. Go back to main then run ./compile.sh BOARD=uefi-arm64 BRANCH=cloud rewrite-kernel-config, commit
  2. Get the contents of the .config with the changes, overwrite the .config, run thing above again, commit

That way the 2nd commit reflects only the actual changes done.

@igorpecovnik
Copy link
Member

Another "problem" for not getting minimal kernel from this command is armbian-kernel functionality https://github.com/armbian/build/blob/main/lib/functions/compilation/armbian-kernel.sh as config options gets to this defconfig. Not sure if its worth dealing with this.

@leggewie
Copy link
Collaborator

Changes look drastic because I used ./compile.sh kernel-config and it sanitized things
[...]
That way the 2nd commit reflects only the actual changes done.

Way to go, @rpardini. Thank you.

e57234f looks sane, lgtm.

@leggewie leggewie self-requested a review August 11, 2025 10:24
@coderabbitai coderabbitai bot requested a review from EvilOlaf August 11, 2025 10:24
Copy link
Collaborator

@leggewie leggewie left a comment

Choose a reason for hiding this comment

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

e57234f looks sane, lgtm.

@leggewie leggewie merged commit 2080f24 into armbian:main Aug 11, 2025
1 check was pending
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
05 Milestone: Second quarter release 08 Milestone: Third quarter release BSP Board Support Packages 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.

5 participants