Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Драйвер PLIP

Parallel Line IP (PLIP) основан на IP для параллельных линий и используется, если необходимо соединить две машины. Он использует параллельный порт и специальный кабель. Позволяет достигать скоростей от 10 Кбит/cек до 20 Кбит/сек.

PLIP был первоначально разработан компанией Crynwr, Inc. Довольно оригинальный проект: в течение длительного времени параллельные порты в PC использовались в основном для принтеров; то есть восемь линий использовались только, чтобы послать данные с PC на периферийное устройство и никуда больше. PLIP работает, обходя это ограничение, используя пять линий состояния порта для ввода, что позволяет передавать по полбайта за раз между машинами. Этот режим работы называется mode 0. Сегодня эти однонаправленные порты используются очень редко. Поэтому имеется также расширение PLIP, названное mode 1, которое использует полный 8-разрядный интерфейс.

Linux до версии ядра 2.2 поддерживала только mode 0. С ядра 2.2 добавлена поддержка mode 1. В отличии от более ранних версий PLIP теперь она пытается быть совместимой с PLIP Crynwr, а также PLIP-драйвером в NCSA telnet. Чтобы соединить две машины, использующие PLIP, Вам требуется специальный кабель "Null Printer" или "Turbo Laplink". Вы можете сделать его и сами. приложение B описывает как.

РLIP поддерживало много людей. В настоящее время его поддерживает Niibe Yutaka. Если PLIP компилируется в ядро, он устанавливает сетевой интерфейс для каждого из возможных портов принтера, plip0 соответствует параллельному порту lp0, plip1 связан с lp1 и т.д.. В настоящее время интерфейсы отображаются на порты следующим образом (способ отображения в ядрах 2.0 отличается от ядер 2.2 и задан в файле drivers/net/Spacd.c исходного текста ядра):

Интерфейс I/O Port IRQ
plip0 0x3BC 7
plip1 0x378 7
plip2 0x278 5

Если Вы сконфигурировали порт принтера по-другому, то должны изменить эти значения в drivers/net/Space.c в исходниках ядра Linux и пересобрать ядро.

В ядрах 2.2 PLIP-драйвер использует драйвер совместного использования параллельного порта parport, разработанный Philip Blundell. Новый драйвер распределяет сетевые имена устройств PLIP последовательно, точно как для Ethernet или PPP, так что первое созданное PLIP устройство plip0, второе plip1 и т.д. Физические аппаратные средства параллельного порта также будут распределены последовательно. По умолчанию драйвер параллельного порта будет пытаться обнаруживать аппаратные средства параллельного порта программой autoprobe, делая запись физической информации устройств в найденном порядке. Но лучше явно сообщить ядру физические параметры. Вы можете делать это с помощью параметров при загрузке модуля parport_pc.o, или если Вы скомпилировали драйвер в ядро, используя lilo, чтобы передать параметры ядру при начальной загрузке. Установка IRQ любого устройства может быть изменена позже записью нового значения IRQ в связанный файл /proc/parport/*/irq.

Конфигурирование физических параметров I/O в ядре 2.2 при загрузке модуля простое. Например, чтобы сообщить драйверу, что Вы имеете два параллельных порта PC-style с адресами I/O 0x278 и 0c378 с IRQ 5 и 7, соответственно, Вы загрузили бы модуль со следующими параметрами:
modprobe parport_pc io=0x278,0x378 irq=5,7
Соответствующие параметры для передачи ядру в случае скомпилированного непосредственно в него драйвера:
parport=0x278,5 parport=0x378,7
Здесь Вы использовали бы lilo с ключевым словом append, чтобы передать эти параметры ядру автоматически при начальной загрузке.
Когда PLIP драйвер инициализирован, каждый из параллельных портов будет иметь связанное с ним сетевое устройство plip. Устройство plip0 будет назначено первому устройству параллельного порта, plip1 второму и т.д. Вы можете вручную отменять это автоматическое назначение, используя другой набор ядерных параметров. Например, чтобы назначить parport0 на сетевое устройство plip0 и parport1 на plip1, задайте ядерные параметры:
plip=parport1 plip=parport0

Это отображение не означает, что нельзя использовать эти параллельные порты как обычные. PLIP-драйвер обращается к ним только, когда соответствующий интерфейс сконфигурирован.