From the time I started using Linux, I had a wish to build my own kernel, making sure that there’s no dependency on package repository to add or remove a module.
My main goal was to do it for Raspberry Pi and make have minimal required module built and enabled.
I came across a gokrazy project by Michael Stapelberg. The main purpose of that project was to make sure the Go apps are installed as binary and can be supervised and monitored via Web Page. I tried to use a lot of things there but I had some problems and not a lot of time on hand, but the gokrazy/kernel package is amazing, it is an automated build tool that gets latest kernel and builds it.
I tried to get some parts of it from there and changed few parameters here and there and got my own kernel with few tweaks like support for btrfs, thermal for Pi4, etc. That is how it looks.
# before $ cat /proc/version Linux version 5.11.4-1-ARCH (builduser@leming) (aarch64-unknown-linux-gnu-gcc (GCC) 10.2.0, GNU ld (GNU Binutils) 2.35) #1 SMP Sun Mar 7 23:46:10 UTC 2021 # after $ cat /proc/version Linux version 5.12.13-v1-dcprime (gokr-build@lt01) (aarch64-linux-gnu-gcc (Debian 6.3.0-18) 6.3.0 20170516, GNU ld (GNU Binutils for Debian) 2.28) #1 SMP PREEMPT Sat Jun 26 20:13:55 UTC 2021
As it can be seen from the versions above, the package has not been updated in the Arch Repository from about 4 months, so getting a newer kernel would have been difficult or delayed any way.
The installation as of now is like a workaround, creating the image is done, copying it is also working except the drivers and other stuff.
The latest kernel image is available from https://kernel.dcpri.me