Curious to know the coolest things you achieved by configuring your kernel. I know kernel config can be boring, but I’m hoping someone will have an impressive answer.
For me I have a very lightweight kernel that runs wayland on nvidia without any issues to date.
camera drivers. the patch was submitted, but hadn’t been merged yet, and I didn’t want to wait.
A kernel that fits my hardware and supports things the original kernel doesn’t. Then again, i use gentoo.
What did the original kernel not support?
The secureblue image I use disables numerous kernel modules, hopefully that means a more secure system? I honestly don’t know, nor do I change the default recommended by the developer.
Just download the devel kernel from your distro and go into
make menuconfig
. I am on an Intel Laptop with recent hardware. No reason to use amd, nvidia etc drivers. And there is a shitload of likely unmaintained drivers for ancient hardware.I don’t know if this is considered as custom kernel, but I run Guix using non-libre Linux, with Intel Wi-Fi firmware blob. Since it does not have other firmware, it is pretty light, and I’m saving around 200-300MB.
Does that have any appreciable difference in day to day computing?
Compiling kernels makes no sense anymore.
Back in the days - Linux versions 2 and below - the kernel was much less modular, and resources wasn’t as plentiful. So it often made sense to build kernels with the stuff you needed statically compiled for speed, and the rest left out fo save memory and shorten boot time. Not to mention, Lilo (the thing we used before Grub) had limitations with respect to kernel size.
Nowadays, Grub can load a kernel of any size from anywhere on the disk. There’s plenty enough memory and CPU to leave the kernel core slightly bloated with stuff almost nobody needs with zero practical impact on boot time and memory usage, and most everything else is compiled as modules and loaded as needed - again with next to no boot time or running speed impact.
If you custom-build a kernel today, you’ll boot a tiny bit faster and it’ll run a tiny bit faster, and you’ll have a tiny bit more free memory - all of which you will never notice. What you will notice however is that kernel updates are a PITA on a regular basis.
Kernel updates are extremely easy when custom compiling, not sure what you are doing to make them a pain. Custom compiling is a great way to sort of passively absorb knowledge about kernel changes and new features or features you didn’t know about as they change and make oldconfig brings up questions about them.
Not really. I’ve not tweaked anything related to performance - because I’m not even sure how I would go about doing that on Guix. This makes it really easy for me to switch to custom kernels, so that’s just it. Right now, I have the option between default non-free and XanMod. Someone could package Zen or TKG on Nonguix, and that would increase the kernel choices. There’s also this option to switch to an entirely different kernel architecture, like for example, Hurd, but that probably won’t work on metal.
Mostly just understanding what was there, what was necessary for my machine at the time and what was optional.
Back when I was still using Gentoo, configuring your own kernel was a rite of passage. It was kind of fun to try and configure it as minimalist as possible to cut down on the kernel compile time. Also, understanding all the different options and possibilities. And thanks to use flags, you had access to all these different patch sets for the kernel, which took a lot of the pain out of trying things like experimental schedulers or filesystems.
Everybody gangsta until they set their block and filesystem drivers to module.
“Oh, did I need to rebuild the initrd too? Shhheeeeit, can I do that in a chroot from a livedisk or something?”
I run linux-xanmod-anbox for root support in Waydroid (Android on Linux).
And I configured my kernel to support VFIO (Virtual Function Input Output).
So I can fully pass through one of my GPUs to my Ameliorated Windows KVM,
which I use for both work and gaming.Root Waydroid lol, thats basically hell.
Waydroid without SELinux already removes all the Android sandboxing. Now its rooted!
Root on Android is a necessity for me.
I’ve been rooting all droids I use for the past 10 years or so.Imagine using Linux as a power user,
without being able to use sudo/su.Also, Magisk does not just allow any application to access root, you have to manually allow apps to make use of it.
Just like administrator rights on any other OS,
things only go wrong if you don’t know what you’re doing, and then grant rights to something malicious.Yes but Waydroid is not an Android phone. Have a look at this
https://github.com/waydroid/waydroid/issues/1136#issuecomment-2016948867
Hows the perf in the VM?
Amazing, basically native speeds,
currently playing Horizon Forbidden West with maxed out graphics and DRS disabled at a steady 60-80 FPS.Previously I also played Horizon Zero Dawn in it, also maxed out graphics, steady locked 100 FPS,
below is a benchmark comparison of HZD in the Linux host OS and the Windows KVM guest OS:
Amazing. Does Photoshop work ?
Yush, it does under the KVM :)
Is there an easy way to run this for photoshop? GUI if possible
Has this gotten any easier to do? I set it up a few years ago, it was painful to do and maintain so I let it slide. You were writing all sorts of scripts to specify the passthrough devices and then they’d stop working so you had to track down what was failing and update. Then there was iommu so you had to be careful which groups you added devices to.
Gotta admit, it was very hard to setup initially.
However it’s been working perfectly ever since I did.
Been using it for about a year or 2 now.Also when I linked the Arch wiki,
I noticed in it’s article that there’s now a gpu-passthrough-manager,
which will likely make the process of setting up a little bit easier.
As a Linux user of almost 30 years, compiling hundreds of kernels over the years has given me a great appreciation of pre-build kernels, and a profound gratitude for those who package them up into convenient distros that work out of the box and let me get on with the rest of my life.
i think the learning experience is valid
Absolutely! If you’re doing it to learn something, by all means compile your own kernel. Every Linux user should do that at least once in my opinion. But once the learning is done, the novelty wears off fast and it just becomes tedious.
I used Linux for about a decade from the mid nineties then took a break for a few years. When I came back, every distro kernel was precompiled, it was glorious. There was never a day I said to myself “damn, I miss compiling a kernel”.
Well said. I originally compiled my own kernels because I thought it was something you just did to use Linux. I also compiled hundreds of them, probably. Now it’s stock kernel all the way. Not worth the effort and time and headache.
A wee bit of knowledge and the wisdom to stop doing it.
I have multiple PCs. One is running a kernel that is mostly monolithic. That means it has only one module (a third party driver).
This made a lot if things more easy and faster, for example, it doesn’t need to load an initial RAM disk (initrd) at boot, because it already has all it needs built in and can just mount the root FS and start init. Also all crypto modules are already present when I need them.
The drawback is, I can’t unload a module and then load it with different parameters. If I had to change a module param, I would have to change it in the bootloader config and restart (or kexec)
pain
Well, I can still boot my system without an initram (although that isn’t just due to the kernel config)—does that count?
Other than that, custom kernels free up a small amount of disk space that would otherwise be taken up by modules for driving things like CANbus, and taught me a whole lot about the existence of hardware and protocols that I will never use.
I suppose the most tangible benefit I get out of it is embedding a custom initramfs into the kernel and using it as an EFI stub. Also I usually disable module loading and compile in everything I need, which feels cleaner. And I make sure to tune the settings for my CPU and GPU (and enable VFIO, etc.)
I just installed LFS once, which inevitably came with compiling the kernel. Many times, over and over, every time with other configs as some packages required them. For a dual core Dell Laptop from the 2010 it was surprisingly fast, actually. Still not enjoyable or feasible for my normal systems.