在阅读了很多建议后,我最终购买了 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 端口)。