usb 音频接口未被 alsa 识别

usb 音频接口未被 alsa 识别

在阅读了很多建议后,我最终购买了 Focusrite Scarlett 2i4 并安装了 ubuntu studio。我在 amd64 桌面上运行 Ubuntu 14.04。

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

当插入它时,该设备会被内核识别。

$ 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 
...

但它不能被视为音频设备,因此无法被 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

由于无法打开设备,因此更改 /etc/modprobe.d/alsa-base.conf 没有帮助,并且创建 ~/.asoundrc 文件也没有用。

$ 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
       }

手动加载 snd-usb-audio 模块并重新加载 alsa(sudo modprobe snd-usb-audio && sudo alsa force-reload)没有帮助。有没有办法让 Focusrite Scarlett 2i4 被 usb 驱动程序打开并被 alsa 识别?

当我将它插入没有 ubuntu-studio 和插孔的旧笔记本电脑(ubuntu 14.04 i686)并使用默认的 alsa-base.conf 时,它可以打开,被识别为音频设备,然后被 alsa 识别,并且 snd-usb-audio 模块被加载,但没有控件。我的知识已经耗尽。

答案1

我也有 2i4,它可以在具有适当 USB2 性能的计算机上运行,​​但它不适用于我的 ThinkPad T41,因为 T41 USB2 性能不是很好(似乎是某些 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

您的dmesg打印输出显示 2i4 未连接到高速 USB2。修复此问题后它就可以正常工作(将其重新插入 USB2 端口)。

相关内容