Метка: cups

Всякое по-мелочи, текущее…

Попытка удаленно достучаться до CUPS на 631 порт, завершается сообщением ЗАПРЕЩЕНО! (Forbidden!). Связано с запретом рулить CUPS удаленно. Решается командой sudo cupsctl —remote-admin

Подключение принтера этикеток TSC TC200 к Linux, для печати по сети. Сперва расстроило отсутствие поддержки данного принтера в последних драйверах с офсайта. В предпоследних его тоже нет. Однако выяснилось, что TC200 базируется на более старом принтере ТТР245с. Вот от него драйвера и надо юзать. Так же важно правильно подключиться к принтеру: socket://printer_ip_address:9100

Про падучий CUPSd

Постоянно падает сервис cups. Ubuntu server 16.04.1. В логах /var/log/cups/error_log пишет что-то типа этого:

[05/Aug/2016:13:33:22 -0700] Saving subscriptions.conf...
[05/Aug/2016:13:33:22 -0700] cupsdSetBusyState: newbusy="Not busy", busy="Dirty files"
[05/Aug/2016:13:33:22 -0700] Expiring subscriptions...
[05/Aug/2016:13:34:22 -0700] Printer sharing is off and there are no jobs pending, will restart on demand.
[05/Aug/2016:13:34:22 -0700] Scheduler shutting down normally.
[05/Aug/2016:13:34:22 -0700] cupsdMarkDirty(----S)
[05/Aug/2016:13:34:22 -0700] cupsdSetBusyState: newbusy="Dirty files", busy="Not busy"
[05/Aug/2016:13:34:22 -0700] Saving subscriptions.conf...
[05/Aug/2016:13:34:22 -0700] cupsdSetBusyState: newbusy="Not busy", busy="Dirty files"
[05/Aug/2016:13:34:22 -0700] Creating keep-alive file "/var/cache/cups/org.cups.cupsd".
[05/Aug/2016:13:34:22 -0700] Saving job.cache...
[05/Aug/2016:13:34:22 -0700] cupsdStopSelect()

Т.е. сервис даже не падает, а вполне себе корректно завершается. Причем похоже, что одновременно с отвалом web сессии.

Копания привели к вот этому обсуждению. Судя по нему, проблема проявляется на последнем стабильном сервере 16.04 и CUPS из родных репозитариев. При этом у CUPS должен быть включен WEB-интерфейс. Решения:

  • обновиться на 16.10
  • отключить web и не ходить туда
  • либо использовать этот исправленный вариант

Мне был удобнее последний вариант. К сожалению прикрутить это дело в виде репозитария не вышло, потому пришлось качать файлы вручную и начинать установку с dpkg -i ./cups_2.1.3-4ubuntu0.1_amd64.deb отвлекаясь на удовлетворение зависимостей и фикся некоторые из них apt-get -f install. По итогу имеем:

root@crm:/var/log/cups# dpkg -l|grep cups
ii cups 2.1.3-4ubuntu0.1 amd64 Common UNIX Printing System(tm) - PPD/driver support, web interface
ii cups-client 2.1.3-4ubuntu0.1 amd64 Common UNIX Printing System(tm) - client programs (SysV)
ii cups-common 2.1.3-4ubuntu0.1 all Common UNIX Printing System(tm) - common files
ii cups-core-drivers 2.1.3-4ubuntu0.1 amd64 Common UNIX Printing System(tm) - PPD-less printing
ii cups-daemon 2.1.3-4ubuntu0.1 amd64 Common UNIX Printing System(tm) - daemon
ii cups-filters 1.8.3-2ubuntu3.1 amd64 OpenPrinting CUPS Filters - Main Package
ii cups-filters-core-drivers 1.8.3-2ubuntu3.1 amd64 OpenPrinting CUPS Filters - PPD-less printing
ii cups-ppdc 2.1.3-4ubuntu0.1 amd64 Common UNIX Printing System(tm) - PPD manipulation utilities
ii cups-server-common 2.1.3-4ubuntu0.1 all Common UNIX Printing System(tm) - server common files
ii libcups2:amd64 2.1.3-4ubuntu0.1 amd64 Common UNIX Printing System(tm) - Core library
ii libcupscgi1:amd64 2.1.3-4ubuntu0.1 amd64 Common UNIX Printing System(tm) - CGI library
ii libcupsfilters1:amd64 1.8.3-2ubuntu3.1 amd64 OpenPrinting CUPS Filters - Shared library
ii libcupsimage2:amd64 2.1.3-4ubuntu0.1 amd64 Common UNIX Printing System(tm) - Raster image library
ii libcupsmime1:amd64 2.1.3-4ubuntu0.1 amd64 Common UNIX Printing System(tm) - MIME library
ii libcupsppdc1:amd64 2.1.3-4ubuntu0.1 amd64 Common UNIX Printing System(tm) - PPD manipulation library

