Skip to content

Conversation

@leggewie
Copy link
Contributor

@leggewie leggewie commented Dec 15, 2025

I agree with @tabrisnet that the BSP package should depend on a kernel package

carved out from #9000

Summary by CodeRabbit

  • Chores
    • Updated package runtime dependencies to include linux-image-armbian.
    • Changed package priority from optional to required.
    • Added an explicit conflict declaration with the linux-image package.

✏️ Tip: You can customize this high-level summary in your review settings.

@leggewie leggewie requested a review from a team as a code owner December 15, 2025 00:10
@github-actions github-actions bot added the 02 Milestone: First quarter release label Dec 15, 2025
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 15, 2025

Walkthrough

Updated Debian control metadata in two packaging scripts: added linux-image-armbian to BSP CLI package Depends and changed its Priority to required; added Conflicts: linux-image to generated linux-image DEB control block.

Changes

Cohort / File(s) Summary
BSP CLI packaging metadata
lib/functions/bsp/armbian-bsp-cli-deb.sh
In reversion_armbian-bsp-cli_deb_contents added linux-image-armbian to the Depends list; in compile_armbian-bsp-cli changed control Priority from optional to required.
Kernel image DEB control generation
lib/functions/compilation/kernel-debs.sh
In kernel_package_callback_linux_image added Conflicts: linux-image to the generated DEB control block for linux-image packages.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20–30 minutes

  • Verify that adding linux-image-armbian as a runtime dependency doesn't create circular or unsatisfiable dependency chains.
  • Confirm the change of Priority to required is intentional for package management policy and downstream installs.
  • Check the Conflicts: linux-image addition for intended package resolution behavior and impact on upgrades/removals.

Possibly related PRs

Suggested reviewers

  • igorpecovnik

Poem

🐰 I hopped through control files late at night,
Added a dependency, made Priority bright,
I nibbled conflicts, tidy and neat,
Packages aligned — a crunchy treat! 🥕

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately reflects the main change: adding linux-image-armbian to armbian-bsp-cli package dependencies. It is specific, concise, and directly aligned with the primary modification described in the raw summary.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 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 eabe0e6 and 2cc6f16.

📒 Files selected for processing (1)
  • lib/functions/compilation/kernel-debs.sh (1 hunks)
