Interface M-AUDIO MIDISPORT sous FreeBSD

Le firmware officiel pour les interfaces M-AUDIO MIDISPORT est disponible avec la plupart des distributions Linux. Malheureusement, il ne fonctionne pas avec la version de fxload disponible avec FreeBSD. Par chance, il existe un firmware alternatif qui fonctionne. Il peut être téléchargé ici:

Pour l’utiliser, on installe donc le paquet fxload:

root> pkg_add -r fxload

Après connexion, on repère le VID (Vendor ID) et le PID (Product ID) de l’interface concernée.

root> usbconfig
ugen0.1: <UHCI root HUB Intel> ...
...
ugen3.2: <product 0x1001 vendor 0x0763> at usbus3, cfg=0 ...

On charge le firmware:

root> fxload -I ezusbmidi2x2.ihx -D vid=0x0763,pid=0x1001

Une fois le firmware en place, l’interface est fonctionnelle, les  devices correspondants sont créés automatiquement:

root> usbconfig | grep -i midiman 
ugen3.2: <Midisport 2x2 Midiman> at usbus3,..
root> ls -l /dev/umidi* 
crw-r--r--  1 root  root    0, 112 Jan  1 16:02 /dev/umidi0.0
crw-r--r--  1 root  root    0, 113 Jan  1 16:02 /dev/umidi0.1

Pour automatiser tout ça, on utilise devd. C’est l’équivalent de udev sous Linux. Il suffit de créer un fichier de configuration pour notre interface:

# /usr/local/etc/devd/m-audio.conf
options {
  set LOADER "/usr/local/sbin/fxload -I"
  set MAUDIO "/usr/local/share/fxload/m-audio"
};
notify 0 {
  match "system" "USB";
  match "subsystem" "INTERFACE";
  match "type" "ATTACH";
  match "vendor" "0x0763";
  match "product" "0x1010";
  match "release" "0x0001";
  action "$LOADER $MAUDIO/ezusbmidi1x1.ihx -Dvid=$vendor,pid=$product"
};
notify 0 {
  match "system" "USB";
  match "subsystem" "INTERFACE";
  match "type" "ATTACH";
  match "vendor" "0x0763";
  match "product" "0x1001";
  match "release" "0x0001";
  action "$LOADER $MAUDIO/ezusbmidi2x2.ihx -Dvid=$vendor,pid=$product"
};

On installe ensuite le firmware dans le répertoire kivabien™:

root> mkdir -p /usr/local/share/fxload/m-audio
root> install -m 644 ezusb*ihx /usr/local/share/fxload/m-audio

On redémarre devd:

root>  service devd restart

Attention, seul root est autorisé à utiliser cette interface en lecture/écriture:

root> ls -l /dev/umidi* 
crw-r--r--  1 root  root    0, 112 Jan  1 16:02 /dev/umidi0.0
...

Pour modifier ça, il faut rajouter une règle dans le fichier /etc/devfs.rules (cf. article sur le scanner USB):

[localrules=10]
add path 'umidi*' mode 0664 group operator

Une fois le firmware chargé, vous devriez voir la led « USB » clignoter en variant d’intensité. Pour l’interface MIDISPORT 2×2, le port A est accessible via /dev/umidi0.0 et le port B via /dev/umidi0.1.

et voilà.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>