Skip to content

Instantly share code, notes, and snippets.

@vectorsigma
Created April 25, 2020 22:29
Show Gist options
  • Save vectorsigma/37c8e9993de29b25caef6c9c2686797b to your computer and use it in GitHub Desktop.
Save vectorsigma/37c8e9993de29b25caef6c9c2686797b to your computer and use it in GitHub Desktop.
How to upgrade the firmware of an old MBox 2 so it will work in Linux

Upgrading Avid (Nee digidesign) MBox2 Firmware

The back story

Found a free mbox 2 on craigslist. Picked it up, thinking it would unlock protools LE at least right? And maybe work on linux? Right??

Yeah, no, on both counts. What follows is the herculean effort I went through to get the firmware up from V 124 to V 138 (so at least the Linux sound driver would work).

This guy wrote the hack to snd-usb-pcm to make this card work, and also got me down the "upgrade your firmware!" path to help me figure out why it wasn't.

Reference Material

Other Useful Binaries

  • Pro Tools LE 6
    • the original version shipped with the MBox 2
    • might be helpful here if you want to just play with old pro tools?
  • Pro Tools LE 8
    • the last in the line for Pro Tools LE before PT9 with standalone device support.
    • will not be activated by the presence of the mbox 2, still needs a code.
  • A copy of the Firmware 1.43 Updater for Windows XP
    • it's basically broken, and at under 100KB, likely never contained a firmware image.
    • can't find any other versions either. Dunno why it doesn't work.

The Procedure

Required Binaries

  • Linux computer with hardware virtualization support and KVM installed
    • I did this in Fedora 30 using the virt-manager gui.
  • A Windows XP ISO image with at least SP2 slipstreamed in.
    • You might be able to hack a HyperV disk image out of the Windows XP Mode downloads.
  • The stable virt-io driver disk
    • this is to make XP usable in a virtualized environment, specifically:
    • working networking
    • video above 640x480
  • A copy of Pro Tools LE 7.0 for Windows XP
    • Yes, that specific version.
  • A copy of the Firmware 1.38 Updater for Windows XP

Steps

  1. Install XP SP2 ISO into your virtual machine
    1. recommend 2GB RAM and 10GB HDD
    2. Set network type from e1000 to virtio.
    3. yes you need a serial number, no I won't give you one.
  2. Once the VM boots for the first time after setup, install virtio drivers.
    1. switch the ISO in the VM from the boot image to the virtio iso
    2. open device manager
    3. choose 'update driver' for each yellow question mark.
      1. use the driver in D:\qxl\xp\x86\ for the video device
      2. use the dirver in D:\NetKVM\xp\x86\ for the ethernet device.
      3. use the driver in D:\viostor\xp\x86\ for the unknown pci device.
        1. this last one isn't necessary, and I may have it wrong.
  3. Create a folder: C:\Incoming
  4. Share it. (how is beyond the scope of this but don't forget to give write/modify perms!)
  5. Using whatever SMB client you have, copy over the Pro Tools 7 zip and both firmware zips to the shared folder.
  6. Unpack all 3 ZIPs in C:\Incoming (not in the extra directory XP assumes you need).
  7. Go into the Pro Tools 7 folder and run the installer.
  8. When it says "can't find digidesign hardware" or some shit, then:
    1. plug your mbox into the USB port of your real computer.
    2. wait 30 seconds or so for the device to settle in and be recognized by the kernel and libvirtd.
    3. redirect the MBox2 USB device to your XP VM.
  9. Back in pro tools, ignore any "installing new device" dialogs coming up.
  10. Click "yes" to retry the driver installation.
  11. Click "OK" and let the driver and pro tools finish installing.
  12. Click "Continue Anyway" on al of the hardware installation menus that pop up.
  13. Your lights should be on on the mbox2 now!
  14. power off your VM after pro tools finishes installing.
  15. Unplug the USB device from your real computer.
  16. Reboot the VM.
  17. Install the firmware 1.38 updater utility.
  18. When it also says "can't find the audio device", repeat step 8 above and continue.
  19. Once the installer completes, you need to navigate to C:\Program Files\Digidesign\Drivers
  20. Execute the mbx2dfu.exe binary to start the ugprade process.
  21. Use "Check firwmare" to see what you have installed.
  22. Click "Continue Anyway" on al of the hardware installation menus that pop up.
  23. it should go without saying, that if you see 1.43, you can stop here.
  24. if you see 1.38, you can also probably stop here, since that seems to be the minimum version that works in Linux.
    1. or, you can attempt to go 1.43, as the Linux driver author suggests!
  25. If it says 124 or something lower than 138, click "update firmware."
    1. continue to ignore the "this driver wasn't signed by msft!" errors and click "continue" past them.
  26. Show no fear.

At this point, your VM may uh, lag a little, and maybe even show a device disconnect from the USB stack and you'll have to restart libvirtd to get your console back. But, you'll find that if you repeat steps 17-19, it will have at least version 138 firmware.. :)

Now, unplug it, and plug it back in, and watch as Linux recognizes it for the first time!

Next Steps

The above appears to be the farthest you can get in a solely virtual environment. Attempting to upgrade to 1.43 results in fatal USB redirection errors at least at the time of this writing. Your next step is to recreate this work on some ancient (circa 2006) hardware and pray to the computer gods it doesn't fry your Mbox2.

update: I tried this on my old laptop running XP on bare metal. The firmware patcher itself is so small (70KB), that it can't possibly have the actual device firmware on it. The error message is "failed to download firmware."

Tried out some sysinternals tools to see if I could catch the URL it was looking for. Best I could find was it was looking somewhere (disk? network?) for a file called Firwmare.bin. I saw no network activity from that binary.

@vectorsigma
Copy link
Author

Wow, I never expected to get so much attention on this topic!! thank you everyone for your contributions. I'm going to see if I can cobble together the 1.43 upgrade for my MBox2 as well using your suggestions. 🙌

@hmollercl
Copy link

Has anyone being able to capture through S/PDIF in linux with the mbox2? . I know that the linux driver doesn't support it but as per comment https://www.zamaudio.com/?p=97&cpage=5#comment-8026 but maybe someone knows how to patch it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment