Принтер Canon Laser Shot LBP-1120 и принт-сервер на базе Raspberry Pi

Достался мне бесплатно старенький принтер 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 с принтером. Скачать его можно со страницы автора здесь www.boichat.ch/nicolas/capt. В настоящее время поддержки драйвера со стороны автора уже нет. Также он написал драйвер для принтеров Canon LBP-660 / LBP-460.

Переходим от “много текста” непосредственно к установке драйвера принтера и CUPS:

  1. Установку CUPS делаем по рекомендациям со страницы wiki.debian.org/ru/SystemPrinting вплоть до этапа “Добавление принтера” — драйвер ведь еще не стоит :)


  2. Для облегчения трудностей с администрированием CUPS добавляем в группу администраторов печати пользователя, который будет администратором:

    # usermod -a -G lpadmin MY_USER

  3. Компилируем и устанавливаем драйвер: распаковываем архив с файлами драйвера в папку /usr/src/ и выполняем команды:

    $ cd /usr/src/capt-0.1
    # make
    # make install
    # modprobe usblp
    # chmod a+rw /dev/usb/lp0

    Перегружаем CUPS:

    # /etc/init.d/cups restart

  4. Возвращаемся к инструкции из п.1 и добавляем принтер; Добавлять надо драйвер принтера “Canon Laser Shot LBP-810”; Да, да — они почти как близнецы братья, отличающиеся только наличием дуплекса в LBP-810; Естественно, что вся процедура в данном материале применима и для LBP-810;



  5. DeviceURI, который назначен принтеру по умолчанию, нам не подходит — вывод должен быть куда угодно, желательно “в пустоту”, только не в USB; Поэтому необходимо зайти в файл конфигураций принтеров системы CUPS (/etc/cups/printers.conf) и внести следующие изменения:

    Заменить строку:

    DeviceURI usb://Canon/LASER%20SHOT%20LBP-1120?serial=0158030E

    На строку:

    DeviceURI serial:/dev/null

    Теперь вывод заданий на печать будет происходить в отсутствующий COM port;

  6. Перегружаем CUPS:

    # /etc/init.d/cups restart

    В свойствах принтера параметр «Подключение» должен выглядеть как на картинке:


  7. Обязательно в настройках принтера делаем сброс состояния перед каждым заданием; В противном случае он будет печатать первое задание, а последующие пойдут только после выкл/вкл принтера;


  8. Заходим в панель управления принтерами CUPS и в установленном принтере отправляем на печать тестовую страницу CUPS; Не пугайтесь: она будет печататься на удивление долго — 3...6 минут проходит до начала вывода; Тестовую страницу принтера (4-ий пункт меню Обслуживание”) печатать бесполезно — у принтера все также “мозгов” нет, а разработчик драйвера ее не предусмотрел (как это сделано в оригинальном драйвере под Windows), поэтому задача сразу перейдет в состояние “Выполнена” и все :)


  9. В Windows идем в панель управления принтерами и добавляем сетевой принтер. Строку подключения можно взять из адресной строки браузера в п. 7, заменив протокол с https на http; Драйвер принтера можно выбрать практически любой из поддерживающих PS (PostScript); У меня прекрасно стал драйвер от HP LaserJet 2300; Драйвера принтеров с поддержкой PCL5/6 работать не будут.


О скорости работы данного решения: на “прогретый” принтер задание на печать 2-страничного документа, содержащего только текст и таблицу, из MS Word 2010 занимает около 5...10 сек. Устройства между собой соединены через Wi-Fi роутер (ноутбук “по воздуху” и Raspberry по Ethernet).

Естественно, что по данной “технологии” этот принтер можно использовать и в MacOs (для нее драйверов от производителя не существует вообще), да и в любой другой ОС, поддерживающей печать по сети.
Добавлено 08.06.2017: С устройств под управлением Android модно использовать этот принт-сервер с помощью бесплатной программы из play market CUPS Printing

Не удалось “в лоб” отправить на печать текстовый файл из консоли — “принтер или класс не зарегистрирован”. В причинах и способах устранения данной проблемы пока не разбирался. Да и нет у меня необходимости печатать из консоли.

$ lp -d printers.conf
lp: The printer or class does not exist.

Вот тут описан способ, как устанавливать “родной” драйвер на платформе i386 под управлением Ubuntu (на украинском языке).

На сайте поддержки Arclinux встретил утверждение, что с Canon Laser Shot LBP-1120 можно работать через драйвер принтера Xerox Phaser 6000B. На сайте Xerox есть драйверы для него для 64-битных Windows, но работоспособность данного утверждения не проверял.

