[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: make-kpkg, stock kernel, and alsa



Kent West wrote:
I've compiled a kernel or few, but mostly just stumbled through the process.

Question 1:
--------
-SNIP- < Near as I can tell, there are no binary alsa drivers; I have to download the source and compile. However, apparently I can't compile the alsa modules without having the full kernel source for my running kernel. Can anyone confirm or deny this? It seems a bit crazy that I can't run alsa modules with a stock kernel, forcing me to roll my own kernel. Perhaps there's a good reason for that? Or am I misunderstanding?


You don't have to do a complete kernel compile on the source, but you must "prep" the source package to look like it COULD compile your existing kernel. This is needed to setup the source so it will provide the necessary external headers, etc. for the ALSA compile.

If you already have the 2.4.20-K7 kernel running on your machine from the pre-compiled debs, all you have to do is the following:

1. Link the kernel-source tree to /usr/src/linux (ln -s /usr/src/kernel-source-2.4.20 /usr/src/linux) 2. Do a "make mrproper" on the new kernel source tree to set everything back to a "pristine" state. This step WILL erase any existing .config files! This is really just a check, as you shouldn't really needed it on a newly installed kernel-source package... just my parinoia showing <grin>.
3.  Copy /boot/config-2.4.20-K7 /usr/src/linux/.config
4.  Run "make oldconfig"
5.  Run "make dep".

Your kernel is now preped to compile any program against your specific kernel being used.

If you have rolled your own kernel, then these steps should have already been done, and you would want to use the existing "prep" you used to compile it. You can then use any available method to compile the ALSA modules and programs from the Alsa-source from this point.

When I downloaded the alsa-source, it put a tar.bz2 file in /usr/src. I bunzip2'ed it and untarred it, which put the "alsa-driver" directory in /usr/src/modules. I also downloaded the kernel-headers. Then run I run cd into /usr/src/linux and "make-kpkg modules", it seems to think I'm compiling a kernel instead of just the modules against the headers. But as I say, I'm just stumbling through, so am probably expecting too much or am doing the wrong thing(s).


I don't use the "make-kpkg" method, so I cannot comment on your procedure. I learned the "old way", but I believe the prep of the kernel is still needed for kpkg to work correctly... It just might be leading you through these prep steps... dunno. Automated programs that I don't understand make me nervous....;)


Question 2:
--------
Closely related, last time I faced a situation like this, I downloaded the kernel source for the same version of stock kernel I was running and copied the "config-[kernelverson]" file to /usr/src/linux/.config, and then compiled, expecting to get almost the exact same kernel I started with. However, it wasn't nearly the same (I don't remember the details now). I know this is vague information, but does anyone have an explanation for that?


See the above procedure. The "make mrproper", "make oldconfig" and "make dep" steps are important to setup the kernel source to use the imported config file from /boot/.

Cheers,
-Don Spoon-



Reply to: