- Заводим Canon LBP2900 под linux, без ущерба для других принтеров и проиводительности
- Canon LBP2900 и Debian Wheezy
- Как вариант:
- Установка драйвера Canon CAPT для принтеров Canon LBP
- Содержание
- Автоматическая установка
- Материалы для загрузки
- Решение проблем
- Мониторинг состояния принтера
- Canon LBP2900 + Linux Debian — инструкция —
- CANON LBP2900 + LINUX DEBIAN
- Установка
- Удаление
- Список полезных команд
- Дополнение 1. Разделение доступа к принтеру по протоколу SMB
- Дополнение 2. Зависания
Заводим Canon LBP2900 под linux, без ущерба для других принтеров и проиводительности
GDI-принтеры, в частности Canon LBP2900, это довольно актуальная проблема для linux-пользователей, так как поставщик драйверов для этого чуда не сильно позаботился об их юзаюбельности. У этих драйверов есть open-source форк, но он нестабилен и находится в стадии отлаживания. Пример его использования я приводить не буду, а приведу пример использования проприетарных драйверов от Canon.
Зачем этот пост? Насколько мне известно, множеству людей не удалось заставить работать такой принтер под linux, поэтому я поделюсь с сообществом своей success story.
Основной проблемой является то, что для работы проприетарных драйверов необходим демон ccpd, который несколько мешает работе других принтеров, при этом в случае каких-то непредвиденных обстоятельств и сбоев он приводит к увеличению нагрузки на процессор.
Мой workaround состоит в том, чтобы при подключении принтера, производить его настройку в один клик, а далее, после его отключения, убирать все следы использования.
Все действия я производил на Ubuntu 10.04 LTS, libc6 ver. 2.11. Говорят, что работа драйвера при разных версиях библиотеки libc6 может отличаться.
Для начала нам необходимо скачать проприетарные драйвера c сайта Canon. Путем проб и ошибок я выяснил, что версия 1.60 лучше всех поддается настройке, но это сугубо мое мнение.
Скачиваем архив, распаковываем, и в каталоге drivers находим искомые cndrvcups-capt_1.60-2_i386.deb cndrvcups-common_1.60-2_i386.deb
Устанавливаем их в таком порядке:
sudo dpkg-i cndrvcups-common_1.60-2_i386.deb
sudo dpkg -i cndrvcups-capt_1.60-2_i386.deb
также нам необходимо:
sudo apt-get install cups
Итак, приступим. Для настройки и удаления принтера я набросал bash-скрипт:
#!/bin/bash
if [ $1 = «kill» ]; then sudo killall -9 captmon2
fi
if [ $1 = «start» ] ;then
sudo ccpdadmin -x LBP2900 #удаляем записи о принтере на всякий случай
sudo /etc/init.d/cups stop #останавливаем демон печати
sudo mkdir /var/ccpd
sudo mkdir /var/captmon
sudo mkfifo /var/ccpd/fifo0 #эти файлы почему то не создаются автоматом..
sudo chmod 777 /var/ccpd/fifo0
sudo /etc/init.d/cups start #запускаем демон печати
sudo /usr/sbin/lpadmin -p LBP2900 -m CNCUPSLBP2900CAPTK.ppd -v ccp:/var/ccpd/fifo0 -E #регистрируем принтер в системе
sudo cp /home/jamb/scripts/ccpd /etc/init.d/ccpd #заменяем стандартный демон на патченный
sudo /usr/sbin/ccpdadmin -p LBP2900 -o /dev/usblp0 # добавляем принтер, адрес работает почему-то только такой. разработчики?
sudo /etc/init.d/ccpd stop # здесь обязательно надо отрубить ccpd, таков ритуал
sudo /etc/init.d/ccpd start
captstatusui -P LBP2900 # показываем интерфейс управления, там отобразятся события, например замятие бумаги
else if [ $1 = «stop» ] ;then
sudo ccpdadmin -x LBP2900
sudo /etc/init.d/cups stop
sudo /etc/init.d/ccpd stop
fi
fi
Теперь о ритуале запуска.
Во-первых, ccpd надо заменять на патченный, стандартный не справляется. исходную ссылку на него дать не могу, утеряна за давностью лет, но вот он: http://pastebin.com/9vcUtL4f. Все благодарности за патч отправляйте Raphael Doursenaud и Markovtsev Vadim . Копируем содержимое по ссылке в файл ccpd и указываем путь к нему в скрипте, мой путь:
/scripts/ccpd
Во-вторых, если подключить принтер по usb, и довольно долго не запускать скрипт, то вероятность правильной работы устройства очень сильно уменьшается, при этом captstatusui выдает ошибку *socket error*.
Итак, называем основной скрипт как нибудь, например lbp2900, даем ему права на исполнение
chmod +x ./lbp2900
Теперь подключаем принтер к компьютеру, ждем секунды три, и запускаем скрипт
lbp2900 start
если все сделано верно, то появится окошко captstatusui с надписью Ready to print. Можем печатать. Заметьте, теперь в cups два принтера, один поднимается по умолчанию системой и не работает, а второй наш, рабочий. У меня он называется LBP2900-2.
Для отключения принтера выполняем
lbp2900 stop
и вынимаем usb провод.
При этом может возрасти нагрузка на процессор. Это бунтует процесс captmon2, лечится командой
lbp2900 kill
Таким образом, наша система не загрязнена ничем, кроме драйвера для устройства, и довольно быстро настраивается для работы с LBP2900.
Источник
Canon LBP2900 и Debian Wheezy
Есть принтер Canon LBP2900 и Debian Wheezy amd64.
Установил драйвера с оф. сайта (взял 64 битные rpm’ы и сконвертировал в deb).
При добавлении принтера указал сокет 59687.
lpadmin -p LBP2900 -m CNCUPSLBP2900CAPTK.ppd -v ccp://localhost:59687 -E
При запуске captstatusui -P LBP2900 выдает ошибку:
Check the DevicePath of /etc/ccpd.conf
UI_Port 59787
PDATA_Port 59687
/dev/usb/lp1 существует (появляется / исчезает при подключении / отключении принтера).
> ls -la /dev/usb/lp1
crw-rw—T 1 root lp 180, 1 Ноя 28 15:25 /dev/usb/lp1
Как можно пофиксить?
ccpd после включения принтера рестартовал? и почему не взять убунтовскую дебку вместо танцев с alien?
Результаты работы чужого порой слабо предсказуемы.
Хочу обратить внимание на существование этого скрипта. (иногда бывают проблемы с правами на /dev/usb/lp)
Хочу обратить внимание на существование этого скрипта.
Скрипт делает все тоже самое, что я делаю руками.
И да. Я все равно его попробовал, но результат такой же.
ccpd после включения принтера рестартовал?
и почему не взять убунтовскую дебку вместо танцев с alien?
Результат тот же.
Пока не поздно, продай это принтер.
С Ubuntu он работает, Mut@NT написал когда-то подробный мануал.
Не завелось.
Ставил и релиз 0.1.1 и исходники из мастера.
Короче говоря, поставил виртуальную машину с Виндой и в udev правила — при подключении принтера по USB стартовать машину, при отключении — грохать.
На винде виртуальный принтер сделал по этому мануалу: http://wiki.unixforum.org/wiki/Расшарить_из-под_винды_для_линукса_принтер,_дл.
Хм, у меня была проблема вот с этим
crw-rw—T 1 root lp 180, 1 Ноя 28 15:25 /dev/usb/lp1
Юзер был включен в lpadmin
Проблема решилась при добавлении юзера в группу lpadmin — правильно я понимаю?
Или при добавлении юзера в группу lp?
При смене группы для /dev/usb/lp1 с lp на lpadmin. Аналогично можно включить юзера в lp.
хм. спасибо, попробую.
При смене группы для /dev/usb/lp1 с lp на lpadmin. Аналогично можно включить юзера в lp.
Та же фигня.
И пользователя в группу lp добавил и группу /dev/usb/lp1 на lpadmin поменял.
ТС — неудачник, поделенный на ноль. Я этот кусок металла смог заставить работать в ubuntu 8.10
Как вариант:
/usr/sbin/lpadmin -p LBP6200 -m CNCUPSLBP6200CAPTK.ppd -v ccp://localhost:59687
/usr/sbin/ccpdadmin -p LBP6200 -o /dev/usb/lp0
CUPS_ConfigPath = /etc/cups/
LOG Path = None
UI Port = 59787
Entry Num : Spooler : Backend : FIFO path : Device Path
[0] : LBP6200 : ccp : //localhost:59687 : /dev/usb/lp0
в который раз пробую связать 2900 с гентой, таже проблема сейчас
модуль usblp в ядре есть, загружается, но в отличиет от деба(который стоит на старом компе и я им не пользуюсь), где после обновления cups’а обновил дрова до 2,6 и завел с пол-пинка, на генте lsmod говорит
В чем проблема?? гента особенная, но уж наверное не до такой степени, имхо.
У меня через конфигурялку системы не работает, ставится настраивается, но не печатает. Печатает только когда
1) ставлю софт у меня через rpm (RTFM!),
2) Регистрируем принтер Canon LBP 6200 в ОС
/usr/sbin/lpadmin -p LBP6200 -m CNCUPSLBP6200CAPTK.ppd -v ccp://localhost:59687
3) Добавляем принтер в ОС
/usr/sbin/ccpdadmin -p LBP6200 -o /dev/usb/lp0
___________________________________________
out /usr/sbin/ccpdadmin must be
CUPS_ConfigPath = /etc/cups/
LOG Path = None
UI Port = 59787
Entry Num : Spooler : Backend : FIFO path : Device Path
[0] : LBP6200 : ccp : //localhost:59687 : /dev/usb/lp0
reboot на всякий
после всех танцев,
111) off-on printer .
222)
# /etc/init.d/ccpd restart
systemctl —system restart ccpd.service
333)
# /etc/init.d/cups restart
systemctl —system restart cups.service
ВСЕ! после должен печатать
иногда бывает что нужно включить печать
Управление принтерами (http://localhost:631/) -> LBP -> Возобновитиь печать
Я печатаю редко, по этому пункты 111,222 и 333 обычно тупо делаю и печатаю
дальше разбираться почему не печатает без их выполнения не стал.
попробую, ибо не помню, что делал..
ЗЫ:: полдня убил, но не заставил печатать
Тут на лоре чувак для него свой драйвер накалякал, только он пока не очень стабильный, и многих настроек нет. И забил походу. Так что проще выкинуть это говнище и купить нормальный. Сам правда всё никак не соберусь.
Вчера, используя драйвер https://help.ubuntu.com/community/CanonCaptDrv190, установил на debian jessie 64-bit. Подключил без особых проблем принтер, расшаренный с пк с вин7. Пока печатает.
Не прошло и 10 лет, а драйвер уже работает.
Это чисто повезло. Я этот принтер уже раз пять настраивал с CAPT, когда систему переставлял, и т.д. Так вот, из пяти где-то в 50% случаев он просто тупо не работал, или работал когда ему вздумается. Просто тупо потому что звёзды не в той фазе, я серьёзно.
А foo2capt, который в твоей статье советуют как альтернативу, обсуждается тут — Canon LBP-2900 и другие CAPT-принтеры — ПИШУ ДРАЙВЕР, но он пока в альфа-бета версии.
Источник
Установка драйвера Canon CAPT для принтеров Canon LBP
Содержание
Автоматическая установка
Пользователем coden в соответствующей теме был предложен разработанный им на основе данных из разных источников скрипт автоматической установки и настройки драйвера Linux CAPT Printer Driver v2.71 для принтеров Canon: LBP-810, LBP-1120, LBP-1210, LBP2900, LBP3000, LBP3010, LBP3018, LBP3050, LBP3100, LBP3108, LBP3150, LBP3200, LBP3210, LBP3250, LBP3300, LBP3310, LBP3500, LBP5000, LBP5050, LBP5100, LBP5300, LBP6000, LBP6018, LBP6020, LBP6200, LBP6300, LBP6300n, LBP6310, LBP7010C, LBP7018C, LBP7200C, LBP7210C, LBP9100C, LBP9200C на Ubuntu 12.04, 12.10, 13.04, 13.10, 14.04, 14.10, 15.04, 15.10, 16.04 32-битной и 64-битной архитектуры. Если вы уже делали какие-либо действия по установке принтера этой серии, в текущей системе, то перед началом установки, следует отменить эти действия. При отсутствии пакетов драйвера они автоматически загружаются из интернета в папку скрипта. Для обновления драйвера сначала удаляете старую версию через скрипт, затем устанавливаете новую также через скрипт.
Чтобы воспользоваться скриптом, необходимо скачать его и запустить через терминал:
Материалы для загрузки
Решение проблем
Если принтер не начал печатать, значит нужно посмотреть в /dev/usb под каким названием отображается принтер, например если lp2, то отменяем и регистрируем заново
Мониторинг состояния принтера
В комплекте с драйвером поставляется графическая утилита captstatusui при помощи которой можно отслеживать состояние принтера. Использовать её можно следующим образом:
Для того, чтобы мониторинг запускался при каждом включении компьютера сделайте следующее: откройте Параметры системы → Автоматически запускаемые приложения, нажмите на кнопку добавить.
Название: Canon Printing Status Monitor
Команда: captstatusui -e -P
Описание: Скрыто до появления ошибок
С опцией -e утилита не будет показывать свое окно до тех пор, пока не случится ошибка.
Источник
Canon LBP2900 + Linux Debian — инструкция —
CANON LBP2900 + LINUX DEBIAN
Инструкция по установке принтеров Canon в Linux Debian (Ubuntu etc). Применима для принтеров LBP-810, LBP-1120, LBP-1210, LBP2900, LBP3000, LBP3010, LBP3018, LBP3050, LBP3100, LBP3108, LBP3150, LBP3200, LBP3210, LBP3250, LBP3300, LBP3310, LBP3500, LBP5000, LBP5050, LBP5100, LBP5300, LBP6000, LBP6018, LBP6020, LBP6200, LBP6300, LBP6300n, LBP6310, LBP7010C, LBP7018C, LBP7200C, LBP7210C, LBP9100C, LBP9200C.
Протестировано с принтером Canon LBP2900 на Linux Debian 9.
Установка
Закачка драйвера (последняя доступная версия драйвера — 2.71):
Установка (при необходимости) сервера печати CUPS:
Проверка наличия в системе установленного сервера CUPS:
Если сервер CUPS не установлен, то установка :
Активация systemd-юнита CUPS:
Установка драйвера и необходимых зависимостей:
Независимо от используемой архитектуры необходимо устанавливать драйвер для архитектуры x86, потому что драйвер для архитектуры x86-64 не работает — задания становятся в очередь, но не отправляются на принтер. Были испробованы все доступные способы.
Добавление поддержки i386 архитектуры (только для x86-64)
Установка драйверов (для x86 и x86-64):
Внесение изменений в оригинальные файлы:
Исправление файла /etc/init.d/ccpd:
После строки #!/bin/sh вставить код:
Создание юнита /etc/systemd/system/ccpd.service со следующим содержимым:
Перезапуск служб cups и ccpd, проверка состояния:
Регистрация принтера в системе печати. Два варианта (проверены оба):
Таблица соответствия PPD-файлов и моделей принтеров:
Во многих (почти во всех) инструкциях и руководствах допущена ошибка в параметрах команды (во всяком случае для данной версии драйверов):
ccp://localhost:59687 — неправильно
ccp:localhost:59687 — правильно
Подключение принтера. Определение порта подключения:
Регистрация принтера в сервисе ccpd (lp0 при необходимости заменить на вывод предыдущей команды):
Перезапуск служб cups и ccpd:
Проверка состояния принтера:
Установка принтера устройством печати по-умолчанию:
Удаление
Удаление регистрации принтера:
Удаление ccpd из автозагрузки:
Список полезных команд
lp, lpr — печать
lpadmin — настройка параметров
lpq — просмотр очереди печати
lpstat — информация о состоянии принтера
cancel — очистка очереди печати
Дополнение 1. Разделение доступа к принтеру по протоколу SMB
Для открытия общего доступа к принтеру по протоколу SMB нужно в файле конфигурации samba (предполагается, что в системе уже есть настроеный samba сервис) /etc/samba/smb.conf внести следующие общие параметры:
Так же рекомендуется добавить параметры для конкретного принтера:
Соответственно, должна существовать учетная запись user, которая также внесена и в базу пользователей samba, и которая обладает правами доступа к принтеру.
Для доступа по протоколу SMB из Windows XP нужно добавить в /etc/samba/smb.conf в секции [global] строки
Дополнение 2. Зависания
Периодически сервис драйвера подвисает и принтер перестат отвечать. Лечится это очисткой очереди печати и перезапуском сервисов:
Источник