Достался мне бесплатно старенький принтер 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 (для нее драйверов от производителя не существует вообще), да и в любой другой ОС, поддерживающей печать по сети.

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

$ 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 :)
Поделиться с друзьями
-->

Комментарии (21)


  1. merlin-vrn
    11.11.2016 10:38

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

    Да, после того, как они лет десять назад купили ESP — первоначального разработчика CUPS.


  1. sams0m
    11.11.2016 10:41
    +1

    Господи этому принтеру лет 15. Все линуксоиды раз по десять уже его побеждали. Сейчас его конечно уже мало где найдёшь но машинка легендарная и безотказная.


    1. mihmig
      11.11.2016 10:58

      Подтверждаю, этим летом почистил внутри, два картриджа есть — HP и прочие буржуи — обломитесь — ничего не буду покупать пока совсем не сломается.


      1. relia
        11.11.2016 13:09

        Зашел к «админам» в нашей конторе — последний принтер с такими картриджами списали 5 лет назад. Но на складе случайно нашелся один новый картридж! Так что теперь он у меня еще и «смачно» печатает :)


    1. relia
      11.11.2016 13:33

      Все линуксоиды раз по десять уже его побеждали.

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


  1. Siemargl
    11.11.2016 10:59
    -2

    Из любого Линукса можно сделать принт-сервер, ваш КО — смысл статьи.
    Правда стоимость принт-сервера сравнима со стоимостью такого принтера на барахолке.

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


    1. relia
      11.11.2016 13:07

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


      Raspberry Pi 1 rev. B (512MB RAM)


  1. zigrus
    11.11.2016 11:12
    +1

    о ужас, вспоминаю его с содроганием
    Ubuntu 10.4, 9.4 и даже 8.4
    печать по сети и CUPS
    печать с winXP по сети на Ubuntu и наоборот


    1. mihmig
      11.11.2016 13:14

      Я хотел сделать проще — WindowsXP в VmWare Player, но почему-то не могу пробросить принтер как USB-устройство…


      1. DikSoft
        12.11.2016 23:07

        Под VirtualBox отлично себе из-под XP работает. Рецепт на GhostCript + Redmon
        Неубиваемый идеальный домашний принтер для малых объёмов печати.


        1. mihmig
          15.11.2016 12:15

          Да и под VMWare workstation завелся (10-я версия почему то не захотела пробрасывать USB-устройства, 12-я заработала. Спасибо за «наводку» на рецепт, попробую.


  1. relia
    11.11.2016 13:30

    Не все гладко с печатью графики: скан-копия «грязной» ксерокопии документа формата A4 с разрешением 600 dpi в TIFF в одном экземпляре выводится на печать очень шустро и все Ok. При отправке на печать сразу двух экземпляров второй упорно выводится без примерно 20% нижней части.


    1. sams0m
      11.11.2016 13:59

      Вы должны понять что это серия принтеров для личного использования. Вам не удастся его победить полностью.Плюс он довольно старый любая ошибка будь то замятие бумаги или он не видит бумагу вы будете бороться напостой при этом без наличия отчёта об ошибки. Вы сойдёте сума в конце концов в коллективе из-за этого вам спасибо не скажут а сочтут попросту некомпетентным. Поверьте на слово оно того не стоит.


      1. relia
        11.11.2016 14:45

        Так он у меня дома и стоит :) Со всеми остальными Вашими доводами согласен. Но! Когда надо напечатать пару-тройку страниц не чаще пары-тройки раз в месяц, но «срочно здесь и сейчас», то иногда имеет смысл делать и такие варианты.


        1. sams0m
          11.11.2016 15:01
          +1

          В целом хорошее приобретение. Он сродни линейки ThinkPad'ов среди лазерников. И главное расходники стоят копейки, а заправлять можно чуть ли не сажей.


          1. relia
            11.11.2016 15:12

            [С сильными брюзжащими интонациями] «Сейчас таких уже не делают!» :)

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


  1. avost
    11.11.2016 19:47
    +1

    Какая ирония. При появлении винпринтеров страдали линуксоиды, тк драйвера (по сути программные растеризаторы) были только под винду и не было причины изготовления их производителями под линукс. Теперь эти принтеры не работают под виндой, а под линуксом будут работать до последнего оставшегося на земле принтера :).


    1. Siemargl
      11.11.2016 23:40

      Ирония в том, что под виндой они работали, а теперь до конца жизни будут глючить, как описано выше.

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


    1. merlin-vrn
      12.11.2016 20:43

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


  1. electronus
    12.11.2016 03:34

    Да, а HP 1010, 1012, 1018, 1020, 1022 таки продолжают работать с х64


    1. relia
      12.11.2016 12:56

      Потому что это оригинальные HP, а не их клоны под брендом Canon