Intereting Posts

Почему Avahi видит мой сетевой принтер, а CUPS – нет?

Я настроил разрешение имени хоста .local , запустил просмотр чашек и перезапустил org.cups.cupsd.service . avahi-browse показывает принтер WiFi:

 $ avahi-browse --all --ignore-local | head --lines=1 | tr --squeeze-repeats ' ' + enp5s0 IPv6 Canon MG6400 series _canon-bjnp1._tcp local 

Однако, http://127.0.0.1:631/admin/ не показывает никаких принтеров вообще. Что дает?

Для автоматического обнаружения вам необходим дополнительный компонент из CUPS, называемый cups-browsed , который запрашивает демон Avahi, а затем заполняет конфигурацию CUPS на основе того, что видит демон Avahi. К сожалению, я не совсем уверен, что нужно в Arch для настройки этого (сам демон не должен нуждаться в какой-либо настройке конфигурации, я просто не уверен, какое имя службы есть в Arch, чтобы включить его, или даже является ли это частью стандартной установки CUPS или нет).

ВНИМАНИЕ: Этот ответ в полном объеме действителен только для более поздних версий CUPS (например, 2.2.x). Для предыдущих версий спросите конкретно, не понимаете ли вы, что говорит man-страница для cupsd.conf


Во-первых , CUPS только автоматически устанавливает и обнаруживает локальные сетевые принтеры, которые объявляют себя поддерживающими IPP ( Internet Printing Protocol ). Запатентованный протокол, разработанный Canon, не будет работать.

Чтобы проверить, является ли ваш принтер одной из моделей с поддержкой IPP, просто запустите

 ippfind [ENTER] 

Он должен возвращать список URI устройства печати (или очереди CUPS) с поддержкой IPP.

Во-вторых , если ваша модель Canon MG6400 поддерживала IPP, ваше обнаружение avahi-browse должно возвращать не просто подтип службы _canon-bjnp1._tcp , но также _ipp._tcp. и / или _ipps._tcp. …. но, может быть, вы упускаете это из виду, потому что ваш | head --lines=1 | head --lines=1 выбрасывает эти результаты из windows?

В-третьих , чтобы включить CUPS для полного участия в сети ZeroConf / Bonjour для автоматического использования общих принтеров и, в свою очередь, для совместного использования своих собственных локальных принтеров, в файле /etc/cups/cupsd.conf необходимо указать следующие строки:

 BrowseDNSSDSubTypes _cups,_print BrowseLocalProtocols all Port 631