Все необходимые файлы были заменены исправленными версиями 2.1.3-4ubuntu0.1. При таких раскладах падения прекратились.

CUPS на Raspbian

Внедряем потихоньку Raspberry PI 2 в качестве RDP-клиентов. Пришло время подключать рабочие места с принтерами.

При установке CUPS, доступ к web извне закрыт. Как решить. В файле /etc/cups/cupsd.conf делаем следующие исправления:
1. Строчку Listen localhost:631 меняем на 0.0.0.0:631 (или *:631), это позволит принимать соединения не только с локалхоста, но и с остальных устройств в сети
2. Далее добавляем строчку Allow all в следующие места:

 <Location />
  # Allow remote administration...
  Order allow,deny
  Allow all
</Location>
<Location /admin>
  # Allow remote administration...
  Order allow,deny
  Allow all
</Location>
<Location /admin/conf>
  AuthType Default
  Require user @SYSTEM
  # Allow remote access to the configuration files...
  Order allow,deny
  Allow all
</Location>


Это снимет запрет на изменение параметров сервера через web
3. Ну и надо добавить текущего пользователя (кто собирается рулить CUPS через WEB) в группу lpadmin
sudo adduser pi lpadmin

Расшаривание принтера без SAMBA

Что-то замучал меня HP1010. Не хочет ни в какую расшариваться самбой. Принтер виден, но при попытке его установить пишет что-то вроде «Windows не может получить доступ… может соединение утеряно… бла-бла-бла» При этом спокойно юзаются папки и файлы. Ну да ладно, благо принтер можно (нужно?!) расшарить и без SAMBA, силами самого CUPS. К тому же, по-логике, при этом отпадает проблема описанная в прошлом посте, когда самбовские шары было видно, но принтера не было при этом.

Итак:

1. Добавляем пароль рута для залогинивания (это если у вас система типа Ubuntu, где root отключен):

sudo passwd root

2. Идем на линуховой машине на https://localhost:631/admin (обязательно https) и ставим галочки на против «Разрешить совместный доступ к принтерам, подключенным к этой системе», «Разрешить печать из Интернета», ну можно еще «Разрешить удаленное администрирование». При этом, для внесения изменений надо будет ввести логин/пароль рута (root/password).

3. На виндовой машине заходим на http://ip_print_server:631/printers (тут просто http). Там будет список принтеров установленных на линуховой машине. Выбираем нужный и копируем ссылку на него (получится что-то типа http://192.168.1.199:631/printers/hp_1010)

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

5. Всё. Осталось только указать драйвер к принтеру и после добавления принтера в систему проверить печать на него.

После старта в SAMBA-шаре не виден принтер

После старта машины с Ubuntu по сети не виден принтер, хотя папки расшарены. Помогает только service smbd restart  Это происходит потому, что сервис cups стартует раньше samba. Как его заставить стартовать после самбы, я так и не придумал, но оказалось, что простое добавление в файл /init.d/rc.local  перед строчкой в конце exit 0  строки /etc/init.d/smbd restart решает проблему.