web-dev-qa-db-fra.com

interface audio usb non reconnue par alsa

après avoir lu beaucoup de recommandations, j'ai finalement acheté un Focusrite Scarlett 2i4 et installé ubuntu studio. J'exécute unbuntu 14.04 sur un ordinateur de bureau AMD64.

$ uname -rvi
3.13.0-46-generic #76-Ubuntu SMP Thu Feb 26 18:52:13 UTC 2015 x86_64

Lorsqu’il est inséré, l’appareil est reconnu par le noyau.

$ dmesg
...
[14973.155287] usb 3-2: new full-speed USB device number 7 using ohci-pci
[14973.355783] usb 3-2: not running at top speed; connect to a high speed hub
[14973.370772] usb 3-2: New USB device found, idVendor=1235, idProduct=800a
[14973.370784] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[14973.370791] usb 3-2: Product: Scarlett 2i4 USB
[14973.370797] usb 3-2: Manufacturer: Focusrite
...

$ lsusb -v
...
Bus 003 Device 007: ID 1235:800a Focusrite-Novation Scarlett 2i4
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x1235 Focusrite-Novation
  idProduct          0x800a Scarlett 2i4
  bcdDevice            1.25
  iManufacturer           1 
  iProduct                2 
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           18
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         0 (Defined at Interface level)
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
...

Mais il ne peut pas être considéré comme un périphérique audio et n’est donc pas reconnu par alsa.

$ cat /proc/asound/cards
 0 [NVidia         ]: HDA-Intel - HDA NVidia
                      HDA NVidia at 0xfbe78000 irq 21
 1 [HDMI           ]: HDA-Intel - HDA ATI HDMI
                      HDA ATI HDMI at 0xfbffc000 irq 41

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: NVidia [HDA NVidia], device 0: VT1708S Analog [VT1708S Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 3: VT1708S Digital [VT1708S Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 7: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: HDMI [HDA ATI HDMI], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Comme le périphérique ne pouvait pas être ouvert, modifier le fichier /etc/modprobe.d/alsa-base.conf n'a pas aidé et la création d'un fichier ~/.asoundrc était inutile.

$ cat /etc/modprobe.d/alsa-base.conf 
# autoloader aliases
install sound-slot-0 /sbin/modprobe snd-card-0
install sound-slot-1 /sbin/modprobe snd-card-1
install sound-slot-2 /sbin/modprobe snd-card-2
install sound-slot-3 /sbin/modprobe snd-card-3
install sound-slot-4 /sbin/modprobe snd-card-4
install sound-slot-5 /sbin/modprobe snd-card-5
install sound-slot-6 /sbin/modprobe snd-card-6
install sound-slot-7 /sbin/modprobe snd-card-7

# Cause optional modules to be loaded above generic modules
install snd /sbin/modprobe --ignore-install snd $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-ioctl32 ; /sbin/modprobe --quiet --use-blacklist snd-seq ; }
#
# Workaround at bug #499695 (reverted in Ubuntu see LP #319505)
install snd-pcm /sbin/modprobe --ignore-install snd-pcm $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-pcm-oss ; : ; }
install snd-mixer /sbin/modprobe --ignore-install snd-mixer $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-mixer-oss ; : ; }
install snd-seq /sbin/modprobe --ignore-install snd-seq $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-seq-midi ; /sbin/modprobe --quiet --use-blacklist snd-seq-oss ; : ; }
#
install snd-rawmidi /sbin/modprobe --ignore-install snd-rawmidi $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-seq-midi ; : ; }
# Cause optional modules to be loaded above sound card driver modules
install snd-emu10k1 /sbin/modprobe --ignore-install snd-emu10k1 $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-emu10k1-synth ; }
install snd-via82xx /sbin/modprobe --ignore-install snd-via82xx $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-seq ; }

# Load saa7134-alsa instead of saa7134 (which gets dragged in by it anyway)
install saa7134 /sbin/modprobe --ignore-install saa7134 $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist saa7134-alsa ; : ; }
# Prevent abnormal drivers from grabbing index 0
options bt87x index=-2
options cx88_alsa index=-2
options saa7134-alsa index=-2
options snd-atiixp-modem index=-2
options snd-intel8x0m index=-2
options snd-via82xx-modem index=-2
#options snd-usb-audio index=-2
options snd-usb-audio index=2
options snd-usb-caiaq index=-2
options snd-usb-ua101 index=-2
options snd-usb-us122l index=-2
options snd-usb-usx2y index=-2
# Ubuntu #62691, enable MPU for snd-cmipci
options snd-cmipci mpu_port=0x330 fm_port=0x388
# Keep snd-pcsp from being loaded as first soundcard
options snd-pcsp index=-2
# Keep snd-usb-audio from beeing loaded as first soundcard
#options snd-usb-audio index=-2
#Focusrite Scarlett 2i4 to hw:2
options snd-usb-audio index=2 vid=0x1235 pid=0x800a

$ cat .asoundrc 
       pcm.usb-audio {
          type hw
          card 2
       }

       ctl.usb-audio {
          type hw
          card 2
       }

Charger le module snd-usb-audio et recharger alsa à la main (Sudo modprobe snd-usb-audio && Sudo alsa force-reload) n’aident en rien. Existe-t-il un moyen d’obtenir la Focusrite Scarlett 2i4 ouverte par les pilotes USB et reconnue par alsa?

Lorsque je le branche sur mon ancien ordinateur portable (Ubuntu 14.04 i686) sans Ubuntu-studio et la prise utilisant le fichier par défaut alsa-base.conf, il peut être ouvert, il est reconnu comme périphérique audio, puis par alsa, et le fichier snd-usb-audio le module est chargé, mais il n'y a pas de contrôles. Je suis au bout de mes connaissances.

4
user383847

J'ai également un 2i4, cela fonctionne sur les ordinateurs avec des performances USB2 appropriées, cela ne fonctionne pas sur mon ThinkPad T41 car les performances du T41 USB2 ne sont pas très bonnes (semble être une faute sur certains T41).

[14973.155287] usb 3-2: new full-speed USB device number 7 using ohci-pci
[14973.355783] usb 3-2: not running at top speed; connect to a high speed hub

Votre impression dmesg indique que le 2i4 n’est pas connecté au port USB2 haut débit. Corrigez cela et cela fonctionnera (rebranchez-le sur un port USB2).

3
user386703