Scroll to navigation

LP(4) Руководство программиста Linux LP(4)

ИМЯ

lp - устройства для работы с принтерами

ОБЗОР

#include <linux/lp.h>

НАСТРОЙКА

lp[0–2] — это символьные устройства для работы с принтерами, подключёнными к параллельному порту; они имеют старший номер 6 и младшие номера 0–2. Младший номер соответствует базовому адресу порта принтера 0x03bc, 0x0378 и 0x0278, соответственно. Обычно режим доступа к ним устанавливается 220, и они принадлежат root и группе lp. Управлять принтерами можно при помощи опроса или при помощи прерываний. Прерывания рекомендуются при высоких скоростях печати, например, для лазерных принтеров. Для обычных матричных принтеров будет достаточно опроса. По умолчанию устанавливается режим опроса.

ОПИСАНИЕ

Поддерживаются следующие вызовы ioctl(2):

Устанавливает время между опросами принтера драйвером равным arg, если заполнен буфер принтера. Если принтер быстрый, то лучше уменьшить это число, а если медленный, то лучше увеличить. Значение выражается в сотых долях секунды; по умолчанию равно 2, что означает 0,02 секунды. Влияет только на драйвер опроса.
Устанавливает максимальное количество циклов равным arg, в течение которых драйвер опроса ожидает готовность принтера к приёму символа. Если печать медленная, то рекомендуется увеличить это число, а если система начинает медленно работать, то уменьшить. По умолчанию равно 1000. Влияет только на драйвер опроса.
Если arg равно 0, то драйвер принтера будет повторять попытки при ошибках, в противном случае он прекратит работу. По умолчанию равно 0.
Если arg равно 0, то open(2) будет прерван при ошибке, иначе ошибка будет проигнорирована. По умолчанию равно 0.
Если arg равно 0, то для записи необходимо, чтобы сигналы нехватки бумаги, принтер выключен или ошибка, были не установлены. По умолчанию они игнорируются.
Устанавливает число циклов ожидания в значение arg, которые выполняются перед стробированием принтера для получения только что записанного символа, а также устанавливает число циклов ожидания до остановки стробирования. В спецификации сказано, что это время должно равняться 0,5 микросекунды, но опыт показал, что хватает и времени задержки при выполнении программы. Поэтому устанавливаемое значение по умолчанию равно 0. Используется как в драйвере опроса, так и драйвере прерывания.
Этот ioctl(2) требует прав суперпользователя. Он принимает int, содержащий новый номер IRQ. Побочный эффект — повторный запуск принтера. Если arg равно 0, то будет использован драйвер опроса (по умолчанию).
Сохраняет используемый в данный момент номер IRQ в arg.
Сохраняет значение состояния порта в arg. Биты имеют следующее значение:
LP_PBUSY входной, обратный сигналу занятости, активен по высокому уровню
LP_PACK входной, подтверждение, активен по низкому уровню
LP_POUTPA входной, закончилась бумага, активен по высокому уровню
LP_PSELECD входной, принтер выбран, активен по высокому уровню
LP_PERRORP входной, ошибка, активен по низкому уровню

Обратитесь к руководству принтера для выяснения значения сигналов. Заметим, что в зависимости от принтера неописанные биты тоже могут иметь значение.

Перезапускает принтер. Аргументы не используются.

ФАЙЛЫ

/dev/lp*

СМОТРИТЕ ТАКЖЕ

chmod(1), chown(1), mknod(1), lpcntl(8), tunelp(8)

1995-01-15 Linux