-
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Automatic kernel config rewrite
#8902
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
|
Important Review skippedBot user detected. To trigger a single review, invoke the You can disable this status message by setting the ✨ Finishing touches🧪 Generate unit tests (beta)
Comment |
| @@ -1,4 +1,4 @@ | |||
| # Armbian defconfig generated with 6.12 | |||
| # Armbian defconfig generated with 6.6 | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Something is very wrong with this beagle / k3 stuff.
The boards beagley-ai.conf (1x) and pocketbeagle2.conf (2x) are all sharing a LINUXFAMILY and apparently also a LINUXCONFIG, although they're all different KERNELSOURCEs and KERNELBRANCH's.
That is why this is flipping between 6.6 and 6.12.
It needs cleanup; preferably unifying it around a single kernel, or actually using separate LINUXFAMILY/LINUXCONFIG for each, otherwise crazy will ensue.
@igorpecovnik who is actually maintaining those? it is probably causing other problems (overwritten .deb's in apt repo, maybe) other than this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Something is very wrong with this beagle / k3 stuff
Indeed.
who is actually maintaining those?
Themselves https://github.com/orgs/armbian/teams/boards-texasinstruments with my assistance. I recently asked @tabrisnet to help around such problems, so I expect that situation will improve soon.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On our side the way things are is basically this-
All Texas Instruments SoC based boards are K3 (Keystone 3 Family) so they are built with k3.conf.
BeagleBoards then re-use most of infra except they keep their own Kernel and Uboot configs.
All TI based EVMs should then use TI defconfigs and sources for Kernel/Uboot. (Although we did want to add mainline options instead of just vendor at some point in the future)
For Beagle - boards that are in mainline (like BeaglePlay) are easy, but then in the case of PocketBeagle2 (and especially) BeagleY we had to keep them with post-family configs to pin BeagleY to a patched 6.6 kernel from Beagle for example. Beagleboard maintain a forks of the TI Linux & Uboot with their own patches. It's messy at the best of times and I'm not sure how to really clean this up currently... it's mostly on the Beagle side.
For KConfigs - the TI ones should in theory be pruned regularly to align with what we ship in Yocto releases with some small deltas where it makes sense. Beagle keeps their own separate KConfigs since they have a lot more historic stuff switched on due to users asking for them.
Any recommendations I'm very open to....
@jonaswood01 @glneo for visibility too.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Beagle boards should be using the TI kernel and upstream, only the two mentioned cases I see LINUXFAMILY="k3-beagle" for using the "Beagle" kernel, but the LINUXCONFIG would remain the default from the TI/upstream kernel settings. We should either use a different LINUXCONFIG for those, or at this point switch them away from the Beagle kernels and back to the normal TI/upstream kernel.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think in this particular case Play and AI64 would both boot fine off of TI branch... Pb2 may as well.
If they don't boot like that should I just revert them to CSC and keep the hackyness w/Beagle sources for now?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Booting-or-not, internal details of each board, etc, are not in question here.
All Texas Instruments SoC based boards are K3 (Keystone 3 Family) so they are built with k3.conf.
That's fine, but...
BeagleBoards then re-use most of infra except they keep their own Kernel and Uboot configs.
... that is not correct. If each board needs a different kernel (due to a different source branch, .config, or whatever that in the end causes it to be a different kernel / different .deb package) then each board should be in it's own LINUXFAMILY, with it's own LINUXCONFIG.
Sincerely I recommend ya'll try to unify it - there's expenses (of both machine-time, bandwidth, but most important of maintainer time, as you can see in this PR) related to having multiple kernels.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since I spent the time already, here goes.
{
"BOARD": "beaglebone-ai64",
"BRANCH": "current",
"kernel": "k3",
"needed_by": 8,
"ARMBIAN_KERNEL_DEB_NAME": "k3-current",
"LINUXCONFIG": "linux-k3-current",
"KERNELSOURCE": "https://github.com/TexasInstruments/ti-linux-kernel",
"KERNELBRANCH": "tag:11.00.09"
}
{
"BOARD": "beaglebone-ai64",
"BRANCH": "edge",
"kernel": "k3",
"needed_by": 8,
"ARMBIAN_KERNEL_DEB_NAME": "k3-edge",
"LINUXCONFIG": "linux-k3-edge",
"KERNELSOURCE": "https://github.com/TexasInstruments/ti-linux-kernel",
"KERNELBRANCH": "tag:11.00.12"
}
{
"BOARD": "beagley-ai",
"BRANCH": "current",
"kernel": "k3-beagle",
"needed_by": 1,
"ARMBIAN_KERNEL_DEB_NAME": "k3-beagle-current",
"LINUXCONFIG": "linux-k3-current",
"KERNELSOURCE": "https://github.com/beagleboard/linux",
"KERNELBRANCH": "branch:v6.6.58-ti-arm64-r21"
}
{
"BOARD": "pocketbeagle2",
"BRANCH": "edge",
"kernel": "k3-beagle",
"needed_by": 1,
"ARMBIAN_KERNEL_DEB_NAME": "k3-beagle-edge",
"LINUXCONFIG": "linux-k3-beagle-edge",
"KERNELSOURCE": "https://github.com/beagleboard/linux",
"KERNELBRANCH": "branch:v6.12.24-ti-arm64-r43"
}As you can see, the k3-current kernel (used by 8 boards, amongst them beaglebone-ai64) is using LINUXCONFIG linux-k3-current.
The k3-beagle-current kernel (used by a single board, beagley-ai) is also using LINUXCONFIG linux-k3-current.
This obviously is incorrect.
There is also a plethora of other problems, like -rt variants just left there, etc.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So here is my attempt to clean this up for the Beagle boards when using their custom kernel: #8913
| CONFIG_VIDEO_VGXY61=m | ||
| CONFIG_VIDEO_CCS=m | ||
| CONFIG_VIDEO_ET8EK8=m | ||
| CONFIG_VIDEO_GC2145=m |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wonder why this happens. It's moving stuff around. Wonder if we should | sort the defconfig to avoid this un-necessary juggling.
Rewrite kernel configs
What this PR does
./compile.sh rewrite-kernel-configfor each scheduled (family, branch) and aggregates all changes into one PR.How it was produced
This PR is produced from this GHA script.
./compile.sh inventory-boards(deduped, sanitized).rewrite-kernel-configper matrix.Review tips
Files changed
Files: 3 • Lines: +250 / -204 (Δ 46)