Имеется сервер под управлением Linux Suse SLES10.Так же имеются несколько(больше десятка)сетевых матричных принтеров Printronix P-5000 -вот таких

Большая часть принтеров подключены к сети через минипринтсервера HP JetDirect 500х 3-портовых.(на выходе-три LPT)

остальные-напрямую(ethernet)
Итак,задача-в сети с множеством клиентских Windows машин(с которых будут посылаться задания на печать) поднять принт-сервер Linux Sles10.
Печати много,исключительно текстовая.
Попробовал прикрутить те принтеры,что подключены напрямую(через яст): сетевые принтеры->прямое TCP соединение...печатает.С лестничным эффектом.Понимаю,что нужно настроить в printcap входной фильтр(это потом-главное принтак заработал).
Проблема возникла с опознаванием принтеров,подключенных через JetDirect к портам,отличных от 1(то есть к 2 и 3) указываю ему порт 9102-принтер молчит.
Пробовал устанавливать через KDE -там есть выбор JetDirect-тоже указал порт 9102, далее с меня запросили драйвер и вот тут..драйвера для данной модели я не нашел нигде.какой может подойти?Dot matrix?
Еще немного истории...
раньше вся эта куча принтеров работала под управлением сервака на HPUX.Клиенты печатали на расшаренных по Самбе принтерах.В printcap вообще была запись только имен,типа:
lp1|
lp2|
...
lp10|
все работало через фильтры.Принтеры создавались через SAM,после чего подменяли своим,типа
Код: Выделить всё
# $Source: /home/hpnp/odyssey/sh/RCS/dumbplot,v $
# $Revision: 1.1 $
#
# lp interface for dumb plotter
#
copies=$4
# Handle disable and cancel traps
trap "trap 15;kill -15 0;exit 0" 15
echo "\033(s10H\n\r"
x="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXX"
# echo "$x\n\r$x\n\r$x\n\r$x\n\r"
# echo "\n\r"
# user=`pwget -n $2 | line | cut -d: -f5`
# if [ -n "$user" ]
# then
# echo "User: $user\n\r"
# else
# echo "\n\r"
# fi
# echo "Request id: $1 Printer: `basename $0`\n\r"
# date
# echo "\n\r"
# banner $5 | /usr/local/bin/crfilter 2>&1
# echo "$3\r"
# echo "\n\r"
# if [ -n "$3" ]
# then
# banner $3 | /usr/local/bin/crfilter 2>&1
# fi
# echo "\014\c"
# The remaining arguments are files
jobid=$1
user=$2
pr=`basename $0`
shift; shift; shift; shift; shift
files="$*"
# Plot the spooled files
##echo "IN;\n"
i=1
while [ $i -le $copies ]
do
for file in $files
do
# cp $file /tmp/lptmp
log_date=`date +%Y-%m-%d`
log_file=/var/tmp/lp/date/$log_date
if [ ! -f $log_file ]; then touch $log_file; fi
size=`cksum $file | cut -f2 -d' '`
size_prev=`grep hp8 $log_file | cut -f3 -d';'`
typeset -i size_prev
size_total=`expr $size_prev + $size`
echo "`grep -v hp8 $log_file`\n$log_date;\"hp8\";$size_total" > $log_file
/usr/local/bin/lens $file
/usr/local/bin/prn_hp $file 2>&1
echo "\014\c"
echo "$x\n\r$x\n\r$x\n\r$x\n\r"
banner $pr | /usr/local/bin/crfilter 2>&1
echo "$x\n\r$x\n\r$x\n\r$x\n\r"
banner "END FILE" | /usr/local/bin/crfilter 2>&1
echo "$x\n\r$x\n\r$x\n\r$x\n\r"
echo "\014\c"
done
i=`expr $i + 1`
done
exit 0вот эти две строки
Код: Выделить всё
/usr/local/bin/lens $file
/usr/local/bin/prn_hp $file 2>&1я так понимаю,тоже фильтры.которые указывают какие символы не печатать,плотность и прочее....
Так вот-могу ли я в SLES 10 ,явно указав в printcap для каждого принтера в качестве входного фильтра-этот файл, получить в итоге нормальную печать?
Как добиться печати от принтеров,подключенных к HP JetDirect 500х ?
Через что печатать-CUPS или LPD?
Извините за сумбур,если что неясно рассказал-спрашивайте....
помогите советами кто чем может ..