这个问题说明了一切。我在网上看到了一些针对 Ubuntu 早期版本的教程,但对于 12.04 却遇到了困难。
答案1
在运行专业音频应用程序时,此类问题非常重要。正如您所见,正如我过去多次经历过的那样,Askubuntu.com 倾向于告诉我们,我们不需要这类问题的答案。对于这些狭隘的问题,您可以在以下地方找到更友好的帮助:Linux音乐家论坛或 OpenSourceMusicians IRC 频道 (#opensourcemusicians)。
我运行 KX Studio(这是 Kubuntu 上的专业音频发行版),并且在 #kxstudio 和 #ardour IRC 频道上获得了很多帮助。
无论如何,既然我已经在上述资源的帮助下弄清楚了,那么现在您可以这样做。
使用这些命令来发现音频设备的 USB 总线和 IRQ:
- lsusb (或 lsusb -t)
- lspci (或 lspci -v)
- 猫/ proc /中断
就我而言,我的 USB 音频接口是 ehci_hcd:usb2,IRQ 为 23。可能不太容易弄清楚,但如果您交叉引用上述列表,经过一番侦查工作后,您就会找出哪个 IRQ 值得关注。请参阅下文了解更多提示。
接下来,安装 rtirq,
请参阅 Ubuntu Wiki:
https://wiki.edubuntu.org/UbuntuStudio/rtirq
现在编辑文件 /etc/default/rtirq(以 sudo 身份)。并查找包含以下内容的行RTIRQ_NAME_LIST=
如果您希望 IRQ 23 具有最高优先级,请将其添加到列表的前面,如下所示:
RTIRQ_NAME_LIST="23 usb i8042 snd"
但是,就我而言,我宁愿使用设备名称,以防 IRQ 分配由于某些未知原因而发生变化。因此我像这样指定它:
RTIRQ_NAME_LIST="ehci_hcd:usb2 usb i8042 snd"
只需将设备(或 IRQ)放在列表的最前面即可获得最高优先级。这是一个空格分隔的列表。
保存文件,然后运行:
sudo /etc/init.d/rtirq restart
无需重启。您将看到上述命令列出的 IRQ 优先级。但如果您想稍后再查看它们,请运行:
sudo /etc/init.d/rtirq status
并检查cat /proc/interrupts
是否需要。
正如承诺的那样,还有一些额外的提示:
使用后lsusb
我发现我的音频接口位于 USB 总线 001 设备 003 上。
接下来,使用lspci -v
我发现我有 3 个 USB 控制器。我发现一个列表如下:00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1
。列表中的标志包括这些:Flags: bus master, medium devsel, latency 0, IRQ 23
。因此,假设我选择了正确的 USB 控制器(控制总线 01 的控制器),这些标志告诉我我对 IRQ 23 感兴趣。
接下来,告诉我 IRQ 23 具有与之关联的/proc/interrupts
设备名称。ehci_hcd:usb2
我还使用tree /sys/bus/usb/drivers/usb/
和cat /proc/asound/cards
交叉引用信息来选择正确的 USB 控制器。
您可能还会发现以下 Perl 脚本很有用:
realTimeConfigQuickScan.pl
答案2
通常情况下,无需调整 IRQ 优先级,除非您遇到特殊问题,并希望应用启动选项(irqpoll
如Ubuntu 维基百科。最好让内核管理它们或者在 BIOS 中查找任何选项,因为那将是配置的最佳位置。
然而,你可能指的是硬件工具甚至在 Hardy (8.04) 之前就已存在的软件包,其中包含该irqtune
程序;此实用程序允许您调整串行设备(如调制解调器)的 IRQ,过去据说这有时可以提高性能。现在很少使用串行端口,但可能存在bios
启用/禁用和调整它们的设置。
然而,存储库中有一个名为中断平衡,专为多核 CPU 设计。更多信息但它可能不适合您,因为它更多地与平衡服务器负载有关。
如果您想在 Ubuntu 中列出您的 IRQ 端口,您可以运行cat /proc/interrupts
或安装该程序的下一代版本procinfo
,然后运行该程序和随附程序lsdev
以获取更多信息。以下是一些示例输出procinfo
,非常简短,可帮助您识别您的 IRQ:
irq 0: 49 timer irq 15: 30500 pata_sis
irq 1: 18634 i8042 irq 17: 78117 firewire_ohci, ye
irq 6: 3 floppy irq 18: 82 snd_intel8x0