Введение
в порты Linux
В среде Linux каждому периферийному
физическому устройству или порту подключения сопоставляется один или несколько
файлов в специальном каталоге / dev. Это относится к жестким дискам, устройствам
CD-ROm, параллельным и последовательным портам.
Основной принцип достаточно
прост. Рассмотрим для примера жесткий диск.
В Linux каждому жесткому
диску iDE присваивается имя hdx, где х принимает значения "а" (для
первого диска на первичной шине iDE), "b" (для второго диска на первичной
шине ШЕ), "с" (для первого диска на вторичной шине iDE) и т.д. Таким
образом, имя главного вторичного диска - /dev/hdc.
Примечание
Жесткие SCSi-диски и SCSi-диски CD-ROm аналогичным образом обозначаются sdx.
В каталоге / dev имеется
составляющая для каждого дискового раздела. Например, второму разделу первичного
подчиненного диска присваивается имя /dev/hdb2, первому разделу вторичного главного-
/dev/hdcl.
Параллельные
порты в Linux
Рассмотрим параллельные
порты. В DOS и Windows параллельным портам присваиваются имена LPT1:, LPT2 :,
LPT3 : и т.д. Как правило, в ПК один параллельный порт с именем LPT1:.
В Linux параллельным портам
сопоставляются файлы устройств 1рх, где х - номер порта. Это основное отличие
от DOS и Windows: нумерация портов начинается не с единицы, а с нуля, так что
LPT1: в Linux соответствует /dev/lp0, a LPT2 : - /dev/ lpl. В DOS возможна ситуация,
когда единственный параллельный порт компьютера имеет имя, отличное от LPT1:;
в Linux этому порту будет присвоено имя /dev/lpO, как первому доступному порту.
Теперь перейдем к последовательным
портам, понимание принципов рабств которых важно для правильной установки модема.
Последовательные
порты в Linux
В Linux каждому последовательному
порту сопоставляется два файла устройств - для исходящих и входящих соединений.
Файлы исходящих соединений называются ttySx, где
х-
номер, начинающийся
с нуля. Таким образом, порту СОМ1: из DOS в Linux соответствует /dev/ttyS0,
COМ2 : - /dev/ ttySl. В ранних версиях Linux последовательному порту сопоставлялся
еще один файл устройства. Это файл сиах, где х - номер, начинающийся с нуля.
Таким образом, в этих версиях СОМ1: соответствовали файлы /dev/ ttyS0 и /dev/cua0,
COm4: - /dev/ttyS3 и dev/сuаЗ. Адреса портов сведены в таблицу 18.2.
Табл.
18.2.
Последовательные порты в DOS и Linux
Имя DOS
|
Файлы устройств
Linux
|
Унаследованные
файлы устройств
|
||
СОМ1: COm2: COm3:
COm4:
|
/dev/ttyS0 /dev/ttyS1 /dev/ttyS2
/dev/ttyS3
|
/dev/cua0 /dev/cua1 /dev/cua2
/dev/cua3
|
||
Но запомнить эти имена
устройств для большинства людей сложно. К счастью, при конфигурировании модема
большинство Linux-дистрибутивов организует связь между файлом /dev/modem и реальным
устройством. Это можно проверить, выполнив команду 1s -1 /dev/modem. Результат
должен быть таким:
lrwxrwxrwx 1 root
root 10 feb 3 19:21 /dev/modem -> /dev/ttyS0
Примечание
В современных версиях Linux используется только файл /dev/ttySx, поддержка же /dev/cuax остается исключительно для обеспечения совместимости. Со временем надобности в поддержке этого файла не будет.
USb-порты
в Linux
Теоретически, можно подсоединить
до 32 USb-модемов к Linux-компьютеру. Чтобы использовать USb-модемы, необходимо
убедиться в том, что соответствующие USb-модули включены в ядро (вопросы конфигурирования
ядра обсуждаются в гл. 20). Некоторые USb-модули уже включены в состав последних
дистрибутивов, включая Red Hat Linux 7.1.
Для USb модемов также необходим
модуль Communication Device Class Abstract Control module, кратко acm; о. Если
он не входит в ядро, следует включить его в текущую конфигурацию. В Red Hat
Linux 7.1 необходимо компилировать этот модуль в состав ядра. Более подробно
вопросы модификации ядра рассмотрены в гл. 20. Покончив с формированием необходимого
ядра, можно запускать следующую команду:
#
/sbin/insmod /lib/modules/2.4.2-2/kernel/drivers/usb/acm.o
Если версия вашей команды
insmod или ядра другая, задайте ее в команде соответствующим образом. Используемый
в вашем Linux-дистрибутиве каталог может отличаться.
Соответствующие устройства
уже должны существовать в каталоге /dev/usb. Проверьте это с помощью команды
is -i /dev/usb/ ttyACm*. Результат должен выглядеть приблизительно так:
crw-rw----- 1
root root 188, 0 Aug 24 09:00 /dev/usb/ttyACm0
crw-rw----- 1 root root 188, 0 Aug 24 09:00 /dev/usb/ttyACm1
crw-rw----- 1 root root 188, 0 Aug 24 09:00 /dev/usb/ttyACm2
crw-rw----- 1 root root 188, 0 Aug 24 09:00 /dev/usb/ttyACm3
Если у вас результат отличается
от приведенного, выполните следующую команду: mknod /dev/usb/ttyACm0 с 166 0
Повторите эту команду, подставив ttyACm1, ttyACm2 и другие USb-порты по мере необходимости.