Replies: 8 comments 4 replies
-
Not to derail the core issue here, but restructuring nvidia akmod builds may be a good time to consider how other akmod layers could be built. ( see: ublue-os/main#46 ) My thought is there could eventually be a list of akmods which need to be built, and none of that build time should run more than once daily. I imagine building all the akmod RPMs once, and then COPYing them in for later install like is now done with config. |
Beta Was this translation helpful? Give feedback.
-
I think bsherman has what sounds like a good plan. I gotta ask though are these builds rebuilding the akmods every time no matter what changes are made? It's just that would seem a bit of a waste when they really only need to be rebuilt with kernel updates/changes. If that is the case it would make even more sense to split them off. But I may be on the totally wrong track here. |
Beta Was this translation helpful? Give feedback.
-
I think it'd be wise to have a One reason this wasn't addressed earlier is that it wasn't straightforward to guarantee that kernels on the build root and the downstream image would match. This should be significantly easier now that |
Beta Was this translation helpful? Give feedback.
-
I'm currently making good progress on a separate akmod build layer, changing the build order from something like this: to this This enables akmods in the main image. Currently all akmods (well nvidia and v4l2loopback) get build within the same containerfile, I would like to split that too, so we have one containerfile for nvidia akmods, one for xpadneo akmods, one for zfs akmods, etc... This makes it easier to write new akmods, as you don't have to shove everthing inbetween existing scripts and seperates build dependencies, really which shouldn't be a problem, but you never know... |
Beta Was this translation helpful? Give feedback.
-
New build process is coming along nicely. Currently it pulls from quary.io/fedora-ostree-desktop/{silverblue,....} to build main (exactly the main we have now), uses base-main to build (in parallel) akmod-nvidia, akmod-v4l2loopback, {other akmods go here}, then uses {silverblue,....}-main and those akmods (except nvidia) to build {silverblue,....}-extended, and then uses {silverblue,...}-extended and akmod-nvidia to build {silverblue,...}-nvidia. It's all in one repo, so we can use a properly set up (needs:) actions file to guarantee that the akmods get build with exactly the same image as where they will be installed 100% of the time. https://github.com/dhoell/akmods if you want to have a look Also we get a bit of parallelism for free, since {silverblue,...}-extended can start building before akmod-nvidia is finished, saving a totally relevant ~2 min of build time 😄 I have not enabled all spins/versions/drivers in build.yml, wanted to get the basic process running first, before I do the rest I'd love to have some feedback from you, is this direction worth pursing? |
Beta Was this translation helpful? Give feedback.
-
From chat: what if we could also set the exact nvidia version as a label so we know what the kernel and driver version are? |
Beta Was this translation helpful? Give feedback.
-
This isn't done, but it is being worked on in #71 some preliminary PRs have been merged and the current ones need some tweaking but we are moving forward here. |
Beta Was this translation helpful? Give feedback.
-
As of August 25, 2023 with the merging of ublue-os/hwe#146 ... this proposal is completed. |
Beta Was this translation helpful? Give feedback.
-
The nvidia builds are becoming unwieldly (15m for each one and going up over time), if we were paying for build time it'd look like this:
We should consider splitting the akmods build steps into their own layer so we can build centrally but install it as many times as it's needed to the subsequent nvidia images.
Beta Was this translation helpful? Give feedback.
All reactions