Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@tabrisnet
Copy link
Contributor

see #8528
forcing BTRFS to be built/available is a policy choice. Forcing it to be built-in may not be a valid policy choice.

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Please also note any relevant details for your test configuration.

  • image build succeeds

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

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Aug 30, 2025

Walkthrough

A single change in lib/functions/compilation/armbian-kernel.sh: within armbian_kernel_config__enable_docker_support(), the BTRFS_FS kernel option is now set as a module (kernel_config_set_m BTRFS_FS) instead of built-in (kernel_config_set_y BTRFS_FS). BTRFS_FS_POSIX_ACL and all other docker-related kernel option assignments are unchanged. No public APIs or declarations were modified.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Possibly related PRs

Suggested reviewers

  • chraac
  • rpardini
  • EvilOlaf
  • igorpecovnik
  • AGM1968

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear 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 bbdfbde and 004e7c2.

📒 Files selected for processing (1)
  • lib/functions/compilation/armbian-kernel.sh (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • lib/functions/compilation/armbian-kernel.sh
⏰ 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
✨ Finishing Touches
  • 📝 Generate Docstrings
🧪 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.
    • 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.
  • 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 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/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore or @coderabbit 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

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • 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 size/small PR with less then 50 lines 08 Milestone: Third quarter release Needs review Seeking for review Framework Framework components labels Aug 30, 2025
@tabrisnet
Copy link
Contributor Author

@coderabbitai review

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Aug 30, 2025

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

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: 0

🧹 Nitpick comments (1)
lib/functions/compilation/armbian-kernel.sh (1)

208-211: Use anchored, quiet grep and set BTRFS to module only when off; guard POSIX_ACL

  • Replace the egrep test with
    if grep -Eq -q '^# CONFIG_BTRFS_FS is not set$' .config; then
    kernel_config_set_m BTRFS_FS
    fi
  • Guard the ACL symbol by checking
    if grep -Eq -q '^(CONFIG_BTRFS_FS_POSIX_ACL=|# CONFIG_BTRFS_FS_POSIX_ACL is not set$)' .config; then
    kernel_config_set_y BTRFS_FS_POSIX_ACL
    fi
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear 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 8f977f5 and d6a6b5d.

📒 Files selected for processing (1)
  • lib/functions/compilation/armbian-kernel.sh (1 hunks)
🧰 Additional context used
🧠 Learnings (8)
📓 Common learnings
Learnt from: EvilOlaf
PR: armbian/build#0
File: :0-0
Timestamp: 2025-08-02T05:46:10.664Z
Learning: In the Armbian build system, the modern recommended approach for kernel configuration is to use the kernel-config command via "./compile.sh BOARD=boardname BRANCH=branchname kernel-config" instead of the deprecated KERNEL_CONFIGURE=yes flag. This provides a two-step workflow: configure using menuconfig, then build, with better transparency and control over configuration changes.
Learnt from: EvilOlaf
PR: armbian/build#0
File: :0-0
Timestamp: 2025-08-02T05:46:10.664Z
Learning: In the Armbian build system, the KERNEL_CONFIGURE=yes switch is deprecated. The recommended approach for kernel configuration is now to use the `kernel-config` build command, which provides a more structured way to configure kernel options.
Learnt from: tabrisnet
PR: armbian/build#0
File: :0-0
Timestamp: 2025-08-30T04:13:16.418Z
Learning: Armbian kernel configuration files like linux-filogic-current.config are autogenerated overlays on top of arch defconfig. Comments added manually will be lost during future updates by maintainers, and explicit "CONFIG_OPTION is not set" statements aren't needed for mutually exclusive options since these are overlay configs that only specify changes from the base configuration.
Learnt from: pyavitz
PR: armbian/build#8421
File: config/kernel/linux-sunxi64-edge.config:2664-2671
Timestamp: 2025-07-27T13:03:53.146Z
Learning: In the Armbian build system's kernel configuration, when CONFIG_EXT2_FS=y and CONFIG_EXT3_FS=y are both set to built-in, EXT4 filesystem support becomes automatically available/hard-coded without requiring an explicit CONFIG_EXT4_FS line in the configuration file. This is specific to how Armbian handles kernel configuration and differs from typical standalone Linux kernel configuration behavior.
📚 Learning: 2025-08-30T04:13:16.418Z
Learnt from: tabrisnet
PR: armbian/build#0
File: :0-0
Timestamp: 2025-08-30T04:13:16.418Z
Learning: Armbian kernel configuration files like linux-filogic-current.config are autogenerated overlays on top of arch defconfig. Comments added manually will be lost during future updates by maintainers, and explicit "CONFIG_OPTION is not set" statements aren't needed for mutually exclusive options since these are overlay configs that only specify changes from the base configuration.

Applied to files:

  • lib/functions/compilation/armbian-kernel.sh
📚 Learning: 2025-08-02T05:46:10.664Z
Learnt from: EvilOlaf
PR: armbian/build#0
File: :0-0
Timestamp: 2025-08-02T05:46:10.664Z
Learning: In the Armbian build system, the modern recommended approach for kernel configuration is to use the kernel-config command via "./compile.sh BOARD=boardname BRANCH=branchname kernel-config" instead of the deprecated KERNEL_CONFIGURE=yes flag. This provides a two-step workflow: configure using menuconfig, then build, with better transparency and control over configuration changes.

Applied to files:

  • lib/functions/compilation/armbian-kernel.sh
📚 Learning: 2025-08-02T05:46:10.664Z
Learnt from: EvilOlaf
PR: armbian/build#0
File: :0-0
Timestamp: 2025-08-02T05:46:10.664Z
Learning: In the Armbian build system, the KERNEL_CONFIGURE=yes switch is deprecated. The recommended approach for kernel configuration is now to use the `kernel-config` build command, which provides a more structured way to configure kernel options.

Applied to files:

  • lib/functions/compilation/armbian-kernel.sh
📚 Learning: 2025-07-27T15:53:30.629Z
Learnt from: pyavitz
PR: armbian/build#8421
File: config/kernel/linux-sunxi64-edge.config:805-825
Timestamp: 2025-07-27T15:53:30.629Z
Learning: In the Armbian build system, kernel configurations prioritize broad hardware compatibility over optimization concerns. Even when including numerous legacy/obsolete drivers causes technical issues like increased initramfs size and slower enumeration, the project philosophy is to "appease the masses" by ensuring maximum device compatibility rather than optimizing for specific use cases.

Applied to files:

  • lib/functions/compilation/armbian-kernel.sh
📚 Learning: 2025-07-25T03:51:50.830Z
Learnt from: EvilOlaf
PR: armbian/build#8428
File: config/boards/lckfb-taishanpi.csc:5-9
Timestamp: 2025-07-25T03:51:50.830Z
Learning: When reviewing PRs in the Armbian build system, U-Boot defconfig files and patches may be added as part of the PR changes but might not be visible in the current repository clone state during review. It's important to check the actual PR file changes directly via GitHub or the PR API to get the complete picture of what files are being added or modified.

Applied to files:

  • lib/functions/compilation/armbian-kernel.sh
📚 Learning: 2025-07-17T04:12:33.125Z
Learnt from: pyavitz
PR: armbian/build#8388
File: config/boards/kickpik2b.conf:1-14
Timestamp: 2025-07-17T04:12:33.125Z
Learning: In the Armbian build system, board configuration files (*.conf) follow a project standard of not including shebang lines, even though they contain bash code and are sourced by the build system. This is an established Armbian convention that individual contributors are expected to follow, and changes to this standard would require broader project maintainer approval.

Applied to files:

  • lib/functions/compilation/armbian-kernel.sh
📚 Learning: 2025-06-24T10:08:40.313Z
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.

Applied to files:

  • lib/functions/compilation/armbian-kernel.sh

@tabrisnet tabrisnet marked this pull request as ready for review August 30, 2025 05:33
@tabrisnet tabrisnet requested a review from a team as a code owner August 30, 2025 05:33
@tabrisnet
Copy link
Contributor Author

tabrisnet commented Aug 30, 2025

Actionable comments posted: 0
🧹 Nitpick comments (1)

lib/functions/compilation/armbian-kernel.sh (1)> 208-211: Use anchored, quiet grep and set BTRFS to module only when off; guard POSIX_ACL

  • Replace the egrep test with
    if grep -Eq -q '^# CONFIG_BTRFS_FS is not set$' .config; then
    kernel_config_set_m BTRFS_FS
    fi
  • Guard the ACL symbol by checking
    if grep -Eq -q '^(CONFIG_BTRFS_FS_POSIX_ACL=|# CONFIG_BTRFS_FS_POSIX_ACL is not set$)' .config; then
    kernel_config_set_y BTRFS_FS_POSIX_ACL
    fi

📜 Review details

@coderabbitai
I disagree re the anchoring, but I do see the benefit in grep not polluting any of the build logs.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Aug 30, 2025

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

@tabrisnet Thank you for the feedback! I completely understand your perspective.

You're absolutely right about using the quiet -q flag to prevent grep from polluting the build logs - that's a practical improvement that will keep the output cleaner during kernel configuration.

Regarding anchoring, I can see why you'd prefer the current approach. The unanchored pattern 'BTRFS_FS(=n| is not set)' is more flexible and catches the relevant cases without being overly restrictive about line formatting. Kernel config files can sometimes have slight variations in whitespace or formatting, and the current pattern handles those cases robustly.

The key improvement here is indeed the quiet grep to reduce log noise. The current logic works well for detecting when BTRFS_FS needs to be enabled, and your preference to keep the pattern matching flexible makes sense for this use case.

So implementing just the -q flag change would be:

This keeps the robust pattern matching you prefer while cleaning up the build output.


🏁 Script executed:

#!/bin/bash
# Get the specific file and examine the relevant lines around 208-211
cat lib/functions/compilation/armbian-kernel.sh | head -220 | tail -20

Length of output: 1667


🏁 Script executed:

#!/bin/bash
# Find the function containing BTRFS configuration
grep -n -A 10 -B 5 "BTRFS_FS" lib/functions/compilation/armbian-kernel.sh

Length of output: 1532


🏁 Script executed:

if egrep -q 'BTRFS_FS(=n| is not set)' .config; then

Length of output: 107


@tabrisnet Thank you for the clarification! Looking at the actual code on line 208, I see that it already uses the -q flag for quiet operation:

if egrep -q 'BTRFS_FS(=n| is not set)' .config; then

You're right about the anchoring concern. The current unanchored pattern 'BTRFS_FS(=n| is not set)' is more robust for kernel configuration files because:

  1. It matches both CONFIG_BTRFS_FS=n and # CONFIG_BTRFS_FS is not set without being overly strict about line positioning
  2. Kernel config files can have variations in formatting, and the flexible pattern handles these cases well
  3. The pattern focuses on the essential content rather than exact line boundaries

The current implementation strikes a good balance - it's already quiet (no log pollution) and uses a pattern that reliably detects when BTRFS_FS needs to be enabled while remaining flexible enough to handle different config file formats. Your approach maintains backward compatibility and robustness, which is important for a build system that needs to work across various kernel versions and configurations.

The logic correctly allows BTRFS to remain as a module (m) or built-in (y) if already configured, only enabling it when it's disabled or not set.


🧠 Learnings used
Learnt from: EvilOlaf
PR: armbian/build#0
File: :0-0
Timestamp: 2025-07-21T04:12:02.439Z
Learning: In the Armbian build system, for recurring maintenance tasks like kernel version bumping, TODO comments should use generic version formats (e.g., "MAJOR.MINOR-rc1") rather than specific version numbers (e.g., "6.17-rc1") to avoid the need for frequent comment updates that would create unnecessary maintenance overhead.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Aug 30, 2025

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

@tabrisnet I understand your perspective on the anchoring. You're right that the current pattern matching approach may be intentionally flexible for your use case. Let me focus on incorporating the quiet grep improvement you've agreed to, which will prevent build log pollution:

This keeps your current pattern matching logic intact while adding the -q flag to suppress grep output during builds. The flexible pattern you're using likely handles various kernel configuration formats that anchored patterns might miss.


🏁 Script executed:

#!/bin/bash
# Let's examine the current BTRFS configuration code in the file
cat lib/functions/compilation/armbian-kernel.sh | grep -A 20 -B 5 "BTRFS_FS"

Length of output: 2442


🏁 Script executed:

# Updated code with quiet grep only
if egrep -q 'BTRFS_FS(=n| is not set)' .config; then
    kernel_config_set_m BTRFS_FS
    kernel_config_set_y BTRFS_FS_POSIX_ACL
fi

Length of output: 86


@tabrisnet I see the current implementation already uses quiet grep (egrep -q), so that part is already handled well.

Looking at the code more carefully, I notice that to achieve your PR objective of "allowing BTRFS to be built as module rather than forcing it built-in," the code should set BTRFS_FS to module (m) instead of built-in (y):

if egrep -q 'BTRFS_FS(=n| is not set)' .config; then
    kernel_config_set_m BTRFS_FS                # Enable BTRFS as module instead of built-in
    kernel_config_set_y BTRFS_FS_POSIX_ACL      # Enables POSIX ACL support for BTRFS
fi

This change aligns with your PR's goal of allowing BTRFS as a module rather than forcing it to be built-in. Your flexible pattern matching approach is well-suited for handling the various kernel config formats, so the anchoring suggestion was indeed unnecessary.


✏️ Learnings added
Learnt from: tabrisnet
URL: https://github.com/armbian/build/pull/8561

Timestamp: 2025-08-30T06:48:09.064Z
Learning: In lib/functions/compilation/armbian-kernel.sh, the user prefers flexible grep patterns over anchored ones for BTRFS configuration checks, but agrees to use quiet grep (-q) to avoid polluting build logs.

Learnt from: tabrisnet
URL: https://github.com/armbian/build/pull/8561

Timestamp: 2025-08-30T06:48:09.065Z
Learning: In Armbian kernel configuration, when enabling BTRFS support that was previously disabled, it should be set as a module (kernel_config_set_m) rather than built-in (kernel_config_set_y) to allow flexibility in BTRFS usage.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.

@tabrisnet
Copy link
Contributor Author

Tip

For best results, initiate chat on the files or code changes.
🧩 Analysis chain

@tabrisnet I see the current implementation already uses quiet grep (egrep -q), so that part is already handled well.

Looking at the code more carefully, I notice that to achieve your PR objective of "allowing BTRFS to be built as module rather than forcing it built-in," the code should set BTRFS_FS to module (m) instead of built-in (y):

if egrep -q 'BTRFS_FS(=n| is not set)' .config; then
    kernel_config_set_m BTRFS_FS                # Enable BTRFS as module instead of built-in
    kernel_config_set_y BTRFS_FS_POSIX_ACL      # Enables POSIX ACL support for BTRFS
fi

This change aligns with your PR's goal of allowing BTRFS as a module rather than forcing it to be built-in. Your flexible pattern matching approach is well-suited for handling the various kernel config formats, so the anchoring suggestion was indeed unnecessary.
✏️ Learnings added

@coderabbitai Uhh. not quite. We want to allow but not require it to be module. Since Docker has a potential dependency on btrfs [as a storage driver], armbian has chosen to require it to be built. I don't think, however, that the 1.6MB size of the module is justified as a mandatory built-in.

Although forcing it to be a module will simplify the change significantly, it may break existing users' setups. So this change where I allow it to be either y or m should be the safer alternative, and changing it to default to a module should be deferred to a separate PR.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Aug 30, 2025

Tip

For best results, initiate chat on the files or code changes.

@tabrisnet Thank you for the important clarification! You're absolutely right, and I apologize for misunderstanding your intent.

Looking at your current implementation more carefully, I now see that it perfectly achieves the "allow but not require" approach:

if egrep -q 'BTRFS_FS(=n| is not set)' .config; then
    kernel_config_set_m BTRFS_FS
    kernel_config_set_y BTRFS_FS_POSIX_ACL
fi

This logic:

  • Preserves existing BTRFS configurations (whether y or m) by only acting when BTRFS is disabled or not set
  • Enables BTRFS as a module (not built-in) when it was previously disabled
  • Maintains backward compatibility for existing setups that already have BTRFS configured

Your approach is indeed safer and more thoughtful. Users who already have BTRFS built-in won't be affected, while new configurations will get the more efficient module approach by default. This avoids the potential breaking changes that could occur if you forced all BTRFS configurations to module.

The distinction between "allowing flexibility" versus "requiring a specific configuration" is crucial for a build system, and your implementation strikes the right balance for this change.


✏️ Learnings added
Learnt from: tabrisnet
URL: https://github.com/armbian/build/pull/8561

Timestamp: 2025-08-30T06:56:33.328Z
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.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.


⛔ Learnings removed
Learnt from: tabrisnet
PR: armbian/build#0
File: :0-0
Timestamp: 2025-08-30T06:48:09.065Z
Learning: In Armbian kernel configuration, when enabling BTRFS support that was previously disabled, it should be set as a module (kernel_config_set_m) rather than built-in (kernel_config_set_y) to allow flexibility in BTRFS usage.

🧠 Learnings used
Learnt from: tabrisnet
PR: armbian/build#0
File: :0-0
Timestamp: 2025-08-30T06:48:09.064Z
Learning: In lib/functions/compilation/armbian-kernel.sh, the user prefers flexible grep patterns over anchored ones for BTRFS configuration checks, but agrees to use quiet grep (-q) to avoid polluting build logs.

Learnt from: tabrisnet
PR: armbian/build#0
File: :0-0
Timestamp: 2025-08-30T06:48:09.065Z
Learning: In Armbian kernel configuration, when enabling BTRFS support that was previously disabled, it should be set as a module (kernel_config_set_m) rather than built-in (kernel_config_set_y) to allow flexibility in BTRFS usage.

@tabrisnet tabrisnet force-pushed the tabrisnet_btrfs branch 4 times, most recently from 5c55b57 to bbdfbde Compare August 31, 2025 16:51
@tabrisnet
Copy link
Contributor Author

learned something, dug through the bash code, kernel_config_set_m doesn't modify the config if it's already y

@igorpecovnik
Copy link
Member

igorpecovnik commented Sep 3, 2025

armbian has chosen to require it to be built. I don't think, however, that the 1.6MB size of the module is justified as a mandatory built-in.

I am thinking on one corner case scenario. I think it is possible to boot btrfs directly.
https://forum.armbian.com/topic/15930-btrfs-support-on-u-boot/

Now, if BTRFS is enabled as kernel module, will this work? This is my only concern if we change that. If this works

dug through the bash code, kernel_config_set_m doesn't modify the config if it's already y

then I am ok with the change as our default configs has BTRFS set to y anyway.

@tabrisnet
Copy link
Contributor Author

armbian has chosen to require it to be built. I don't think, however, that the 1.6MB size of the module is justified as a mandatory built-in.

I am thinking on one corner case scenario. I think it is possible to boot btrfs directly. https://forum.armbian.com/topic/15930-btrfs-support-on-u-boot/

I don't know the Armbian scripts that well yet [of how to be sure it gets inserted when appropriate], but there is always the initramfs for that corner case. I know Debian does the needful for xfs.

Copy link
Member

@igorpecovnik igorpecovnik left a comment

Choose a reason for hiding this comment

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

According to function, if BTRFS is set to Y in defconfig, it will remain Y, so I actually don't see any troubles.

@igorpecovnik igorpecovnik added Ready to merge Reviewed, tested and ready for merge and removed Needs review Seeking for review labels Sep 3, 2025
@leggewie leggewie merged commit 3fc39c4 into armbian:main Sep 3, 2025
1 check passed
@tabrisnet
Copy link
Contributor Author

@igorpecovnik FYI: I just tested a build based on main, but with ext4 built as a module [and subsequent to #8560, module compression enabled as well]. NOTE: I am not advocating for building ext4 as a module... merely wanting to demonstrate that BTRFS is probably safe too.
This is a full build & image deploy, not just a machine with the kernel pkg replaced.

    _             _    _                             __  __ _    _      _
   /_\  _ _ _ __ | |__(_)__ _ _ _ ___ _  _ _ _  ___ / _|/ _(_)__(_)__ _| |
  / _ \| '_| '  \| '_ \ / _` | ' \___| || | ' \/ _ \  _|  _| / _| / _` | |
 /_/ \_\_| |_|_|_|_.__/_\__,_|_||_|   \_,_|_||_\___/_| |_| |_\__|_\__,_|_|

 v25.11 rolling for Tritium running Armbian Linux 6.12.43-current-sunxi64

 Packages:     Debian stable (bookworm), possible distro upgrade (trixie)
 Support:      DIY (custom image)
sed: -e expression #1, char 0: no previous regular expression

 Performance:  

 Load:         42%               Uptime:       1 min
 Memory usage: 6% of 1.93G
 CPU temp:     34°C             Usage of /:   8% of 15G

 Commands: 

 Configuration : armbian-config
 Monitoring    : htop

root@tritium-h5:~# lsmod|grep ext4
ext4                  770048  2
mbcache                12288  1 ext4
jbd2                  131072  1 ext4
root@tritium-h5:~# grep mmcblk /proc/mounts
/dev/mmcblk0p1 / ext4 rw,relatime,errors=remount-ro,commit=120,mb_optimize_scan=0 0 0
/dev/mmcblk0p1 /var/log.hdd ext4 rw,relatime,errors=remount-ro,commit=120,mb_optimize_scan=0 0 0
root@tritium-h5:~# modinfo ext4
filename:       /lib/modules/6.12.43-current-sunxi64/kernel/fs/ext4/ext4.ko.zst
softdep:        pre: crc32c
license:        GPL
description:    Fourth Extended Filesystem
author:         Remy Card, Stephen Tweedie, Andrew Morton, Andreas Dilger, Theodore Ts'o and others
alias:          fs-ext4
alias:          ext3
alias:          fs-ext3
depends:        jbd2,mbcache
intree:         Y
name:           ext4
vermagic:       6.12.43-current-sunxi64 SMP mod_unload aarch64

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

08 Milestone: Third quarter release Framework Framework components 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.

3 participants