Компьютер без принтера сегодня представляется
каким-то полуфабрикатом. А резкое падение цен на матричные, струйные
и лазерные принтеры в течение последних двух лет способствуют
массовому распространению технологии "персональной печати".
Конечно, первая мысль, ассоциируемая с принтером сегодня - это
MS Word. Однако, как я постараюсь показать, Linux предоставляет
пользователю более широкие возможности по управлению ресурсами
принтера, чем мы привыкли видеть в Windows.
Прежде всего нам необходимо убедиться, что
Linux видит ваш принтер. Как правило, принтер подключается к единственному
параллельному порту компьютера, который размещается либо на плате
устройств ввода/вывода, либо непосредственно на материнской плате
компьютера. Но "по теории" IBM PC может поддерживать
до четырех параллельных портов, и в Linux им соответствуют символьные
устройства /dev/lp0 - /dev/lp3.
Поэтому первый ваш шаг состоит в проверке
- есть ли в вашей системе соответствующие устройства. Если нет,
их придется создать самостоятельно. Для этого учтем, что во-первых,
устройства в UNIX являются просто специальными файлами, которые
можно создать с помощью программы mknod, а во-вторых, за параллельными
портами зарезервированы номера устройств - старшее 6 и младшие
с 0 до 3 и соответствуют номеру устройства.
Вот синтаксис команд mknod для всех параллельных
портов, поддерживаемых Linux (в скобках приведены базовые адреса
портов ввода/вывода):
mknod /dev/lp0 c 6 0 | (0x3BC) |
mknod /dev/lp1 c 6 1 | (0x378) |
mknod /dev/lp2 c 6 2 | (0x278) |
mknod /dev/lp3 c 6 3 | (0x......) |
Обратите внимание на адреса портов! Как правило,
в составе IBM PC входит порт с адресом 0x378, который соответствует
не /dev/lp0, а /dev/lp1. И если вы по привычке будете соотносить
"первый" порт DOS с "нулевым" портом UNIX,
то искать причину неисправности вам придется довольно долго.
Как же избежать этой ошибки?
Наиболее простой путь состоит в экспериментальной
проверке конфигурации. Во-первых, вы можете воспользоваться утилитами
из DOS типа sysinfo или MSD, а во-вторых, можете просто попытаться
"выбросить на печать" текущий каталог, например:
ls -l > /dev/lp0
Если порта lp0 на вашей машине нет вы получите
сообщение:
? /dev/lp0 unknown device
после чего вы можете попробовать использовать
другое устройство. Если же все в порядке, то на принтер будет
выведена "лесенка" примерно следующего вида:
This is 1 line
This is 2 line
This is 3 line
Причина этого явления состоит в том, что
ориентированные для работы в DOS принтеры требуют для завершения
строки два символа - возврата каретки <CR> (0x13) и перевода
строки <LF> (0x10). А вот UNIX традиционно обходится одним
символом - <LF>.
Бороться с этим неприятным эффектом вы можете
двумя способами - либо отключить режим раздельного управления
<CR> и <LF> - в этом случае принтер будет распознавать
приход любого из этих символов как команду перейти к новой
строке. Этот режим поддерживает большинство современных моделей
принтеров, но его целесообразно использовать лишь в том случае,
если вы используете только Linux. Если же вам приходится время
от времени обращаться к старушке DOS, целесообразно использовать
специальные программы-фильтры, о которых речь пойдет ниже. А сейчас,
после того, как мы убедились в работоспособности принтера, мы организуем
поддержку системных средств печати, общепринятых для UNIX.
Драйвер печати
Корректировка настроек принтера - tunelp
lpd
lpq
lprm
lpc
lpr - стандартная пограмма печати
Борьба с "лесенкой"
[Назад]
[Содержание]
[Вперед]