Иллюстрированный самоучитель по Linux

Введение в порты Linux

В среде Linux каждому периферийному физическому устройству или порту подключения сопоставляется один или несколько файлов в специальном каталоге / dev. Это относится к жестким дискам, устройствам CD-ROM, параллельным и последовательным портам.

Основной принцип достаточно прост. Рассмотрим для примера жесткий диск.

В Linux каждому жесткому диску IDE присваивается имя hdx, где х принимает значения "а" (для первого диска на первичной шине IDE), "b" (для второго диска на первичной шине IDE), "с" (для первого диска на вторичной шине 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: /dev/ttyS0 /dev/cua0
COM2: /dev/ttyS1 /dev/cua1
COM3: /dev/ttyS2 /dev/cua2
COM4: /dev/ttyS3 /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-порты по мере необходимости.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.