• 1
This patch has been submitted upstream but hasn't made it any to of the staging kernels yet to my knowledge.

Monty, I'm interested in getting these bugs fixed in Debian kernel packages but they need to be fixed upstream too so we don't have to carry the patches forever.

Your patch fixes three different bugs, one of which had been fixed independently. So you'll need to re-submit with that bug fix taken out. It's probably best if you send:

  1. Patch to fix the ANCHOR_LOAD_INTERNAL/ANCHOR_LOAD_EXTERNAL confusion, to maintainer and public list (ALSA or LKML)
  2. Patch to remove the wrong firmware (in git format, this will be tiny), to maintainer and public list (ALSA or LKML)
  3. Copy of the correct firmware (binary ihex generated with ihex2fw) to David Woodhouse

If this is all too much trouble then send me the bits and I'll see what I can do.

Did eMagic ever release the firmware with a sensible licence? Firmware embedded in or extracted from GPL drivers is a problem: no-one can fulfil the source distribution requirements.


Interesting; my all-in-one patch applied clean to the latest kernel I could get. Although I didn't try any of the maintainers' personal trees.

1,2 and 3 have all been submitted upstream as individual patches already (to Clemens Ladisch and David Woodhouse).

I do not know what various terms eMagic ever released drivers under. You'd have to somehow reestablish contact with Tapio Laxstrom to learn more, but I've not heard from him in years. I have no idea how he managed to wrangle the early firmware out of eMagic under distributable terms. As far as I know, no one outside of eMagic ever had source.

I've stashed the English copy of the license that had been included with the software update dmg file at http://web.mit.edu/xiphmont/Public/emi/License
I do believe it says something along the lines of 'do you feel lucky, punk?' (It is also clearly fairly generic boilerplate; it makes several statements that couldn't possibly apply to anything in the source update, like the reference to MPEG)


Edited at 2010-01-11 02:23 am (UTC)

Interesting; my all-in-one patch applied clean to the latest kernel I could get. Although I didn't try any of the maintainers' personal trees.

It is expected that you base on the maintainer's public repository.

1,2 and 3 have all been submitted upstream as individual patches already (to Clemens Ladisch and David Woodhouse).

Oh, I didn't see that. What response did you get?

I've stashed the English copy of the license that had been included with the software update dmg file at http://web.mit.edu/xiphmont/Public/emi/License
I do believe it says something along the lines of 'do you feel lucky, punk?'

Yeah, it certainly doesn't permit anyone else to distribute the software. :-(


1,2 and 3 have all been submitted upstream as individual patches already (to Clemens Ladisch and David Woodhouse).
I don't remember seeing individual patches. Could you resend them, or publish them somewhere?

There is no maintainer for the loaders; my first patch was picked up by Andrew Morton.

--CL

Patches?

(Anonymous)
Sorry for dropping patches. I do have a vague recollection of this, but don't ever remember seeing a patch which I could just apply cleanly. It shouldn't be a patch to the kernel; it should be a patch to the linux-firmware.git repository. The files should be removed entirely from the kernel source (since they're not under GPL).

--
dwmw2

Hello!

Nice to see someone else likes these as well. I have the 2 6 version and enjoy it a lot. I ran into some problems with it when using Ubuntu Studio and would like to give this a try.

Is the second patch ok try, or are these just for the 6 2 version?
Thanks in advance.

-Santtu

There are loader fixes to both the emi6|2 and 2|6 in the second patch. The second patch also includes new firmware for the 6|2. I'm unaware of any firmware for the 2|6 that's newer than what is already shipped with the Linux kernel.

Thanks for your reply. My 2 6 started to distort a little when I switched to rt-kernel. I'll have to return to the basic kernel if your fix does not make a diggerence. Thanks for your effort anyway. It would be a shame if everyone would abandon these great devices.

patched kernel is not enough...

Hello Monty.

I'm sorry to bring back this post. But it seems like you're my last chance to be able to have sound while I'm coding again.
Anyway, I'm on Scientific Linux 6.1 (2.6.32-131.21.1) and the good old emagic a62m is seen but produce no sound in analog stereo duplex mode.
I've patched the kernel and installed it (by the way, first code change have been integrated, I only had to change the "ANCHOR_LOAD_INTERNAL" part & the firmware so I removed the first few lines of your patch).
I've rpm installed kernel & kernel-firmware but after reboot, the sound is still down. Is there something else to do in addition to the patch ? Do you have any tip or link to share, please ?
Thanks by advance.

Bruno

Re: patched kernel is not enough...

Is the device actually coming up properly? Eg, do you see it go through its startup routine with the green lights and does it accept audio (but just not play)? The device might be starting up muted by default!

If it does not show the usual green lights on startup (or on newer devices, shows a single red light) then the patch somehow didn't take, or there's a new bug...

Re: patched kernel is not enough...

(Anonymous)
Dear xiphmont,

thanks for the patches. I already has a close look at the 2.6.32/34 kernels which had the change for the while loop in them.

- } while (i > 0);
+ } while (rec);

However when trying this on my previous ubuntu 10.04 LTS (kernel 2.6.32) as well as on the new ubuntustudio 12.04 LTS (kernel 3.2.0) I have seen that both versions, i.e. the one lacking the while loop change and the newest (probably) including it have failed to load the firmware properly.

[ 1168.866263] emi62 - firmware loader 5-1.1:1.0: emi62_probe start
[ 1168.886819] usb 5-1.1: emi62_set_reset - 1
[ 1168.988136] usb 5-1.1: emi62_set_reset - 0
[ 1170.559142] usb 5-1.1: emi62_set_reset - 1
[ 1170.660138] usb 5-1.1: emi62_set_reset - 0
[ 1171.776140] usb 5-1.1: emi62_set_reset - 1
[ 1172.078144] emi62: emi62_load_firmware - error loading firmware: error = -110
[ 1172.078202] emi62 - firmware loader: probe of 5-1.1:1.0 failed with error -5

As you can see from the dmesg output above (following the emi62_set_reset - 1/0) the kernel actually uploads the firmware to the device. It fails when it comes to the second patch you suggested, i.e. the eventual cause for this module to be broken since 2.6.32 may be the ANCHOR_LOAD_EXTERNAL.

- ANCHOR_LOAD_EXTERNAL);
+ ANCHOR_LOAD_INTERNAL);

I will give it another try on the actual installed platform.
I am currently on live system.

Kind regards,
Stefan

Re: patched kernel is not enough...

Actually...

Recent userspace changes have further broken things, as udev is now responsible for fetching firmware from the filesystem, but it can't resist first trying to probe the device--- which naturally is stuck in probe().

Also, as part of the above, the firmware shipped by the kernel is no longer used by the system; the actual firmware that's uploaded is usually in the linux-firmware package now, and the format has changed.

I have patches for all the above, but I've been trying to finish a project that's behind schedule before trying to convince upstream to take them...

Re: patched kernel is not enough...

(Anonymous)
Please do provide the patches here if you can! I've an entire CD collection in FLAC that I can't play through the main hifi until I can roll a 3.x kernel which handles the emi62.

btw, thanks for all you've done so far!!
Howard

Re: patched kernel is not enough...

could you publish your patches in the meantime? I'd love to be able to use my Emi without downgrading everything.

Good work BTW!

Re: patched kernel is not enough...

(Anonymous)
Hey Monty,

to answer the question you asked in january, nope, the device wasn't actually coming up properly. But I gave up tryin to have it work on cent Os before my skills on kernel understanding has grown a little bit further which has kept occupied me for not less than 6 months...

Anyway if you two have noted down somewhere the patches and instructions to have the a62m working with Ubuntu Studio 12.04, the entire world (impersonated by me) would be thankful to know where...
I have a performance next week I would definitively be glad if I can have an unbuntu studio and an a62m working together.

Peace

Bruno

Re: patched kernel is not enough...

Dear xiphmont,

Thank you for the patches.
Did you get the emi62m to work with the 3.2.0 kernel? Are there emi62m patches for 3.2.0 kernel available?

Thank you.

Kind regards,
Orion

Edited at 2012-07-30 10:31 pm (UTC)

vmware ugly workaround for kernel 3.2.0 & Ubuntu 12.04

Hello,

I found a way to load the emi6|2m firmware on Ubuntu 12.04 Precise Pangolin with kernel 3.2.0 without patching

*Setup Windows XP 32bit virtual machine with VMWARE player.
*Install the emi62 drivers in the virtual machine & make sure it works.
*click go to menu "virtual machine > removable devices > Emagic A62 m > disconnect" or right click disconnect on the corresponding icon on the bottom right corner of the virtual machine window.
*suspend virtual machine and the sound card should be already working in linux.

Its not pretty but it works.

I forgot where I found the windows driver but the zip file was named A26_A62m_1.5.0.201.zip

I don't use pulse audio and use asoundconf-gtk or asoundconf to change default sound cards.
The following site has instructions on how to get asoundconf to work on ubuntu 12.04
http://wiki.marklesh.com/How-to/Asoundconf

