Есть небольшая офисная сеть, всего-ничего 4 машинки + файл-сервер на самбе. Все машинки переводятся на линукс и возникла надобность оторвать рабочую лошадку (монохромный лазерник Samsung SCX-4200) от компьютера бухгалтера и воткнуть в файлпомойку. Кругом только плюсы - компьютеры включать ненадо, чтобы принтер запечатал, достаточно просто включиться самому, файлпомойка работает постоянно, без выключений и перезагрузок. Собственно сначала была мысль прикрутить принтер к самбе, но она была отброшена потому, что в офисе с течением времени виндовых машинок не останется (мы переходим на линукс) и городить огород вокруг пустого места смысла нет. Поначитавшись статей я понял, что винда прекрасно может отправлять документы на печать прямо на CUPS. Собственно, все уже провернуто. Все работает, но.. тут возникли грабли. На файлпомойке стоит Arch Linux (буду писать о пакетах, чтобы не вводить в заблуждение). На нем CUPS имеет конфиг, аналогичный этому
Код: Выделить всё
LogLevel debug
SystemGroup sys root
# Allow remote access
Port 631
Listen /var/run/cups/cups.sock
<Location />
# Allow shared printing...
Order allow,deny
Allow all
</Location>
<Location /admin>
# Restrict access to the admin pages...
Order allow,deny
</Location>
<Location /admin/conf>
AuthType Default
Require user @SYSTEM
# Restrict access to the configuration files...
Order allow,deny
</Location>
# Share local printers on the local network.
Browsing On
BrowseOrder allow,deny
BrowseAddress @LOCAL
<Policy default>
# Job-related operations must be done by the owner or an administrator...
<Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription $
Require user @OWNER @SYSTEM
Order deny,allow
</Limit>
# All administration operations require an administrator to authenticate...
<Limit Pause-Printer Resume-Printer Set-Printer-Attributes Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Job$
AuthType Default
Require user @SYSTEM
Order deny,allow
</Limit>
# Only the owner or an administrator can cancel a job...
<Limit Cancel-Job>
Order deny,allow
Require user @OWNER @SYSTEM
</Limit>
<Limit All>
Order deny,allow
</Limit>
</Policy>
BrowseLocalProtocols
BrowseRemoteProtocols
DefaultAuthType Basic
MaxClients 5- Разрешить совместный доступ к принтерам, подключенным к этой системе (без выбора протокола CUPS)
- Разрешить печать из Интернета
Это было сделано для того, чтобы использовать простую схему, что виндовые машинки, что будущие линуксовые машинки должны подключаться к принтеру по протоколу Интернет-печати (http). Сейчас (и далее) они подключены так: http://192.168.11.6:631/printers/Samsung_SCX-4200_Series. И вот, принер был добавлен (после выгрузки модуля usblp) по usb, строка адреса что-то типа usb://Samsung/SCX-4200%20Series?serial=123456789.. Далее я пошел на виндовые машинки и подключился к нему с трех машинок. И тут началось самое интересное.
После подключения первой виндовой машинки к принт-серверу CUPS с вышеуказанным принтером на борту я проверил печать, все работало, проверил еще раз - работает. Пошел подключаться с другой вендовой машинки, подключился, проверяю печать - тишина, опять отправляю на печать - тишина. Иду смотреть в веб-интерфейсе купса (удаленно, на самом сервере нет ни монитора ни графической оболочки) что там с заданиями, он рапортует, что все отпечатано успешно. Печатаю с первой машинки - печатает, печатаю со второй - печатает, снова отправляю на печать - не печатает. То есть рандомный пропуск заданий, хотя купс со своей стороны говорит, что все напечатано. В качестве драйвера выбран Splix для этой модели. И тут я думал, ломал мозг и удалил принтер (балбес). После этого принтер потерялся, добавить я его никак не мог, выгружая / загружая usblp модуль. Все бестолку - принтера нет. Ну тут я подумал про спасительный пакет hal-cups-utils. Установил, принтер увиделся через hal:///чтоТоТамДлинноеДальше. Имя ему было дано как и раньше умолчальное. После этого я произвел проверку печати со всех вендовых машинок на него, печать одновременно с нескольких и в общем - испытание. И что вообще странно - отработал без запинки! То есть не пропустил ни одного документа. Я грешил на принтер, я грешил на драйвер (это была бы беда!), но никак не думал, что от протокола подключения будут такие фокусы, то есть через usb:// мы не работаем, а через hal:// работаем. Люди, где же истинная природа происхождения глюков? Я так и не понял.
Ну ладно, тьфу тьфу.. пока все работает. Но надвигается пара грозных вопросов. Итак, первый компьютер, который нужно переводить на линукс уже практически у меня и практически с линуксомна борту. Его надо вернуть в русло сети так скажем. То есть он тоже должен печатать и ходить на файлпомойку. Второе ерунда, проходили да еще и разными путями. А вот с принтером я не совсем догоняю. То есть я дома в качестве эксперимента пробовал такую схему: принт-сервер имеет общедоступный принтер, к нему можно печататься по http, я у себя на клиенте добавляю принтер как и раньше через строку http://adress:port/printers/name, выбираю драйвер для принтера, установленного на файл сервере и завершаю процедуру добавления.. Все ли верно? Нужно ли на клиенте указывать подходящий драйвер? Я пробовал указать RAW и все работает (mime типы в CUPS раскомментированы для raw). Обе схемы верные? Или нужно выбирать RAW? Почему я спрашиваю, потому что в офисе есть еще цветной принтер, который тоже надо будет подключить к принт-серверу, а если правильный вариант RAW, а не драйвер, то RAW то черно белый и я потеряю цвет. Подскажите пожалуйста что верно, а что нет.
Вот логи у меня из дома (эмуляция аналогичной схемы, то печатает то нет) ошибок купса, где принтер подключен по usb://, а клиентом у него выступает cups по http://:
Код: Выделить всё
[root@myhost ~]# tail -f /var/log/cups/error_log
D [23/Nov/2010:01:50:24 +0500] cupsdSetBusyState: Active clients and dirty files
D [23/Nov/2010:01:50:24 +0500] cupsdAuthorize: No authentication data provided.
D [23/Nov/2010:01:50:24 +0500] cupsdReadClient: 10 1.1 Get-Printer-Attributes 1
D [23/Nov/2010:01:50:24 +0500] Get-Printer-Attributes http://192.168.2.1:631/printers/Samsung_ML-1520
D [23/Nov/2010:01:50:24 +0500] Returning IPP successful-ok for Get-Printer-Attributes (http://192.168.2.1:631/printers/Samsung_ML-1520) from 192.168.2.2
D [23/Nov/2010:01:50:24 +0500] cupsdSetBusyState: Dirty files
D [23/Nov/2010:01:50:24 +0500] cupsdReadClient: 10 WAITING Closing on EOF
D [23/Nov/2010:01:50:24 +0500] cupsdCloseClient: 10
I [23/Nov/2010:01:50:54 +0500] Saving job cache file "/var/cache/cups/job.cache"...
D [23/Nov/2010:01:50:54 +0500] cupsdSetBusyState: Not busy
D [23/Nov/2010:01:51:24 +0500] cupsdAcceptClient: 10 from 192.168.2.2:631 (IPv4)
D [23/Nov/2010:01:51:44 +0500] [Job 1130] Unloading...
D [23/Nov/2010:01:51:44 +0500] Report: clients=1
D [23/Nov/2010:01:51:44 +0500] Report: jobs=28
D [23/Nov/2010:01:51:44 +0500] Report: jobs-active=0
D [23/Nov/2010:01:51:44 +0500] Report: printers=1
D [23/Nov/2010:01:51:44 +0500] Report: printers-implicit=0
D [23/Nov/2010:01:51:44 +0500] Report: stringpool-string-count=7710
D [23/Nov/2010:01:51:44 +0500] Report: stringpool-alloc-bytes=8304
D [23/Nov/2010:01:51:44 +0500] Report: stringpool-total-bytes=137056
D [23/Nov/2010:01:51:44 +0500] cupsdReadClient: 10 POST /printers/Samsung_ML-1520 HTTP/1.1
D [23/Nov/2010:01:51:44 +0500] cupsdSetBusyState: Active clients
D [23/Nov/2010:01:51:44 +0500] cupsdAuthorize: No authentication data provided.
D [23/Nov/2010:01:51:44 +0500] cupsdReadClient: 10 1.1 Get-Printer-Attributes 1
D [23/Nov/2010:01:51:44 +0500] Get-Printer-Attributes http://192.168.2.1:631/printers/Samsung_ML-1520
D [23/Nov/2010:01:51:44 +0500] Returning IPP successful-ok for Get-Printer-Attributes (http://192.168.2.1:631/printers/Samsung_ML-1520) from 192.168.2.2
D [23/Nov/2010:01:51:44 +0500] cupsdSetBusyState: Not busy
D [23/Nov/2010:01:51:44 +0500] cupsdReadClient: 10 POST /printers/Samsung_ML-1520 HTTP/1.1
D [23/Nov/2010:01:51:44 +0500] cupsdSetBusyState: Active clients
D [23/Nov/2010:01:51:44 +0500] cupsdAuthorize: No authentication data provided.
D [23/Nov/2010:01:51:44 +0500] cupsdReadClient: 10 1.1 Print-Job 1
D [23/Nov/2010:01:51:44 +0500] Print-Job http://192.168.2.1:631/printers/Samsung_ML-1520
D [23/Nov/2010:01:51:44 +0500] [Job ???] Auto-typing file...
I [23/Nov/2010:01:51:44 +0500] [Job ???] Request file type is application/octet-stream.
D [23/Nov/2010:01:51:44 +0500] cupsdMarkDirty(----J-)
D [23/Nov/2010:01:51:44 +0500] cupsdSetBusyState: Active clients and dirty files
D [23/Nov/2010:01:51:44 +0500] add_job: requesting-user-name="gard"
D [23/Nov/2010:01:51:44 +0500] Adding default job-sheets values "none,none"...
I [23/Nov/2010:01:51:44 +0500] [Job 1131] Adding start banner page "none".
D [23/Nov/2010:01:51:44 +0500] Discarding unused job-created event...
D [23/Nov/2010:01:51:44 +0500] cupsdMarkDirty(----J-)
I [23/Nov/2010:01:51:44 +0500] [Job 1131] Adding end banner page "none".
I [23/Nov/2010:01:51:44 +0500] [Job 1131] File of type application/octet-stream queued by "gard".
D [23/Nov/2010:01:51:44 +0500] [Job 1131] hold_until=0
I [23/Nov/2010:01:51:44 +0500] [Job 1131] Queued on "Samsung_ML-1520" by "gard".
D [23/Nov/2010:01:51:44 +0500] cupsdMarkDirty(----J-)
D [23/Nov/2010:01:51:44 +0500] cupsdSetBusyState: Active clients, printing jobs, and dirty files
D [23/Nov/2010:01:51:44 +0500] Discarding unused printer-state-changed event...
D [23/Nov/2010:01:51:44 +0500] [Job 1131] job-sheets=none,none
D [23/Nov/2010:01:51:44 +0500] [Job 1131] argv[0]="Samsung_ML-1520"
D [23/Nov/2010:01:51:44 +0500] [Job 1131] argv[1]="1131"
D [23/Nov/2010:01:51:44 +0500] [Job 1131] argv[2]="gard"
D [23/Nov/2010:01:51:44 +0500] [Job 1131] argv[3]="CUPS, мысли по настройке и несколько вопросов - unixforum.org"
D [23/Nov/2010:01:51:44 +0500] [Job 1131] argv[4]="1"
D [23/Nov/2010:01:51:44 +0500] [Job 1131] argv[5]="job-uuid=urn:uuid:f86974f6-11e7-337a-6174-08fe8eba996a job-originating-host-name=192.168.2.2 time-at-creation=1290459104 time-at-processing=1290459104 AP_D_InputSlot="
D [23/Nov/2010:01:51:44 +0500] [Job 1131] argv[6]="/var/spool/cups/d01131-001"
D [23/Nov/2010:01:51:44 +0500] [Job 1131] envp[0]="CUPS_CACHEDIR=/var/cache/cups"
D [23/Nov/2010:01:51:44 +0500] [Job 1131] envp[1]="CUPS_DATADIR=/usr/share/cups"
D [23/Nov/2010:01:51:44 +0500] [Job 1131] envp[2]="CUPS_DOCROOT=/usr/share/cups/doc"
D [23/Nov/2010:01:51:44 +0500] [Job 1131] envp[3]="CUPS_FONTPATH=/usr/share/cups/fonts"
D [23/Nov/2010:01:51:44 +0500] [Job 1131] envp[4]="CUPS_REQUESTROOT=/var/spool/cups"
D [23/Nov/2010:01:51:44 +0500] [Job 1131] envp[5]="CUPS_SERVERBIN=/usr/lib/cups"
D [23/Nov/2010:01:51:44 +0500] [Job 1131] envp[6]="CUPS_SERVERROOT=/etc/cups"
D [23/Nov/2010:01:51:44 +0500] [Job 1131] envp[7]="CUPS_STATEDIR=/var/run/cups"
D [23/Nov/2010:01:51:44 +0500] [Job 1131] envp[8]="HOME=/var/spool/cups/tmp"
D [23/Nov/2010:01:51:44 +0500] [Job 1131] envp[9]="PATH=/usr/lib/cups/filter:/usr/bin:/usr/sbin:/bin:/usr/bin"
D [23/Nov/2010:01:51:44 +0500] [Job 1131] envp[10]="SERVER_ADMIN=root@localhost.localdomain"
D [23/Nov/2010:01:51:44 +0500] [Job 1131] envp[11]="SOFTWARE=CUPS/1.4.5"
D [23/Nov/2010:01:51:44 +0500] [Job 1131] envp[12]="TMPDIR=/var/spool/cups/tmp"
D [23/Nov/2010:01:51:44 +0500] [Job 1131] envp[13]="USER=root"
D [23/Nov/2010:01:51:44 +0500] [Job 1131] envp[14]="CUPS_SERVER=/var/run/cups/cups.sock"
D [23/Nov/2010:01:51:44 +0500] [Job 1131] envp[15]="CUPS_ENCRYPTION=IfRequested"
D [23/Nov/2010:01:51:44 +0500] [Job 1131] envp[16]="IPP_PORT=631"
D [23/Nov/2010:01:51:44 +0500] [Job 1131] envp[17]="CHARSET=utf-8"
D [23/Nov/2010:01:51:44 +0500] [Job 1131] envp[18]="LANG=ru_RU.UTF-8"
D [23/Nov/2010:01:51:44 +0500] [Job 1131] envp[19]="PPD=/etc/cups/ppd/Samsung_ML-1520.ppd"
D [23/Nov/2010:01:51:44 +0500] [Job 1131] envp[20]="RIP_MAX_CACHE=8m"
D [23/Nov/2010:01:51:44 +0500] [Job 1131] envp[21]="CONTENT_TYPE=application/octet-stream"
D [23/Nov/2010:01:51:44 +0500] [Job 1131] envp[22]="DEVICE_URI=usb://Samsung/ML-1520?serial=3566BKBX920098M."
D [23/Nov/2010:01:51:44 +0500] [Job 1131] envp[23]="PRINTER_INFO=Samsung_ML-1520"
D [23/Nov/2010:01:51:44 +0500] [Job 1131] envp[24]="PRINTER_LOCATION="
D [23/Nov/2010:01:51:44 +0500] [Job 1131] envp[25]="PRINTER=Samsung_ML-1520"
D [23/Nov/2010:01:51:44 +0500] [Job 1131] envp[26]="CUPS_FILETYPE=document"
I [23/Nov/2010:01:51:44 +0500] [Job 1131] Started backend /usr/lib/cups/backend/usb (PID 8384)
D [23/Nov/2010:01:51:44 +0500] Discarding unused job-state-changed event...
D [23/Nov/2010:01:51:44 +0500] Returning IPP successful-ok for Print-Job (http://192.168.2.1:631/printers/Samsung_ML-1520) from 192.168.2.2
D [23/Nov/2010:01:51:44 +0500] cupsdSetBusyState: Printing jobs and dirty files
D [23/Nov/2010:01:51:44 +0500] cupsdReadClient: 10 POST /printers/Samsung_ML-1520 HTTP/1.1
D [23/Nov/2010:01:51:44 +0500] cupsdSetBusyState: Active clients, printing jobs, and dirty files
D [23/Nov/2010:01:51:44 +0500] cupsdAuthorize: No authentication data provided.
D [23/Nov/2010:01:51:44 +0500] cupsdReadClient: 10 1.1 Get-Job-Attributes 1
D [23/Nov/2010:01:51:44 +0500] Get-Job-Attributes http://192.168.2.1:631/printers/Samsung_ML-1520
D [23/Nov/2010:01:51:44 +0500] Returning IPP successful-ok for Get-Job-Attributes (http://192.168.2.1:631/printers/Samsung_ML-1520) from 192.168.2.2
D [23/Nov/2010:01:51:44 +0500] cupsdSetBusyState: Printing jobs and dirty files
D [23/Nov/2010:01:51:44 +0500] cupsdReadClient: 10 POST /printers/Samsung_ML-1520 HTTP/1.1
D [23/Nov/2010:01:51:44 +0500] cupsdSetBusyState: Active clients, printing jobs, and dirty files
D [23/Nov/2010:01:51:44 +0500] cupsdAuthorize: No authentication data provided.
D [23/Nov/2010:01:51:44 +0500] cupsdReadClient: 10 1.1 Get-Printer-Attributes 1
D [23/Nov/2010:01:51:44 +0500] Get-Printer-Attributes http://192.168.2.1:631/printers/Samsung_ML-1520
D [23/Nov/2010:01:51:44 +0500] Returning IPP successful-ok for Get-Printer-Attributes (http://192.168.2.1:631/printers/Samsung_ML-1520) from 192.168.2.2
D [23/Nov/2010:01:51:44 +0500] cupsdSetBusyState: Printing jobs and dirty files
D [23/Nov/2010:01:51:44 +0500] [Job 1131] print_device
D [23/Nov/2010:01:51:44 +0500] [Job 1131] usb_find_busses=2
D [23/Nov/2010:01:51:44 +0500] [Job 1131] usb_find_devices=4
D [23/Nov/2010:01:51:44 +0500] [Job 1131] STATE: +connecting-to-device
D [23/Nov/2010:01:51:44 +0500] Discarding unused printer-state-changed event...
D [23/Nov/2010:01:51:44 +0500] [Job 1131] STATE: -connecting-to-device
D [23/Nov/2010:01:51:44 +0500] Discarding unused printer-state-changed event...
D [23/Nov/2010:01:51:44 +0500] [Job 1131] PAGE: 1 1
D [23/Nov/2010:01:51:44 +0500] Discarding unused job-progress event...
D [23/Nov/2010:01:51:45 +0500] PID 8384 (/usr/lib/cups/backend/usb) exited with no errors.
D [23/Nov/2010:01:51:45 +0500] Discarding unused job-completed event...
I [23/Nov/2010:01:51:45 +0500] [Job 1131] Job completed.
D [23/Nov/2010:01:51:45 +0500] cupsdMarkDirty(----J-)
D [23/Nov/2010:01:51:45 +0500] Discarding unused printer-state-changed event...
D [23/Nov/2010:01:51:45 +0500] cupsdReadClient: 10 POST /printers/Samsung_ML-1520 HTTP/1.1
D [23/Nov/2010:01:51:45 +0500] cupsdSetBusyState: Active clients and dirty files
D [23/Nov/2010:01:51:45 +0500] cupsdAuthorize: No authentication data provided.
D [23/Nov/2010:01:51:45 +0500] cupsdReadClient: 10 1.1 Get-Job-Attributes 1
D [23/Nov/2010:01:51:45 +0500] Get-Job-Attributes http://192.168.2.1:631/printers/Samsung_ML-1520
D [23/Nov/2010:01:51:45 +0500] Returning IPP successful-ok for Get-Job-Attributes (http://192.168.2.1:631/printers/Samsung_ML-1520) from 192.168.2.2
D [23/Nov/2010:01:51:45 +0500] cupsdSetBusyState: Dirty files
D [23/Nov/2010:01:51:45 +0500] cupsdReadClient: 10 POST /printers/Samsung_ML-1520 HTTP/1.1
D [23/Nov/2010:01:51:45 +0500] cupsdSetBusyState: Active clients and dirty files
D [23/Nov/2010:01:51:45 +0500] cupsdAuthorize: No authentication data provided.
D [23/Nov/2010:01:51:45 +0500] cupsdReadClient: 10 1.1 Get-Printer-Attributes 1
D [23/Nov/2010:01:51:45 +0500] Get-Printer-Attributes http://192.168.2.1:631/printers/Samsung_ML-1520
D [23/Nov/2010:01:51:45 +0500] Returning IPP successful-ok for Get-Printer-Attributes (http://192.168.2.1:631/printers/Samsung_ML-1520) from 192.168.2.2
D [23/Nov/2010:01:51:45 +0500] cupsdSetBusyState: Dirty files
D [23/Nov/2010:01:51:45 +0500] cupsdReadClient: 10 WAITING Closing on EOF
D [23/Nov/2010:01:51:45 +0500] cupsdCloseClient: 10
I [23/Nov/2010:01:52:15 +0500] Saving job cache file "/var/cache/cups/job.cache"...
D [23/Nov/2010:01:52:15 +0500] cupsdSetBusyState: Not busy
D [23/Nov/2010:01:52:46 +0500] cupsdAcceptClient: 10 from 192.168.2.2:631 (IPv4)Заранее благодарен всем, кто откликнется, простите, что много написал, старался обрисовать ситуацию.
Contacts: