У меня есть server настольного ПК под управлением Ubuntu 10.10 с принтером Canon MX350 Canon, подключенным через USB. Я хочу поделиться принтером, чтобы я мог печатать на нем с ноутбука MacBook Pro под управлением OS X 10.6.6 и, возможно, с других клиентов.

(Хотя принтер может предоставлять различные услуги печати в сети, это почему-то очень ненадежно для меня, поэтому я отключил его сетевые функции.)

Программа system-config-printer нашла принтер легко, и я могу печатать файлы локально на server . Я включил общий доступ к принтерам и добавил принтер на Mac. Я нажал на Системные настройки, Печать и факс, +, IP. Я выбрал IPP в качестве протокола и server.home.gateway в качестве адреса, на который диалоговое окно ответило «Действительный и полный адрес». (Мой ADSL-маршрутизатор обслуживает этот DNS-адрес для server .) Я написал Canon качестве имени очереди (а также попытался оставить поле пустым), поскольку он отображается на server .

Когда я попытался распечатать, принтер "остановился" на Mac. Я включил ведение журнала отладки в cupsd.conf и заметил сообщения об ошибках, подобные этому:

Get-Printer-Attributes ipp://server.home.gateway:631/Canon
Get-Printer-Attributes client-error-not-found: The printer or class was not found.
Returning IPP client-error-not-found for Get-Printer-Attributes (ipp://server.home.gateway:631/Canon) from 192.168.0.2

(Если я оставил имя очереди пустым, не найденный принтер был просто ipp://server.home.gateway:631/)

После долгих догадок и просмотра документации CUPS я изменил очередь на printers/Canon , и печать начала работать. Я рад, что это работает, но это явно неоптимально: в графическом интерфейсе Mac не было указания, какие очереди печати доступны на сервере. Есть ли способ настроить сервер печати так, чтобы клиент мог просто выбрать принтер из списка доступных принтеров и автоматически получить правильное имя очереди?

2 ответа2

2

Проверьте файл /etc/cups/cupsd.conf на сервере Ubuntu и найдите записи Browse :

Browsing On
BrowseOrder allow,deny
BrowseAllow all
BrowseRemoteProtocols CUPS
BrowseAddress @LOCAL
BrowseLocalProtocols CUPS dnssd

Они должны быть в верхней части файла. Убедитесь, что просмотр включен, и перезапустите чашки:

# restart cups
1

У меня была эта схватка пару раз с различными клиентами IPP, они, кажется, просто не выбирают название очереди для трансляции. Затем, как вы сказали, когда вы вручную указываете правильное имя, все работает нормально.

Одна вещь, которую стоит проверить, это имя очереди, которое запрашивает сервер CUPS:

spk@hedvig:~$ sudo tcpdump -nv -s 1500 -A -c1 port 631
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 1500 bytes
14:03:58.959617 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 217)
    192.168.0.252.631 > 192.168.0.255.631: UDP, length 189
E.....@.@............w.w..kS82904e 3 ipp://192.168.0.252:631/printers/hp-color-LaserJet-2550-series "hedvig" "HP-Color" "HP Color LaserJet 2550 Series Postscript (recommended)" job-sheets=none,none lease-duration=300

Дамп выше требует довольно длинного имени очереди, но да, между ними есть /printers /. Интересно, кто идиот дал моему принтеру это длинное имя ... очевидно, моей нынешней среде не нужно, чтобы он вводился вручную слишком часто ;-)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .