Принт сервер на FreeBSD (Unix, Linux)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС для молодых и начинающих системных администраторов.

Модераторы: SLEDopit, Модераторы разделов

Аватара пользователя
nockdown
Сообщения: 59
ОС: debian

Принт сервер на FreeBSD (Unix, Linux)

Сообщение nockdown »

Задача организовать принт сервер на FreeBSD (Unix, Linux)


клиенты:
1. количество 5-10
1. windows 7, желательно mac
2. печать чертежей из Autocad, документы из OpenOffice и Word Viewer, изображения

принтеры & плоттеры:
1. HP OfficeJet K7103 (USB, LPT) А3
2. HP PhotoSmart C4183 (USB) А4
3. HP DesignJet 430 (LPT) А1

пожелания к серверу:
1. корректная печать без артифактов!
2. возможность управления очередью печатью клиентами из windows
3. железо Pentium 3-4, 2гГц, 1Гб озу
4. графический или веб интерфейс приветствуются, какой-нибудь специально заточенный под принт сервер дистрибутив особенно привествуется (аля как FreeNAS для файл сервера)


Первочательно рассматривался вариант OpenSuse + Cups, но :unsure: поиск в интернете пока заставляет усомниться в возможности такой реализации.
Спасибо сказали:
BIgAndy
Сообщения: 1923

Re: Принт сервер на FreeBSD (Unix, Linux)

Сообщение BIgAndy »

nockdown писал(а):
20.11.2010 20:42
Первочательно рассматривался вариант OpenSuse + Cups, но :unsure: поиск в интернете пока заставляет усомниться в возможности такой реализации.

Любой дистр+ cups. CUPS есть в любом дистре.




клиенты:
1. количество 5-10

У нас до 20 хостов на один принт-сервер.

1. windows 7, желательно mac

CUPS -вообще принадлежит эппл

2. печать чертежей из Autocad, документы из OpenOffice и Word Viewer, изображения
принтеры & плоттеры:
1. HP OfficeJet K7103 (USB, LPT) А3
2. HP PhotoSmart C4183 (USB) А4
3. HP DesignJet 430 (LPT) А1

Без разницы что. Все HP поддерживают PCL/PJL


пожелания к серверу:
1. корректная печать без артифактов!

/dev/hands+/dev/brain

2. возможность управления очередью печатью клиентами из windows
4. графический или веб интерфейс приветствуются, какой-нибудь специально заточенный под принт сервер дистрибутив особенно привествуется (аля как FreeNAS для файл сервера)

SSH, telnet. web-модржа
3. железо Pentium 3-4, 2гГц, 1Гб озу

PI-166 будет избыточен.




Спасибо сказали:
Аватара пользователя
nockdown
Сообщения: 59
ОС: debian

Re: Принт сервер на FreeBSD (Unix, Linux)

Сообщение nockdown »

Спасибо!

BIgAndy писал(а):
20.11.2010 21:35
/dev/hands+/dev/brain

:rolleyes: ))))

Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4824
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: Принт сервер на FreeBSD (Unix, Linux)

Сообщение SLEDopit »

BIgAndy писал(а):
20.11.2010 21:35
PI-166 будет избыточен.
Смотря что печатать. Делал я на РIII сервак, так он при печати картинок в тексте odt грузил проц на 100% и страницу раз в минуту выдавал на лазерном хп 1018 (причем клиент - Р4, сильно мощнее сервака). Конечно, возможно у меня руки кривые и я просто не умею ничего настраивать, тем не менее данная проблема решилась при смене железа на чуть помощнее.
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
BIgAndy
Сообщения: 1923

Re: Принт сервер на FreeBSD (Unix, Linux)

Сообщение BIgAndy »

SLEDopit писал(а):
21.11.2010 01:24
данная проблема решилась при смене железа на чуть помощнее.

.... или установкой ps2raster.

