"Достался мне бесплатно старенький принтер Canon Laser Shot LBP-1120. Отдали мне его с объяснением “что-то не получается подключить, наверное драйвера глючат”. Попробовал подключить его у себя на компьютер с Windows 7 x64 - Windows Update не смог подтянуть драйверы. Зашел на сайт производителя принтера - для этой модели драйверы есть начиная с Windows XP, но только под 32-битные версии. Перепробовал множество драйверов от других принтеров Canon, универсальные драйверы из раздела “Generic Drivers”, драйверы HP LaserJet 2200, 2300 - во всех случаях принтер никак не реагирует на команды компьютера.
Изучение руководства по эксплуатации и обрывков информации на форумах дали следующее: это принтер GDI или winprinter, где все вычисления при печати производятся собственно драйвером на процессоре компьютера, за счет чего “безмозглый” принтер получается дешевле в производстве (не нужны процессор и большой объем памяти). Модель LBP-1120 является клоном Hewlett-Packard (HP) LaserJet 1100 (только в нем отсутствуют “мозги”, в отличие от исходника), и по такой же схеме построены остальные модели семейства Canon Laser Shot, которое позиционировалось производителем как “принтеры для домашнего применения”. Почему в компании Canon решили, что дома может быть только 32-битная версия Windows - мне неведомо. Лично у меня дома 3 компьютера под управлением Windows и на всех стоит 64-битная версия и не менее 4ГБ ОЗУ.
Городить виртуальную машину с 32-битной Windows или вообще делать отдельный принт-сервер под ней я посчитал нецелесообразным, хотя в интернет все найденные мной обсуждения данного вопроса заканчиваются именно одним из этих двух вариантов. “Сказки” про то, что какой-то драйвер от другого производителя может подойти отбросил сразу, поиски “альтернативного” 64-битного драйвера приводят к страницам, расположенным в “темных подворотнях”. Один такой скачал ради интереса или, точнее, для подтверждения известной истины про бесплатный сыр - это оказался “червь”.
Значит будем строить принт-сервер на основе имеющегося и используемого для других целей Raspberry Pi ver 1 rev B, работающего под управлением Raspbian (клон Debian 7 Wheezy). Благо на сайте производителя принтера доступен драйвер под Linux 32/64 бит, хоть его и чихвостят в англоязычном сегменте Интернет за медленность работы и пожирание ресурсов. Установив на Raspberry Pi драйвер принтера и CUPS (Common UNIX Printing System), я получу полноценный принт-сервер под управлением Linux, к которому остальные клиенты смогут подключаться как к сетевому принтеру с использованием какого-либо “универсального” драйвера.
Для скачивания предлагается 5 версий драйвера (1.6, 1.8, 2.0, 2.2, 2.7 - все обновлены во второй половине июля 2015 г., различия между ними не известны). В скачанном архиве находятся откомпилированные пакеты deb и rpm под архитектуру i386 в 32- и 64-битном вариантах и исходные файлы. Откомпилированные пакеты не подходят для Raspberry, работающего на архитектуре ARMv6L. Скомпилировать исходные файлы версий 1.6 и 2.7 также не удалось по двум причинам: драйвер “заточен” под команды Intel и предусматривает обязательное наличие графической оболочки (по умолчанию GTK2.0), а на моем Raspberry их нет принципиально. Но есть альтернативный свободно распространяемый драйвер, написанный в 2004 году энтузиастом методом реверсного инжиниринга протокола обмена данными драйвера под Windows с принтером. Скачать его можно со страницы автора здесь http://www.boichat.ch/nicolas/capt/ . В настоящее время поддержки драйвера со стороны автора уже нет. Также он написал драйвер для принтеров Canon LBP-660 / LBP-460.
Переходим от “много текста” непосредственно к установке драйвера принтера и CUPS:
# usermod -a -G lpadmin MY_USER
$ cd /usr/src/capt-0.1
# make
# make install
# modprobe usblp
# chmod a+rw /dev/usb/lp0
Перегружаем CUPS:
# /etc/init.d/cups restart
заменить строку
DeviceURI usb://Canon/LASER%20SHOT%20LBP-1120?serial=0158030E
DeviceURI serial:/dev/null
# /etc/init.d/cups restart
О скорости работы данного решения: на “прогретый” принтер задание на печать 2-страничного документа, содержащего только текст и таблицу, из MS Word 2010 занимает около 5...10 сек. Устройства между собой соединены через Wi-Fi роутер (ноутбук “по воздуху” и Raspberry по Ethernet).
Не все гладко с печатью графики: скан-копия «грязной» ксерокопии документа формата A4 с разрешением 600 dpi в TIFF в одном экземпляре выводится на печать очень шустро и все Ok. При отправке на печать сразу двух экземпляров второй упорно выводится без примерно 20% нижней части.
Естественно, что по данной “технологии” этот принтер можно использовать и в MacOs (для нее драйверов от производителя не существует вообще), да и в любой другой ОС, поддерживающей печать по сети. Для печати с телефона под управлением Android установил из Play Market бесплатное приложение “CUPS printing”. Работает
Не удалось “в лоб” отправить на печать текстовый файл из консоли - “принтер или класс не зарегистрирован”. В причинах и способах устранения данной проблемы пока не разбирался. Да и нет у меня необходимости печатать из консоли.
$ lp -d printers.conf
lp: The printer or class does not exist.
На сайте поддержки Arclinux встретил утверждение, что с Canon Laser Shot LBP-1120 можно работать через драйвер принтера Xerox Phaser 6000B. На сайте Xerox есть драйверы для него для 64-битных Windows, но работоспособность данного утверждения не проверял. Это утверждение ложное - совершенно разные (следовательно несовместимые) принтеры.
PS
Был удивлен, узнав, что развитием CUPS занимается компания Apple :)"
Так же появился оригинальный драйвер для CUPS от Canon. Но он скомпилирован только для 32- и 64-битных процессоров Intel (i386), поэтому применить его "в лоб" на архитектуре ARMF невозможно. Но если у Вас компьютер под управлением Windows 10/11, то можно установить Windows Subsystem for Linux (WSL), на которой можно развернуть виртуальную машину под управлением одного из клонов Linux. И там установить этот драйвер. Необходима именно версия WSL 2, так как в WSL 1й версии нет доступа к USB порту для виртуальной машины. По идее эта реализация должна работать "легче", и иметь обратную связь по состоянию принтера. Но это не точно
Re: Принтер Canon Laser Shot LBP-1120
Добавление от 18.02.2023
Так же появился оригинальный драйвер для CUPS от Canon. Но он скомпилирован только для 32- и 64-битных процессоров Intel (i386), поэтому применить его "в лоб" на архитектуре ARMF невозможно. Но если у Вас компьютер под управлением Windows 10/11, то можно установить Windows Subsystem for Linux (WSL), на которой можно развернуть виртуальную машину под управлением одного из клонов Linux. И там установить этот драйвер. Необходима именно версия WSL 2, так как в WSL 1й версии нет доступа к USB порту для виртуальной машины. По идее эта реализация должна работать "легче", и иметь обратную связь по состоянию принтера. Но это не точно :)
Отправить новый комментарий