Опыт по PLIP соединению DOS-Linux
ПРИМЕЧАНИЕ: Я получил этот документ от James Vahn jvahn@short.circuit.com, и поместил сюда без изменений. Это означает, что в любом вопросе, касающемся этого документа, он разбирается гораздо лучше меня, поэтому пишите, пожалуйста, ему, а не мне. Его опыт по PLIP соединению компьютера под DOS с одним только флоппи-дисководом с компьютером под Linux - отличный пример того, как можно справляться с общими проблемами.
Последнее обновление сделано 11 июля 1996
Мой компьютер с одним только дисководом, работающий под DOS, соединен через PLIP со вторым портом принтера на машине с Linux. К первому порту принтера на Linux подключен принтер. Оба порта постоянно работают. Под DOS выполняется telnet на машину с Linux. Ниже идут заметки о том, как я этого добился.
Если вы не исключили явно порты принтера из поиска, то ядро найдет их (причем все). Иначе PLIP ничего не получит. Один из способов - загружать драйвера по мере необходимости, как модули...
пишет:
Я по-прежнему рекомендую компилировать PLIP/LP, как модули ядра, так как
-
модули позволяют гибко менять конфигурацию
-
(пере)компилирование ядра - не такая уж простая процедура для начинающих пользователей
-
сосуществование PLIP и LP возможно только с помощью модулей
С PLIP/LP в виде модулей вы можете указать, какой порт используется PLIP, а какой - LP. Пример:
# insmod lp.o io=0x378 # insmod plip.o io=0x278 irq=2 |
Вы даже можете использовать два параллельных порта:
# insmod plip.o io=0x278,0x3bc irq=2,5 |
В предыдущем примере,
plip0 назначается адрес 0x278 и irq 2,
plip1 назначается адрес 0x3bc и irq 5, соответственно.
Использование модулей - это безусловно предпочтительный способ. Есть другой, показанный ниже - патч ядра для использования принтера и PLIP на разных портах без использования модулей. Если вы не знакомы с модульной концепцией, то вам, возможно, он покажется проще.
Наверно придется изменить два файла из исходных текстов ядра. Я использовал ядро версии 1.2.13 и обнаружил, что в файл ../linux/drivers/net/Space.c нужно внести некоторые изменения для приведения его в соответствие с настройками моего компьютера. Проверьте определения PLIP в строке 205, чтобы убедиться, что IRQ и порт ввода/вывода соответствуют вашим, а также запомните, какое устройство будет использовано для PLIP (plip0, plip1, plip2). В моем случае, порт 0x278 использовал IRQ 5(так выставлены переключатели на карточке), в Space.c определен IRQ 2. Я не стал открывать компьютер и менять переключатели на плате, а подправил файл. Исправление очень простое - всего в один символ. Хотя можно указать IRQ позже через ifconfig, но в этом случае ядро будет загружаться с неправильным IRQ для PLIP, что, наверное, будет вас раздаржать.
Дальнейший шаг потруднее:
В .../drivers/char/lp.c где-то около строки 38 найдите следующее: