审判日:Studio Dave 测试 Ubuntu Studio 9.04

作者:Dave Phillips

在 Studio Dave,我至少需要一个 i386 安装,因为某些生产软件尚未为 64 位做好准备,而我恰好需要这些软件。SuperCollider3 可以在 64 位系统上运行,但需要一些棘手的操作;我的 Lightscribe 驱动器的标签打印程序仅为 32 位;并且 VST/VSTi 音频插件在纯 32 位系统中仍然效果最佳。我的主要生产机器运行纯 64 位发行版 (64 Studio),但完整的 Studio Dave 仍然需要 i386 系统。


Jaunty 之路

我已经有一个这样的系统。我的辅助桌面机器运行出色的 Jacklab 音频发行版 (JAD),它基于相当旧的 OpenSUSE 10.2。然而,JAD 已经有一段时间没有更新了,我需要一个最新的发行版。64 Studio 开发者也制作了他们产品的 32 位“遗留”版本,但我想要尝试一种新的风格。于是就有了 Ubuntu Studio

我已经记录了 我最近使用 Ubuntu 8.10 (Intrepid Ibex) 的经历。考虑到我当时遇到的各种麻烦,您可能会想知道我为什么还要回到任何 Ubuntu 的变体。好吧,最新的 Ubuntu Studio 基于最新的 Ubuntu 9.04 (Jaunty Jackalope),并带有经过测试的实时内核,所以我认为现在可能是重新审视这个系统的好时机。

我计划在我的笔记本电脑上安装 Ubuntu Jaunty,这是一台配备 AMD64 Turion X2 CPU、3G 内存和 250G 硬盘的 HP G60 机器。视频由集成的 nVidia 8200M GPU 处理,板载声音由基于 Intel HDA 编解码器的 nVidia 芯片管理。我已经在这台机器上安装了 Ubuntu 8.10,但我决定从 DVD 安装 Jaunty。事实证明,这不是一个好主意,因此开始了我在 Ubuntu 上的最新一系列试验和磨难。

我下载了 i386 和 x86_64 Jaunty 安装程序的 ISO 镜像,检查了它们的 md5 校验和,并将它们刻录到 DVD 光盘上。如前所述,我特别想要 i386 版本,所以我首先尝试安装它。一切都进行得很顺利,直到我收到一条错误消息,指出安装在“选择和安装软件”阶段失败。我通过安装菜单重试了该步骤,但再次失败。然后我尝试继续执行安装 grub 的下一步,但安装程序再次失败,并出现相同的非特定错误,只是这次是针对 grub 步骤。我尝试退出该步骤,但错误消息不会关闭。幸运的是,我仍然可以访问安装菜单,所以我选择中止安装。

我再次尝试安装,这次使用 x86_64 安装程序,并且经历了完全相同的体验,即在相同的阶段出现相同的错误。那时,我留下了一个损坏的分区,并且没有可用的 Jaunty。至少安装程序没有损坏我的 64 Studio 分区,我仍然可以毫无问题地启动到该系统。经过一番研究,我发现 DVD 安装程序确实在某些方面存在缺陷,尽管 md5 校验和是正确的,并且媒体完整性检查报告光盘没有问题。

我在 Google 上搜索后发现,我本可以更好地从我的 Intrepid 安装升级,所以我重新安装了 Ubuntu 8.10,并直接转到其更新管理器。我点击了标有“升级到 Jaunty”的大按钮,让网络安装程序完成它的工作。过了一会儿,我的笔记本电脑就拥有了一个全新的 Ubuntu Jaunty 系统(内核 2.6.28-11-generic),所以我重新启动,登录,并开始组织系统,以便最终用作 Ubuntu Studio 的基础系统。

首先,我从“硬件驱动程序”面板安装了最新的 nVidia 驱动程序。我重新启动,但没有出现 nVidia 启动画面。nvidia-settings 实用程序表示 nVidia 驱动程序未在使用,并建议运行 nvidia-xconfig 程序以正确设置 X 以实现完整的图形硬件加速。我运行了配置程序,重新启动机器,这次 nVidia 启动画面出现了,表明 nVidia 硬件一切正常。我已经获得了 Jaunty 状态。


继续 Ubuntu Studio

在下一阶段,我添加了所有 Ubuntu Studio 元软件包。这些软件包只是专业发行版所需的软件列表。例如,音频软件包包括精选的音频相关软件,以及针对实时性能优化和修补的 2.6.28 内核。在安装这些软件包后,我重新启动,从 grub 菜单中选择了 rt 内核,并很快遇到了下一批麻烦。

