You are not logged in.

#1 2010-12-25 00:05:28

markbabc
Member
Registered: 2010-11-06
Posts: 157

Too many drivers in the Kernel [SOLVED]

Ok so im compiling my own custom kernel just to see if i can do it and learn more about the linux kernel.

Im noticing that it has ALOT of drivers and i cant imagine i would need all them if this was just a personal kernel only going to be used on one system of which its hardware will never change. When in the config (nconfig) i didnt see any options to not including some drivers so i was wondering if it was possible?

Also i heard about people loading modules they use into their kernel to improve performance and i was wondering how to do this, i saw nothing in the wiki and couldnt find anything in the forums.

Last edited by markbabc (2010-12-25 15:40:21)

Offline

#2 2010-12-25 00:17:33

graysky
Wiki Maintainer
From: :wq
Registered: 2008-12-01
Posts: 10,595
Website

Re: Too many drivers in the Kernel [SOLVED]

You want make localmodconfig.  Have a look at my kernel26-ck package (in my sig) - pay attention to the notes and warnings about it.  You might also want to grab/install the modprobed_db package from the AUR which will keep track of your modules and which ones you actually need.  Note that until 2.6.37, the make localmodconfig isn't quiet right.  Again, see my PKGBUILD which I have commented with links.  Note that my PKGBUILD uses the git version of the script that make localmodconfig calls which is fixed and will be included in 2.6.37.

Enjoy!

Last edited by graysky (2010-12-25 00:18:53)


CPU-optimized Linux-ck packages @ Repo-ck  • AUR packagesZsh and other configs

Offline

#3 2010-12-25 04:10:23

markbabc
Member
Registered: 2010-11-06
Posts: 157

Re: Too many drivers in the Kernel [SOLVED]

graysky wrote:

You want make localmodconfig.  Have a look at my kernel26-ck package (in my sig) - pay attention to the notes and warnings about it.  You might also want to grab/install the modprobed_db package from the AUR which will keep track of your modules and which ones you actually need.  Note that until 2.6.37, the make localmodconfig isn't quiet right.  Again, see my PKGBUILD which I have commented with links.  Note that my PKGBUILD uses the git version of the script that make localmodconfig calls which is fixed and will be included in 2.6.37.

Enjoy!

Ok so i looked into that and i just finished compiling with makepkg -s and now in the dir im in i get this output with ls

0001-bfq_iosched-block-prepare_IO_context_code-v1-2.6.36.patch                     kernel26-ck-2.6.36.2-5-i686.pkg.tar.xz          patch-2.6.36-ck2.bz2
0002-bfq_iosched-block-add-cgroups-kconfig-and-build-bits-for-BFQ-v1-2.6.36.patch  kernel26-ck-headers-2.6.36.2-5-i686.pkg.tar.xz  pkg
0003-bfq_iosched-block-introduce_BFQ-v1-2.6.36.patch                               kernel26.install                                PKGBUILD
2.6.36-ck2-bfs-360.patch                                                           kernel26.preset                                 src
config                                                                             linux-2.6.36.tar.bz2                            streamline_config.pl.new
config.x86_64                                                                      patch-2.6.36.2-1-ARCH.bz2

(sorry if thats really messy) and i just wanted to be sure that all im pacman -U'ing is kernel26-ck-2.6.36.2-5-i686.pkg.tar.xz

Offline

#4 2010-12-25 07:48:56

ngoonee
Forum Fellow
From: Between Thailand and Singapore
Registered: 2009-03-17
Posts: 7,354

Re: Too many drivers in the Kernel [SOLVED]

Are you really asking which of those files is an Arch package?


Allan-Volunteer on the (topic being discussed) mailn lists. You never get the people who matters attention on the forums.
jasonwryan-Installing Arch is a measure of your literacy. Maintaining Arch is a measure of your diligence. Contributing to Arch is a measure of your competence.
Griemak-Bleeding edge, not bleeding flat. Edge denotes falls will occur from time to time. Bring your own parachute.

