CUPS - принт-сервер и GDI-принтер

В статье рассказывается, как приспособить CUPS-сервер под управлением FreeBSD для поддержки принтеров, не имеющих Linux-драйверов и обеспечить его работу с клиентами на базе Microsoft Windows XP

[Антон Буцик (b_a_m at ua.fm)]

CUPS - принт-сервер и GDI-принтер

Замечение автора: Статья ни на что не претендует. Буду рад, если кому поможет.

Все, что описано ниже будет происходить с FreeBSD-5.2 и samba-3.0.5, но думаю, что и с Linux все будет работать тоже, но Samba не ниже 3.х ( поднять не сложно).

Задача такая: если принтеры, под которые нет драйверов в cups и других пакетах и есть клиенты по Windows XP Pro (Home Edition)

Читая Samba-HowTo, в smb.conf нужно добавить.

[global]
 ...
 disable spoolss = Yes
 show add printer wizard = No
 ...

[printers]
        comment = All Printers
        path = /var/spool/samba
        printer admin = root
        guest ok = Yes
        printable = Yes
        browseable = No
[print$]
        comment = Printer Drivers
        path = /usr/local/share/cups/drivers
        write list = root
# а вот пример для плоттера
[hp-500]
        comment = HPDesignJet500
        path = /var/spool/samba
        guest ok = Yes
        printable = Yes
        browseable = Yes
        use client driver = Yes
Последняя строка говорит от том, что нужно использовать драйвера со стороны клиента и в тоже время в файлах настройки cups разкомментировать строки:
.../mime.convs
application/octet-stream        application/vnd.cups-raw        0       -

.../mime.types
application/octet-stream
Теперь cups пропускает потоки данных, не форматируя их.
    cups-base-1.1.20.0
    cups-lpr-1.1.20.0
    cups-pstoraster-7.07_1
    ghostscript-gnu-nox11-7.07_11
    foomatic-db-20040107_2
    libijs-0.35
    hpijs
это те пакеты, которые у меня стоят. ghostscript - позволяет печатать на принтеры, которые не поддерживают PostScript. Ниже просто готовые драйвера сторонних разработчиков которые дают возможность печатать прямо из сервера и клиента без использования
    use client driver = Yes
У меня все двайвера, которые установились лежат
    /usr/local/share/cups/model/
    /usr/local/share/cups/drivers/
у всех по-разному.

Нужно добавить принтер, для использования

    http://print-server:631/
если cupsd запущен, там все ясно, только желательно чтобы имена принт-шар samba и cups имена принтеров совпадали (case sensative).

Для тех принтеров, у которых нет драйверов или GDI принтеры аля Canon (MS Slave) двайвера нужно указать просто RAW [queue], то есть пропускать прямо и использовать двайвера клиента.

Если вы только только подключили принтер по USB, то нужно перезапустить cupsd и у вас в выборе по http://... (backend) появится, к примеру USB1(ulpt0).

Рестартуем cups. В логах (/var/log/cups/error_log) читаем, что и как там проиходит, если такой информации не достаточно, то добавить ее можна в cupsd.conf

        LogLevel debug
Ну вот в Сетевом головокружении на сервере должен появиться принтер hp-500, после перезапуска самбы, тыкаем на него и ставим драйвера с дистриба, который с ним шел. Пробум печатать с клиента и :)

Ну выше все ясно, если все нормально получилось с системной стороной вопроса, то есть, если система смогла нормально обработать поключенное устройство.

А вот у меня есть проблема с притерами USB 2.0 Hi Speed, которы печатали страницу и система в корку :(

Во FreeBSD 5.1 появился двайвер device ehci

# USB support
device          uhci            # UHCI PCI->USB interface
device          ohci            # OHCI PCI->USB interface
device          usb             # USB Bus (required)
device          ugen            # Generic
device          uhid            # "Human Interface Devices"
device          ulpt            # Printer
device          ehci            # USB 2.0 support
вот кусок из ядра для USB 2.0 принтеров, система при подключении прекрасно их определяет, но не работает - это FreeBSD 5.2-CURRENT(echi - v1.69), в манах пишут, что драйвер не готов, будем ждать.

Но есть проект, ( CUPS-SAMBA provides a means to export CUPS printers from a FreeBSD server to Windows NT/XP/2000/2003 clients with a single Windows driver that customizes the printer based on the PPD file for the printer. WWW: http://www.easysw.com/ /usr/ports/print/cups-samba/ )

который дает возможность перенаправлять печать с Unix сервера на клента или на сервер снова.Он дает нам backend smb.

Для начала попробуйте примонтировать smb шару, если все окей строка параметров при монтировании и дает URI.

    mount_smbfs -W GKM //anton@admin/CanonLAS /mnt/admin
Среди драйверов выбираем windows smb.
В URI   smb: -W GKM //anton@admin/CanonLAS - работает.
Добавим шару на самбе (перезапустим), ставим принтер с клиенскими драйверами и пробуем печатать. Печать идет на сервер, а с сервера на клиента, у которого стоит принтер GDI. Такой круг можна проделать и с сервером, но это для Вас.

Статья взята с сайта OpenNet.

[ опубликовано 07/09/2004 ]

Антон Буцик (b_a_m at ua.fm) - CUPS - принт-сервер и GDI-принтер   Версия для печати