Просмотрел с самого начала ещё раз введённые настройки порта принтера.
В моём случае действительно проблема оказалась в ручках
Рад, что хоть нашёл...
В итоге, настройки дефолтные все, работает по предложенной здесь инструкции =)
Не скажу =) Стыдно...
В адресе ошибку сделал в одной цифре... Всего-то навсего. Следовательно предположения о незавязке соединения были верны - такого хоста с портом просто не было.
Подумаешь... с кем не бывает =) 198.168.х.х
Нигде на форуме не могу найти ответ на этот вопрос ... Он вообще решаем ?
можно, причем без проблем (ИМХО до трех штук). Ключевой момент "каждый их которых работат через ASUS"
Нужно запустить вручную вторую копию p910nd следующим образом:
p910nd -f /dev/usb/lp1 1
и второй принтер будет доступен на порту 9101
Единственная засада возможна со стороны usb pnp, т.к. возможен вариант, что при перезагрузках lp0 и lp1 будут меняться местами. Смотрите вывод dmesg есть ли эта проблема в Вашем конкретном случае. Если действительно, так, то нужен маленький скриптик, который будет определять при загрузке под каким номером подхватился принтер и запускать p910nd соответствующим образом.
Подключить два принтера получилось так как Вы и писали. Но к сожалению присутствует и проблема, состоящая в том, что порядок определения принтеров не сохраняется при перезагрузке роутера (зависит например от порядка включения принтеров)
соответсвенно нужен скрипт, который бы запускал p910nd соответсвующим образом. Никак не могу разобраться как такой скрипт написать.. Не могли бы Вы помочь? =)
дайте вывод dmesg который относится к двум принтерам.
а также cat /proc/bus/usb/devices
Last edited by al37919; 27-01-2008 at 14:55.
http://chabster.blogspot.com/2008/01...d-wl500gp.html
Тут написано, как я настраивал.
Вот собствено =)
Jan 28 22:45:49 kernel: hub.c: new USB device 01:03.0-2, assigned address 2
Jan 28 22:45:49 kernel: printer.c: usblp0: USB Bidirectional printer dev 2 if 0 alt 0 proto 2 vid 0x04A9 pid 0x1091
Jan 28 22:45:49 kernel: printer.c: usblp0 Device ID string [87]='MFG:Canon;CMD:BJL,HAPS,BSCCe;MDL:iP1500;CLS:PRIN TER;DES:Canon iP1500;VER:1.00;STA:30;'
Jan 28 22:45:50 udhcpc[119]: Lease of 10.74.56.158 obtained, lease time 7200
Jan 28 22:46:08 kernel: hub.c: new USB device 01:03.0-1, assigned address 3
Jan 28 22:46:08 kernel: printer.c: usblp1: USB Bidirectional printer dev 3 if 0 alt 0 proto 2 vid 0x04A9 pid 0x1084
Jan 28 22:46:08 kernel: printer.c: usblp1 Device ID string [133]='MFG:Canon;CMD:BJL,HAPS,BSCCe;MDL:i250;CLS:PRINTE R;DES:Canon i250;VER:1.40;STA:30;TII:K,****,UK,/,C,****,UK,/,M,****,UK,/,Y,****,UK;'Зараннее спасибо! =)[admin@(none) root]$ cat /proc/bus/usb/devices
T: Bus=03 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 4
B: Alloc= 0/800 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS= 8 #Cfgs= 1
P: Vendor=0000 ProdID=0000 Rev= 2.04
S: Manufacturer=Linux 2.4.20 ehci_hcd
S: Product=PCI device 1106:3104
S: SerialNumber=01:03.2
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=256ms
T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2
B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 1.00 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0000 ProdID=0000 Rev= 0.00
S: Product=USB UHCI Root Hub
S: SerialNumber=120
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=255ms
T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2
B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 1.00 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0000 ProdID=0000 Rev= 0.00
S: Product=USB UHCI Root Hub
S: SerialNumber=100
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=255ms
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 3 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=04a9 ProdID=1084 Rev= 1.40
S: Manufacturer=Canon
S: Product=i250
S: SerialNumber=30B3I1
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 2mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=07(print) Sub=01 Prot=02 Driver=usblp
E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#= 2 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=04a9 ProdID=1091 Rev= 1.00
S: Manufacturer=Canon
S: Product=iP1500
S: SerialNumber=105MD3
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 2mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=07(print) Sub=01 Prot=02 Driver=usblp
E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
По ходу обнаружилась некоторая неожиданность (тестировалось на hp deskjet 6122). Если принтер воткнут в usb, то, независимо от того включен он или выключен, он корректно определяется роутером, ему присваевается определенный порт, который за ним сохраняется. Если принтер откллчить от хаба и подключить к уже загруженному роутеру, то он не определяется никак. Требуется в любом случае перезагрузка. Скорее всего так оно и должно быть. В принципе приведенная программа должна корректно переназначить принтеры даже если бы их порядок изменился в процессе работы роутера. Так что вероятно она несколько переусложнена.
Принцип действия --- найти последнюю запись о назначении порта, проверить, что такой порт существует, если нет, то искать вторую с конца и т.д.
Исползьование:
кладем ее в /usr/local/sbin , не забываем сделать
и прописываем запуск в post-boot (для целей отладки можно запускать вручную)PHP Code:
chmod +x detect_printer
detect_printer:
Тестируйте во всех вариантах, докладывайте результаты.PHP Code:
#! /bin/sh
PATH=/opt/bin:/opt/sbin:/sbin:/bin:/usr/bin:/usr/sbin
set -x
#Next line: last parameter from the output of: dmesg | awk '/printer\.c/ && /pid/{ print $0 }'
#
ppid0="0x1084" #pid of the printer which will be available on the port 9100
ppid1="0x1091" #pid of the printer which will be available on the port 9101
pname0="Canon i250" #symbolic name of the printer which will be available on the port 9100
pname1="Canon iP1500" #symbolic name of the printer which will be available on the port 9101
daemon="p910nd"
devprefix="/dev/usb/lp"
dmesg=`dmesg`
#dmesg=`cat /tmp/syslog.log`
#dmesg=`cat detect_printer.test`
#---------------------------------
#End of user configurable settings
#---------------------------------
#
#get all the lines which contain printer.c and pid in reverse order
a=`echo "$dmesg" | sort -r | awk '/printer\.c/ && /pid/{ print $0 }'`
IFS_old=$IFS
IFS="
"
for i in "$a" ; do
#check if there is /dev/usb/lp[01] entry corresponding to usblp[01] field
p=`expr "$i" : '.*usblp\([01]\).*'`
[ -c "$devprefix$p" ] && \
break
done
IFS=$IFS_old
[ "$i" = "" ] && \
logger -t detect_printer "No printers detected." && exit 1 || \
logger -t detect_printer "Detected: $i"
pid=`expr "$i" : '.*usblp[01].*pid[[:space:]]\(0x[[:xdigit:]]*\)'`
[ "$pid" != $ppid0 -a "$pid" != $ppid1 ] && \
logger -t detect_printer "Detected pid=$pid doesn't correspond to any of the listed ones." && exit 2
killall $daemon
case $pid in
$ppid0)
$daemon -f "$devprefix$p" 0 && \
logger -t detect_printer "$pname0 [pid=$ppid0] is attached as $devprefix$p. Listening on port 9100."
[ -c "$devprefix$((1-p))" ] && { \
$daemon -f "$devprefix$((1-p))" 1 && \
logger -t detect_printer "$pname1 [pid=$ppid1] is attached as $devprefix$((1-p)). Listening on port 9101."
} || \
logger -t detect_printer "$pname1 [pid=$ppid1] is not attached."
;;
$ppid1)
$daemon -f "$devprefix$p" 1 && \
logger -t detect_printer "$pname1 [pid=$ppid1] is attached as $devprefix$p. Listening on port 9101."
[ -c "$devprefix$((1-p))" ] && { \
$daemon -f "$devprefix$((1-p))" 0 && \
logger -t detect_printer "$pname0 [pid=$ppid0] is attached as $devprefix$((1-p)). Listening on port 9100."
} || \
logger -t detect_printer "$pname0 [pid=$ppid0] is not attached."
;;
esac
exit 0
Не убирай, плз. Хотя у меня работает и так и так, но принтер по умолчанию выключен и стоит в коридоре. Чтобы печатать в RAW, надо пойти - включить принтер, потом пойти к компу - послать задание, потом пойти к принтеру - взять листочек, а потом обратно. А в LPR можно сначала послать задание, а потом пойти к принтеру - включить, дождаться печати и взять листочек. Это лень, но она двигатель ...
Возникла мысль - а можно ли? EPSON STYLUS CX6600. Как принтер он работает нормально, можно ли как сканер?
The God is real, unless declared as integer
Зеркало для ipkg и старые пакеты (с 08.06.11)
Зеркало для opkg и старые пакеты (с 24.03.12)
Смотри в сторону SANE. Есть клиент под винду. Пробовал с Canon LiDE 25 - работало
Ветка на англицком http://wl500g.info/showthread.php?t=923&highlight=saneCode:/tmp/local/root]ipkg list |grep sane sane-backends - 1.0.19+cvs20080315-3 - SANE is a universal scanner interface
Last edited by Marks; 24-06-2008 at 19:51.
Прочитал. Понял, что с моим EPSON CX6600 можно даже и не пытаться . Попытался, но все равно не вышло. А жаль...
The God is real, unless declared as integer
Зеркало для ipkg и старые пакеты (с 08.06.11)
Зеркало для opkg и старые пакеты (с 24.03.12)
А тут вроде статус Good
http://www.sane-project.org/sane-mfgs.html#Z-EPSON