PS. Был удивлен, узнав, что развитием CUPS занимается компания Apple :)
Поделиться публикацией
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 23

    0
    PS. Был удивлен, узнав, что развитием CUPS занимается компания Apple :)

    Да, после того, как они лет десять назад купили ESP — первоначального разработчика CUPS.
      +1
      Господи этому принтеру лет 15. Все линуксоиды раз по десять уже его побеждали. Сейчас его конечно уже мало где найдёшь но машинка легендарная и безотказная.
        0
        Подтверждаю, этим летом почистил внутри, два картриджа есть — HP и прочие буржуи — обломитесь — ничего не буду покупать пока совсем не сломается.
          0
          Зашел к «админам» в нашей конторе — последний принтер с такими картриджами списали 5 лет назад. Но на складе случайно нашелся один новый картридж! Так что теперь он у меня еще и «смачно» печатает :)
          0
          Все линуксоиды раз по десять уже его побеждали.

          Карма у линуксоидов такая — заставлять нормально работать бюджетные огрызки под Винду :)
          Я сам виндузятник и купил этот Raspberry в 2012 году именно с целью изучения Linux. Теперь он у меня работает как сервер для нескольких решений, которые на Windows решать сложно или невозможно без хороших вложений в софт или железо (пиратства стараюсь избегать любой ценой).
            0

            Нашел статью т.к. возникла проблема у этого принтера с Windows 10 x64 :) Жалко аппарат, безотказен как автомат Калашникова. Для меня он единственный у которого не было проблем с подачей любой бумаги.

              +1
              Зато такое решение позволяет печатать с любого Android устройства с помощью бесплатного приложения CUPS Printing
            –2
            Из любого Линукса можно сделать принт-сервер, ваш КО — смысл статьи.
            Правда стоимость принт-сервера сравнима со стоимостью такого принтера на барахолке.

            Кстати, не указан, это Pi1, Pi2 или Pi3?
              0
              Кстати, не указан, это Pi1, Pi2 или Pi3?


              Raspberry Pi 1 rev. B (512MB RAM)
              +1
              о ужас, вспоминаю его с содроганием
              Ubuntu 10.4, 9.4 и даже 8.4
              печать по сети и CUPS
              печать с winXP по сети на Ubuntu и наоборот

                0
                Я хотел сделать проще — WindowsXP в VmWare Player, но почему-то не могу пробросить принтер как USB-устройство…
                  0
                  Под VirtualBox отлично себе из-под XP работает. Рецепт на GhostCript + Redmon
                  Неубиваемый идеальный домашний принтер для малых объёмов печати.
                    0
                    Да и под VMWare workstation завелся (10-я версия почему то не захотела пробрасывать USB-устройства, 12-я заработала. Спасибо за «наводку» на рецепт, попробую.
                0
                Не все гладко с печатью графики: скан-копия «грязной» ксерокопии документа формата A4 с разрешением 600 dpi в TIFF в одном экземпляре выводится на печать очень шустро и все Ok. При отправке на печать сразу двух экземпляров второй упорно выводится без примерно 20% нижней части.
                  0
                  Вы должны понять что это серия принтеров для личного использования. Вам не удастся его победить полностью.Плюс он довольно старый любая ошибка будь то замятие бумаги или он не видит бумагу вы будете бороться напостой при этом без наличия отчёта об ошибки. Вы сойдёте сума в конце концов в коллективе из-за этого вам спасибо не скажут а сочтут попросту некомпетентным. Поверьте на слово оно того не стоит.
                    0
                    Так он у меня дома и стоит :) Со всеми остальными Вашими доводами согласен. Но! Когда надо напечатать пару-тройку страниц не чаще пары-тройки раз в месяц, но «срочно здесь и сейчас», то иногда имеет смысл делать и такие варианты.
                      +1
                      В целом хорошее приобретение. Он сродни линейки ThinkPad'ов среди лазерников. И главное расходники стоят копейки, а заправлять можно чуть ли не сажей.
                        0
                        [С сильными брюзжащими интонациями] «Сейчас таких уже не делают!» :)

                        Помимо того, что заправлять можно чуть ли не сажей, еще и то, что заправленный картридж не теряет своих качеств со временем. Этот принтер у предыдущего хозяина «под столом» простоял не меньше 5-ти лет. Родной картридж в нем был почти пустой после 3-ей зарядки. Я вставил картридж HP 4092A 2007 года выпуска и получил отличное качество печати. С любым струйником при таких мизерных объемах печати стоимость отпечатков будет поистине «золотой» из-за постоянной замены/заправки засохших картриджей или закупоренных печатающих головок. Покупать новый лазерный принтер тем более не оправдано из-за немалых начальных вложений.
                  +1
                  Какая ирония. При появлении винпринтеров страдали линуксоиды, тк драйвера (по сути программные растеризаторы) были только под винду и не было причины изготовления их производителями под линукс. Теперь эти принтеры не работают под виндой, а под линуксом будут работать до последнего оставшегося на земле принтера :).
                    0
                    Ирония в том, что под виндой они работали, а теперь до конца жизни будут глючить, как описано выше.

                    Это такая вариация ада для принтеров =)
                      0

                      Ага, в офисе мы отчаялись настроить Epson L100 — для win8 и старше дров (работоспособных) нет, выдают цветной мусор на бумаге. Подключили к моему компу с линуксом, настроили купс чтоб с винды печаталось с дженерик драйвером, теперь всё отлично печатается везде.

                    • НЛО прилетело и опубликовало эту надпись здесь
                        0
                        Потому что это оригинальные HP, а не их клоны под брендом Canon

                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                      Самое читаемое