[Voyage-linux] Preferred method for compiling external kernel modules in voyage 0.8
Jonathan Polom
(spam-protected)
Fri Dec 16 21:48:05 HKT 2011
I just started using Voyage MPD last week and quite like it, except
for one flaw I've found: building kernel modules for proprietary
drivers. The only problem I'm having (and this is not a voyage issue,
I had the same problem when I ran Debian stable) is that my wired NIC,
which is a lovely Realtek 8111/8168 series controller, uses the
problematic r8169 kernel module. The r8169 module is effectively broke
for my NIC and causes it to up/down the link randomly and drop a lot
of incoming packets. Obviously this is not acceptable and I need to
fix it. The accepted fix at this time is to use the r8168 module
provided by Realtek. Realtek provides the "source" for this driver on
their web site to be compiled as a kernel module and there's also an
r8168-dkms package in the Debian sid repos.
So far I've had no success compiling the r8168 module from the Realtek
tarball or from the DKMS package out of sid (all deps are satisfied
for that package). I've installed the kernel source for the
3.0.0-voyage kernel, untarred it to /usr/src/linux-source-3.0.0-voyage
and symlinked /usr/src/linux to it, but DKMS consistently claims that
it doesn't think the source for the kernel is installed when I run
`dpkg-reconfigure r8168-dkms`. I've tried compiling the module
directly from the Realtek source via their autorun.sh script, but it
looks in /lib/modules/3.0.0-voyage/build for something that isn't
there (not too sure what *should* be there even, I've tried symlinking
the kernel sources there but that doesn't work either). I've never had
this much trouble trying to compile a kernel module before, especially
in Debian.
I searched my configured apt repos (squeeze, sid and voyage) for
available kernel headers and couldn't find one for the voyage kernel
(why isn't one available by default? that seems odd, especially so
since you're offering a kernel source package) since you really don't
need the full source tree available to compile a module in most cases.
I did find what looks like a kernel headers package in the voyage
experimental repository for the 3.0.0-voyage kernel. But I have to
ask: why is the headers package for the default voyage kernel
considered experimental? Will that package allow me to compile modules
against the headers it contains or are there some known issues with
it?
So my main question here is: How is one supposed to compile a third
party/out-of-tree kernel module on voyage for the voyage kernel?
Any help is appreciated on this topic.
Jon
More information about the Voyage-linux
mailing list