> > I've written a DFU loader
> > http://prdownloads.sourceforge.net/usb-midi-fw/madfu-firmware-0.1beta3.tar.gz?download
> > which does the same as the Windows loader.  Unfortunately, it doesn't
> > work because the 2.4 kernel gets confused when the device resets
> > itself.

As a followup I have kludged  Clemens loader  to work by
a) removing the two lines at the end of the subroutine download_firmware
in madfuload.c 

             if(usb_reset()==-1)
                fatal("cannot reset device - %s".strerror(errno));
As Clemens has said this seriously infects the kernel, so that program
after program begins to die. 
b) putting the lines
         /usr/bin/at now + 1 minutes <<EOF
          service usb restart
         EOF
         service usb stop

at the end of the maudio_dfu scipt.
***** see note 2 below***

c) remove the comment mark # in front of the usb_stop line in the
/etc/init.d/usb service script in mandrake.

    stop)
  #  usb_stop
     rm -f /var/lock/subsys/usb

***** see note1  below***

d) make a directory /usr/lib/hotplug/maudio_dfu and put
maudio_dfu.usermap into that directory as usb.usermap, and then running
update-usb.usermap
which updates /etc/hotplug/usb.usermap 

e) Moving the script maudio_dfu into /etc/hotplug/usb

f) left the two programs /usr/local/share/usb/maudio/ma006100.bin and
/usr/local/sbin/madfuload
where Clemens script put them. If you move them you have to change the
locations in maudio_dfu

****Note1 that for some reason Mandrake comments out the line
I have no idea if restoring it breaks something else in Mandrake. 

Note2: this is a double kludge. To get the Maudio soundcard with the
firmware loaded to be recognized by the Linux usb driver, I have to
restart the usb driver. For some reason the usb bus does not recognize the new
productid 2006 (Transit with firmware loaded)  on the bus otherwise. 
Also, it appears the the 
service usb stop
 also kills the hotplug script maudio_dfu run by the hotplugging.
 This means that you cannot put the service usb start (or restart) into
this script-- it never gets run. thus the "at" kludge which takes a
minute to run the usb bus restart.


Despite the very hokey nature of the above, it works.
I can now plug in and unplug the MAudio transit sound card, the firmware
gets loaded and the card is recognized by alsa ,
and it plays. (But I sure hope the bug in the Linux USB support which
prevents it from recognising the firmware loaded card will get fixed
soon>)

This was on Mandrake kernel 2.4.22.26mdk-1-1mdk) with ALSA 1.0.1



Note that the  ALSA support still needs to be tuned, since 16 bit audio stuff
does not work at all, and 24 bit stuff seems to be using reverse bit
order. Also the only mixer that seems to work is the alsamixer. The
others (kmix and aumix) cannot change the microphone volume from full
on. There are also only two sliders-- PCM and microphone.
         
Thanks to Clemens for the effort he has put into getting the firmware loader to work.
M-Audio itself refused to give me any information at all. -- Everything
is proprietary. Even which file is teh firmware was proprietary. Not a
very friendly company. 
Bill Unruh




-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
_______________________________________________
Alsa-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-user

Reply via email to