been using Arch for years but i am still a novice, yesterday i had found that in order for something to work on my system i will need to edit a few lines in kernel which i did, then removed unnecessary modules > intel, > nvidia, compiled. it worked great but with Arch and its rolling release i am dreading the next update and having to go through this again.
what methods are there to automate this process?
What modifications were required? The good part of a rolling release is that upstreaming things means you only have to deal with manual fixes for like 2 or 3 updates.
set LINK_TRAINING_ATTEMPTS from 5 to 10 in drivers/gpu/drm/amd/display/dc/link/link_dpms.c
and set LINK_TRAINING_RETRY_DELAY from 50 to 100 in drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_training.c.
i doubt this will be added to kernel as its a fix for an issue that isn't wide spread.
That wouldn't be accepted as is, but those sound like tunables. They could be exposed as kernel parameters. May be worth submitting the patch as an RFC just to call attention to it.
You could write a bash script to automate this process. Pacman supports hooks for updates, so after kernel updates you could set it up to automatically run the script.
I use a custom kernel on my laptop. I just modified the PKGBUILD of the official arch kernel package, and added my patch as a file. Then I could build a proper package with makepkg. I'm planning on setting up my server to automatically build the patched kernel and serve it in a private arch repository, so I don't have to compile the kernel on my laptop regularly. I'm waiting on forgejo (git forge I host on my server) version 9 to be released first, as it should support arch package hosting by then.
Yeah the thought is that as long as my patch applies without error, I would get the latest kernel automatically built and can just update my laptop normally with pacman. And since I have a server anyways I might as well use it to compile the kernel at night. I'm also thinking of doing the same with some aur packages as well.