Ubuntu как принт-сервер
Под конец года наша организация получила новое оборудование — компы на замену особо почётных раритетов и дополнительные рабочие места. В некоторых отделах количество компьютеров на один принтер перевалило за 12. Новый Windows 7 домашний базвый позволяет подключать к принтеру 8 человек, точнее 8 компьютеров. Старый добрый Win XP professional поддерживает 10 подключений. Мало - у нас отделы до 14 рабочих мест. Аппаратные принт-серверы сами стоят как маленький принтер, а к тому же требуют хитрой настройки для каждого клиента. Вот у линуксоидов такой проблемы нет, хоть и есть другие.
После модернизации у нас остались старые компьютеры — Celeron 1700, 256 MB DDR, 20 GB IDE HDD — как раз как в объявлениях «отдам даром». Они и стал принт-сервером под управлением ubuntu 10.04 desktop.
Диска с ubuntu server не было под рукой, да и задачи сделать всё только из командной строки не стояло.
О том, как печатать через CUPS есть хорошая статья. Вот только рабочие места постоянно заняты, принтеры регулярно ездят в гарантийный ремонт и каждый раз копировать URI принтера, ползать по панели управления Windows и вручную подсовывать драйвер нет ни желания, ни возможности. Эх, было бы как в Windows — ввёл в адресную строку \\имя-компа-с-принтером, выбрал принтер, а остальное делается само. Можно и так, но придётся повозиться с сервером.
Добавляем пакеты
sudo apt-get install windbind libcupsys2-dev openssh-server
Winbind теснее интегрирует имена хостов в linux и windows сетях. Libcupsys2-dev, но же cups-devel — изсходные тексты CUPS для сборки автоустановщика драйверов. Openssh-server обеспечит доступ по SSH на случай, если нужно будет выполнить пару команд с другого этажа.
Собираем cups windows drivers
Скачиваем cups-windows-6.0-source. Распаковываем, заходим в полученный каталог и запускаем sudo make install
Изменения (для ubuntu 10.04 desktop) коснутся только двух секций.
[printers] comment = All Printers browseable = yes path = /var/spool/samba printable = yes guest ok = yes read only = yes create mask = 0700 [print$] comment = Printer Drivers path = /usr/share/cups/drivers browseable = yes read only = no writable = yes guest ok = yes
В первой разрешаем гостя, во второй меняем пусть к каталогу с драйверами и разрешаем запись. По-умолчанию писать в неё сможет только root (другое имя не прокатило). И его ещё надо создать.
smbpasswd -a root
Применим сделанные настройки:
sudo service smbd restart sudo service cups restart
Часто вместо service smbd restart
советуют /etc/init.d/samba restart
но в нашей убунте (10 04 десктоп) его зовут именно smbd
Для штатной работы нужно скопировать из windows несколько файлов:
ps5ui.dll pscript.hlp pscript.ntf pscript5.dll
Нужно продублировать их из каталога %WINDIR%\SYSTEM32\SPOOL\DRIVERS\W32X86\3 в /usr/share/cups/drivers и получаем такой список:
cups6.inf cups6.ini cupsps6.dll cupsui6.dll ps5ui.dll pscript.hlp pscript.ntf pscript5.dll
Обратите внимание, все имена должны быть в нижнем регистре!
Теперь, собственно экспортируем все принтеры из CUPS в Samba (на нащем принт-сервере ровно один принтер, так что можно экспортировать все)
sudo cupsaddsmb -U root -a -v
Если всё прошло хорошо, то вы увидите примерно полтора экрана текста, который будет заканчиваться на Successfully set %принтер% to driver %драйвер%
Если же выводится много-много (более пяти экранов) повторяющегося текста — смело жмём Ctrl+C и читаем сообщение об ошибке Самбы. Устраняем и повторяем.
После всех манипуляций вин-компьютеры увидели в сети своего собрата с одним общим принтером. Его можно установить привычным для пользователей windows способом — двойной щелчок — да — ждём — ждём — «принтер ? использовать по-умолчанию». Однако подключенный таким образом принтер не имеет фирменных настроек — только стандартный драйвер windows. Зато там есть печать нескольких страниц на одном листе.
После очередной перезагрузки выяснилось, что samba стартует раньше cups и из-за этого пропадает доступ к принтеру. Лечится это довольно просто — добавлением /etc/init.d/smbd restart
перед exit 0
в файле /etc/rc.local
Вот теперь все довольны, а я пишу шпаргалку, вместо того, чтобы бегать и завершать сессии общего доступа.
Комментарии
Чуть не забыл!
Хочу отметить, материал основан на HOWTO c ubuntu.ru
При добавлении принтера через
При добавлении принтера через ПС в Windows XP, выскакивает сообщение "Сервер для принтера ХХХ не имеет нужного установленного драйвера принтера..."
Не подскажете?..
Доступ, версии...
Не могу гарантировать, но думаю, что проблема с файлами в /usr/share/cups/drivers - может быть, они недоступны из-за настроек самбы, а может быть их мена не в нижнем регистре, или они из 64-х битной Windows.
Мне, к сожалению, пришлось отказаться от самбы - хоть драйверы и ставились быстро и удобно, но конвертация PS -> PDF -> PCL при печати слишком нагружала слабенький процессор.
При подключении напрямую к CUPS приходится самому ставить фирменный драйвер принтера, но зато пользователи получают удобные панели управления и более быструю печать.
Побольше бы информации по
Побольше бы информации по данной темке, интересно ж однако ознакомиться
Мы сейчас используем принтеры
Мы сейчас используем принтеры со встроенным принт-сервером, например HP 3005, так что тема потеряла для мена остроту. Какая проблема вас волнует?