|
3. Устройства печати ядра3.1 Устройство lpЯдро Linux (<=2.1.32), предполагает, что вы скомпилировали
или загрузили устройство lp (вывод команды
Некоторые пользователи сообщили, что их двунаправленные lp порты не определяются, если они использовали старые однонаправленные кабеля. Проверьте, что вы используете нужный кабель.
Некоторые люди не могут запустить драйвера plip и lp в одно и тоже время на любом заданном порту. Однако вы можете загрузить тот или иной драйвер вручную или с помощью kerneld для версий 2.x (и позже 1.3.x) в заданное время. При правильной установке прерываний и подобных вещей, вы по идее можете запустить plip на одном порту, а lp на другом. Некоторые люди делали это редактированием исходного текста драйверов; я с нетерпением ожидаю сообщение о том, что кто-то сделал это только с помощью правильной командной строки.
Существует маленькая утилита, названная
Если драйвер встроен в некоторые ядра версии 1.3.x и более
поздние версии, то ядро может воспринимать опцию
Когда драйвер lp встроен в ядро, вы можете использовать командную строку LILO/LOADLIN для установки адресов портов и прерываний, которые будет использовать драйвер. Синтаксис: lp=port0[,irq0[,port1[,irq1[,port2[,irq2]]]]] Например: lp=0x378,0 or lp=0x278,5,0x378,7 ** Заметим, что если вы используете это свойство, вы должны указать *все* порты, которые вы хотите учитывать, значений по умолчанию не существует. Вы можете запретить встроенные драйвер с помощью опции lp=0.
Когда драйвер загружен как модуль в ядрах версии 2 и последних
выпусках ядер серии 1.3.x, то возможно указать адреса ввода/вывода
и прерывания в командной строке insmod (или в файле
/etc/conf.modules, при использовании kerneld) используя
обычный синтаксис. Параметры следующие:
**Для тех из вас, кто (подобно мне) никогда не может найти номера стандартных портов когда это нужно, я привел два примера выше. Номер другого порта (для lp0) равен 0x3bc. У меня нет никаких идей о том какое прерывание обычно используется.
Исходный код для драйвера параллельного порта Linux находится в файле /usr/src/linux/drivers/char/lp.c.
3.2 Устройство parport (ядра >= 2.1.33)Начиная с ядра 2.1.33 (и доступно как заплатка к ядру 2.0.30), устройство lp является просто клиентом нового устройства parport. Добавление устройства parport исправляет некоторое количество проблем, которые были из-за старого устройства lp - оно может разделять порты с другими устройствами, оно динамически присваивает доступные параллельные порты номерам устройств, вместо использования фиксированных соотношений между адресами ввода/вывода и номером порта, и так далее.
Введение устройства parport позволило создать целую группу новых драйверов параллельного порта для устройств подобных дискам Zip, Backpack CD-ROM и дискам, и так далее. Некоторые из них дотупны в ядрах версии 2.0.x; посмотрите в интернете.
Я сделаю обозрение устройства parport более полным, когда я сам столкнусь с ним, но пока вы для информации можете прочитать файл Documentation/parport.txt в исходных текстах ядра, или посмотреть на сервере parport.
3.3 Последовательные устройстваПоследовательные устройства под Linux называются подобно
/dev/ttyS1. Утилита
При использовании медленных последовательных принтеров с
контролем потока, вы можете обнаружить, что некоторые из ваших
заданий оборваны. Это может быть из-за последовательного порта, чье
действие по умолчанию -- удалить любые не переданные символы из
своего буфера через 30 секунд после того как устройство закрыто.
Буфер может содержать до 4096 символов, и если ваш принтер
использует контроль потока и медлен настолько, что не может принять
все данные из буфера за 30 секунд после того как программа печати
закрыла последовательный порт, то конец содержимого буфера будет
потерян. Если команда
30-ти секундный интервал может быть выравнен с помощью опции "closing_wait" командной строки программы setserial (версии 2.12 и поздних). Последовательные порты машины обычно инициализируются вызовом setserial в загрузочном файле rc.serial. Вызов для последовательного порта принтера может быть модифицирован для установки параметра closing_wait вместе с установкой других параметров.
|
|||||||||||||||||
With any suggestions or questions please feel free to contact us |