Offline

#5 2010-12-25 12:11:31

graysky
Wiki Maintainer
From: :wq
Registered: 2008-12-01
Posts: 10,595
Website

Re: Too many drivers in the Kernel [SOLVED]

@markbabc - It's a split package making the kernel and headers.  Just do an ls *.xz to see the packages.

...I hope didn't just you edit the PKGBUILD and enable the "_localmodcfg" option did you?  You really need run the modprobed_db package for at least a week or so and let it see exactly which modules you tend to use (i.e. mount every type of filesystem you will use, use all types of USB devices, crypt modules, etc. etc.);  once you compile with that option, you will only get the modules that are currently probed.  It took me several iterations over 2 months or so before I captured all the modules I need for my system (I think).

ngoonee wrote:

Are you really asking which of those files is an Arch package?

@markbabc - the main purpose for pointing you to the package was for you to read the comments and browse the links therein (re-read my post).  I mean to offense by this next statement: if you're unsure which of the files in the directory are the packages, you'll probably find yourself in trouble down the road...

Last edited by graysky (2010-12-25 12:28:57)


CPU-optimized Linux-ck packages @ Repo-ck  • AUR packagesZsh and other configs

Offline

#6 2010-12-25 12:24:58

.:B:.
Forum Fellow
Registered: 2006-11-26
Posts: 5,819
Website

Re: Too many drivers in the Kernel [SOLVED]

If you really want to learn, you need to do it the hard way: disable what you think you don't need, build your kernel, point your bootloader to it, keep your regular kernel as a backup. If your kernel doesn't boot, reboot with the regular kernel, fix your kernel.

Repeat process.

Yes, it will take time, but you'll learn from it. Trust me. I've done it myself.


Got Leenucks? :: Arch: Power in simplicity :: Get Counted! Registered Linux User #392717 :: Blog thingy

Offline

#7 2010-12-25 13:47:29

Mr.Elendig
#archlinux@freenode channel op
From: The intertubes
Registered: 2004-11-07
Posts: 4,092

Re: Too many drivers in the Kernel [SOLVED]

markbabc wrote:

Ok so im compiling my own custom kernel just to see if i can do it and learn more about the linux kernel.

Im noticing that it has ALOT of drivers and i cant imagine i would need all them if this was just a personal kernel only going to be used on one system of which its hardware will never change. When in the config (nconfig) i didnt see any options to not including some drivers so i was wondering if it was possible?

Also i heard about people loading modules they use into their kernel to improve performance and i was wondering how to do this, i saw nothing in the wiki and couldnt find anything in the forums.

You do know that almost all of those are built as modules, and are not loaded into kernel space unless really needed?


Evil #archlinux@libera.chat channel op and general support dude.
. files on github, Screenshots, Random pics and the rest

Offline

#8 2010-12-25 13:58:29

graysky
Wiki Maintainer
From: :wq
Registered: 2008-12-01
Posts: 10,595
Website

Re: Too many drivers in the Kernel [SOLVED]

markbabc wrote:

Also i heard about people loading modules they use into their kernel to improve performance and i was wondering how to do this, i saw nothing in the wiki and couldnt find anything in the forums.

Ah, I glanced over that, it's called make localyesconfig.  See this.

1.8. Easy local kernel configuration

Most people uses the kernel shipped by distros - and that's good. But some people like to compile their own kernels from kernel.org, or maybe they like following the Linux development and want to try it. Configuring your own kernel, however, has become a very difficult and tedious task - there're too many options, and some times userspace software will stop working if you don't enable some key option. You can use a standard distro .config file, but it takes too much time to compile all the options it enables.

