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: