Linux 音频故障排除,第 1 部分

作者:Dave Phillips

我有一位朋友,他在尝试设置传说中的低延迟高性能 Linux 音频系统时,除了噩梦之外一无所获。为了同情他的困境,我在这里提出了一个分为三个部分的入门指南,用于排除 Linux 声音系统的常见和不常见问题。第 1 部分和第 2 部分将介绍用于分析和配置音频设置的程序。第 3 部分将列出最常见的问题以及建议的解决方案。

本周,第 1 部分介绍了一些有用的系统分析工具和实用程序,它们带有图形用户界面。

第一步

Linux 音频系统是一个复杂的野兽,ALSA 是其跳动的心脏。好吧,它应该是这样,但是当它不跳动时你该怎么办?

首先,考虑典型计算机声音系统的关键部件。可能发生故障的三个主要阶段是

  1. 声卡和外部设备之间的连接。
  2. 声卡及其配置。
  3. 您的系统软件配置。

应检查第 1 阶段是否连接正确、电源状态、电缆完整性以及其他硬件方面。消费级声音设备通常提供质量较差的连接器,尽管 Creative 的某些声卡在其“Live Drive”控制面板上包含更耐用的连接点。如果您的外部设备包括放大器或有源扬声器,请确保电源已打开(并仔细检查扬声器之间那些脆弱的连接器)。电线和电缆很容易损坏,导致类似静电的噪音和其他声音不连续,并且它们的连接器应牢固连接。您不需要购买带有镀金硬件的电缆,但您应该避免使用带有模制塑料连接器的廉价电线。请记住,您的音频系统是一个零件链,并且像任何链条一样,它的强度仅取决于其最薄弱的环节。避免薄弱环节。

如果声卡未完全插入插槽,则声卡本身可能会导致音频问题。如果放置在某些视频卡或网卡旁边,它也可能成为噪声源。我将在本文后面讨论声卡和系统配置的详细信息,但首先我有一些建议可以帮助您避免一些可预测的问题。

第一次就做对

我再怎么强调购买用于 Linux 音频的硬件之前做功课的必要性也不为过。如果您是从 Windows 进入 Linux 音频世界,您一定不要假设您的设备将受到支持。要获取该信息,您的第一站应该是新的和改进的 ALSA 声卡矩阵,如果您在那里找不到您需要的东西,您应该继续访问 LAU 邮件列表及其档案。随着 Linux 本身扩大对 USB、Firewire 和其他 i/o 设备和协议的支持,这些步骤变得越来越必要。要获得有关推荐(和不推荐)硬件的最新信息,请搜索 LAU 档案并在邮件列表中提问。

专业级音频工作的典型建议包括 RME HammerfallM-Audio Delta 系统。但是,建议潜在买家在购买任何硬件之前,甚至包括推荐的项目,都先在 LAU 列表上咨询。敏感点包括固件版本、前置放大器要求、可用采样率等等。

ALSA 支持更多种类的消费级声卡,因此建议更容易提出。来自 Creative Labs 的大多数声卡都得到了很好的支持,但同样,我也建议查看 ALSA 声卡矩阵和 LAU 邮件列表,以获取有关您潜在购买的最新报告。

如果 USB 音频设备真正符合标准,则通常会受到支持。 LAU 邮件列表存档包含一些关于 USB 设备及其在 Linux 下性能的有价值的讨论串,在购买 USB 声卡之前查阅存档不会有坏处。由于 FFADO(前身为 FreeBOB) 项目的工作,Firewire 支持最近才进入 Linux 音频世界。请查阅 FFADO 网站和 LAU 列表,以获取最新的可用性报告。

对于严肃的录音,至少对于多轨/多声道 CD 质量的数字音频 I/O,通常不建议使用板载台式机和笔记本电脑芯片组。它们可能适用于 CD/DVD 播放的音频功能,但它们对于严肃的音频制作来说不够强大。 hda_intel 芯片组尤其容易出现问题;有关该芯片组和其他难以处理的笔记本电脑和笔记本电脑音频芯片组的详细信息,请参阅 LAU 存档。

工具和实用程序:GUI

Windows 控制面板对于用户来说一直是喜忧参半,但它确实成功地将大量关于您系统的信息放入一个方便的实用程序中。 Linux 本身不提供这样的实用程序,但许多 Linux 发行版和桌面环境现在提供某种 GUI 来调查和配置您的系统及其各种设备。例如,openSUSE 包括 yast(“另一个系统工具”),这是一个出色的实用程序,可以报告有关您的机器及其操作系统的丰富详细信息。

图 1 至图 4 中的屏幕截图显示了 yast 提供的广泛的信息和控制深度。图 1 展示了 yast(实际上是 yast2)GUI。左侧面板列出了常规类别,每个类别都显示其自身的一组可用设备和服务。图 2 显示了选择“硬件”类别,然后单击“硬件信息”图标的结果。图 3 显示了相同的面板,其中声音设备信息已完全显示。

图 1:YAST


图 2:通用硬件报告


图 3:声卡信息


图 1-3 中的面板是非交互式的,它们仅报告当前的配置详细信息。要重新排序、启用/禁用或以其他方式重新配置您的音频设备,请打开“声卡配置”对话框(“硬件”类别,“声音”图标)。

图 4:YAST 中的声卡配置


图 4 展示了我的 JAD 盒子的配置对话框。根据其报告,我的系统安装了两张声卡,一张真正的 SBLive Value 和一张虚拟 MIDI 卡(ALSA virmidi 设备)。 SBLive 是在安装期间检测到的,以及一个板载音频芯片组。我在机器的 BIOS 中禁用了板载设备,后来添加了 ALSA 虚拟 MIDI 端口模块。它默认安装为第二张卡,我就是这样保留系统的。

对话框的“编辑”按钮会调用驱动程序模块配置选项的交互式显示。根据您的声卡,这些选项可能很多也可能很少。例如,virmidi 模块仅提供一个参数,用于创建多于默认的四个虚拟 MIDI 端口。相比之下,我的 SBLive 的模块选项包括红外控制启用/禁用、最大波表合成器声音数、最大采样缓冲区大小以及其他三个。大多数用户在安装后应该不需要进一步配置声卡,但在需要或希望时,可以进行更精细的控制。

QJackCtl

QJackCtl 是 Studio Dave 的主要 JACK 控制实用程序,但我在此处提及它,因为它可以用作系统分析工具。“消息”面板报告启动和操作 JACK 服务器时遇到的任何问题,“状态”面板扩展了 QJackCtl 窗口显示中看到的信息,“设置”对话框提供了一个方便的集中配置实用程序。唉,如果您不知道什么影响什么,那么“设置”对话框就不是很有用,但帮助就在手边,或者至少是在网上:了解 JACK (PDF 370K) 最初是为 2006 年的 Linux Pro Magazine 编写的,但其基本信息仍然有效,特别是 QJackCtl 的“设置”对话框中“设置”参数的解释性列表。

图 5:QJackCtl 展开


AlsaMixerGUI

Maarten de Boer 的 AlsaMixerGUI 显示与 alsamixer 控制台程序相同的一组控件,但界面更友好,并且它还添加了 /proc/asound 系统的完整报告。右键单击 ALSA 徽标,从下拉菜单中选择“Proc Info”,应该会出现类似于图 6 中的屏幕截图的报告。我将在本文后面解释 proc 系统,但图 6 指出了其在排除 ALSA 故障时的相关性。

图 6:AlsaMixerGUI 报告


AlsaMixerGUI 不是唯一提供此类报告的声卡混音器。在您的混音器上四处查看,您可能会找到一些有用的隐藏系统分析工具。

Linux 音乐制作人

即使您看不懂西班牙语,您也应该访问 Carlos Pino 的音乐页面。我个人最喜欢的歌曲是 Smooth (OGG 2M)Open Horizon (OGG 4.8M),这两首甜美的乐曲展示了 Carlos 作为编曲家和独奏家的技巧。

Edgar Aichinger 是 JackLab 论坛和 Freenode 上的 #jacklab IRC 频道的常客,他在那里被称为 edogawa。除了他在 JackLabs 的活动外,他还是一位慈爱的父亲和令人印象深刻的琉特琴演奏家,您可以在他的 Mille Regretz (OGG 2.8M) 和 Denis Gaultier 的 Prelude (OGG 1.4M) 的演奏中亲耳听到。

结尾

在下一篇文章中,我将介绍如何使用一些不起眼但功能强大的命令行工具从提示符处进行故障排除。同时,我鼓励读者发送他们自己的音频系统配置报告和故障排除技巧。如果我们能够收集到足够的有价值的材料,也许我们可以说服我们中的一个人将其整理成一个有用的页面,放在 Linuxaudio.org 上,供大家访问和帮助。

加载 Disqus 评论