Skip to content

Allow Helios64 to do separate /boot partition only if root placed on fs than unbootable on device#8946

Merged
igorpecovnik merged 2 commits intoarmbian:mainfrom
iav:helios64bootfs
Nov 17, 2025
Merged

Allow Helios64 to do separate /boot partition only if root placed on fs than unbootable on device#8946
igorpecovnik merged 2 commits intoarmbian:mainfrom
iav:helios64bootfs

Conversation

@iav
Copy link
Contributor

@iav iav commented Nov 17, 2025

Allow Helios64 to do separate /boot partition only if root placed on fs than unbootable on device.
follow up #8927

How Has This Been Tested?

Do build with different ROOTFS_TYPE, and look into result image for separate ext3 /boot partition.

./compile.sh iav BOARD=helios64 ROOTFS_TYPE=nilfs2
./compile.sh iav BOARD=helios64 ROOTFS_TYPE=btrfs
./compile.sh iav BOARD=helios64 ROOTFS_TYPE=xfs

/boot present

./compile.sh iav BOARD=helios64

no separeted /boot, root ext4

./compile.sh iav BOARD=helios64 ROOTFS_TYPE=nilfs2 BOOTPART_REQUIRED=no

no /boot, rootfs nilfs2

Summary by CodeRabbit

  • New Features

    • Integrated watchdog monitoring service for improved system reliability and automatic detection of critical hardware failures
  • Chores

    • Enhanced system configuration packages to include additional management and monitoring capabilities
    • Implemented intelligent boot partition configuration with conditional filesystem type detection and selection
    • Optimized system defaults to automatically adapt based on specified root filesystem configuration

@iav iav requested a review from prahal as a code owner November 17, 2025 03:21
@github-actions github-actions bot added 11 Milestone: Fourth quarter release Needs review Seeking for review Hardware Hardware related like kernel, U-Boot, ... size/small PR with less then 50 lines labels Nov 17, 2025
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 17, 2025

Walkthrough

Board configuration for Helios64 updated to add watchdog to the package list and introduce conditional defaults for boot filesystem type and partition requirements based on the root filesystem type selection.

Changes

Cohort / File(s) Change Summary
Helios64 Board Configuration
config/boards/helios64.conf
Added watchdog to PACKAGE_LIST_BOARD; introduced conditional defaults that set BOOTFS_TYPE to ext4 when ROOTFS_TYPE matches btrfs, f2fs, nilfs2, nfs, or xfs; set BOOTPART_REQUIRED to yes when same ROOTFS_TYPE conditions apply

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

  • Simple package list addition (watchdog)
  • Straightforward conditional logic for filesystem defaults
  • Single file with no functional behavior changes to existing code

Possibly related PRs

Suggested labels

size/medium

Suggested reviewers

  • igorpecovnik

Poem

🐰 A watchdog now guards Helios with care,
Conditional boots float gracefully through the air,
When filesystems dance in their btrfs delight,
Ext4 bootloaders set everything right! 🥬

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title is awkwardly phrased and difficult to parse, but it does refer to the actual change: conditionally creating a separate /boot partition for Helios64 when root filesystem types are unsuitable for booting.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 6a12d93 and 7e18777.

📒 Files selected for processing (1)
  • config/boards/helios64.conf (1 hunks)
🧰 Additional context used
🧠 Learnings (9)
📓 Common learnings
Learnt from: tabrisnet
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-10-24T04:46:22.901Z
Learning: In lib/functions/rootfs/rootfs-create.sh, the FIXME comment about mmdebstrap usage with --aptopt is a future note related to PR #8785, which hasn't been merged yet.
📚 Learning: 2025-11-02T20:49:56.719Z
Learnt from: igorpecovnik
Repo: armbian/build PR: 8849
File: config/boards/radxa-e54c.csc:14-28
Timestamp: 2025-11-02T20:49:56.719Z
Learning: In Armbian board configuration files (config/boards/*.conf, *.csc, etc.), do not use kernel_config_set, kernel_config_set_m, kernel_config_set_y, or custom_kernel_config__* functions to modify kernel configuration. Kernel configuration is associated with LINUXFAMILY/BOARDFAMILY, not individual BOARD. Board-specific kernel modifications cause inconsistency in kernel packages published to the apt repository because boards within a family share the same kernel packages. Kernel configuration changes must be made in the appropriate kernel config file (e.g., config/kernel/linux-*-*.config) or in family configuration files (config/sources/families/*.conf, *.inc) instead.

Applied to files:

  • config/boards/helios64.conf
📚 Learning: 2025-09-18T03:36:17.862Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8537
File: config/boards/qcom-robotics-rb5.conf:1-1
Timestamp: 2025-09-18T03:36:17.862Z
Learning: In Armbian board configuration files (regardless of file extension), 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. The file extensions indicate board support status: .conf (standard support), .csc (community supported), .eos (end of support), .tvb (tvbox), .wip (work in progress).

Applied to files:

  • config/boards/helios64.conf
📚 Learning: 2025-09-18T03:36:17.862Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8537
File: config/boards/qcom-robotics-rb5.conf:1-1
Timestamp: 2025-09-18T03:36:17.862Z
Learning: In Armbian board configuration files, .wip and .conf extensions require BOARD_MAINTAINER to be present and contain at least one maintainer. If no maintainer is present, the board support rules state it does not qualify for standard support and must be moved to community support (.csc extension). This is documented at https://docs.armbian.com/User-Guide_Board-Support-Rules/

Applied to files:

  • config/boards/helios64.conf
📚 Learning: 2025-08-30T06:56:33.372Z
Learnt from: tabrisnet
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-08-30T06:56:33.372Z
Learning: In Armbian kernel configuration, the BTRFS configuration logic preserves existing settings (whether built-in 'y' or module 'm') and only sets BTRFS_FS to module when it was previously disabled or not set, achieving "allow but not require" flexibility while maintaining backward compatibility.

Applied to files:

  • config/boards/helios64.conf
📚 Learning: 2025-10-14T05:08:11.785Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8754
File: config/boards/bestv-r3300-l.csc:14-16
Timestamp: 2025-10-14T05:08:11.785Z
Learning: In the Armbian build system, BOOTBRANCH_BOARD is a valid framework variable used as a fallback when BOOTBRANCH is unset. The framework checks BOOTBRANCH_BOARD before applying the default bootloader branch value (see config/sources/common.conf). Board configuration files can use BOOTBRANCH_BOARD to specify the bootloader branch.

Applied to files:

  • config/boards/helios64.conf
📚 Learning: 2025-09-07T17:39:32.272Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8586
File: config/boards/nanopi-r76s.conf:15-21
Timestamp: 2025-09-07T17:39:32.272Z
Learning: In the Armbian build system, the variables $BOARD and $SDCARD are always set by the build framework, so guard checks for these variables are unnecessary in board configuration files and hook functions.

Applied to files:

  • config/boards/helios64.conf
📚 Learning: 2025-07-23T07:30:52.265Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8417
File: config/boards/orangepi5pro.csc:57-58
Timestamp: 2025-07-23T07:30:52.265Z
Learning: In the Armbian build system, BOOTPATCHDIR can contain board-specific subdirectories (e.g., board_orangepi5pro) for applying patches to specific boards only. The framework automatically checks if such board-specific subdirectories exist for the board being built and applies those patches accordingly.

Applied to files:

  • config/boards/helios64.conf
📚 Learning: 2025-10-26T10:41:35.118Z
Learnt from: HackingGate
Repo: armbian/build PR: 8665
File: config/boards/photonicat2.csc:4-4
Timestamp: 2025-10-26T10:41:35.118Z
Learning: In the Armbian build system, rk3576 boards consistently use BOARDFAMILY="rk35xx" for both vendor and edge kernel targets. The rk35xx family configuration sources rockchip64_common.inc, which provides edge and current kernel branch definitions, making these branches available even though they're not defined directly in rk35xx.conf.

Applied to files:

  • config/boards/helios64.conf
🔇 Additional comments (2)
config/boards/helios64.conf (2)

12-12: Good addition for UPS-equipped board.

Adding the watchdog package aligns well with the Helios64's UPS functionality and enhances system reliability monitoring.


16-19: Code is correct; ext3 mention in PR description appears inaccurate.

Verification confirms both BOOTFS_TYPE and BOOTPART_REQUIRED are recognized framework variables that control boot partition creation in the Armbian build system:

  • BOOTFS_TYPE defaults to ext4 (not ext3) when a separate boot partition is needed. Supported types are ext4, ext2, and fat.
  • BOOTPART_REQUIRED is used by storage extensions (cryptroot, lvm) to enforce a boot partition when required.
  • The partitioning logic at lib/functions/image/partitioning.sh:116 correctly checks if a boot partition is needed based on these variables.

The code change setting these variables for btrfs, f2fs, nilfs2, nfs, and xfs is correct—these filesystems cannot be booted directly and require a separate ext4 /boot partition. The PR description's mention of "ext3" appears to be outdated or inaccurate; the framework uses ext4.


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 the Ready to merge Reviewed, tested and ready for merge label Nov 17, 2025
@github-actions
Copy link
Contributor

✅ This PR has been reviewed and approved — all set for merge!

@github-actions github-actions bot removed the Needs review Seeking for review label Nov 17, 2025
@igorpecovnik igorpecovnik merged commit ed12d2c into armbian:main Nov 17, 2025
1 check passed
@iav iav deleted the helios64bootfs branch November 17, 2025 21:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

11 Milestone: Fourth quarter release Hardware Hardware related like kernel, U-Boot, ... Ready to merge Reviewed, tested and ready for merge size/small PR with less then 50 lines

Development

Successfully merging this pull request may close these issues.

2 participants