Getting Roland EXR-3s USB MIDI and USB filesystem working in Linux

These instructions describe how Roland EXR-3s can be made to work with Linux version 2.6.19-2 and ALSA. It's probable that it also works in other versions, but those have not been tested. Also, some other Roland products may also contain the same hardware, so these instructions may also work in other Roland products.

First, there is no support for EXR-3s USB in ALSA contained in Linux-2.6.19-2. Therefore, a minor patch to kernel is necessary to tell the kernel to understand USB device with id (0x0582, 0x0060), which corresponds to the midi interface of the EXR-3s. To see if your hardware is sufficiently similar, use the 'lsusb' command to check the USB ID of your hardware (see below). The patch can be retrieved here: EXR-3s-ALSA.diff.

When building the kernel, the following kernel parameters should be set. These provice support for both the MIDI interface and the USB storage device contained in EXR-3s:

The most important for MIDI use is the "USB Audio/MIDI driver", which enables the MIDI driver.

Testing the USB connection

To test that you have everything set up, turn your EXR-3s on and use: lsusb. You should see something like the following:

Bus 001 Device 004: ID 0582:0060 Roland Corp.
Bus 001 Device 001: ID 0000:0000

If you don't see anything, then it's probable that you don't have one of the USB configurations set properly. Also, see whether turning on the device produces output such as the following to the /var/log/messages:

Jan 21 18:03:08 lazy vmunix: usb 1-2: new full speed USB device using uhci_hcd and address 5
Jan 21 18:03:08 lazy vmunix: usb 1-2: configuration #1 chosen from 1 choice

If these do not occur, either the device is not connected to the USB port, or your kernel isn't configured properly.

Testing the MIDI connection

If the patch is properly applied to the kernel, and the device is on, the device should also be visible in /proc/asound/cards:

0 [MAX ]: GUS MAX - Gravis UltraSound MAX
Gravis UltraSound MAX at 0x220, irq 3, dma 5&6
1 [EXR3s ]: USB-Audio - EXR-3s
Roland EXR-3s at usb-0000:00:07.2-2, full speed

If this is not occurring, check that the Roland device ID shown in 'lsusb' matches "0582:0060". If not, your device is not the same as what the patch advertises, and therefore the kernel doesn't understand it as an ALSA device even after patching (maybe you have to provide similar information than in the patch yourself for that device).

If you get this far, then you should be able to use the MIDI connection with all the normal ALSA midi software. You may need to specify the correct ALSA MIDI port, if you have more than one (check pmidi -l output).

USB mass storage support with EXR-3s

The USB mass storage support, SCSI drivers and VFAT file system support ensure that the kernel understands EXR-3s's filesystem, so you can mount the filesystem on the EXR-3s via the USB port. It seems somewhat strange that SCSI drivers are needed for using the USB storage device, but that's how Linux support for the USB storage devices is organized, those drivers are really necessary, because the storage device acts like an SCSI disk. Note that the default codepage for FAT filesystem should match one of the codepages that are compiled to the kernel, otherwise mounting doesn't work.

Note that if you enable the filesystem mode by pressing the "USB" button on your Roland, the device id in 'lsusb' output is changed to "0582:0062", which means it allows access to the filesystem on the device. The USB mass storage support, SCSI drivers and the VFAT file system should already support this use. When you change to the filesystem mode, you should see something like the following in /var/log/messages:

Jan 21 18:22:11 lazy vmunix: scsi 2:0:0:0: Direct-Access Roland EXR 1.00 PQ: 0 ANSI: 0 CCS
Jan 21 18:22:11 lazy vmunix: SCSI device sda: 8001 512-byte hdwr sectors (4 MB)
Jan 21 18:22:11 lazy vmunix: sda: Write Protect is off
Jan 21 18:22:11 lazy vmunix: SCSI device sda: 8001 512-byte hdwr sectors (4 MB)
Jan 21 18:22:11 lazy vmunix: sda: Write Protect is off
Jan 21 18:22:11 lazy vmunix: sda:
Jan 21 18:22:11 lazy vmunix: sd 2:0:0:0: Attached scsi removable disk sda

If this doesn't occur, you should check that you have enabled the SCSI options, and the USB storage device option. If this occurs, then you just need to mount the device, so as root, do the following (use the same device name 'sda' that is shown in the log message):

# mkdir /mnt/EXR3s
# mount -t vfat /dev/sda /mnt/EXR3s

If this part doesn't work, check that you have enabled the filesystem in the kernel config. After this, you should have access to the file system, mounted at /mnt/EXR3s. Note that you should unmount the device before turning off the device, or before exiting the "PC<->EXR" mode on the device. It's probably possible to configure the mount and unmounting to occur automatically, but I haven't done that, so I don't have instructions on that. I believe there is some trouble with using the vfat filesystem with automatic mounting/unmounting [the fs doesn't support it].