Kernel module build workflow (Re: Logitech USB headset not working in 3.6-rc3)

From: Takashi Iwai
Date: Sun Aug 26 2012 - 08:46:09 EST


At Sat, 25 Aug 2012 07:16:21 -0500,
Bruno Wolff III wrote:
>
> On Sat, Aug 25, 2012 at 08:13:27 -0400,
> Josh Boyer <jwboyer@xxxxxxxxxx> wrote:
> >On Sat, Aug 25, 2012 at 07:07:40AM -0500, Bruno Wolff III wrote:
> >> On Sat, Aug 25, 2012 at 14:02:51 +0200,
> >> Daniel Mack <zonque@xxxxxxxxx> wrote:
> >> >
> >> >Can you revert commit e9ba389c5 ("ALSA: usb-audio: Fix
> >> >scheduling-while-atomic bug in PCM capture stream") and see if that
> >>
> >> I can try that, but it takes a long time to build a new kernel on my
> >> old hardware.
> >
> >I started a scratch build of a kernel with that patch reverted (via
> >patch -R). You'll find it here when it finishes:
> >
> >http://koji.fedoraproject.org/koji/taskinfo?taskID=4421817
> >
> >josh
>
> I'll test it when it finishes. Thanks. It takes me a long time to build
> kernels locally, and I wasn't sure how to do a scratch build on koji without
> committing stuff remotely.

Actually you don't have to rebuild the whole kernel at all just for
debugging this usb-audio bug. The workflow below is what I do often
for debugging a driver problem on a distro kernel.

1. Prepare the compile-ready kernel source tree corresponding to your
running kernel. This may depend on distro; in the case of SUSE,
kernel-default-devel.rpm must be installed for kernel-default.rpm,
for example.

2. Copy sound/usb subdirectory of the kernel source tree locally
anywhere else, say, $HOME/usb. It can be a normal user
directory.

3. Apply the patch to that local directory.

4. Build modules as a normal user like
% make -C /lib/modules/$(uname -r)/build M=$HOME/usb modules

5. Make an extra update directory in the module directory once, e.g.
# mkdir /lib/modules/$(uname -r)/updates

6. Copy *.ko files to there
# cp $HOME/usb/*.ko /lib/modules/$(uname -r)/updates

7. Run depmod once
# /sbin/depmod -a

8. Reload snd-usb-audio module.

If you want to take back to the original module, just remove updates
module directory and run depmod again. Pretty convenient, eh?


HTH,

Takashi
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/