Компьютер без принтера сегодня
представляется каким-то
полуфабрикатом. А резкое падение
цен на матричные, струйные и
лазерные принтеры в течение
последних двух лет способствуют
массовому распространению
технологии "персональной
печати". Конечно, первая мысль,
ассоциируемая с принтером
сегодня - это 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, а
во-вторых, можете просто
попытаться "выбросить на печать"
текущий каталог, например:
Если порта lp0 на вашей машине
нет вы получите сообщение:
? /dev/lp0 unknown device
после чего вы можете попробовать
использовать другое устройство.
Если же все в порядке, то на
принтер будет выведена "лесенка"
примерно следующего вида:
Причина этого явления состоит в
том, что ориентированные для
работы в DOS принтеры требуют
для завершения строки два
символа - возврата каретки <CR>
(0x13) и перевода строки <LF>
(0x10). А вот UNIX традиционно
обходится одним символом - <LF>.
Бороться с этим неприятным
эффектом вы можете двумя
способами - либо отключить режим
раздельного управления <CR> и <LF>
- в этом случае принтер будет
распознавать приход любого
из этих символов как команду
перейти к новой строке. Этот
режим поддерживает большинство
современных моделей принтеров,
но его целесообразно
использовать лишь в том случае,
если вы используете только Linux.
Если же вам приходится время от
времени обращаться к старушке
DOS, целесообразно использовать
специальные программы-фильтры, о
которых речь пойдет ниже. А
сейчас, после того, как мы
убедились в работоспособности
принтера, мы организуем
поддержку системных средств
печати, общепринятых для UNIX.
|