第一个问题发生在系统停留在 Ubuntu Studio 徽标显示时。但是,在重新启动后,系统通过了徽标屏幕,我最终到达了登录提示符,并带有显然工作的 nVidia 驱动程序。我登录,环顾四周一会儿,然后退出并重新启动。我再次到达登录页面,但在我登录后,系统在 Ubuntu 工作区出现后立即完全冻结。所谓“完全”是指鼠标和键盘都无响应。我不得不按下电源开关来关闭系统。这不是一个好的结果。

我使用正常的系统内核(非实时)重新启动,登录,并遇到了同样的问题。我的第一个想法是责怪闭源的 nVidia 驱动程序。我在 Google 和 Ubuntu 论坛上做了一些研究,我很快发现其他用户也报告了在非 nVidia 图形芯片组的机器上遇到了相同的磨难。共识是问题不在于视频子系统。为了验证该共识,我遵循了一个有趣的建议。由于我可以到达图形登录屏幕,我也可以切换到控制台显示,在那里我可以以终端提示符登录。我安装了 OpenSSH 服务器软件,从桌面计算机登录到该机器,并使用 X 转发来验证系统在那里并且可用。程序运行良好,GUI 完好无损,因此看来 nVidia 与我的基本问题无关。

根据我在研究中找到的建议,我将以下内核启动选项添加到实时内核在 /boot/grub/menu.lst 中的条目

  nosmp acpi=off pnpbios=off

顺便说一下,acpi 选项需要 pnpbios 选项。当我仅使用 nosmp 和 acpi 选项启动时,引导加载程序发出了一条致命错误消息,建议使用 pnpbios=off 设置,我尝试了一下,瞧,系统现在已打开并可供使用。我登录时鼠标和键盘都没有问题。最后,我可以开始探索 Ubuntu Studio 了。唉,当我尝试运行 QJackCtl 时,我的期望很快就破灭了。它无法连接到 JACK 服务器,我非常肯定我知道原因。事实证明,我是正确的。问题是 Pulseaudio


解决 Pulseaudio 问题

关于 Pulseaudio 的几句话。普通的 Linux 桌面需要一个声音服务器,用于各种目的,例如系统警报和对常规声音应用程序(如媒体播放器)的支持。与 Linux 的其他方面一样,我们现在有太多的解决方案可以实现该目的,结果是一团糟。开发者面临着令人眼花缭乱的选择,而这些选择在功能或预期用途方面肯定是不平等的。因此,当涉及到 Linux 声音服务器时,混乱占据了主导地位。Pulseaudio 试图解决许多问题,但在这样做时,它本身也成为了一个问题。Pulseaudio 本身不一定是坏事甚至有问题的事情。然而,它的实现可能确实非常成问题。

正如我所说,我终于可以启动进入 Ubuntu Studio 了。但是,alsamixer 实用程序仅显示两个活动的音频通道(主音量和我忘记了什么,抱歉)。据我所知,没有其他控件。根据另一条建议,我深入研究了 /var/log/user.log 的深处,并发现了一系列这样的错误

  pulseaudio[3519]: alsa-util.c: Cannot find fallback mixer control "Mic" or mixer control is no combination of switch/volume
  pulseaudio[3519]: alsa-util.c: Cannot find fallback mixer control "PCM" or mixer control is no combination of switch/volume
  pulseaudio[3519]: alsa-util.c: Device plug:front:1 doesn't support 44100 Hz, changed to 48000

Ubuntu Studio 采用 Pulseaudio 作为其默认声音服务器。不幸的是,这种采用方式阻碍了直接使用 JACK,并且任何宣称自己是音频制作系统的 Linux 发行版都肯定会使用 JACK 作为其音频服务器,而不是 Pulseaudio。典型的解决方案只是删除 Pulseaudio,但 Ubuntu 不允许这样做,除非删除 GNOME 桌面,这是一个相当极端的做法。更糟糕的是,Pulseaudio 守护程序是持久存在的,因此 killall pulseaudio 仅在下次调用音频系统之前有效,届时守护程序会重新加载自身并仍然妨碍 JACK 的成功启动。幸运的是,我发现了一个名为 Keeping The Beast Pulseaudio At Bay 的优秀 HOWTO,作者是一位名为 idyllictux 的用户。感谢他的指导,我安全地禁用了 Pulseaudio,我向任何想要搁置 Pulseaudio 的人推荐他的建议。

顺便说一句,我想强调一下,我本身并不反对 Pulseaudio。它的开发者承担了一项极其困难的任务,我相信他们正在努力使其成为主流 Linux 发行版首选的系统声音服务器。然而,它目前不适合我的目的,并且它在 Ubuntu 中的当前实现给我带来了问题。来自 idyllictux 的建议很好地解决了这个问题。也许他的建议流程可以作为配置选项提供给高级用户?在发行版方面解决问题之前,我担心 Pulseaudio 会受到用户的指责,他们没有意识到问题可能是由于发行版对服务器的实现而发生的,而不是 Pulseaudio 本身的任何特定方面。


更多配置技巧

我在 Ubuntu Intrepid 上的经验教会了我一些其他技巧,这些技巧在我对这个新的基于 Jaunty 的 Ubuntu Studio 感到满意之前是必要的。我删除了网络管理器(使用 Synaptic 软件包管理器很容易完成),并将默认网络设备 (eth0) 设置为在系统启动时通过 dhcp 自动连接。我禁用了对 /dev/sdb 和 /dev/sr0 的 HAL 轮询,这两个设备都没有在 /etc/fstab 中列出。轮询每 2 秒导致一次 xrun(通过 top 实用程序验证)。我关闭了机器的触摸板,但这只是在发现我用于 Intrepid 的解决方案不再适用于 Jaunty 之后。值得庆幸的是,解决方案非常简单,只需在 /etc/rc.local 中添加一行

  modprobe -r psmouse

Shazam,不再有随机的触摸板干扰。顺便说一句,以防有人想知道我为什么不直接使用鼠标/触摸板的管理工具:没有用于控制触摸板的选项卡或其他对话框,所以我只能手动重新配置它。

当我发现 JACK 无法在实时模式下启动时,出现了一个更严重的问题。令人惊讶的是,Ubuntu Studio 不会自动创建音频组,所以我不得不打开“系统”->“管理”->“用户和组”对话框,创建组,并将自己添加到其中。我还必须编辑 /etc/security/limits.conf 以添加这些指令

  @audio - rtprio 99
  @audio - nice -19
  @audio - memlock unlimited

我重新启动系统,登录,配置并启动 QJackCtl,瞧,我身处实时天堂。图 1 显示了我使用的设置,延迟为 8 毫秒,来自我的 Edirol UA25 USB 音频/MIDI 接口没有 xrun。

图 1. Edirol UA25 的 QJackCtl 设置

顺便说一句,Ubuntu Studio 准备 网页是此阶段必不可少的资源。那里的信息清晰地呈现,并且应该是任何 Ubuntu Studio 新手(甚至不是新手)的必读内容。

指定的更改是针对每个高性能音频发行版推荐的,这些数据直接来自 JACK 开发者,那么为什么这一步要交给用户呢?在系统配置期间让安装程序进行这些条目似乎很简单。音频组的创建也是如此,它应该由安装程序准备,并且用户应该在配置期间自动添加到其中。


终于继续前进了

经过这一切之后,我终于在我的 HP G60 上拥有了一个功能齐全的 Ubuntu Studio(图 2),它具有稳定的低延迟音频性能,精选的声音和音乐制作软件,以及对 nVidia 加速图形的支持。我喜欢从源代码包构建自己的软件,所以我继续安装了必要的、大量的开发包、build-essential 元软件包,以及完整的 Linux 软件开发环境所需的任何其他东西。正如之前报道的那样,我的第一个项目是 MusE 1.0 的 rc2 版本,我很高兴地写道,构建完成时没有任何抱怨,安装非常轻松,并且 MusE 的性能在我的初始测试中非常稳定。

图 2. Ubuntu Studio 9.04


结论

我才刚刚开始涉足 Ubuntu Studio 元软件包提供的各种好东西。我渴望查看最新的 LMMSPd,我计划将这台机器作为我使用 SuperCollider3 的主要平台。由于系统的时效性,我可以构建和测试最新的 Ardour3 以及许多其他需要最新图形和音频组件的应用程序。

就性能而言,这个系统现在非常出色。唉,为了使其达到这种状态,我经历了很多艰辛。我的问题的解决方案并不难找到或实施,但对于不熟悉 Linux 内部运作的用户来说,它们将极具挑战性。我认为 Ubuntu Studio 安装程序需要在为专业音频需求准备系统方面做得更深入,也许可以为用户提供在高性能桌面媒体播放系统、低延迟专业音频制作环境或两者的一些稳定混合物之间进行选择。Pulseaudio 问题应该很容易被用户解决,并且更多的系统探测可能能够发现和解决诸如不必要的 HAL 轮询之类的问题。

值得指出的是,由于涉及的硬件(这是一台相当新的机器),我的经历可能并不典型,您应该预期您的结果会有所不同,希望会更好。我想听取其他 Ubuntu Studio 用户的意见,所以请随时在下面的评论区添加您的意见。

最后,我要感谢填充 Ubuntu 论坛的用户和开发者,我绝对需要并听取了他们的帮助和建议。还要感谢 Linux 音频用户 邮件列表的常客,我继续从他们那里学到很多东西。我经历了一段崎岖的道路,但有了如此优秀的陪伴,道路变得更加容易。


结尾

接下来,是对 Modartt 的 Pianoteq Linux 版本的评测。在那之前,请保持关注、直立和稳定。

加载 Disqus 评论