如何获得M音频传输USB音频设备在Ubuntu 9.04 AMD64工作
本教程将介绍如何让M-Audio Transit USB音频设备在Ubuntu 9.04 amd64下工作,尽管它可能适用于其他版本。
传输通常是仅Windows设备,并且由于必须将固件加载到设备中才能正常检测; 这通常是由Windows驱动程序完成的。 我经过长时间的详尽搜索后才写出了这个教程,以了解如何使其工作。
要求:
madfucutter(来自多种存储库)
传输固件文件(您必须从驱动程序包或从Windows获取)
我们在做什么
默认情况下,ALSA支持USB音频设备,而Transit确实符合该标准,但是当它首次启动时,它没有加载固件,并且基本上是一个“漂亮的哑”USB设备。 事实上,当你插上它,lsusb列出如下:
user@host:~$ lsusb
Bus 001 Device 007: ID 0763:2806 Midiman M-Audio Transit DFU
通常,Windows驱动程序会将固件加载到设备中并对其进行重置,从那时起,Windows将会将其检测为Transit音频设备并加载适当的驱动程序。 在linux下,madfuload实用程序将固件上传到设备,以便Linux能够检测到它。 madfuload可用于多种多样的,但开箱即用并不奏效。
怎么做
您不需要在任何这些步骤中插入Transit USB,因此,如果当前正在插入,则可能需要拔掉它。我们确保启用了多种多样的存储库。 最简单的方法是使用以下命令grep /etc/apt/sources.list
:
less /etc/apt/sources.list | grep multiverse
您正在寻找类似于此的行
deb http://us.archive.ubuntu.com/ubuntu/ jaunty multiverse
如果你看到这个行,但是在它前面有一个#,那么我们需要通过编辑sources.list文件来启用这个存储库。
sudo nano /etc/apt/sources.list
当然,您可以用最喜欢的编辑器替换nano。 找到正确的行后,删除#,保存文件,并重新加载apt源:
sudo apt-get update
一旦您的apt更新为multiverse,我们可以继续安装madfudload:
sudo apt-get install madfudload
现在我们已经安装了madfuload,我们需要复制固件文件。 该文件称为ma006100.bin - 您可以提取安装程序包以查找文件,或者如果您的Windows安装在同一个系统上,您可以在Windows驱动器的/ windows / system32 / drivers /
Once中找到该文件你找到的文件,它需要被复制到/ usr / share / usb / maudio
。
如果我们尝试通过命令行将适当的变量传递给madfudload,至少在amd64系统上,我们得到一个segfault。 那么我们要做的就是修改一个udev规则文件,使所有内容都自动化,并避免出现segfault问题。
我们需要编辑的文件是/lib/udev/rules.d/42-madfuload.rules
并更改TRANSIT部分。 对于这个,我使用gedit,因为条目不包含任何换行符,比我的终端屏幕更宽。你可以使用任何你想要的编辑器。
sudo gedit /lib/udev/rules.d/42-madfuload.rules
# Transit ACTION=="add", SUBSYSTEM=="usb", DEVPATH=="/*.0", ENV{PRODUCT}=="763/2806/*", RUN+="/usr/sbin/madfuload -l -3 -f /usr/share/usb/maudio/ma006100.bin -D $root/$name"
我们需要用这个代替整个大块:
# Transit ACTION=="add", SUBSYSTEM=="usb", ENV{PRODUCT}=="763/2806/*", RUN+="/usr/sbin/madfuload -l -3 -f /usr/share/usb/maudio/ma006100.bin -D $env{DEVNAME}"
保存文件。 现在,插上你的Transit并再次运行lsusb。 你现在应该发现它显示为:
user@host:~$ lsusb
Bus 001 Device 009: ID 0763:2006 Midiman M-Audio Transit
而已。 您的Transit现已安装并在Ubuntu中工作。
自从发布以来,我发现大约有80%的其他机器需要重启。 我不记得那些安装有什么特别的; 所以如果您的Transit在重新启动后仍然显示为DFU,请重新启动计算机,然后再考虑它不起作用。
我也发现为什么你无法使用该设备播放24位。 限制不在ALSA,而是与Transit本身。 由于它是一个USB 1.1设备,它没有足够的带宽可靠地同时发送96/24流。 M-Audio通过在Windows驱动程序中选择多种操作模式来解决此问题。 当固件首次加载时,它默认为16位8000-48000hz模式,这样可以进行录制和播放。 ALSA不知道(或者可能关心)如何改变这个,但是,因此,在Linux下,您不能支持超过48khz的16位。