Ubuntu – Usb audio interface not recognized by alsa


after reading a lot of recommendations I finally bought a Focusrite Scarlett 2i4 and installed ubuntu studio. I am running Ubuntu 14.04 on a amd64 desktop.

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

When pugging it in, the device it is recognized by the kernel.

$ 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 

But it can't be seen as an audio device and therefore is not recognized by 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

Since the device couldn't be opened altering the /etc/modprobe.d/alsa-base.conf didn't help and creating a ~/.asoundrc file was useless.

$ 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

Loading the snd-usb-audio module and reloading alsa by hand (sudo modprobe snd-usb-audio && sudo alsa force-reload) doesn't help. Is there a way to get the Focusrite Scarlett 2i4 to be opened by the usb drivers and recognized by alsa?

When I plug it in to my old laptop (ubuntu 14.04 i686) without ubuntu-studio and jack using the default alsa-base.conf it can be opened, is recognized as audio device and then by alsa, and the snd-usb-audio module is loaded, but there are no controls. I am at the end of my knowledge.

Best Answer

I have a 2i4 as well, it works on computers with proper USB2 performance, it doesn't work on my ThinkPad T41 because the T41 USB2 performance is not very good (seems to be a fault on some T41s).

[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

Your dmesg printout shows that the 2i4 is not connected to high-speed USB2. Fix that and it will work (Replug it to a USB2 port).

Related Question