Using an M-Audio Midisport 2x2 with Linux

Last updated 07-01-2005


Today, I bought an M-Audio MidiSport 2x2, and also, amazingly enough, got it working with Fedora Core 3 and 4 within an hour. Here's what I had to do.

The midisport contains no EEPROM, so each time it powers up, it relies on the host to feed it firmware.

  1. You need to get "fxload", the program that downloads the firmware into the midisport and reboots it with the new firmware. I found fxload on sourceforge:
    [scameron@zuul ~]$ tar xzvf fxload-2002_04_11.tar.gz
    fxload-2002_04_11/
    fxload-2002_04_11/README.txt
    fxload-2002_04_11/COPYING
    fxload-2002_04_11/Makefile
    fxload-2002_04_11/fxload.8
    fxload-2002_04_11/a3load.hex
    fxload-2002_04_11/ezusb.h
    fxload-2002_04_11/ezusb.c
    fxload-2002_04_11/main.c
    [scameron@zuul ~]$ cd fxload-2002_04_11
    [scameron@zuul fxload-2002_04_11]$ su
    Password:
    [root@zuul fxload-2002_04_11]# make install
    cc -c -O -Wall   ezusb.c -o ezusb.o
    cc -c -O -Wall   main.c -o main.o
    cc -o fxload ezusb.o main.o
    /usr/bin/install -cD fxload //sbin/fxload
    /usr/bin/install -cD -m 0644 fxload.8 //usr/share/man/man8/fxload.8
    /usr/bin/install -cD -m 0644 a3load.hex //usr/share/usb/a3load.hex
    [root@zuul fxload-2002_04_11]#
    
  2. You will need to get "USB22LDR.SYS", an 'MS-DOS style' file (yes, I know 'MS-DOS style' is vague, but I don't know how else to describe it) which contains, among other things, the necessary firmware. This USB22LDR.SYS file is in turn, inside a Windows exe file on the CD-ROM that comes with the midisport 2x2. To get this file out of the EXE, there is some procedure described in some detail in the README which comes with the midisport_firmware package (see below) which involves begining the process of loading the software on a Windows machine but stopping the install before it really gets going, and copying this file out of some temporary directory. Well, hmm, I have the CD-ROM, but I don't have any Windows machines. So how can I get this file out of there? Well, I have some friends who have windows machines, but I hate to ask them, "Hey, would you mind if I half-install this software on your computer?" Well, it occurs to me that the file has a rather specific name, doesn't it? It's really specific. Hmmm. If only, if only there were a way that all the computers in the world could be connected together, and there were some way to search amongst all these computers, surely, someone already has this file, no? Hmmm, if only . . . Ah, well, such is life.
  3. Once you have extracted USB221DR.SYS from the windows executable on the CD on your friend's Windows-running "computer," there is another thing you need, called " midisport_firmware" which extracts the actual firmware image from this USB221DR.SYS file:
    [root@zuul scameron]# bunzip2 < midisport_firmware-0.5.tar.bz2 | tar xvf -
    midisport_firmware-0.5/
    midisport_firmware-0.5/Makefile
    midisport_firmware-0.5/README
    midisport_firmware-0.5/extractfirmware.c
    midisport_firmware-0.5/midisport_fw
    midisport_firmware-0.5/midisport_fw.usermap
    midisport_firmware-0.5/COPYING
    [root@zuul scameron]# cd midisport_firmware-0.5
    [root@zuul midisport_firmware-0.5]# cp ../USB22LDR.SYS .
    [root@zuul midisport_firmware-0.5]# make install
    cc     extractfirmware.c   -o extractfirmware
    ./extractfirmware
    processing USB22LDR.SYS ...
    writing MidiSportLoader.ihx
    writing MidiSport2x2.ihx
    install -cD midisport_fw /etc/hotplug/usb/midisport_fw
    install -cD -m 0644 midisport_fw.usermap /etc/hotplug/usb/midisport_fw.usermap
    install -cD -m 0644 MidiSportLoader.ihx /usr/share/usb/midisport/MidiSportLoader.ihx
    for s in 2x2 1x1 KS 4x4 8x8-2.10 8x8-2.21; do \
            if [ -e MidiSport$s.ihx ]; then \
                    install -cD -m 0644 MidiSport$s.ihx /usr/share/usb/midisport/MidiSport$s.ihx; \
            fi; \
    done
    
    *** MidiSport firmware loader has been installed. ***
    
    [root@zuul midisport_firmware-0.5]#
    
    And once this is installed, the hotplug scripts will invoke fxload to load the firmware into the midisport. Once that happens, you'll see some blinky lights on the midisport 2x2, and one light in particular pulsates slowly, presumably indicating that the firmware is running A-ok.

    Hmm, you know, it occurs to me that I'm not entirely sure that fxload is necessary in this process. Maybe midisport_firmware alone can do it? Well, in any case, I have installed fxload, and it doesn't seem to hurt.

    Once I got that done, I hooked up my BOSS DR-660 to my laptop, and tried out my "Gnu Tattoo" on it (using a yamaha motif drumkit mapping I had made, figuring, heck, there's only 127 notes, I just want to make some noise -- any noise.) Well, I was able to make some noise, but I still have some stuff to figure out. I think there is some "midi channel" thing happening which is preventing everything from working as-is right now. But, having gotten a peep out of the DR-660, I'm confident these details can be worked out.