BASH Programming - Введение

       

Устройство lp (ядра <=2.1.32)


Ядро Linux (<=2.1.32), предполагает, что вы вкомпилировали в ядро или загрузили модуль устройства lp (вывод команды cat /proc/devices должен включать устройство lp, если оно загружено), обеспечивая одно или больше устройств: /dev/lp0, /dev/lp1, и /dev/lp2. Они не присваиваются динамически, каждое соответствует специфическому адресу ввода/вывода вашего оборудования. Это означает, что ваш первый принтер может быть lp0 или lp1 в зависимости от вашего оборудования. Просто попробуйте оба.

Некоторые пользователи сообщили, что их двунаправленные lp порты не определяются, если они использовали старые однонаправленные кабеля. Проверьте, что вы используете нужный кабель.

Некоторые люди не могут запустить драйвера plip и lp в одно и тоже время на любом заданном порту (в любом случае под 2.0). Однако вы можете загрузить тот или иной драйвер вручную или с помощью kerneld для версий 2.x (и позже 1.3.x) в заданное время. При правильной установке прерываний и подобных вещей, вы по идее можете запустить plip на одном порту, а lp на другом. Некоторые люди делали это редактированием исходного текста драйверов; я с нетерпением ожидаю сообщение о том, что кто-то сделал это только с помощью правильной командной строки.

Существует маленькая утилита, названная

, предназначенная для того, чтобы вы, как администратор, могли настроить для устройств lp Linux 2.0 используемые прерывания, скорость опроса и прочие опции.

Если драйвер встроен в ядро, то ядро может воспринимать опцию lp= для установки прерываний и адресов ввода/вывода:

Когда драйвер lp встроен в ядро, вы можете использовать командную строку LILO/LOADLIN для установки адресов портов и прерываний, которые будет использовать драйвер.

Синтаксис: lp=port0[,irq0[,port1[,irq1[,port2[,irq2]]]]]

Например: lp=0x378,0 or lp=0x278,5,0x378,7 **

Заметим, что если вы используете это свойство, вы должны указать *все* порты, которые вы хотите учитывать, значений по умолчанию не существует. Вы можете запретить встроенные драйвер с помощью опции lp=0.

Когда драйвер загружен как модуль, то возможно указать адреса ввода/вывода и прерывания в командной строке программы insmod (или в файле /etc/conf.modules, при использовании kerneld) используя обычный синтаксис. Параметры следующие: io=port0,port1,port2 и irq=irq0,irq1,irq2. Прочитайте справочную страницу для команды

для более детальной информации об этом.

**Для тех из вас, кто (подобно мне) никогда не может найти номера стандартных портов когда это нужно, я привел два примера выше. Номер другого порта (для lp0) равен 0x3bc. У меня нет никаких идей о том какое прерывание обычно используется.

Исходный код для драйвера параллельного порта Linux 2.0 находится в файле /usr/src/linux/drivers/char/lp.c.



Содержание раздела