Совместное использование принтера из Ubuntu для Mac, чтобы его можно было найти через просмотр
У меня настольный ПК 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 ответа
Проверьте файл /etc/cups/cupsd.conf на сервере Ubuntu и найдите Browse
записей:
Browsing On
BrowseOrder allow,deny
BrowseAllow all
BrowseRemoteProtocols CUPS
BrowseAddress @LOCAL
BrowseLocalProtocols CUPS dnssd
Они должны быть в верхней части файла. Убедитесь, что просмотр включен, и перезапустите чашки:
# restart cups
У меня была эта схватка пару раз с различными клиентами IPP, они, кажется, просто не выбирают название очереди для трансляции. Затем, как вы сказали, когда вы вручную указываете правильное имя, все работает нормально.
Одна вещь, которую стоит проверить, это имя очереди, которое запрашивает сервер CUPS:
spk @ hedvig: ~ $ sudo tcpdump -nv -s 1500 -A -c1 порт 631 tcpdump: прослушивание по eth0, тип канала EN10MB (Ethernet), размер записи 1500 байт 14:03:58.959617 IP (tos 0x0, ttl 64, id 0, смещение 0, флаги [DF], прото UDP (17), длина 217) 192.168.0.252.631 > 192.168.0.255.631: UDP, длина 189 E.....@.@............ww.kS82904e 3 ipp://192.168.0.252:631/printers/hp-color-LaserJet-2550-series "hedvig" " Листы заданий HP-Color" "HP Color LaserJet 2550 Series (рекомендуется)"= нет, нет срок аренды =300
Дамп выше требует довольно длинного имени очереди, но да, между ними есть / printers /. Интересно, кто идиот дал моему принтеру это длинное имя... очевидно, моей текущей среде не нужно, чтобы он вводился вручную слишком часто;-)