You are not logged in.
Hi, I'm new to Arch, and, so far, am liking it a whole lot. It feels like Slack with some very nice package management a la Gentoo, almost.
Anyway, my question is this:
When compiling a custom kernel, are there really any compelling reasons to compile anything besides sound and a few other minor things as a module? If you're doing the compiling yourself, then you would (ostensibly) know what hardware you needed to compile in, and what you didn't. So it would follow that you could just hard compile everything in, and not have to muck about with an initrd.
I guess I could be a bit out of the loop as well, as I started compiling my own kernels back in the days of 2.6.single-digit (All that time, and I still only understand maybe 60-75% of the options ). At the time, it seemed like the prevailing logic was that modules were useful and all, but in the end compiling the kernel with the driver included was better. Since the latter method worked for me over the years, I didn't change my ways.
Your thoughts, Archers?
Offline
I've been told that compiling everything in does make your system faster and even had a friend who custom compiled me a 2.6.26 kernel back in its RC days, without calling the initrd/initramfs.
The result? A system that booted in a fraction of the time but didn't properly load all its modules because for whatever reason Arch loads its modules from the initramfs stage.
My own opinion is to compile all the drivers you'll need - sound, video, camera, mouse, tablet, whatever - right into the kernel, but modularize those modules you're not going to use all too often.
-dav7
Windows was made for looking at success from a distance through a wall of oversimplicity. Linux removes the wall, so you can just walk up to success and make it your own.
--
Reinventing the wheel is fun. You get to redefine pi.
Offline
Your thoughts, Archers?
I seem to agree with just about everything you say. I've been statically compiling my kernels since the late 2.2 days. I think that building a mostly static kernel decreases the boot time significantly. I also build modules for the things I rarely use, and I blacklist them in /etc/modprobe.conf so they don't autoload (but I am free to load them manually when I want).
I can understand perfectly why Arch and other distros use initrds, however, I build a kernel for one laptop, and I don't plan on distributing my kernel to other people. So, I can gladly skip the initrd altogether.
When it comes to performance, I highly doubt that a static kernel would be snappier than a more modular one. I think the only speed advantage comes at boot time.
Unlike dav7, I don't have any problems with the few modules I have. The iniscripts try to autoload the ACPI related modules, that's the only thing I can think of that would go wrong. The absence of the initrd has no impact on the rest of the boot process (that I can think of).
Offline
I like to compile with some stuff at modules. No need to have a module I only need once a week compiled in.
Evil #archlinux@libera.chat channel op and general support dude.
. files on github, Screenshots, Random pics and the rest
Offline
The only thing you gain by using built-in over modules is a slight decrease in Boot time. It will not change anything once the system is loaded other than the fact you will not be able to unload drivers.
I started off with an all built in kernel but realised it was just a pain in the ass to "trim" it down, and I now just use the arch kernel config as my default (Which means you can just use all the default arch pkgbuild and mkinitcpio stuff), the extra 10 seconds of boot time using modules gives me time to stare at the ceiling to make sure its still there.
So just IMO unless you need a machine that boots up a few seconds faster then built-in is just time wasted trying to figure out what exactly you need to build in, and then getting it to actually work in the first place when you forget something or something gets added to the kernel in an update which you then have to sift through the hundreds of menus to find and disable.
Last edited by shazeal (2008-10-21 08:59:50)
Offline
i do the same as Elendig albiet probably significantly more dirtierly. The only thing i have left as a module is some stuff that i MAY need at some point later or that i dont use often (a couple of mic and camera drivers) and the wireless driver; Which SHOULD be the first thing to be NOT a module, but according to the help from the menu (and i agree) compiling that driver into the kernel creates some wierd issues, it tells me how to fix it too ( i tried and yes, i did get some erroors) but i can't understand what its saying. So for now its a module. I still run initramfs etc at boot time, for that one module [ ].
-Tj
ETA: P.S: i have to add, i LOVE my new custom kernel. Its more or less runs smoothly, and ithere IS a noticable difference in latency and boot time and generic perfomance as compared with vanilla arch kernel. (I don't care about overhead, i detest latencies.).
ALso on a side note: what the hell does the -ARCH patch do? Other than remove like 10 choices from the architecture type menu.... (i have pentium m and for the longest time i cudnt figure out why its not there as a choice anymore).
Last edited by TjPhysicist (2008-10-21 09:39:46)
-Tj
Now reborn as Tjh_ (to keep it similar to my username in other places)
Offline