Intro

在开始之前先添加几个关键词吧:Linux、Ubuntu、XMOS、USB、MPD、PulseAudio 之前从本地网站的交易板块上买到了一台 Grace Design m9XX,一台 USB 使用 XMOS 方案的 DAC/Amp 一体机。今天先不谈这家伙声音怎么样,而是谈谈怎么让这家伙在使用 USB 输入时在 Linux 下发声。

启用 XMOS 驱动

为了使用 m9XX 的 U2 模式,首先得启用 XMOS 驱动。Ubuntu 10.04 以及内核版本 2.6.32 以上的系统一般需要创建 /etc/udev/rules.d/99-xmos.rules 文件,然后将以下的内容粘贴进去:

SUBSYSTEM!=”usbusb_device”, GOTO=”xmos_rules_end”
ACTION!=”add”, GOTO=”xmos_rules_end”

20b1:f7d1 for xmos xtag2

ATTRS{idVendor}==”20b1”, ATTRS{idProduct}==”f7d1”, MODE=”0666”, SYMLINK+=”xtag2-%n”

0403:6010 for XC-1 with FTDI dual-uart chip

ATTRS{idVendor}==”0403”, ATTRS{idProduct}==”6010”, MODE=”0666”, SYMLINK+=”xc1-%n”

LABEL=”xmos_rules_end”

然后运行 service udev reload 并重新插入 XMOS DAC。

安装 PulseAudio 控制组件

Ubuntu 下可以直接从 apt 安装,无需添加额外的软件源:

1
apt install pavucontrol pavumeter paprefs

安装完成后打开 paprefs,在最后一个选项卡中启用 “添加虚拟输出设备” 选项。之后再使用 pavucontrol 选择各软件所使用的不同输出设备及调整对应音量等。

过渡说明

以上是一篇很短很短的小笔记,不过在找到解决方案之前我也是走了一些弯路。在此我补充一些其他信息。 ALSA 是比 PulseAudio 更加接近系统底层的音频组件,可以直接和硬件打交道。理论上由于减少了软件处理的步骤,ALSA 输出的声音比 PulseAudio 输出更为纯净。但是不巧的是 ALSA 的软件混音功能相对来说不够完善,对于我这样的小白用户来说配置起来较为不便。如果直接移除 PulseAudio 就会发生单一软件独占音频输出的情况(Clementine 自带的雨声效果也实现不了了),而且切换输出设备较为不便,有些弃帅保车的意味。 其实采用上述方案后,即使在 pavucontrol 控制面板中看到了 ALSA plugin 的字样,音频还是经过了 PulseAudio 的处理。在 Arch Linux Wiki 中(大概)可以通过移除 PulseAudio 与 ALSA 兼容层软件包,使 ALSA 程序绕过 PulseAudio,以解决这个问题。然而遗憾的是,Ubuntu 下的 PulseAudio 集成度较高,这样的解决方案并不可行。(当然读者如果有能力自己编译 / 修改出一个符合要求的 PulseAudio,那是坠吼的啦!)

另一种方案

想一边好好享受音乐一边心情舒畅地码代码,那就禁用 PulseAudio 只启用 ALSA;想一边听音乐一边听课堂录音,那就启用 PulseAudio。一种方法是修改 PulseAudio 的配置文件,在此我只记录单用户的版本。 首先是暂时禁用 PulseAudio:

  1. cp /etc/pulse/client.conf ~/.config/pulse/

  2. vi ~/.config/pulse/client.conf,将
    ; autospawn = yes
    修改为
    autospawn = no

  3. :wq 保存退出,并重启电脑 至于重新启用 PulseAudio,只需逆向执行上述第二步并保存重启。 这种方案就需要重启切换,已经比较不方便了。况且没有好用的 GUI 控制面板可供使用,在我的系统上暂时禁用 PulseAudio 后会将 m9XX 作为默认输出设备,在其他系统上就不能保证了。

完全移除 PulseAudio

高级用户当然可以只使用 ALSA 啦,可惜我并没有深入下去。只需要一行命令就能够直接移除 PulseAudio:apt remove pulseaudio。至于移除之后的配置,还请移步补充阅读部分吧。

补充阅读

Outro

关于 Ubuntu 上的 HIFI 配置,这篇笔记还有很多部分没有触及,比如禁用 MPD 重采样的配置、添加原生 DSD 支持、其他播放器的配置等等等等。条件允许的话大概可以整理组织成一个系列,可是光是弄完这篇笔记就让我觉得有些麻烦,而我又姑且算是个节能主义奉行者。这个话题下更好的解决方案其实是使用 Windows,或者是使用 Audiophile Linux 这样开箱即用的系统,折腾这个其实并没有多大的意义。 当然了,折腾是使人类颈部劳累的好伙伴,啊不对,进步,进步。只是个人感觉同样是 m9XX,为什么 Windows 下的声音就更加柔和好听呢?啊,我也终于再一次体会到 Windows 的强项了。

update:

后续内容 现已更新