Выбор прерываний последовательных устройств
Обычный PC имеет ttyS0 и ttyS2 на IRQ 4, и ttyS1 и ttyS3 на IRQ 3. Вы можете увидеть, какие IRQs используются, напечатав: setserial /dev/ttyS2, и т.д. Просмотр /proc/interrupts покажет некоторых из них. Чтобы использовать более, чем два последовательных устройства, вы должны будете переназначить прерывания. Хороший подход состоит в переназначении прерывания для параллельного порта. В PC обычно для ваших параллельных портов установлены прерывания IRQ 5 и IRQ 7, но мало кто использует два параллельных порта. Вы можете переназначать одно из прерываний на последовательное устройство, и прекрасно использовать оставшийся параллельный порт. чтобы сделать это, вам нужна будет программа setserial. Кроме того, вы должны поиграть с перемычками на матернской плате, свериться с документацией на вашу плату. Установите перемычки на IRQ, который вы хотите назначить каждому порту.
Вы должны установить все так, чтобы имелось одно и только одно прерывание для каждого последовательного устройства. Вот как Грэг устанавливает его в /etc/rc.d/rc.local - вы должны сделать это в файле, который выполняется после запуска:
/sbin/setserial /dev/ttyS0 irq 3 # моя последовательная мышь /sbin/setserial /dev/ttyS1 irq 4 # мой Wyse dumb терминал /sbin/setserial /dev/ttyS2 irq 5 # мой модем Zoom /sbin/setserial /dev/ttyS3 irq 9 # мой модем USR
Стандартные назначения IRQ:
IRQ 0 Таймер, канал 0 IRQ 1 Клавиатура IRQ 2 Cascade for controller 2 IRQ 3 Последовательный порт 2 IRQ 4 Последовательный порт 1 IRQ 5 Параллельный порт 2 IRQ 6 Накопитель на гибких дисках IRQ 7 Параллельный порт 1 IRQ 8 Часы реального времени IRQ 9 Перенаправлен на IRQ2 IRQ 10 не назначен IRQ 11 не назначен IRQ 12 не назначен IRQ 13 Математический сопроцессор IRQ 14 Накопитель на жестких дисках 1 IRQ 15 Накопитель на жестких дисках 2
В действительности нет никакого "правильного способа" назначения прерывания. Только удостоверьтесь, что оно не используется материнской платой или любыми другими платами.
Номера прерываний 2, 3, 4, 5 или 7 - это хороший выбор. ``не назначен" означает, что в настоящее время ничего стандартно не использует эти IRQS. Также обратите внимание, что IRQ 2 - это тоже, что и IRQ 9. Вы можете вызывать его или как 2 или как 9, последовательный драйвер очень понятливый. Если у вас последовательная плата с 16-разрядным разъемом шины, то вы можете также использовать IRQ 10, 11, 12 или 15.
Только удостоверьтесь, что вы не используете IRQ 0, 1, 6, 8, 13 или 14! Они используются вашей материнской платой. Вы модете заработать множество неприятностей, используя эти IRQ не по назначению. Когда вы закончите, посмотрите /proc/interrupts и удостоверьтесь, что конфликтов нет.