To disable pulse audio I placed autospawn = no in ~/.pulse/client.conf (the file might need to be created)
For more information on how to disable pulse audio and setup a volume applet
http://howto.blbosti.com/2010/04/ubuntu-make-alsa-default-instead-of-pulseaudio/comment-page-1/#comments

Alsa-tray seems like a nice volume tray alternative but I have not used it.
http://projects.flogisoft.com/alsa-tray/

-Orion

Re: vmware ugly workaround for kernel 3.2.0 & Ubuntu 12.04

(Anonymous)
The above "trick" also works when using Vmware Workstation/Player on Windows 7 x64 with XP guest (which has drivers installed) Once device disconnected, it is then accessible to Win 7 till reboot I was interested in digital input, and it does capture stereo fine & plays back audio (DAC) really nicely

Re: vmware ugly workaround for kernel 3.2.0 & Ubuntu 12.04

Dear all,

I' ve managed to compile an emi62.ko module for kernel 3.11.0-12 see posting of uwe:
https://forums.opensuse.org/showthread.php/491841-driver-does-not-load-for-EMagic-e6-2m-soundcard

Playback is working pretty good, however recording is not working with audacity. All 6 recorded traces result in an continuous dc offset? Is this a problem of pulseaudio?

$ cat /proc/asound/cards
0 [Intel ]: HDA-Intel - HDA Intel
HDA Intel at 0xf7df8000 irq 76
1 [NVidia ]: HDA-Intel - HDA NVidia
HDA NVidia at 0xfbcfc000 irq 34
2 [m ]: USB-Audio - Emagic EMI 6|2 m
Emagic GmbH Emagic EMI 6|2 m at usb-0000:00:1a.2-1.1, full speed


$ cat /proc/asound/card2/stream0
Emagic GmbH Emagic EMI 6|2 m at usb-0000:00:1a.2-1.1, full speed : USB Audio
Playback:
Status: Stop
Interface 1
Altset 1
Format: S16_LE
Channels: 2
Endpoint: 10 OUT (ASYNC)
Rates: 44100, 48000, 96000
Interface 1
Altset 2
Format: S24_3LE
Channels: 2
Endpoint: 10 OUT (ASYNC)
Rates: 44100, 48000, 96000

Capture:
Status: Stop
Interface 2
Altset 1
Format: S16_LE
Channels: 6
Endpoint: 12 IN (ASYNC)
Rates: 44100, 48000
Interface 2
Altset 2
Format: S24_3LE
Channels: 6
Endpoint: 12 IN (ASYNC)
Rates: 44100, 48000
Interface 2
Altset 3
Format: S16_LE
Channels: 2
Endpoint: 12 IN (ASYNC)
Rates: 44100, 48000, 96000
Interface 2
Altset 4
Format: S24_3LE
Channels: 2
Endpoint: 12 IN (ASYNC)
Rates: 44100, 48000, 96000

Thank you for your help :-)

Re: vmware ugly workaround for kernel 3.2.0 & Ubuntu 12.04

The constant DC offset you describe may be a reasonably well-known bug in the earlier firmware. You could often kick the device into working properly by toggling the front panels switches, in which case it would suddenly wake up and start working properly.

Does that match what you're seeing?

Re: vmware ugly workaround for kernel 3.2.0 & Ubuntu 12.04

(Anonymous)
Why have the kernel maintainers decided to drop support for this still up-to-date device?
Hopefully they are not trashing their parents because of aging!

Anyway here is a link to the A26_A62m_1.5.0.201.zip-file:
http://www.ez-sound.com/cv/A26_A62m_1.5.0.201.zip

HTH

Re: vmware ugly workaround for kernel 3.2.0 & Ubuntu 12.04

The firmware in that link appears to be older than the version I include in the patches.... I think it matches what Linux was shipping in the past.
(Oh, or is that what you meant?)

(Deleted comment)

Re: To the administrator

I screen everything and LiveJournal message notifications are unreliable. If you want to reach me for sure, send email. In general I mean, not you. You're a right twat.

Edited at 2015-11-05 09:14 pm (UTC)

Livejournal had buried all the messages :-(

Unfortunately, it looks like LiveJournal's messaging interface never picked up on a whole bunch of replies posted to the emi2|6 / 6|2 thread over the last few years. I didn't see them until I came back to the post.

I am still using the EMI boxes as of late Linux 3.x, yes. I don't recall if any massaging needed to happen last time I built against a new kernel, but I don't think so. I've not yet tried to build against 4.x, but I should be doing that soon.

Support got "kind-of" dropped because, after I submitted the updated firmware and it was rejected due to unknown license, no one was able to find the original author to verify the kernel ever had a license to the original firmware either. So everyone just sort of slowly backed away.... and that was that.

  • 1
?

Log in