To make the process of configuration easier, a new build target has been added: make localmodconfig. It runs "lsmod" to find all the modules loaded on the current running system. It will read all the Makefiles to map which CONFIG enables a module. It will read the Kconfig files to find the dependencies and selects that may be needed to support a CONFIG. Finally, it reads the .config file and removes any module "=m" that is not needed to enable the currently loaded modules. With this tool, you can strip a distro .config of all the unuseful drivers that are not needed in our machine, and it will take much less time to build the kernel. There's an additional "make localyesconfig" target, in case you don't want to use modules and/or initrds.

...it's unclear to me how hard-coding the modules into the kernel will boost performance though.

Last edited by graysky (2010-12-25 14:00:59)


CPU-optimized Linux-ck packages @ Repo-ck  • AUR packagesZsh and other configs

Offline

#9 2010-12-25 15:37:51

markbabc
Member
Registered: 2010-11-06
Posts: 157

Re: Too many drivers in the Kernel [SOLVED]

ngoonee wrote:

Are you really asking which of those files is an Arch package?

No, ik which ones are packages i just didnt know if i needed the headers one but i asked in our irc channel and they explained it to me

@graysky i got modprobed_db but i didnt know i had to run it for so long but it makes sense. i will keep it running and recompile in a month or two.

graysky wrote:

...it's unclear to me how hard-coding the modules into the kernel will boost performance though.

iv heard people say that and the way i rationalized it was that the kernel then doesnt have to find which module it needs to load and already has module x at hand ready to go. But i could be wrong, like i said im still very new to messing with the kernel


EDIT: Im going to mark this as solved because my question has been answered

Last edited by markbabc (2010-12-25 15:40:00)

Offline

#10 2010-12-25 16:00:48

litemotiv
Forum Fellow
Registered: 2008-08-01
Posts: 5,026

Re: Too many drivers in the Kernel [SOLVED]

markbabc wrote:

iv heard people say that and the way i rationalized it was that the kernel then doesnt have to find which module it needs to load and already has module x at hand ready to go. But i could be wrong, like i said im still very new to messing with the kernel

It won't make your computer perform better, but you might be able to shave a few seconds off your bootup time.


ᶘ ᵒᴥᵒᶅ

Offline

#11 2010-12-25 16:04:22

graysky
Wiki Maintainer
From: :wq
Registered: 2008-12-01
Posts: 10,595
Website

Re: Too many drivers in the Kernel [SOLVED]

markbabc wrote:

@graysky i got modprobed_db but i didnt know i had to run it for so long but it makes sense. i will keep it running and recompile in a month or two.

You will likely find that something in userland doesn't work and need to recompile much sooner!  This happened to me 3 or 4 times.  As long as you recognize that you're probably missing a kernel module, and you can reboot into the standard -ARCH kernel and repeat whatever it was you did, depending on the interval you selected for modprobe_db's crontab, you'll get the module(s) in your database and be ready to incorporate them into your new build.


CPU-optimized Linux-ck packages @ Repo-ck  • AUR packagesZsh and other configs

Offline

#12 2010-12-25 16:20:05

markbabc
Member
Registered: 2010-11-06
Posts: 157

Re: Too many drivers in the Kernel [SOLVED]

graysky wrote:

You will likely find that something in userland doesn't work and need to recompile much sooner!  This happened to me 3 or 4 times.  As long as you recognize that you're probably missing a kernel module, and you can reboot into the standard -ARCH kernel and repeat whatever it was you did, depending on the interval you selected for modprobe_db's crontab, you'll get the module(s) in your database and be ready to incorporate them into your new build.

I think i will switch back to the standard arch build for a few weeks and let them just build up (will the modprobed.db build up or does it truncate the file each interval you run it?) and then re-compile (and i see what you mean i just plugged in my usb mouse and it doesnt work) Also just a side but would you recommend the BFQ option? i was thinking of just compiling a separate kernel with it enabled to see if i like it or not but i couldnt find anything of people saying that it actually works.

Offline

Board footer

Powered by FluxBB