Since I got a Mixman DM2 and like to run Linux I decided to put the two together. Slight hassle, though, the kernel doesn't sit still while you're not watching. A slight tweak is needed to get the driver to work on a modern kernel; in my case, 3.0.0-14-generic on Ubuntu.
I got an error about SPIN_LOCK_UNLOCK being deprecated, and that led me to google around until I found a nice kerneltrap blog entry on solutions for SPIN_LOCK_UNLOCKED errors. One of these was appropriate to the current case:
2. allocating a data structure dynamically & initializing the spinlock embedded within use spin_lock_init() e.g linux-core/via_dmablit.c
- blitq->blit_lock = SPIN_LOCK_UNLOCKED;
+ spin_lock_init(&blitq->blit_lock);
So naturally I applied the same detail to the code. So here's the actual how-to.
- Install the sources
You're going to need to installmodule-assistant
before you can install the driver source package. - Unpack the sources
Visit /usr/src andsudo tar xvfj dm2.tar.bz2
which will produce amodules
directory. You could back updm2.tar.bz2
in case you make a mistake. - Edit the offending file
You want to editmodules/dm2/dm2.c
at line 991. replacedev->lock = SPIN_LOCK_UNLOCKED;
withspin_lock_init(&dev->lock);
- Regenerate the source archive
sudo tar cvfj dm2.tar.bz2 modules
- Build the driver
sudo m-a a-i dm2-source
- Plug in the Mixman
LEDs should flash. If not, please come back and leave a comment. My current goal is to use the unit with Mixxx... TBC