StudioDave 评测硬件并体验 Ubuntu 8.10

作者: Dave Phillips

几个月前,我开始感觉到需要更换我那台老旧且故障频出的 HP Omnibook 4150 笔记本电脑。即使使用外部硬件,这台机器的音频功能也微不足道,但它一直可以用于撰写文章和作为便携式 MIDI 作曲环境。唉,经过多年的旅行和滥用,Omnibook 的硬盘终于走到了生命的尽头。我不担心我的数据,硬盘已经备份了,但显然购买一台新的便携式电脑的时候到了。

我的家乡在购买硬件方面没有太多选择。我们有一家沃尔玛、一家百思买、一家史泰博商店和一些当地的维修店。这里的销售人员很少有人了解 Linux,所以我对能买到满意的产品不抱太大希望。不过,我在百思买找到了一款有竞争力的产品,即 惠普 G60-125NR。经过深思熟虑,并从我在 Linux 音频用户 邮件列表中的同事那里获得了许多有益的建议后,我决定购买这台机器。

这次购买是有风险的。谷歌只提供了少量关于这台机器在 Vista 下性能的信息,而且这些报告并没有让人感到非常满意。但是,我确实找到了一些报告,表明最近的 Ubuntu 系统在这台机器上运行成功,而且这台机器的硬件似乎非常适合我的需求。G60 由 AMD Turion 处理器驱动,主频为 2 GHz,包括 250G 硬盘、3G 内存和一个 LightScribe CD/DVD-RW 驱动器。显卡由板载 nVidia geForce 8200M 提供,声音由英特尔的 HDA 编解码器处理。Vista 预装在机器上,所以我快速浏览了一下,然后擦除了磁盘。非常漂亮,但速度相当慢。我希望在 Linux 下看到和体验到更好的性能。

我对这台机器有明确的意图。最重要的是,它必须运行 AVSynthesis,这意味着它需要加速 3D 图形功能以及对高质量实时音频的支持。我还想安装一个完整的环境,用于构建特定版本的 Csound 5.09,并从其 SVN 源代码编译 Ardour 3,这意味着我需要一个相对较新的 Linux 发行版。其他必需的组件包括最新版本的 JACK 和最新的 Java SDK

那么我的情况如何呢?我现在就剧透一下,告诉您一切进展顺利,我对我的购买感到满意。但 Linux 毕竟是 Linux,配置一台用于音频制作的 Linux 机器可能会很麻烦。请继续阅读,了解 Studio Dave 移动办公的试验和磨难的详细信息。


在开始的时候

一台新机器值得安装一个新的操作系统,所以我决定在确定一个操作系统之前试用几个发行版。我首先尝试了 64 位 Ubuntu 8.10Arch Linux 的纯 vanilla 安装。两者都失败了,但我成功安装了 OpenSUSE 11.0。唉,nVidia 二进制驱动程序无法加载,所以我遵循了另一条线索(感谢谷歌),安装了 32 位版本的 Ubuntu 8.10,又名 Intrepid Ibex。

我必须强调,我在其他发行版上的失败很可能是我自己的错误。当我安装 OpenSUSE 时,我了解到不良驱动程序(Atheros wifi 驱动程序)可能会冻结安装。我通过在安装选项中添加 brokenmodules=ath5k 解决了这个问题,不久之后我就有了一个可用的 OpenSUSE 系统。我对 Ubuntu 安装应用了相同的选项,以及 brokenmodules=ath_pci。我不确定我是否需要这两个选项,但安装顺利完成。

在安装程序完成基本的用户级别配置后,我用 Fluxbox 替换了 GNOME 桌面,并将实时内核添加到我的启动选择中。我还添加了 nVidia 的闭源驱动程序,这要归功于 Ubuntu 的硬件驱动程序管理器,这是一项简单的任务。但是,我需要将自己添加到视频组,才能作为普通用户获得完整的 GL/GLX 支持。解决了这个问题后,我准备好与机器的音频硬件作斗争了。


声音场景

默认情况下,Intrepid 设置为简单的桌面声音,例如 DVD、CD 和声音文件播放,但我的需求要高得多。正如我所预料的那样,设置我需要的音频支持是一项麻烦的工作。

由于某种原因,Intrepid 没有创建音频组,而加入这样的组对于确保优先访问声音设备是必要的。幸运的是,GNOME 控制中心提供了一个很好的控制面板,用于定义新组及其成员。完成此步骤后,我继续配置 JACK 音频服务器。我需要 JACK 提供完美的性能,而仅此一项就花了一些时间才能实现。

G60 的音频芯片组基于英特尔的 HDA 编解码器。此编解码器主要为 DVD 和其他音频流的高品质播放而设计,包括各种环绕声配置。芯片组本身并没有什么可怕的地方,但它绝对不是为桌面音频制作而设计的。当调用 JACK 服务器时,这个事实会明显地表现出来。在不改变基本系统中的任何内容的情况下,JACK 的性能非常差,并且持续不断地出现 xruns。我查阅了谷歌,发现这个问题是众所周知的,并且有许多提议的解决方案。这些建议包括将周期大小设置为 3,将每周期帧数设置为 256,并将采样率设置为 44100。除了 JACK 的这些设置之外,我还了解到某些选项应该传递给 ALSA 内核声音模块 (snd-hda-intel),包括型号规范、DMA 相关问题的修复以及启用 MSI(消息信号中断)的开关。唉,所有建议的修复程序都不适用于我的硬件。当我快要放弃板载声卡时,狂热爱好者 Shane Richards 向我指出了 Rui Nuno Capela 出色的 rtirq 脚本。我按照说明安装了该脚本并启动了它,以便

  dlphilp@maximus:~$ sudo src/rtirq-20071012/rtirq.sh start
  rtirq.sh: start [rtc] irq=8 pid=852 prio=90: OK.
  rtirq.sh: start [snd] irq=10 pid=1970 prio=85: OK.
  rtirq.sh: start [ohci_hcd] irq=5 pid=1916 prio=80: OK.
  rtirq.sh: start [ohci_hcd] irq=11 pid=1156 prio=79: OK.
  rtirq.sh: start [ehci_hcd] irq=7 pid=1920 prio=80: OK.
  rtirq.sh: start [i8042] irq=1 pid=841 prio=75: OK.
  rtirq.sh: start [i8042] irq=12 pid=840 prio=74: OK.

按照 Shane 的建议,我将 JACK 的优先级设置为 70 并重启了服务器。我惊讶地发现,我可以实现此硬件可能达到的最佳延迟,并且完全不会出现 xruns。延迟几乎不高(JACK 报告为 17.4 毫秒),但在我部署更好的外部接口之前,它还是可以用的。回顾一下,以下是我的 JACK 设置

  jackd -R -P 70 -d alsa -p 256 -n 3 -r 44100

其中 -R 表示实时激活,-P 设置优先级,-d 命名音频系统后端,-p 设置周期大小,-n 设置每周期帧数,-r 等于采样率。


烦恼和解决方案

系统扬声器的嘟嘟声非常吵,直到我发现了硬件音量控制键。G60 包括一个功能激活键(标记为 fn),位于 Windows 键的左侧。数字键盘上的 *-+ 键 - 标记为扬声器静音、降低音量和增大音量 - 与 fn 键组合激活。

我通常不喜欢笔记本电脑的触摸板,我很高兴看到 G60 包含一个禁用该设备的开关。唉,它不起作用,或者我以为不起作用,直到我在 GNOME 控制中心实用程序中发现了触摸板控件。我仍然需要找到一种在启动时禁用触摸板的方法,但至少现在我可以Session 期间关闭该设备。

我知道 Linux 对 LightScribe 光盘驱动器存在一定程度的支持,我很有兴趣看看这种支持在我的新硬件上效果如何。我安装了 LightScribe 的系统软件,并测试了他们的 SimpleLabeler 以及来自 LaCie 的 4L-gui 和 4L-cli 标签工具。一切都如广告宣传的那样工作,尽管我必须为 LaCie 软件安装 libstdc++.so.5。这些程序都是闭源的,但 LightScribe 的 SDK 以 GPL 许可下的自由软件形式提供。现在,如果我能弄清楚如何使用 4L-gui 添加文本,我就完成了 LightScribe 的准备工作。


未经测试

G60 包括一个用于 HDMI 连接的端口,但我尚未对其进行测试。HDMI 非常有趣,值得研究,并且 ALSA (1.0.17) 和 nVidia (177.80) 驱动程序的已安装版本支持 G60 上的接口,所以我最终会对其进行检查。

我也未测试机器的 wifi 支持及其媒体卡读卡器。抱歉,我没时间了。


尚存问题

仍然存在一些烦恼。我为我的 MidiSport 2x2 USB MIDI 接口安装了固件和加载规则,但该设备仍然无法初始化,直到我拔下它并重新插入。非常欢迎提出解决此问题的建议。rtirq 脚本也存在类似的问题,我希望在我的登录出现时就加载它。

当我对这篇文章进行最后润色时,我的 Edirol UA25 到了。我再次面临解决 JACK 的 xrun 问题,但我相信我很快就会让它达到我的期望。

我提到我打算建立一个足够新的开发环境,以便从其 SVN 源代码构建 Ardour 3。唉,Intrepid 的组件有点太新了,并且该环境的 GTK 支持实际上对于 Ardour 3 来说太新了。我怀疑这个问题不会持续太久。我确实使用 SYSLIBS=1 成功编译了 Ardour 3,这是一个 Ardour 开发人员明确支持的选项。我将有更多关于 Ardour 3 的报告,但必须等到我可以按照官方建议构建它为止。


以及衷心感谢...

我感谢 LAU 列表中的同事们在许多主题上提供的许多建议,但他们在这次购买方面尤其有帮助。非常感谢 Mark Knecht(又名 He Who Never Sleeps)、Shane Richards、Arnold Krille 以及所有回应我的求助请求的人。由于他们的支持和鼓励,我更有信心地进行了购买。


满意度

我对这台机器感到满意,Ubuntu 8.10 非常适合该硬件。AVSynthesis 在实时环境中运行良好,并且 rtirq 脚本消除了 JACK 性能中的 xruns。apt 系统使更新系统和设置功能齐全的开发环境变得容易,当然还有整个 UbuntuStudio 应用程序集合供我探索。我将有更多关于我的新机器及其在 Linux 音频软件方面的性能要说,所以请务必再次查看。

加载 Disqus 评论