Какое-то время у меня работа асус 500gp с openwrt прошивкой на 4-х usb принтерах. Ничего не тормозило. Даже итоговый документ склада (370 страниц) ежемесячно печатали - ничего. Даже в PhtoPrint фотографии печатали. и не тормозило.
Спасибо сказали:
Аватара пользователя
nockdown
Сообщения: 59
ОС: debian

Re: Принт сервер на FreeBSD (Unix, Linux)

Сообщение nockdown »

Я решил использовать имеющийся файл сервер на FreeNAS, который основан на freebsd:

сервер: AMD Athlon™ II X2 250, 2Гб озу, FreeNAS 0.7.2 Sabanda (FreeBSD 7.3-RELEASE-p3)
клиенты - Windows 7, Mac OS X 10.6
гигабитная сеть

и установить на нём пакет LPRng. За основу был взят следующий howto.
Были проделаны следующий шаги:

1. положил драйвер ulpt.ko в /boot/kernel/
2. установил LPRng через SSH командой pkg_add -r LPRng
3. включил автозагрузку драйвера, подправив файл /boot/defaults/loader.conf, изменив строчку "ulpt_load="NO " # Printer" на "ulpt_load="YES " # Printer"
4. включил LPRng через веб интерфэйс System|Advanced|rc.conf, добавив два значения Name: lpd_enable Value: NO и Name: lprng_enable Value: YES
5. положил файл конфигурации printcap в /etc/

Код: Выделить всё

# @(#)printcap HP OfficeJet K7103
lp|deskjet:\
:sd=/var/spool/lpd/bare:\
:sh:\
:lp=/dev/ulpt0:

6. создал папку для спулера и задал права, через SSH командами:
mkdir -p -m 700 /var/spool/lpd/bare
chown 1:1 /var/spool/lpd/bare
7. положил файл lpd.perms в /usr/local/etc/

Код: Выделить всё

ACCEPT SERVICE=C SERVER REMOTEUSER=root,papowell
ACCEPT SERVICE=C LPC=lpd,status,printcap
REJECT SERVICE=C
ACCEPT SERVICE=M SAMEHOST SAMEUSER
ACCEPT SERVICE=M SERVER REMOTEUSER=root
REJECT SERVICE=M
DEFAULT ACCEPT

8. положил файл lpd.conf в /usr/local/etc/

Код: Выделить всё

# Purpose: always print banner, ignore lpr -h option
# default ab@ (FLAG off)
# Purpose: query accounting server when connected
# default achk@ (FLAG off)
# Purpose: accounting at end (see also af, la, ar, as)
# default ae=jobend $H $n $P $k $b $t (STRING)
# Purpose: name of accounting file (see also la, ar)
# default af=acct (STRING)
# Purpose: use long job number (0 - 999999) when a job is submitted
# default longnumber@ (FLAG off)
Longnumber

9. положил файл devd.conf в /usr/local/etc/devd/

Код: Выделить всё

# start action when USB printer ulpt0 is plugged in
# wait 3 second and then start the spooler daemon
#
attach 100 {
device-name "ulpt0";
action "sleep 3; lpd;
checkpc -f;
chown 0:0 /dev/ulpt0;
chmod 666 /dev/ulpt0;
echo 'o5L25fgfab' > /dev/speaker;";
};
*/

10. ребут сервера
11. на клиентах windows 7 установил LPR порт
12. добавил принтер:
Add a new printer – Local Printer - Create a new port - LPR Port - ip адрес сервера Freenas, имя принтера - lp

свойства принтера:
Port Tab.
"Enable bidirectional support" снял галку
"Enable printer pooling" нет
Advanced Tab.
"Spool print documents so program finished printing faster" да
"Start printing after the last page is spooled" нет
"Start printing immediately" да
"Print directly to the printer" нет
"Hold mismatched documents" нет
"Print spooled documents first" да
"Keep printed documents" нет
"Enable advanced printing features" да


Печатает! Но перед каждым заданием пауза около 1-2 минут. Что вызывает такую задержку? :unsure:

