Приветствую коллеги! Встретилась мне на Хабре статья Используем Google Cloud Print без Google Chrome.
Хотелось бы повторить это на наших устройствах, однако не нашел в репозитарии модулей python-cups и python-setuptools. Прошу по возможности их добавить в репозитарий.
Last edited by ryzhov_al; 15-08-2012 at 07:10.
Спасибо! В ближайшее время попробую - отпишусь.
Коллеги, докладываю:
Setup:
Asus RT-N56U
Firmware Version: 1.0.1.8e-p2 - кстати, более старшие версии прошивки почему-то странно у меня работают с Entware
- ряд установленных программ, работавших на этой прошивке, на обновленной вываливаются в segfault
Operation Mode: Router
Репозиторий - Entware
При подключении принтера к USB порту роутер вроде его опознает:
Однако попытка напрямую на него печатать не приводит к успеху:Code:$dmesg usb 2-2: new full speed USB device using rt3xxx-ohci and address 2 usb 2-2: configuration #1 chosen from 1 choice drivers/usb/class/usblp.c: usblp0: USB Bidirectional printer dev 2 if 0 alt 0 proto 2 vid 0x04F9 pid 0x0182 drivers/usb/class/usblp.c: usblp0 Device ID string [51]='MFG:Brother;CMD:PJL,HBP;MDL:DCP-7010;CLS:PRINTER;' [K] usblp_probe
Кстати, ожидал, что принтер появится в виде типа /dev/usb/lp0, однако даже папки /dev/usb/ не обнаружилCode:$cd /tmp $cat "Hello World" > message.txt $cat message.txt > /dev/lp0
Вывода на печать нет. В логе
На этом я дальше копать не стал, попробовал запустить веб-интерфейс cups - вроде его требовала статья на Хабре.Code:dmesg drivers/usb/class/usblp.c: usblp0 Device ID string [51/max 1552]='MFG:Brother;CMD:PJL,HBP;MDL:DCP-7010;CLS:PRINTER;' drivers/usb/class/usblp.c: Parsing USBLPID...
Code:$ps | grep cups 18350 pts/1 S+ 0:00 \_ grep cups 31421 ? Ss 0:00 cupsd -C /opt/etc/cups/cupsd.confПопытка войти в веб-интерфейс cups http://myrouterip:631 дает ошибку 404 not foundCode:$cat /opt/etc/cups/cupsd.conf ######################################################################## # # # This is the CUPS configuration file. If you are familiar with # # Apache or any of the other popular web servers, we've followed the # # same format. Any configuration variable used here has the same # # semantics as the corresponding variable in Apache. If we need # # different functionality then a different name is used to avoid # # confusion... # # # ######################################################################## AccessLog syslog ErrorLog syslog LogLevel info #LogLevel debug2 PageLog syslog PreserveJobHistory No PreserveJobFiles No AutoPurgeJobs Yes MaxJobs 25 MaxPrinterHistory 10 #Printcap /etc/printcap #PrintcapFormat BSD RequestRoot /var/cups #RemoteRoot remroot User nobody Group nogroup RIPCache 512k TempDir /var/cups Port 631 HostNameLookups Off KeepAlive On Browsing On BrowseProtocols cups <Location /> Order Deny,Allow #Allow From 127.0.0.1 #Allow From 192.168.1.0/24 Allow From All </Location> <Location /admin> AuthType Basic AuthClass System Order Allow,Deny Allow From All </Location>
Поскольку идей не было, запустил cloudprint:
cloudprint запустился и остался висеть без выхода в командную строку. Но не завис, его можно прервать с помощью Ctrl-CCode:$cloudprint Skipping USB Skipping LP
На станице https://www.google.com/cloudprint?user=0#printers новых принтеров не появилось
Поскольку время было позднее, эксперименты прекратил, но осталось опасение, что что-то не так, поскольку напрямую
на принтер напечатать нельзя и cups не работает. Ну что, коллеги, может что-то посоветуете?
Last edited by Omega; 16-08-2012 at 16:12. Reason: 2 posts merged
Посоветуем настроить CUPS, т.е. для начала сделать так, чтобы он печатал безо всяких облаков.
С настроенным виртуальным принтером задание на роутер "приплывает" PDF-файлом, но на печать не выводится из-за недостатка у виртуального принтера capabilities. Детали здесь (простите за чат лог).
Last edited by ryzhov_al; 16-08-2012 at 09:23. Reason: NB Настраивать CUPS мне раньше не приходилось
Сперва разобраться с самой прошивкой, так как Entware не содержит ядерных модулей и на создание файлов самих устройств в /dev и т.п. повлиять не может.
C segfault'ами чуть посложнее - надо сперва убедиться что подхватываются нужные библиотеки из Entware, а не прошивочные. Ну и в идеале посмотреть при помощи gdb где-же именно падает.
Last edited by lly; 16-08-2012 at 09:57.
Я что-то подобное подозревал
Спасибо, буду вечером пробовать.
Я наивно полагал, что если роутер увидел принтер в административном веб-интерфейсе, то с модулями ядра все нормально...
anyway - попробую рекомендации уважаемого ryzhov_al, по результатам отпишусь
Last edited by Omega; 16-08-2012 at 16:07. Reason: 2 posts merged
Насколько я понимаю принцип работы cups, новых модулей там не понадобится.
Но там может понадобиться фильтр под конкретный принтер, который и выполняет собственно функции драйвера.
Если Ваш принтер есть в списке gutenprint из optware или для него подходят стандартные фильтры из комплекта в entware, то всё должно получиться, иначе ИМХО проблема решается только подключением данного принтера к ББ (возможно удалённо через роутер) и настройки всего добра уже там. В любом случае надо найти описание Вашего принтера в виде ppd файла, который понимает cups, возможно он есть или в gutenprint или в линуксовых драйверах от производителя.
Я samsung ML-2165W подключить через cups так и не смог именно в силу отсутствия проприетарного фильтра скомпилированного под архитектуру роутера.
Кроме того и cups у меня нормально не заработал (писал в теме про entware на 66-м), но это возможно из-за библиотек, просто не стал дальше копать.
ASUS RT-AC66U <Merlin 384.15>
ASUS RT-N66U <Merlin>
ASUS RT-N16 <Merlin>
☀ Макет нового WEB интерфейса ☀ Для iPhone/iPad ☀
Насколько я понял драйвер есть, однако пока проверить не могу - на сайте производителя (http://welcome.solutions.brother.com....html#DCP-7010) он в виде .deb или .rpm пакета. Я так понял нужно их расковырять и вытащить ppd файл...
Будем посмотреть...
Попытался настроить cloudprint, но столкнулся с тем, что не могу настроить CUPS. Не работает веб интерфейс (404) хотя cupsd висит в процессах. Принтер появляется в устройствах как /dev/lp0 и я могу распечатать с компьютера документ, но команда lpstat -v ничего не выводит. Принтер Brother HL-2030, Роутер ASUS WL-500GP v2 сборка 1.9.2.7-rtn-r4695 репозиторий Entware.
CUPS, IMHO — довольно жирная туша для embedded систем, он портирован без web-интерфейса. Настройки выполняются простой правкой конфига.
Да, cloudprint свою работу делает, но для печати не хватает некоторых компонентов. В частности, задания для принтера в PDF-формате из облака на роутер «приезжают», но я пока не портировал pdf2ps для того, чтобы задания могли уйти в печать. See issues #16, #27, #62.
Единственный товарищ, который в своё время вызвался тестировать работу cloudprint куда-то слился и дело заглохло. В связи с тем, что в одиночку вникать абсолютно во ВСЕ технологии — вопрос неблагодарный, я жду заинтересованных.
В целом по печати положение следующее. Пакет CUPS в OpenWRT изначально был в крайне куцем состоянии, причём древней версии. Это дело я поправил, на очереди довольно строптивый в плане кросс-компиляции guttenprint и ghostscript. Утилита pdf2ps — в составе последнего. Опять же, всю цепочку мне в одиночку не протестировать, у меня такой принтер, который с линуксом дружит чуть менее, чем совсем никак.
Last edited by ryzhov_al; 04-01-2013 at 08:04.
Готов протестировать и оказать посильную помощь. Что от меня требуется?
Добавил в репозиторий guttenprint, ghostscript и ряд популярных наборов шрифтов, теперь всё необходимое для AirPrint и Cloudprint в комплекте!
ghostscript — довольно тяжёлая софтина. Скажем, преобразование pdf2ps десятистраничного документа занимает на RT-N66U минуту:
На DIR-320:Code:# wget http://www.hashcash.org/papers/hashcash.pdf # du -h ./hashcash.pdf 88.0K ./hashcash.pdf # time pdf2ps ./hashcash.pdf ./hashcash.ps 11.30user 50.27system 1:01.92elapsed 99%CPU
Повторюсь, жду заинтересованных в тестировании.Code:$ time pdf2ps ./hashcash.pdf ./hashcash.ps real 3m 9.64s user 0m 34.07s sys 2m 33.36s
Last edited by ryzhov_al; 03-07-2013 at 14:32.
Имею указанные в заголовке роутер и принтер.
Принтер нормально печатает и из под винды и из под мак оси через lpr.
Для него есть программка под iOs, которая умеет печатать через ipp в формате raw.
Вроде идеальный вариант чтобы поставить cups и без всяких лишних драйверов и ppd файлов печатать в octet stream.
Установил cups из entware. Поправил ручками printers.conf - добавил ещё один принтер копию установленного по умолчанию usb, только изменил Connection: usb:/dev/lp0 вместо /dev/usb/lp0. Поставил его как принтер по умолчанию.
Запускаю печать.
В логах вижу Request file type is application/octet-stream, Print-Job successful-ok.
Ничего на принтер не печатается и cups в своей веб морде пишет, что ждёт пока принтер станет доступным.
Что делаю не так?
Вроде задача cups в такой ситуации пропихнуть задание без всяких фильтров. И он почти это делает, только не печатает. Скорее всего ошибка в /dev/lp0 и нужно воткнуть драйвер для raw печати, который создаст соответствующее устройство и с ним уже можно будет работать. Какой драйвер? Как правильнее установить?
Извините за сумбур, но что то я запутался слегка.
P.S. Потом планирую и с гугл и эйр принтом поэкспериментировать, но сначала нужно пройти эту вроде как простейшую ситуацию.
P.P.S. Попытка установить устройство в Connection: parallel:/dev/lp0 получил ошибку Unable to open device file: Permission denied
Last edited by dlukanidin; 16-11-2013 at 00:27.
ASUS RT-AC66U <Merlin 384.15>
ASUS RT-N66U <Merlin>
ASUS RT-N16 <Merlin>
☀ Макет нового WEB интерфейса ☀ Для iPhone/iPad ☀
Фича была востребована пользователями и пока мы телились, они смогли её реализовать средствами Optware.
- Airprint and Google Cloud Print via Optware.
- Airprint + Google Cloud Print + CUPS - working and here is how.
- A fork of Optware focuses on some fixes to allow AirPrint and
Google Cloud Print servers to run natively on Broadcom routers flashed with
TomatoUSB and DD-WRT.- AirPrint on TomatoUSB Router. Это How-To довольно толкового товарища, ранее активно тестировавшего наш порт AirPlay.
Делайте по образцу, у нас есть все необходимые компоненты.