Как настроить приоритет IRQ в Ubuntu 12.04?
Вопрос говорит обо всем. Я вижу некоторые учебники в Интернете для более ранних выпусков Ubuntu, но мне тяжело 12.04.
2 ответа
Подобные вопросы очень важны при запуске профессиональных аудио приложений. Как видите, и как я уже много раз переживал в прошлом, Askubuntu.com имеет тенденцию говорить нам, что нам не нужен ответ на подобные вопросы. По этим узко сфокусированным вопросам вы найдете более дружественную помощь в таких местах, как форум LinuxMusicians или IRC-канал OpenSourceMusicians (# opensourcemusicians).
Я использую KX Studio (это профессиональный дистрибутив аудио поверх Kubuntu), и я получил большую помощь как на IRK-каналах #kxstudio, так и #ardour.
Во всяком случае, вот как вы делаете это сейчас, когда я понял это с помощью вышеуказанных ресурсов.
Используйте эти команды, чтобы обнаружить шину USB и IRQ вашего аудиоустройства:
- lsusb (или lsusb -t)
- lspci (или lspci -v)
- cat / proc / interrupts
В моем случае мой аудиоинтерфейс 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 Device 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.
Следующий, /proc/interrupts
сказал мне, что IRQ 23 имеет имя устройства ehci_hcd:usb2
связано с этим.
Я также использовал tree /sys/bus/usb/drivers/usb/
а также cat /proc/asound/cards
Перекрестные ссылки для выбора правильного контроллера USB.
Вам также может пригодиться следующий скрипт на Perl:
realTimeConfigQuickScan.pl
Как правило, нет необходимости настраивать приоритет IRQ, если у вас нет особых проблем и вы хотите применить параметры загрузки, такие как irqpoll
и другие, перечисленные в Ubuntu Wiki. Лучше всего позволить ядру управлять ими или искать в ваших биографиях какие-либо параметры, так как это будет лучшим местом для конфигурации.
Однако вы, вероятно, имеете в виду пакет hwtools, который был доступен еще до выпуска Hardy (8.04) и который содержал irqtune
программа; эта утилита позволяет настраивать IRQ последовательных устройств, таких как модемы, что, как говорили в прошлом, иногда улучшало производительность. Последовательные порты редко используются в наши дни, но в настройках bios
чтобы включить / отключить и настроить их.
Однако в репозиториях есть программа https://irqbalance.org/, предназначенная только для многоядерных CPUS. Здесь есть больше информации, но она может не подходить вам, так как это больше связано с балансировкой нагрузки на сервер.
Если вы хотите перечислить свои порты IRQ в Ubuntu, вы можете запустить 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