Add:
Кстати Mac клиенты тоже печатают с такой же задержкой.
Задание уходит из очереди печати принтера, процессор сервера совсем не нагружен, памяти свободной предостаточно. Что сервер делает эти пару минут ума не приложу.
Спасибо сказали:
Аватара пользователя
nockdown
Сообщения: 59
ОС: debian

Re: Принт сервер на FreeBSD (Unix, Linux)

Сообщение nockdown »

Отказался от вышеописанного способа в пользу следующего:

Оригинал howto (by micr0n).

0. Прописываем freenas'у статический ip
1. Скачиваем маленького принт-сервер даемона p910nd (в зависимости от версии оси) и файл настроек devd.conf
x64
или x32
, а так же
, переименовываем в p910nd и devd.conf, кидаем в корень шары на freenas.
2. Включаем SSH (и позволяем вход от имени суперпользователя (root) - yes).
3. Через putty подключаемся к freenas как root и копируем файл p910nd в директорию /usr/local/sbin командой (your_mountname - замените на своё):

Код: Выделить всё

cp /mnt/your_mountname/p910nd /usr/local/sbin/

4. Прописываем права на файл p910nd для порядка командами:

Код: Выделить всё

cd /usr/local/sbin
chown root:wheel p910nd
chmod 555 p910nd

5. Создаём папку командой

Код: Выделить всё

mkdir /usr/local/etc/devd

6. Прописываем права на папку /usr/local/etc/devd для порядка командами:

Код: Выделить всё

cd /usr/local/etc
chown root:wheel devd
chmod 755 devd

7. Копируем файл devd.conf в /usr/local/etc/devd командой (your_mountname - замените на своё):

Код: Выделить всё

cp /mnt/your_mountname/devd.conf /usr/local/etc/devd/


Для ознакомления код файла devd.conf:

Код: Выделить всё

# start action when USB printer ulpt0 is plugged in
# wait 3 second and then start the printer daemon
#
attach 100 {
device-name "ulpt0";
action "sleep 3;
/usr/local/sbin/p910nd -f /dev/ulpt0 -b 0;
echo 'o5L25fgfab' > /dev/speaker;";
};
# this will cause a beep when you unplug the usb printer
detach 100 {
device-name "ulpt0";
action "sleep 1;
kill `cat /var/run/p91*`
echo 'o5L10bafgffgfab' > /dev/speaker;
sleep 1;
echo 'o5L10fgfabbafgf' > /dev/speaker";
};
*/

8. Прописываем права на файл devd.conf для порядка командами:

Код: Выделить всё

cd /usr/local/etc/devd
chown root:wheel devd.conf
chmod 755 devd.conf

9. Рестарт даемона

Код: Выделить всё

/etc/rc.d/devd restart

10. Подключаем принтер и прописываем:

Код: Выделить всё

ps aux|grep -I p910nd

11. Подключаем принтер у клиентов (например в windows 7):
Add a network printer -> The printer that I want isn't listed -> Add a printer using a TCP/IP address or hostname -> Hostname or IP address 192.168.0.x -> device type Hewlett Packard Jet Direct (например) -> выбираем нужные драйвера
12. Печатаем тестовую страницу
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Спасибо сказали:
4iter
Сообщения: 1
ОС: xp,7, FreeBSD

Re: Принт сервер на FreeBSD (Unix, Linux)

Сообщение 4iter »

а какой принтер ? у меня НР 1020, с ним такие варианты не канают. Судя по всему, проблема кроется в его особенности (его программное обеспечение (firmware) не зашито жестко в аппарат, а должно быть загружено с компьютера при включении принтера или перед началом печати). Прочитано все здесь, но вот не получается удалить из ядра драйвер ulpt (знаний не хватает). Можете подсказать чайнику как мне адаптировать эти два метода (с заливкою прошивки в принтер с FreeNAS и подальшей печатью через, скажем LPRng) в один, для моего конкретного случая?
Спасибо сказали: