Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
VPS в 21 локации

От 104 рублей в месяц

Безлимитный трафик. Защита от ДДоС.

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

9. Я могу использовать более, чем два последовательных устройства?

Вы не должны читать этот раздел, если не хотите использовать три или более последовательных устройства ... (принимая, что у вас нет многопортовой платы).

Если у вас есть другой запасной последовательный порт, то да, вы можете. Число последовательных портов, которые вы можете использовать, ограничено числом прерываний (IRQs) и адресов портов ввода-вывода. Это - ограничение не системы Linux, а ограничение шины PC. Каждому последовательному устройству должны быть назначены адрес и собственное прерывание.

Если два устройства совместно используют одно и тоже прерывание, то они могут нормально работать, при условии, что эти два устройства не будут действовать одновременно. (В большинстве случаев, две программы не должны даже выполняться одновременно.) Последовательное устройство может быть последовательным портом, внутренним модемом или многопортовой последовательной платой.

Многопортовые последовательные платы специально разработаны для получения множества последовательных портов, которые совместно используют одно и то же IRQ для всех последовательных портов на плате.

Linux получает данные из них, используя различные адреса ввода-вывода для каждого порта на плате.

9.1 Выбор прерываний последовательных устройств

Обычный 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 и удостоверьтесь, что конфликтов нет.

9.2 Установка адресов последовательных устройств

Затем, вы должны установить адрес порта. Проверьте в руководстве по вашей плате установки перемычек. Подобно прерываниям, одно последовательное устройство может иметь только один адрес. Ваши порты обычно будут приходить с такими установками:

 
        ttyS0 адрес 0x3f8
        ttyS1 адрес 0x2f8
        ttyS2 адрес 0x3e8
        ttyS3 адрес 0x2e8

Выберите адреса, которые вы хотите использовать для каждого последовательного устройства и соответственно установите перемычки. Мой модем установлен на ttyS3, мышь на ttyS0, а мой терминал на ttyS2.

Когда вы перезагрузитесь, Linux должен увидеть ваши последовательные порты по тем адресам, на которые вы их установили. IRQ, который видит Linux, может не соответствовать IRQ, который вы устанавливаете перемычками. Не волнуйтесь об этом. Linux не делает попыток определить IRQ при загрузке, потому что определение IRQ рисковано и может быть неправильным. Используйте setserial, чтобы сообщить Linux, какое IRQ используется портом. Вы можете проверить /proc/ioports, чтобы увидеть, какие адреса порта ввода-вывода используются после загрузки Linux.


Вперед Назад Содержание
VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...