Chris Marusich <***@gmail.com> writes:
> Is anyone building custom kernels? How are you doing it? Are you just
> using the "make-linux-libre" procedure anyway, despite the fact that it
> supposedly isn't public? Did you copy it and just modify it to suit
> your needs? Or did you do something totally different?
Here is my approach:
(define-module (my packages)
#:use-module (gnu packages linux))
(string-append (dirname (current-filename)) "/kernel.config"))
(use-modules (my packages))
This lets me keep the kernel .config in version control along with the
> I am new to compiling the Linux kernel, so it is doubly difficult to
> learn how I should do it using Guix. Any tips would be greatly
> appreciated. I'm guessing one tip might be, "Try building a few Linux
> kernels on a more normal distribution, not using Guix, a few times to
> get the hang of doing it the 'traditional' way first." I have not
> really done that yet.
Working with custom kernels in Guix is simpler than in many other
distros IMO. Suppose you have a patched Linux-Libre tree, then you
could add e.g.:
to the package declaration above. Be aware that rolling back to the
previous generation might not work if your computer implodes ;-)
For starting out, I would recommend copying the GuixSD default config[*]
to /your/kernel/tree/.config and run:
guix environment linux-libre --ad-hoc ncurses -- make nconfig
This will present a nice ncurses-based interface for configuring the
kernel. Note that if the kernel major+minor is higher than the .config
(see top of file), you should run `make oldconfig` first which gives an
interactive "wizard" that walks you through all the new options.
Good luck! :-)
[*] You can also start from `make defconfig` if you feel adventurous.