Previous Entry Share Next Entry
xiphmont

Fixing the Linux eMagic emi6|2m / a62m driver + eMagic firmware updates!

For a few years now, I've been using these spiffy little USB audio boxes made by eMagic many years back, specifically the emi2|6 and emi6|2m. There have been plenty of higher-performance devices made since (mostly in terms of lower noise), but the eMagic boxes still hold their own ten years later. They've always been dead reliable and they had Linux drivers from the earliest days thanks to Tapio Laxstrom. These days they pop up on eBay now and then for about $50.

They're no-frills; nothing but bare unbalanced line level inputs and outputs and digital ports. I don't need or want mic preamps and physical sliders, etc, like are bolted to every other prosumer USB audio device out there. I don't want a middling-quality all-in-one solution to my portable recording needs. These little boxen do one thing well and interface nicely to Real Equipment for doing specialized tasks like field recording or serious signal analysis. Oh, and you can gang them together! They can all be run off the sampling clock from one of the units, and I've used four together to do 12-out/20-in theatre work. To date, the eMagics are pretty much the only product that has ever offered this feature combination.

In 2004-ish, Apple bought eMagic and discontinued all of eMagic's hardware devices after momentarily renaming the product lines to the a26 and a62m. There have been no new eMagic driver updates for Windows since XP, and no new Mac OSX drivers (That I'm aware of) since 10.2 PPC. In fact, Linux is the last modern system the 6|2m boxes still work with.

...or at least it was until 2.6.26. In 2.6.27, yet another wholesale 'code cleanup', which Linux kernel developers regularly employ to make sure no hardware more than three years old continues working, broke the eMagic firmware loaders. It had been modified to compile with the 'refreshed' kernel API, but apparently no one tested that the modified version actually worked. Well, it didn't. As of 2.6.32.2 it still doesn't.

Let's cut to the chase.

Here is a patch that should apply cleanly to 2.6.27 through 2.6.32.x; it restores the eMagic 6|2m firmware loader to the exact functional state enjoyed in the 2.6 kernels before being broken in 2.6.27:

http://web.mit.edu/xiphmont/Public/emi/emi62.patch

The patch is large because one error in the code cleanup had among other things also accidentally replaced the 6|2m's firmware with the (not interchangable) firmware from the 2|6, which is big. This patch has been submitted upstream but hasn't made it any to of the staging kernels yet to my knowledge.

But that's not all! Look what else we've got!

The Linux kernel always included an early and slightly buggy firmware version for both devices. I've extracted the most recent firmware from the last known eMagic update and made a second patch that updates the Linux kernel from using version 1.0 of the eMagic firmware to using firmware version 2.2 (as marked in the installer) from MacOS 10.2.3. This patch is standalone. Install only one or the other, not both:

http://web.mit.edu/xiphmont/Public/emi/emi-firmware-update.patch

The updated firmware fixes at least one especially annoying niggle the 6|2m always had where neither analog nor digital sampling are active when recording starts, and you have to flip the physical switch on the front of the device to wake it up each time.

If you know of a more recent update for the eMagics, do let me know (and send me a copy so I can get the firmware out!)


Comments Disabled:

Comments have been disabled for this post.

?

Log in