🧰 Additional context used
🧠 Learnings (14)
📓 Common learnings
Learnt from: EvilOlaf
Repo: armbian/build PR: 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: leggewie
Repo: armbian/build PR: 8502
File: config/desktop/trixie/environments/i3-wm/config_base/packages:44-44
Timestamp: 2025-08-14T17:19:39.693Z
Learning: When a PR author provides clear context about package transitions in the commit message and the changes are scoped to specific release pockets, focus the review on validating those specific changes rather than suggesting broader investigations across other releases or additional dependency verifications.
Learnt from: EvilOlaf
Repo: armbian/build PR: 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 API (https://api.github.com/repos/armbian/build/pulls/{pr_number}/files) to get the complete picture of what files are being added or modified, especially for U-Boot patches that will be applied during the build process.
Learnt from: EvilOlaf
Repo: armbian/build PR: 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.
Learnt from: igorpecovnik
Repo: armbian/build PR: 9087
File: .github/workflows/pr-check-pictures.yml:138-146
Timestamp: 2025-12-16T13:40:01.143Z
Learning: In the Armbian build repository, when introducing new requirements or checks (like the board assets verification workflow), the project prefers an initial educational-only period where violations post helpful PR comments and warnings but don't block merges. This allows contributors to become familiar with new requirements before enforcement is enabled (typically after ~6 months).
Learnt from: pyavitz
Repo: armbian/build PR: 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.
Learnt from: tabrisnet
Repo: armbian/build PR: 8678
File: config/kernel/linux-sunxi64-current.config:94-94
Timestamp: 2025-09-27T21:50:15.915Z
Learning: When kernel config files are generated through Armbian's automated process (previous config → armbian-kernel.sh changes → make oldconfig → Armbian machinery processing), manual config file edits are not appropriate since they would be overwritten. Deprecated option handling should be implemented in the automated tooling instead.
Learnt from: pyavitz
Repo: armbian/build PR: 8455
File: config/sources/families/sun50iw1.conf:19-24
Timestamp: 2025-08-03T15:21:20.148Z
Learning: In the Armbian build system, when copying firmware files during family_tweaks_s(), use /lib/firmware/updates/ instead of /lib/firmware/ to avoid conflicts with the Armbian firmware package. The /lib/firmware/updates directory takes precedence in Linux firmware loading hierarchy and is the proper location for user-installed firmware files.
Learnt from: djurny
Repo: armbian/build PR: 8315
File: lib/functions/rootfs/distro-agnostic.sh:54-68
Timestamp: 2025-06-22T00:45:26.182Z
Learning: In Armbian build system, external command dependencies like envsubst are handled by adding the required packages (e.g., gettext for envsubst) to host_dependencies in adaptative_prepare_host_dependencies function in lib/functions/host/prepare-host.sh, rather than checking command availability at runtime.
📚 Learning: 2025-09-27T21:47:58.020Z
Learnt from: tabrisnet
Repo: armbian/build PR: 8678
File: config/kernel/linux-bcm2711-edge.config:859-861
Timestamp: 2025-09-27T21:47:58.020Z
Learning: In the Armbian build system, kernel configuration files in config/kernel/ are generated through an automated process: taking previous config → applying scripted changes from armbian-kernel.sh → running kernel's `make oldconfig` → processing by Armbian machinery back into config files. This automated process properly handles kernel configuration dependencies and reduces the likelihood of manual configuration errors.

Applied to files:

  • lib/functions/compilation/kernel-debs.sh
📚 Learning: 2025-09-27T21:50:04.845Z
Learnt from: tabrisnet
Repo: armbian/build PR: 8678
File: config/kernel/linux-sm8250-edge.config:80-82
Timestamp: 2025-09-27T21:50:04.845Z
Learning: In the Armbian build system, kernel configuration files are generated through this automated process: taking previous config → applying scripted changes from armbian-kernel.sh → running kernel's `make oldconfig` → processing by Armbian machinery back into config files. This automated process properly handles kernel configuration dependencies and reduces the likelihood of manual configuration errors.

Applied to files:

  • lib/functions/compilation/kernel-debs.sh
📚 Learning: 2025-09-27T21:49:55.796Z
Learnt from: tabrisnet
Repo: armbian/build PR: 8678
File: config/kernel/linux-sm8250-current.config:78-80
Timestamp: 2025-09-27T21:49:55.796Z
Learning: In the Armbian build system, kernel configuration files are generated through an automated process: taking previous config → applying scripted changes from armbian-kernel.sh → running kernel's `make oldconfig` → processing by Armbian machinery back into config files. This automated process properly handles kernel configuration dependencies and reduces the likelihood of manual configuration errors.

Applied to files:

  • lib/functions/compilation/kernel-debs.sh
📚 Learning: 2025-09-27T21:50:15.915Z
Learnt from: tabrisnet
Repo: armbian/build PR: 8678
File: config/kernel/linux-sunxi64-current.config:94-94
Timestamp: 2025-09-27T21:50:15.915Z
Learning: When kernel config files are generated through Armbian's automated process (previous config → armbian-kernel.sh changes → make oldconfig → Armbian machinery processing), manual config file edits are not appropriate since they would be overwritten. Deprecated option handling should be implemented in the automated tooling instead.

Applied to files:

  • lib/functions/compilation/kernel-debs.sh
📚 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:

  • lib/functions/compilation/kernel-debs.sh
📚 Learning: 2025-04-30T16:16:47.150Z
Learnt from: The-going
Repo: armbian/build PR: 8147
File: config/sources/families/include/sunxi64_common.inc:38-39
Timestamp: 2025-04-30T16:16:47.150Z
Learning: The Armbian build system references Linux kernel versions in the form "tag:v6.14.4" in the KERNELBRANCH variable, even when point release tags might not be directly visible in the upstream repository in the same form.

Applied to files:

  • lib/functions/compilation/kernel-debs.sh
📚 Learning: 2025-11-10T22:05:40.490Z
Learnt from: tabrisnet
Repo: armbian/build PR: 8913
File: config/sources/families/k3-beagle.conf:16-16
Timestamp: 2025-11-10T22:05:40.490Z
Learning: In the Armbian build system, kernel branches using non-mainline/vendor forks (like BeagleBoard's linux repository) should be named "vendor" or "vendor-rt" rather than "current" or "edge". The "current" and "edge" naming is reserved for mainline kernel branches. This affects both the case statement in family config files (e.g., `vendor | vendor-rt)` instead of `current | current-rt)`) and the corresponding KERNEL_TARGET declarations in board config files.

Applied to files:

  • lib/functions/compilation/kernel-debs.sh
📚 Learning: 2025-06-25T03:42:09.086Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 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.

Applied to files:

  • lib/functions/compilation/kernel-debs.sh
📚 Learning: 2025-05-05T12:35:07.143Z
Learnt from: Grippy98
Repo: armbian/build PR: 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.

Applied to files:

  • lib/functions/compilation/kernel-debs.sh
📚 Learning: 2025-08-21T08:10:59.502Z
Learnt from: leggewie
Repo: armbian/build PR: 8524
File: config/boards/orangepi2.csc:6-6
Timestamp: 2025-08-21T08:10:59.502Z
Learning: Not all Armbian boards support all kernel versions (legacy, current, edge). Some boards may only support specific kernel versions due to hardware limitations or lack of mainline support, which is why their KERNEL_TARGET contains only the supported options (e.g., just "legacy").

Applied to files:

  • lib/functions/compilation/kernel-debs.sh
📚 Learning: 2025-06-24T10:08:40.313Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 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/kernel-debs.sh
📚 Learning: 2025-12-12T23:10:00.819Z
Learnt from: tabrisnet
Repo: armbian/build PR: 9058
File: config/sources/families/spacemit.conf:39-45
Timestamp: 2025-12-12T23:10:00.819Z
Learning: In the Armbian build system, vendor kernel forks can use "vendor-edge" branch naming for bleeding-edge or pre-release vendor kernels, as demonstrated in config/sources/families/k3.conf. The typical vendor branch naming pattern is: "vendor" or "vendor-rt" for stable vendor releases, and "vendor-edge" for bleeding-edge/pre-release vendor versions. The "edge" naming without "vendor-" prefix is reserved for mainline kernel branches.

Applied to files:

  • lib/functions/compilation/kernel-debs.sh
📚 Learning: 2025-09-14T06:29:18.958Z
Learnt from: amazingfate
Repo: armbian/build PR: 8619
File: config/sources/families/rockchip.conf:64-70
Timestamp: 2025-09-14T06:29:18.958Z
Learning: In the Armbian build system, vendor branch configurations in family files are designed to be shared across multiple SoCs within the same family that use the same vendor kernel tree. For example, rk35xx and rockchip-rk3588 families both use identical vendor branch settings (same KERNELSOURCE, KERNELBRANCH, and KERNELPATCHDIR), demonstrating that vendor branches are intentionally generic rather than SoC-specific.

Applied to files:

  • lib/functions/compilation/kernel-debs.sh
🔇 Additional comments (1)
lib/functions/compilation/kernel-debs.sh (1)

268-269: The Conflicts: linux-image declaration is the correct Debian pattern for this use case. Debian Policy explicitly allows packages to declare a conflict with a virtual package which they provide, and this does not prevent their installation. For virtual packages representing a facility that can only be provided by one real package at a time, all packages providing that virtual package should declare a conflict with it. This ensures multiple kernel packages can coexist but enforces that only one is the active provider—exactly like how Debian's mail transport agents (sendmail, postfix, exim) work. The implementation is correct and won't break kernel switching scenarios.


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/small PR with less then 50 lines Needs review Seeking for review Framework Framework components labels Dec 15, 2025
@EvilOlaf
Copy link
Member

This doesn't give issues when for example using armbian-config to switch kernels, does it? I mean it uninstalls one (and that's where this dependency may hurt?) and then installs the new one.
I did not test this, just letting my mind ramble.

@igorpecovnik
Copy link
Member

igorpecovnik commented Dec 15, 2025

This doesn't give issues

switching kernels will most likely fail.

This could fail already at build stage if bsp is installed before kernel. If there is (by default in some stages / cases) no armbian repo at build stage, installing this package will try to install 1st linux-image (generic from debian or buntu) it will found.

If this breaks anything mentioned, lets put this on a side. What is the benefit, except doing it right way?

@tabrisnet
Copy link
Collaborator

tabrisnet commented Dec 15, 2025 via email

@igorpecovnik
Copy link
Member

igorpecovnik commented Dec 15, 2025

So I admit this has only been tested [by me anyway] with my APA branch, and I may not have attempted booting an image from this branch that used bookworm [non-APA]. It's 6AM local time so I'll have to try this later.

Understand. There is no rush - before we are doing changes: key people that are maintaining the project has to be happy and aligned - we need to start meetings on the topic as current chat & PR comm is not sufficient at speed. Changing relations in key packages must be fully tested for all possible perspectives, useful would be to build test automation in front. We have enough of problems already ... All PR-s should be carefully weighted but sadly we have limited capacity and I often merge blindly. Then I feel like an idiot when bad code gets in as I merge because I didn't have time to check deeply ...

But even so, your concern re a generic kernel should be an ordering problem in the image build, no? Either install bsp-cli at the same time as the chosen kernel or before bsp-cli. This can be looked at also.

It is possible that it works, but it can also break. If nobody looked from this (all) perspective(s), suspicion is legit. Armbian tool - from user and developer perspective - has to work the same way - this has to be our common high level goal and I think we have a consent in this.

linux-image couldn't go into armbian-common

bsp is board support package that also carries common stuff, which can safely be moved to some common package. It obviously need kernel package, but the same goes for all other packages. There is no Linux without Linux.

Since we have more kernels per board, different way of switching and the way it is handled now, works. Even not done the best way.

Perhaps we rahter understand packages provided by framework (kernel,uboot,headers, firmware pkg and bsp) as "board firmware" that is added to user space rootfs. This is how system was designed. Armbian remain with one foot in embedded and with other foot in general purpose Linux world. I believe Debian packages relations can play in our favor and I remain skeptical on corner cases.

@tabrisnet
Copy link
Collaborator

https://paste.armbian.com/fecufohuvu here is a build log from branch #9000, for bookworm
It does boot.
this is from the tail of /var/log/apt/history.log
one can see that linux-image & friends are installed before armbian-bsp-cli-tritium-h5-current_26.02.0-trunk.

I'm sure that @leggewie can test #9071 with all of the scenarios he can think of.

Start-Date: 2025-12-15  14:43:12
Commandline: apt-get -y -qq -o Dpkg::Use-Pty=0 -o APT::Get::List-Cleanup=0 -o APT::Clean-Installed=0 --no-install-recommends install /root/linux-u-boot-tritium-h5-current_26.02.0-trunk_arm64__2024.01-S866c-P42f9-Hc721-Vc0da-Bbf55-R448a.deb
Install: linux-u-boot-tritium-h5-current:arm64 (26.02.0-trunk)
End-Date: 2025-12-15  14:43:12

Start-Date: 2025-12-15  14:43:16
Commandline: apt-get -y -qq -o Dpkg::Use-Pty=0 -o APT::Get::List-Cleanup=0 -o APT::Clean-Installed=0 --no-install-recommends install /root/linux-image-current-sunxi64_26.02.0-trunk_arm64__6.12.62-S53d3-D8b28-P4795-Cd434Hb74f-HK01ba-Vc222-Be8e3-R448a.deb
Install: linux-image-current-sunxi64:arm64 (26.02.0-trunk)
End-Date: 2025-12-15  14:43:19

Start-Date: 2025-12-15  14:43:22
Commandline: apt-get -y -qq -o Dpkg::Use-Pty=0 -o APT::Get::List-Cleanup=0 -o APT::Clean-Installed=0 --no-install-recommends install /root/linux-dtb-current-sunxi64_26.02.0-trunk_arm64__6.12.62-S53d3-D8b28-P4795-Cd434Hb74f-HK01ba-Vc222-Be8e3-R448a.deb
Install: linux-dtb-current-sunxi64:arm64 (26.02.0-trunk)
End-Date: 2025-12-15  14:43:22

Start-Date: 2025-12-15  14:43:26
Commandline: apt-get -y -qq -o Dpkg::Use-Pty=0 -o APT::Get::List-Cleanup=0 -o APT::Clean-Installed=0 --no-install-recommends install /root/armbian-firmware_26.02.0-trunk_all__1-SA5d4d-B6c7f-R448a.deb
Install: armbian-firmware:arm64 (26.02.0-trunk)
End-Date: 2025-12-15  14:43:31

Start-Date: 2025-12-15  14:43:33
Commandline: apt-get -y -qq -o Dpkg::Use-Pty=0 -o APT::Get::List-Cleanup=0 -o APT::Clean-Installed=0 --no-install-recommends install /root/armbian-bsp-cli-tritium-h5-current_26.02.0-trunk_arm64__1-PC0cac-V79e8-H01ba-B6b81-R05f6.deb
Install: lsb-release:arm64 (12.0-1, automatic), libfdt1:arm64 (1.6.1-4+b1, automatic), netbase:arm64 (6.4, automatic), device-tree-compiler:arm64 (1.6.1-4+b1, automatic), armbian-bsp-cli-tritium-h5-current:arm64 (26.02.0-trunk), fping:arm64 (5.1-1, automatic)
End-Date: 2025-12-15  14:43:36

@leggewie
Copy link
Contributor Author

leggewie commented Dec 16, 2025

If you want to force only a single kernel to be installed the solution is for Armbian linux kernel packages to Conflicts on linux-image, I guess. And there are ways to prefer certain kernels over others. This is solvable.

At the same time, it would be beneficial to revisit the reasons that Armbian needs this restriction of having only one kernel installed at the same time.

The solution as proposed here is still clearly correct. One part of a BSP is the kernel, so the BSP package needs to ensure the presence of a kernel.

FWIW, I can imagine minimal Armbian container images for testing purposes that do not have a BSP package installed and in turn no kernel. For quite a long time, I meant to write up some documentation for how to test stuff in a VM or container for bug triage without flashing and shuffling µSD cards all the time.

I appreciate the thought going into what could still go wrong with the current setup. Clearly, there is still more work to do.

@tabrisnet
Copy link
Collaborator

Why only one? there are cases where we potentially might break the Highlander Rule, but I imagine you'd need it to be GRUB or some other option with a menu. Haven't seen that with uboot.
As to conflicting, I'd be more interested in preventing us from ever installing a rockchip64 kernel on a sunxi board. Well, requiring them to pull the trigger with both hands if they want to blow their feet off.

@leggewie
Copy link
Contributor Author

leggewie commented Dec 17, 2025

What is the benefit, except doing it right way?

Assuming that this policy of "strictly having only 1 kernel installed at the same time" is being enforced by armbian-config then this is already again the wrong place and it doesn't actually work. In that case, there's nothing preventing another kernel being installed via the usual tools like dpkg, apt or aptitude.

Making these policies more explicit and their existence more widely known in the community is just one of the benefits of the work we currently have around the APA transition. Scrutinizing the needs and proper implementation of these policies has obvious benefits as it makes armbian more robust and maintainable for users and devs alike.

I understand that in general, limitations in booting via uboot (most common for armbian) vs. grub (arguably most common in upstream Debian/Ubuntu) are at the core of having this policy. But can you please explain why it was chosen to remove the kernel first before installing another? Obviously, that can go bad if the lights go out just when the old kernel was uninstalled. Why not have them conflict but allow for brief transition periods where two kernels are installed?

Lastly, it appears that Armbian in general needs to / wants to prevent upstream kernels from being installed. I suggest to have armbian kernels identified as a virtual package linux-image-armbian or armbian-linux-image and adjust dependencies accordingly.

@leggewie
Copy link
Contributor Author

leggewie commented Dec 17, 2025

Lastly, it appears that Armbian in general needs to / wants to prevent upstream kernels from being installed. I suggest to have armbian kernels identified as a virtual package linux-image-armbian or armbian-linux-image and adjust dependencies accordingly.

And who would have known, the current kernel packages already provide linux-image-armbian, so that's in place and already usable.

I believe Armbian does not support systems with a non-armbian kernel. I will make the corresponding change in APA as well as this PR to reflect this.

@leggewie leggewie changed the title framework: explicitly add linux-image to armbian-bsp-cli pkg dependencies framework: explicitly add linux-image-armbian to armbian-bsp-cli pkg dependencies Dec 17, 2025
exclude non-armbian kernels from fulfilling the dependency as there
is no guarantee these kernels are in fact bootable on the SBC in
question
we do not want the user to install an upstream kernel package
Copy link
Member

@rpardini rpardini left a comment

Choose a reason for hiding this comment

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

I can't fathom why this is even being considered?

One can have multiple kernels installed. every Debian system can.

Fact the "boot.scr" boot method (which is just one of many possible) limits to a single bootable kernel does not justify crippling everything for everyone.

One actionable example is EXT=u-boot-menu (extlinux), not to mention grub, etc.

@leggewie
Copy link
Contributor Author

leggewie commented Dec 18, 2025

I can't fathom why this is even being considered?

One can have multiple kernels installed. every Debian system can.

Fact the "boot.scr" boot method (which is just one of many possible) limits to a single bootable kernel does not justify crippling everything for everyone.

Congrats!

So, we're actually not even clear what the current Armbian policy is. Good thing we are having this discussion to understand the background and existence or absence of such a policy. My assumption based on previous conversations was that the peculiarities of SBC meant that the ability of Debian to have several kernels installed and boot from did not necessarily transition to Armbian and SBC. Ricardo challenged that assumption and maintains that Armbian is no different to Debian in this regard.

So, to move forward and adjust this PR appropriately, we need answers to the following questions.

  • do we want to enforce a policy of only a single kernel installed at the same time? this determines the presence or absence of a Conflicts-line
  • do we want to enforce Armbian kernels
    • Depends: linux-image (allow any kernel to fulfill this dependency, might lead to boot failures)
    • Depends: linux-image-armbian (enforce the presence of an armbian kernel)
    • Depends: linux-image-armbian | linux-image (same as first but try to prefer armbian-kernel while allowing any kernel to fulfill the dependency, might still lead to boot failure)

@tabrisnet
Copy link
Collaborator

tabrisnet commented Dec 18, 2025 via email

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

Labels

02 Milestone: First quarter release Framework Framework components Needs review Seeking for review size/small PR with less then 50 lines

Development

Successfully merging this pull request may close these issues.

5 participants