PDA

Bekijk de volledige versie : Как подружить принтер HPLJ P1005/1022 и роутер Asus



Pages : [1] 2

Knight_Rider
17-04-2007, 21:01
Подключение к роутеру Host-Based принтера + другой USB периферии.

Являюсь счастливым обладателем роутера WL-500gP, принтера HP LaserJet 1018 и внешнего HDD, которые должны работать в связке.
На форуме существует много топиков, в которых обсуждается автоматическое подключение этих "нехороших" принтеров.
Все они похожи друг на друга и все работают... Но у всех есть побочный эффект, перестают работать все USB устройства, кроме
принтера, что есть не очень удобно. Ниже я в очередной раз приведу инструкцию по загрузке драйверов и установке скрипта,
в котором работает определение всех USB устройств совместно с работой принтера.

Пример будет рассмотрен на базе того что у меня было, т.е. LaserJet 1018. В местах, где есть различия, я буду сообщать.

Ну, приступим:

1. Заходим на роутер через TelNet или SSH.
2. Если еще не создана папка /usr/local/sbin, то создаем командой


mkdir /usr/local/sbin
3. Переходим в этот каталог


cd /usr/local/sbin
4. Загружаем файлы, необходимые для работы принтера


wget http://oleg.wl500g.info/hplj/usb_printerid
wget http://oleg.wl500g.info/hplj/sihp1018.dl
! Здесь надо уделить внимание строке wget http://oleg.wl500g.info/hplj/sihp1018.dl.

Если у вас принтер не HP 1018, то ЗДЕСЬ (http://oleg.wl500g.info/hplj/) ищем прошивку под свой HP и подставляете свою ссылку.
Если у вас не HP, то придется искать прошивку самим.

5. Создаем файл со скриптом


echo "#!/bin/sh" > hotplug.sh
echo "" >> hotplug.sh
echo "# set -x" >> hotplug.sh
echo "" >> hotplug.sh
echo "PRN_BIN=/usr/local/sbin/usb_printerid" >> hotplug.sh
echo "PRN_FRM=/usr/local/sbin/sihp1018.dl" >> hotplug.sh
echo "PRN_ID=3f0/4117/100" >> hotplug.sh
echo "if [ \$veros = 2.6 ] ; then" >> hotplug.sh
echo " PRN_DEV=/dev/lp0" >> hotplug.sh
echo "else" >> hotplug.sh
echo " PRN_DEV=/dev/usb/lp0" >> hotplug.sh
echo "fi" >> hotplug.sh
echo "PRN_NAME=\"HP LaserJet 1018\"" >> hotplug.sh
echo "" >> hotplug.sh
echo "logger -t hotplug \"Request for \$ACTION device \$PRODUCT at \$* interface\"" >> hotplug.sh
echo "" >> hotplug.sh
echo "if [ \"\$ACTION\" = \"add\" ] && [ \"\$*\" = \"usb\" ] && [ \"\$DEVFS\" = \"/proc/bus/usb\" ] && [ \"\$PRODUCT\" = \$PRN_ID ]; then" >> hotplug.sh
echo " logger -t hotplug \"Device is \$PRN_NAME Printer\"" >> hotplug.sh
echo " while test ! -e \$PNT_DEV; do" >> hotplug.sh
echo " logger -t hotplug \"Waiting for printer respond\"" >> hotplug.sh
echo " sleep 1" >> hotplug.sh
echo " done" >> hotplug.sh
echo " sleep 2" >> hotplug.sh
echo " logger -t hotplug \"Loading firmware to printer\"" >> hotplug.sh
echo " \$PRN_BIN \$PRN_DEV | grep -q FWVER || cat \$PRN_FRM > \$PRN_DEV" >> hotplug.sh
echo " if [ \"\$?\" -eq 0 ] ; then" >> hotplug.sh
echo " logger -t hotplug \"Loading Successful\"" >> hotplug.sh
echo " else" >> hotplug.sh
echo " logger -t hotplug \"Loading Failed\"" >> hotplug.sh
echo " fi" >> hotplug.sh
echo "fi" >> hotplug.sh
echo "/sbin/hotplug \$*" >> hotplug.sh
! Здесь стоит обратить внимание на строки:


echo "PRN_FRM=/usr/local/sbin/sihp1018.dl" >> hotplug.sh
echo "PRN_ID=3f0/4117/100" >> hotplug.sh
echo "PRN_NAME=\"HP LaserJet 1018\"" >> hotplug.sh
Привожу описание по строкам:

5.1. Путь к прошивке принтера. Необходимо заменить sihp1018.dl на имя вашей прошивки.
5.2. Device ID вашего принтера.
5.3. Строка, которая будет подставляться в syslog в качестве имени принтера.

6. Делаем автозапуск скрипта.
Если файл еще не существует, то создаем/обновляем файл pre-boot:


echo "#!/bin/sh" > pre-boot
Для всех


echo "/bin/echo \"/usr/local/sbin/hotplug.sh\" > /proc/sys/kernel/hotplug" >> pre-boot
7. Делаем файлы исполняемыми


chmod +x /usr/local/sbin/*
8. Сохраняем изменения


flashfs save && flashfs commit && flashfs enable && reboot
На этом настройка роутера закончена.
После перезапуска роутер будет готов для работы с принтером и другой периферией.

ЗДЕСЬ (http://wl500g.info/showpost.php?p=219965&postcount=104) представлен универсальный скрипт, поддерживающий все модели LaserJet.
Все что от Вас требуется - это скачать файл прошивки и положить в нужный каталог.

UPD: Слегка доработал скрипт, теперь должна быть полная совместимость между версиями -d и -rtn.


#!/bin/sh

LJ_1000=3f0/517
LJ_1005=3f0/1317
LJ_1018=3f0/4117
LJ_1020=3f0/2b17
LJ_1022=3f0/2c17
LJ_1022n=3f0/2d17
LJ_1022nw=3f0/3017
LJ_P1005=3f0/3d17
LJ_P1006=3f0/3e17
LJ_P1007=3f0/4817
LJ_P1008=3f0/4917
LJ_P1505=3f0/3f17
LJ_P1505n=3f0/4017

FRM_CAT=/usr/local/sbin/
PRN_BIN=usb_printerid
PRN_DEV=""

case `echo $PRODUCT | awk -F/ '{print $1 "/" $2}'` in
$LJ_1000)
PRN_FRM=sihp1000.dl
PRN_ID=$LJ_1000
PRN_NAME="HP LaserJet 1000"
;;
$LJ_1005)
PRN_FRM=sihp1005.dl
PRN_ID=$LJ_1005
PRN_NAME="HP LaserJet 1005"
;;
$LJ_1018)
PRN_FRM=sihp1018.dl
PRN_ID=$LJ_1018
PRN_NAME="HP LaserJet 1018"
;;
$LJ_1020)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1020
PRN_NAME="HP LaserJet 1020"
;;
$LJ_1022)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1020
PRN_NAME="HP LaserJet 1022"
;;
$LJ_1022n)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1022n
PRN_NAME="HP LaserJet 1022n"
;;
$LJ_1022nw)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1022nw
PRN_NAME="HP LaserJet 1022nw"
;;
$LJ_P1005)
PRN_FRM=sihpP1005.dl
PRN_ID=$LJ_P1005
PRN_NAME="HP LaserJet P1005"
;;
$LJ_P1006)
PRN_FRM=sihpP1006.dl
PRN_ID=$LJ_P1006
PRN_NAME="HP LaserJet P1006"
;;
$LJ_P1007)
PRN_FRM=sihpP1007.dl
PRN_ID=$LJ_P1007
PRN_NAME="HP LaserJet P1007"
;;
$LJ_P1008)
PRN_FRM=sihpP1008.dl
PRN_ID=$LJ_P1008
PRN_NAME="HP LaserJet P1008"
;;
$LJ_P1505)
PRN_FRM=sihpP1505.dl
PRN_ID=$LJ_P1505
PRN_NAME="HP LaserJet P1505"
;;
$LJ_P1505n)
PRN_FRM=sihpP1505.dl
PRN_ID=$LJ_P1505n
PRN_NAME="HP LaserJet P1505n"
;;
*)
PRN_FRM=''
PRN_ID=ffff/ffff
PRN_NAME="unknown"
;;
esac

if [ -d /dev/usb ] ;
then PRN_DEV=/dev/usb/lp0
else PRN_DEV=/dev/lp0
fi

logger -t hotplug "Request for $ACTION device $PRODUCT at $* interface"

if [ "$ACTION" = "add" ] && [ "$*" = "usb" ] && [ "$PRN_DEV" != "" ] && [ "$PRN_ID" != "ffff/ffff" ]; then
logger -t hotplug "Device is $PRN_NAME Printer"
while test ! -e $PNT_DEV; do
logger -t hotplug "Waiting for printer respond"
sleep 1
done

logger -t hotplug "Loading firmware to printer"
$FRM_CAT$PRN_BIN $PRN_DEV | grep -q FWVER || cat $FRM_CAT$PRN_FRM > $PRN_DEV
RET_CODE=$?
sleep 1

if [ $RET_CODE -eq 0 ] ;
then logger -t hotplug "Loading Successful"
else logger -t hotplug "Loading Failed"
fi
fi
/sbin/hotplug $*

sash_xp
18-04-2007, 19:46
Доброго вечера.
Пытаюсь настроить принтер LaserJet 1018 для ASUS WL-500g Premium.
Выполняю шаги, указанные в этом сообщении: http://www.wl500g.info/showpost.php?p=24807&postcount=11

При выполнении последнией команды
./usb_printerid /dev/usb/lp0 | grep -q FWVER || cat sihp1020.dl > /dev/usb/lp0

выдается сообщение:
Error: No such file or directory: can't open '/dev/usb/lp0'
-sh: cannot create /dev/usb/lp0: Permission denied

попробовал более старую версию прошивки - 1.8.2.7-7f - та же байда.

пермишены на /dev/usb в порядке (ls -ld /dev/usb )
владельцем является текущий пользователь, права доступа 755

тем не менее команда
$ > /dev/usb/w
вылетает с Permission denied

ума не приложу в чем дело - ведь у других людей получалось настроить.
я уже и настройки несколько раз сросил, и прошивки менял и в каких только комбинациях не пробовал принтер подключить и настроить - все одно.

может подскажите хотя бы куда копать?
Заранее спасибо за ответы

Oleg
18-04-2007, 19:57
Error: No such file or directory: can't open '/dev/usb/lp0'

Пишет же по-русски: нет такого файла. Принтер у Вас не обнаружен. Кстати, грузить Вам надо код для 1018, а не 1020. Или Вы совсем не понимаете смылс команд?

sash_xp
18-04-2007, 20:08
Да нет я и грузил для 1018 - в примере просто скопировал. Не настолько уж и туп как кажусь.
И то что принтер не обнаружен - я тоже понимаю.
Непонятно - почему не обнаружен и что надо сделать, чтобы обнаружил.

Oleg
18-04-2007, 21:38
dmesg давайте.

sash_xp
18-04-2007, 22:41
полный вывод команды во вложении.
а вот что пишется в логах при подключении принтера


hub.c: new USB device 01:03.2-2, assigned address 4
usb.c: USB device not accepting new address=4 (error=-71)
hub.c: new USB device 01:03.2-2, assigned address 5
usb.c: USB device not accepting new address=5 (error=-71)

и совешенно странная мессага



Apr 19 01:17:28 kernel: unknown GRE version 6

не видел такую раньше...

Oleg
19-04-2007, 07:45
полный вывод команды во вложении.
а вот что пишется в логах при подключении принтера

Понятно. Проверьте USB кабель, возможно дело в нём. Или где-то не до конца он вставлен. А флешки работают при подключении к роутеру?

Oleg
19-04-2007, 07:45
На GRE Не обращайте внимания.

raklid
19-04-2007, 08:55
Добрый день! Подскажите пожалуйста, у меня стоит Windows XP SP2 Роутер Asus WL500G-Premium, пытаюсь подключить принтер который подключен к USB роутера, прошивка стоит 1.9.2.7-7f, подключаю порт, как прочитал на форуме, задание на принтер посылается,но печать не идет.

Jan 1 03:00:06 kernel: vlan1: add 01:00:5e:00:00:01 mcast address to master interface
Nov 19 11:22:53 dnsmasq[68]: DHCPDISCOVER(br0) 00:0e:35:0b:7f:75
Nov 19 11:22:53 dnsmasq[68]: DHCPOFFER(br0) 192.168.1.4 00:0e:35:0b:7f:75
Nov 19 11:22:53 dnsmasq[68]: DHCPREQUEST(br0) 192.168.1.4 00:0e:35:0b:7f:75
Nov 19 11:22:53 dnsmasq[68]: DHCPACK(br0) 192.168.1.4 00:0e:35:0b:7f:75 makc
Nov 19 11:22:53 kernel: printer.c: usblp0 Device ID string [84/max 1552]='MFG:Hewlett-Packard;MDL:HP LaserJet 1018;CMD:ACL;CLS:PRINTER;DES:HP LaserJet 1018;'
Nov 19 11:22:53 kernel: printer.c: Parsing USBLPID...
Nov 19 11:23:01 ntp client: Synchronizing time with time.nist.gov ...
Nov 19 11:41:29 dnsmasq[68]: DHCPREQUEST(br0) 192.168.1.2 4c:00:10:74:c2:3e
Nov 19 11:41:29 dnsmasq[68]: DHCPACK(br0) 192.168.1.2 4c:00:10:74:c2:3e black_booker
Nov 19 13:19:28 kernel: printer.c: usblp0 Device ID string [84/max 1552]='MFG:Hewlett-Packard;MDL:HP LaserJet 1018;CMD:ACL;CLS:PRINTER;DES:HP LaserJet 1018;'
Nov 19 13:19:28 kernel: printer.c: Parsing USBLPID...
Nov 19 13:19:32 kernel: printer.c: usblp0 Device ID string [84/max 1552]='MFG:Hewlett-Packard;MDL:HP LaserJet 1018;CMD:ACL;CLS:PRINTER;DES:HP LaserJet 1018;'
Nov 19 13:19:32 kernel: printer.c: Parsing USBLPID...
Nov 19 13:23:01 ntp client: Synchronizing time with time.nist.gov ...
Nov 19 13:28:15 login[128]: root login on `pts/0'
Nov 19 13:56:42 kernel: printer.c: usblp0 Device ID string [84/max 1552]='MFG:Hewlett-Packard;MDL:HP LaserJet 1018;CMD:ACL;CLS:PRINTER;DES:HP LaserJet 1018;'
Nov 19 13:56:42 kernel: printer.c: Parsing USBLPID...

sash_xp
19-04-2007, 20:03
попробовал я подключить принтер, все то же. с кабелем вроде все в порядке. разве что длинноват он - 3 метра. Но из-под Windows печать идет без проблем
Потом попробовал подключить флешку на оба порта - подключается и монтируется без проблем.


Apr 19 22:30:14 kernel: hub.c: new USB device 01:03.2-2, assigned address 6
Apr 19 22:30:14 kernel: usb.c: USB device not accepting new address=6 (error=-71)
Apr 19 22:30:14 kernel: hub.c: new USB device 01:03.2-2, assigned address 7
Apr 19 22:30:14 kernel: usb.c: USB device not accepting new address=7 (error=-71)
Apr 19 22:30:53 kernel: hub.c: new USB device 01:03.2-1, assigned address 8
Apr 19 22:30:53 kernel: usb.c: USB device not accepting new address=8 (error=-71)
Apr 19 22:30:53 kernel: hub.c: new USB device 01:03.2-1, assigned address 9
Apr 19 22:30:53 kernel: usb.c: USB device not accepting new address=9 (error=-71)
Apr 19 22:31:23 kernel: hub.c: new USB device 01:03.2-1, assigned address 10
Apr 19 22:31:23 kernel: usb.c: USB device not accepting new address=10 (error=-71)
Apr 19 22:31:23 kernel: hub.c: new USB device 01:03.2-1, assigned address 11
Apr 19 22:31:23 kernel: usb.c: USB device not accepting new address=11 (error=-71)
Apr 19 22:33:20 kernel: hub.c: new USB device 01:03.2-1, assigned address 12
Apr 19 22:33:20 kernel: scsi0 : SCSI emulation for USB Mass Storage devices
Apr 19 22:33:20 kernel: Vendor: Easy Model: Disk Rev: 1100
Apr 19 22:33:20 kernel: Type: Direct-Access ANSI SCSI revision: 02
Apr 19 22:33:20 kernel: Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0
Apr 19 22:33:20 kernel: SCSI device sda: 506880 512-byte hdwr sectors (260 MB)
Apr 19 22:33:20 kernel: sda: Write Protect is off
Apr 19 22:33:20 kernel: Partition check:
Apr 19 22:33:20 kernel: p1
Apr 19 22:33:21 kernel: VFS: Can't find ext3 filesystem on dev sd(8,0).
Apr 19 22:33:22 kernel: MSDOS FS: Using codepage 950
Apr 19 22:33:22 kernel: MSDOS FS: IO charset cp950
Apr 19 22:33:22 kernel: FAT: bogus logical sector size 64543
Apr 19 22:33:22 kernel: VFS: Can't find a valid FAT filesystem on dev 08:00.
Apr 19 22:33:22 kernel: FAT: freeing iocharset=cp950
Apr 19 22:33:22 kernel: FAT: bogus logical sector size 64543
Apr 19 22:33:22 kernel: VFS: Can't find a valid FAT filesystem on dev 08:00.
Apr 19 22:33:22 kernel: VFS: Can't find ext3 filesystem on dev sd(8,1).
Apr 19 22:33:22 kernel: MSDOS FS: Using codepage 950
Apr 19 22:33:22 kernel: MSDOS FS: IO charset cp950
Apr 19 22:33:22 USB storage: vfat fs mounted to /tmp/harddisk
Apr 19 22:33:22 FTP server: daemon is started
Apr 19 22:33:54 login[1350]: root login on `pts/1'
Apr 19 22:35:01 ntp client: Synchronizing time with pool.ntp.org ...
Apr 19 22:57:09 nmbd[1346]: [2007/04/19 22:57:09, 0] nmbd/nmbd.c:sig_term(65)
Apr 19 22:57:09 nmbd[1346]: Got SIGTERM: going down...
Apr 19 22:57:10 USB storage: removed
Apr 19 22:57:43 kernel: usb.c: USB disconnect on device 01:03.2-1 address 12
Apr 19 22:57:49 kernel: hub.c: new USB device 01:03.2-1, assigned address 13
Apr 19 22:57:57 kernel: VFS: Can't find ext3 filesystem on dev sd(8,0).
Apr 19 22:57:57 kernel: MSDOS FS: Using codepage 950
Apr 19 22:57:57 kernel: MSDOS FS: IO charset cp950
Apr 19 22:57:57 kernel: FAT: bogus logical sector size 64543
Apr 19 22:57:57 kernel: VFS: Can't find a valid FAT filesystem on dev 08:00.
Apr 19 22:57:57 kernel: FAT: freeing iocharset=cp950
Apr 19 22:57:57 kernel: FAT: bogus logical sector size 64543
Apr 19 22:57:57 kernel: VFS: Can't find a valid FAT filesystem on dev 08:00.
Apr 19 22:57:57 kernel: VFS: Can't find ext3 filesystem on dev sd(8,1).
Apr 19 22:57:57 kernel: MSDOS FS: Using codepage 950
Apr 19 22:57:57 kernel: MSDOS FS: IO charset cp950
Apr 19 22:57:57 USB storage: vfat fs mounted to /tmp/harddisk
Apr 19 22:57:57 FTP server: daemon is started

Oleg
19-04-2007, 20:12
Не знаю чем помочь. Попробовать другой кабель наверное. То что виндоус печатает не значит, что кабель "исправен" на 100% - просто контроллёр другой и иначе относится к "особенностям". На скорости USB 2.0 требования к кабелю довольно высокие... Можно попробовать подключать через хаб с юсб 1.1.

al37919
19-04-2007, 20:16
а принтер подключен через хаб или напрямую?

sash_xp
20-04-2007, 05:21
Принтер подключен напрямую к роутеру.
Побаловался немного с USB-хабом. Роутер находит его без проблем, пишет в логах

Apr 20 08:15:13 kernel: hub.c: new USB device 01:03.2-2, assigned address 19
Apr 20 08:15:13 kernel: hub.c: USB hub found
Apr 20 08:15:13 kernel: hub.c: 4 ports detected

жаль, что у меня хаб 2.0. Потому что идея с кабелем и USB 1.1 выглядит очень правдивой - к виндовой машине он у меня подключен через USB 1.1, подключить через 2.0 не удалось. Сразу я не обратил на это внимание, а сейчас вспомнил.

Mirage-net
20-04-2007, 07:14
Потому что идея с кабелем и USB 1.1 выглядит очень правдивой - к виндовой машине он у меня подключен через USB 1.1, подключить через 2.0 не удалось. Сразу я не обратил на это внимание, а сейчас вспомнил.

Попробуй выгрузить модуль USB 2.0
rmmod ehci-hcd
это переведет роутер в режим USB 1.1

sash_xp
20-04-2007, 19:15
Попробовал выгрузить модуль echi-usb, принтер определился - ч.т.д.

Перед этим я забежал в Формозу на Ленинском купить короткий кабель для принтера. Девушка оформлявшая мой заказ "порадовала" меня, что принтеры 1018/1020 - вообще не работают через трехметровый кабель. Ну у меня работало правда только через USB 1.1.

Уже с загруженным модулем echi-usb и коротким кабелем, я подключил принтер и он опять же без проблем определился. Дальше дело техники ( http://www.wl500g.info/showpost.php?...7&postcount=11
, http://oleg.wl500g.info/printing/ ) - через 5 минут я уже напечатал пробную страницу - выводы я думаю очевидны.
Всем cпасибо за помощь :-)

Mirage-net
21-04-2007, 09:00
Девушка оформлявшая мой заказ "порадовала" меня, что принтеры 1018/1020 - вообще не работают через трехметровый кабель. Ну у меня работало правда только через USB 1.1.
Работают они с 3-х метровым кабелем по USB 2.0 только кабель должен быть добротный: толстый, экранированный и с магнитным фильтром (нашлепка такая на нем) ... стоит такой кабель около 400 руб. (проверено на 3-х 1018)...

Castor
26-08-2007, 10:00
У меня также не печатает LaserJet 1020.... Прочетав ветку я понял, что нужно скачать sihp1020.dl, и куда-то его прилепить...
Не подскажете куда? и как?
Спасибо.
Антон.

SergeyVl
26-08-2007, 21:10
Почитай еще раз ветку http://wl500g.info/showthread.php?t=4092&highlight=1020 .
Только вчера настраивал 1018 таким образом - все великолепно работает. Только вот скрипт для "автоматического" подцепления принтера при включении, который там дан, некорректный, он сам себя запускает бесконечное кол-во раз, пока память не кончится. Я его немного модифицировал, и теперь все работает.
Для начала попробуй сделать http://wl500g.info/showpost.php?p=24807&postcount=11

Castor
02-09-2007, 19:25
Почитай еще раз ветку http://wl500g.info/showthread.php?t=4092&highlight=1020 .
Только вчера настраивал 1018 таким образом - все великолепно работает. Только вот скрипт для "автоматического" подцепления принтера при включении, который там дан, некорректный, он сам себя запускает бесконечное кол-во раз, пока память не кончится. Я его немного модифицировал, и теперь все работает.
Для начала попробуй сделать http://wl500g.info/showpost.php?p=24807&postcount=11
Привет, а ты не мог бы для чайника сделать инструкцию...
Я бы был тебе благадарен... Отблагодарил бы...)))

SergeyVl
09-09-2007, 20:53
Написал на всякий случай, мало ли кому еще понадобится...

Сначала надо настроить на компе самым обычным образом печать на подключенный к роутеру принтер (описано тут (http://oleg.wl500g.info/printing/)).

У меня к роутеру подключен жестяк, поэтому все связанное с принтером, естественно, лежит на нем. Диск смонтирован в /opt.

На диске в папке /opt/usr/printer я поместил выложенные Олегом файлы (ссылка (http://oleg.wl500g.info/hplj/)) для HP 1018, т.е. usb_printerid и sihp1018.dl. Первый из них - это утилита идентификации принтера, второй - файл программы для принтера, который при "нормальной" работе принтера от компьютера сгружается драйвером в принтер перед печатью, это что-то вроде прошивки.
После этого проверил работоспособность этой штуки - включил принтер, и коммандой
usb_printerid /dev/usb/lp0 | grep -q FWVER || cat sihp1018.dl > /dev/usb/lp0
(естественно, находясь в папке с драйвером и утилитой, чтобы не писать полные пути) загрузил драйвер в принтер. Произошла инициализация принтера (он включился и немного покрутил барабаном, как перед печатью). Печать с компьютера после этого пошла абсолютно нормально.

Далее я решил автоматизировать инициализацию принтера. Где-то на форуме нашел идею проверки подключаемых к USB устройств, и написал скрипт проверки принтера и загрузки в него прошивки при его включении или подключении к USB. Файл скрипта hotplug.sh положил в папку /opt/usr/hotplug. Код скрипта:
#!/bin/sh
LOG=/opt/var/log/hotplug.log
PRN_BIN=/opt/usr/printer/usb_printerid
PRN_FRM=/opt/usr/printer/sihp1018.dl
echo --------------- >> $LOG
date >> $LOG
echo $* >> $LOG
set >> $LOG
if [ "$ACTION" = "add" ] || [ "$1" = "usb" ] || [ "$DEVFS" = "/proc/bus/usb" ]; then
sleep 5
$PRN_BIN /dev/usb/lp0 | grep -q FWVER || cat $PRN_FRM > /dev/usb/lp0
echo "Printer OnLine" >> $LOG
else
echo "Printer OffLine" >> $LOG
fi
killall hotplug.sh
Если логи не нужны, запись их несложно выкинуть отсюда. Пути так же можно легко поменять.
А чтобы этот скрипт запускался при подключении устройств, надо прописать его в hotplug роутеру, для этого я в post-mount (который надо создать, если отсутствует, в папке /tmp/local/sbin) добавил после всего остального (запуск веб-сервера, mysql, php, cron и т.д.) строку:
echo "/opt/usr/hotplug/hotplug.sh" >> /proc/sys/kernel/hotplug

Все файлы скриптов и утилиты идентификации естественно надо сделать исполняемыми (chmod +x имя_файла).

Впринципе, для автоматической инициализации принтера и возможности печати на него этого достаточно. Вроде как ничего не забыл указать. Если забыл - поправьте меня, исправлюсь)

Потом я еще кое-чего химичил, но это уже для печати не обязательно... :)

На роутере естественно стоит прошивка от Олега последней версии. Если надо, информацию о том, как создать файлы, папки, и многое другое на форуме неоднократно описано, поэтому расписывать подробнее не стал.

owld
03-10-2007, 20:38
для тех у кого нету внешнего винта:

Копируем файлы :
sihp1020.dl
usb_printerid
в директорию /usr/local/sbin

В ней же создаем hotplug.sh :

#!/bin/sh
PRN_BIN=/usr/local/sbin/usb_printerid
PRN_FRM=/usr/local/sbin/sihp1020.dl
if [ "$ACTION" = "add" ] || [ "$1" = "usb" ] || [ "$DEVFS" = "/proc/bus/usb" ]; then
sleep 5
$PRN_BIN /dev/usb/lp0 | grep -q FWVER || cat $PRN_FRM > /dev/usb/lp0
fi
killall hotplug.sh


В файл post-boot в самом конце добавляем :

# Printer
/bin/echo "/usr/local/sbin/hotplug.sh" >> /proc/sys/kernel/hotplug

Делаем
flashfs save
flashfs commit
flashfs enable


Вуаля. Все работает

Blacks
13-10-2007, 14:49
эх, а подробней кто-нибудь может объяснить, для людей, которые с роутером на вы, просто не понятно, что значит загрузить, как это сделать? ясно только то, что если есть флэшка постоянно подключенная к роутеру, то создаем папку, записываем файлы, да и как это делать надо? подключая флэшку к компу или кидая файлы по самбе... а вот куда скрипт помещать не понятно... пожалуйста, чуть подробней... пошагово...

SergeyVl
14-10-2007, 16:51
эх, а подробней кто-нибудь может объяснить, для людей, которые с роутером на вы, просто не понятно, что значит загрузить, как это сделать? ясно только то, что если есть флэшка постоянно подключенная к роутеру, то создаем папку, записываем файлы, да и как это делать надо? подключая флэшку к компу или кидая файлы по самбе... а вот куда скрипт помещать не понятно... пожалуйста, чуть подробней... пошагово...

"Что" и "куда" я написал чуть выше, а "как" - на форуме написано неоднократно, еще раз объяснять нет ни смысла, ни желания особого.
Например это http://wl500g.info/showthread.php?t=3171 для начала почитайте.

shaman1010
18-10-2007, 23:16
Мегареспектище тебе.... все завелось, как так и было :-))

Вопрос по этому кусочку -


для тех у кого нету внешнего винта:

В ней же создаем hotplug.sh :

#!/bin/sh
PRN_BIN=/usr/local/sbin/usb_printerid
PRN_FRM=/usr/local/sbin/sihp1020.dl
if [ "$ACTION" = "add" ] || [ "$1" = "usb" ] || [ "$DEVFS" = "/proc/bus/usb" ]; then
sleep 5
$PRN_BIN /dev/usb/lp0 | grep -q FWVER || cat $PRN_FRM > /dev/usb/lp0
fi
killall hotplug.sh


я так понимаю - внизу должен подставляться полный путь (тот, который указан выше), но у меня так не заводилось, когда вместо $... вставил абсолютные пути - все завелось. ПОЧЕМУ?

и для инструкции для КиПяТиЛьНиКоВ в линуксе (коим и я являюсь) мне кажется не хватает явных строчек

chmod +x hotplug.sh
chmod +x usb_printerid
chmod +x sihp1020.dl

это подразумевается постом выше, но явное указание я думаю не будет лишним :-))

el-pashteto
28-10-2007, 23:18
Гм. Господа. В чём может быть засада?:
после подключения принтера делаю руками cat sihp1018.img>/dev/usb/lp0
И тиишина... Принтер молчит, не жужжит барабанами. И не печатает всё так же после этого.

KartWol
12-11-2007, 19:58
Гм. Господа. В чём может быть засада?:
после подключения принтера делаю руками cat sihp1018.img>/dev/usb/lp0
И тиишина... Принтер молчит, не жужжит барабанами. И не печатает всё так же после этого.

Откуда img?

Возник вопрос: как можно продолжить печать, если она прервалась в результате отсутствия бумаги?
Спасибо.

SergeyVl
12-11-2007, 20:26
Не знаю куда обращаются скрипты веб-морды роутера, лень разбираться, но если открыть страницу со статусом роутера, происходит "рестарт" принтера (т.е. продолжение печати).
Я сделал так:

#!/bin/sh
/usr/bin/wget http://admin:pass@localhost/Main_GStatus_Content.asp -O /opt/tmp/printer_restart.tmp

Это загрузка wget-ом страницы со статусом роутера (в т.ч. со статусом принтера) из веб-морды.
Запихнул я этот код в ez-setup скрипт, срабатывающий при удержании в теч. пары секунд одноименной кнопки роутера.
Выполнение этого же скрипта я прописал в knock, в который "ломлюсь" через "ярлычок" с компа.

Kostyas
02-04-2008, 05:00
Купил принтерок HP D1460,подключил согласно инструкции Олега.
Всё установилось ногрмально, но печать живет своей жизнью... Печатается полстраницы , а потом принтер останавливается и в табличке о состоянии печати вижу: "Ошибка-Печать- Перезапуск",а в верху этого окошка , где напечатана марка принтера постоянно мигает "обновление"
Лампочка принтера начинает мигать... т.е. ошибка..
На роутере принтер установлен нормально, в веб интерфейсе принтер прописан и находится в статусе on-line.
С логом вроде тоже всё нормально
Apr 2 06:42:53 p9100d[84]: Finished job: 201880 bytes received
Apr 2 06:42:53 p9100d[84]: copy_stream: Connection reset by peer
Apr 2 06:50:53 kernel: printer.c: usblp0 Device ID string [145/max 1552]='MFG:HP;MDL:Deskjet D1400 series;CMD:LDL,DYN;CLS:PRINTER;DES:D1460;SN:TH79B3 1FFT04Y2;S:0380008000020020052c148003dc2500047;Z:0 07,05400000400000;'
Apr 2 06:50:53 kernel: printer.c: Parsing USBLPID...

Но проблема решается только перезагрузкой компа или входом в службы и перезапуском печати...
Если же принтер подключаешь напрямую к компу - всё нормально....
Но хотелось бы распечатывать без включение компа с драйверами принтера, напрямую , т.к. дома 3-компьютера

Oleg
02-04-2008, 17:13
Проблема в драйверах принтера. Возможно в настройках принтера стоит отключить двунаправленный обмен.

justason
06-04-2008, 21:36
Есть ветка: http://wl500g.info/showthread.php?t=4092&page=2

сделал post-boot:
#!/bin/sh
export TERMINFO="/opt/share/terminfo"
export TERM="xterm"
#
echo "/usr/local/sbin/hotplug.sh" >> /proc/sys/kernel/hotplug


сделал post-mount:
#!/bin/sh
mount -obind /tmp/harddisk/opt /opt
#
#loading FW to printer
#/usr/local/sbin/usb_printerid /dev/usb/lp0 | grep -q FWVER || cat /usr/local/sbin/sihp1018.dl > /dev/usb/lp0


сделал hotplug.sh:
#!/bin/sh
echo "---------------" >> /usr/local/sbin/log.log
date >> /usr/local/sbin/log.log
echo $* >> /usr/local/sbin/log.log
set >> /usr/local/sbin/log.log
#
sleep 5
/usr/local/sbin/usb_printerid /dev/usb/lp0 | grep -q FWVER || cat /usr/local/sbin/sihp1018.dl > /dev/usb/lp0

на всякий случай даже записал бинарник с прошивкой принтера и "usb_printerid" в "/usr/local/sbin/" благо место есть.

настроил принтер как в:http://oleg.wl500g.info/printing/

записался...
после reboot-а

1. в принтер ничего не льется - лампочка не мигает, и соответственно не печатает
2. при передергивании питания - та же картина = ничего не происходит
3. log.log не создается
4. Если руками "cat /usr/local/sbin/sihp1018.dl > /dev/usb/lp0" то принтер начинает работать до выключения питания

tchaynik
07-04-2008, 09:28
Есть ветка: http://wl500g.info/showthread.php?t=4092&page=2

сделал post-boot:
#!/bin/sh
export TERMINFO="/opt/share/terminfo"
export TERM="xterm"
#
echo "/usr/local/sbin/hotplug.sh" >> /proc/sys/kernel/hotplug


сделал post-mount:
#!/bin/sh
mount -obind /tmp/harddisk/opt /opt
#
#loading FW to printer
#/usr/local/sbin/usb_printerid /dev/usb/lp0 | grep -q FWVER || cat /usr/local/sbin/sihp1018.dl > /dev/usb/lp0


сделал hotplug.sh:
#!/bin/sh
echo "---------------" >> /usr/local/sbin/log.log
date >> /usr/local/sbin/log.log
echo $* >> /usr/local/sbin/log.log
set >> /usr/local/sbin/log.log
#
sleep 5
/usr/local/sbin/usb_printerid /dev/usb/lp0 | grep -q FWVER || cat /usr/local/sbin/sihp1018.dl > /dev/usb/lp0

на всякий случай даже записал бинарник с прошивкой принтера и "usb_printerid" в "/usr/local/sbin/" благо место есть.

настроил принтер как в:http://oleg.wl500g.info/printing/

записался...
после reboot-а

1. в принтер ничего не льется - лампочка не мигает, и соответственно не печатает
2. при передергивании питания - та же картина = ничего не происходит
3. log.log не создается
4. Если руками "cat /usr/local/sbin/sihp1018.dl > /dev/usb/lp0" то принтер начинает работать до выключения питания
Я добавил это в post-boot и после перезагрузки у меня все заработало


#loading FW to printer
/usr/local/sbin/usb_printerid /dev/usb/lp0 | grep -q FWVER || cat /usr/local/sbin/sihp1018.dl > /dev/usb/lp0
Так как принтер и роутер в одной разетке, то смысл вгружать е него фирмварю есть только при включении.

justason
07-04-2008, 09:53
Я добавил это в post-boot и после перезагрузки у меня все заработало


#loading FW to printer
/usr/local/sbin/usb_printerid /dev/usb/lp0 | grep -q FWVER || cat /usr/local/sbin/sihp1018.dl > /dev/usb/lp0
Так как принтер и роутер в одной разетке, то смысл вгружать е него фирмварю есть только при включении.

Я-бы не против,
только, как говорится в http://wl500g.info/showpost.php?p=80104&postcount=45,
там надо перегружать софт в принтер даже после того, как бумага закончилась...

Поэтому и хотелось-бы чтобы оно работало "самостоятельно" через hotplug.sh
Причем дома, принтер включается только по-мере надобности.

tchaynik
07-04-2008, 10:48
Я-бы не против,
только, как говорится в http://wl500g.info/showpost.php?p=80104&postcount=45,
там надо перегружать софт в принтер даже после того, как бумага закончилась...

Поэтому и хотелось-бы чтобы оно работало "самостоятельно" через hotplug.sh
Причем дома, принтер включается только по-мере надобности.
Попробуй хотплуг навешивать в pre-boot
А ваще было бы супер, если бы чтото можно было навешивать на начало печати.
но стандартно такой возможности нету :((

dmig
07-04-2008, 11:49
Попробуй хотплуг навешивать в pre-boot
А ваще было бы супер, если бы чтото можно было навешивать на начало печати.
но стандартно такой возможности нету :((

похоже, hotplug (родной) отрабатывает раньше post-boot. либо с правами на файлы не всё в порядке.
в /usr/local/sbin/log.log что?

ЗЫ в pre-boot ставить -- не очень хорошо, поскольку (емнип) в это время flashfs ещё не развёрнут.

tchaynik
07-04-2008, 12:34
похоже, hotplug (родной) отрабатывает раньше post-boot. либо с правами на файлы не всё в порядке.
в /usr/local/sbin/log.log что?

ЗЫ в pre-boot ставить -- не очень хорошо, поскольку (емнип) в это время flashfs ещё не развёрнут.
flashfs уже точно поднят, ибо файлы pre-... и post-... лежат именно там. Не смонтированы внешнии сторажди - это да. Но файлики эти мона и на flashfs ложить, тада, как мне кажется, все будет нормуль

dmig
07-04-2008, 13:50
flashfs уже точно поднят, ибо файлы pre-... и post-... лежат именно там. Не смонтированы внешнии сторажди - это да. Но файлики эти мона и на flashfs ложить, тада, как мне кажется, все будет нормуль
хм... да, действительно!
значит стоит попробовать с pre-boot

tchaynik
07-04-2008, 14:44
хм... да, действительно!
значит стоит попробовать с pre-boot
Для проверки поставил в pre-boot

echo "/usr/local/sbin/hotplug" >> /proc/sys/kernel/hotplug

сам /usr/local/sbin/hotplug выглядит так


#!/bin/sh
echo "---------------" >> /tmp/log.log
date >> /tmp/log.log
echo $* >> /tmp/log.log
set >> /tmp/log.log

ПОсле перезагрузки файл /tmp/log.log появился и содержит следующее

---------------
Sat Jan 1 02:00:02 EET 2000
net
ACTION='register'
HOME='/'
IFS='
'
INTERFACE='eth0'
PATH='/sbin:/bin:/usr/sbin:/usr/bin'
PPID='2'
PS1='\w \$ '
PS2='> '
PS4='+ '
PWD='/'
---------------
Sat Jan 1 02:00:03 EET 2000
net
ACTION='register'
HOME='/'
IFS='
'
INTERFACE='eth1'
PATH='/sbin:/bin:/usr/sbin:/usr/bin'
PPID='2'
PS1='\w \$ '
PS2='> '
PS4='+ '
PWD='/'
---------------
Thu Jan 1 02:00:01 EET 1970
net
ACTION='register'
HOME='/'
IFS='
'
INTERFACE='vlan0'
PATH='/sbin:/bin:/usr/sbin:/usr/bin'
PPID='2'
PS1='\w \$ '
PS2='> '
PS4='+ '
PWD='/'
---------------
Thu Jan 1 02:00:01 EET 1970
net
ACTION='register'
HOME='/'
IFS='
'
INTERFACE='vlan1'
PATH='/sbin:/bin:/usr/sbin:/usr/bin'
PPID='2'
PS1='\w \$ '
PS2='> '
PS4='+ '
PWD='/'

..... и так далее

Pablos
07-04-2008, 15:01
т.е. с 1020 все плохо? а то он еще в коробке, не распечатывал, отнести обратно в магаз? а что будет работать?

tchaynik
07-04-2008, 15:24
т.е. с 1020 все плохо? а то он еще в коробке, не распечатывал, отнести обратно в магаз? а что будет работать?
У меня счя на этом роутере принтера нету. Там де есть - 1018 завелся с пол пенка.


сделал hotplug.sh:
#!/bin/sh
echo "---------------" >> /usr/local/sbin/log.log
date >> /usr/local/sbin/log.log
echo $* >> /usr/local/sbin/log.log
set >> /usr/local/sbin/log.log
#
sleep 5
/usr/local/sbin/usb_printerid /dev/usb/lp0 | grep -q FWVER || cat /usr/local/sbin/sihp1018.dl > /dev/usb/lp0

Нужно как то похитрее делать
пока незнаю как, нужно поэксперементировать с принтером, а его у меня счя нету
Но по примеру USB-flash


Mon Apr 7 16:39:43 EEST 2008
usb
ACTION='add'
DEVFS='/proc/bus/usb'
DEVICE='/proc/bus/usb/003/003'
HOME='/'
IFS='
'
INTERFACE='8/6/80'
PATH='/sbin:/bin:/usr/sbin:/usr/bin'
PPID='2'
PRODUCT='457/151/100'
PS1='\w \$ '
PS2='> '
PS4='+ '
PWD='/'
TYPE='0/0/0'
---------------

нужно отлавливать ACTION='add'


if ([ "$ACTION" = "add" ] || [ "$1" = "usb" ] || [ "$DEVFS" = "/proc/bus/usb" ]) then
sleep 2
if ([ ! -c /dev/usb/lp0 ] ) then
/usr/local/sbin/usb_printerid /dev/usb/lp0 | grep -q FWVER || cat/usr/local/sbin/sihp1020.dl > /dev/usb/lp0
echo "Firmware loaded succesfully!" >> /tmp/log.log
fi
fi

justason
07-04-2008, 18:51
Для проверки поставил в pre-boot

echo "/usr/local/sbin/hotplug" >> /proc/sys/kernel/hotplug

сам /usr/local/sbin/hotplug выглядит так


#!/bin/sh
echo "---------------" >> /tmp/log.log
date >> /tmp/log.log
echo $* >> /tmp/log.log
set >> /tmp/log.log

ПОсле перезагрузки файл /tmp/log.log появился и содержит следующее


мистика какая-то...
сделал pre-boot:


#!/bin/sh
echo "- pre-boot --------------" >> /tmp/log.log
echo "/usr/local/sbin/hotplug" >> /proc/sys/kernel/hotplug


сделал post-boot:


#!/bin/sh
echo "- post-boot -------------" >> /tmp/log.log
export TERMINFO="/opt/share/terminfo"
export TERM="xterm"
#
#loading FW to printer
echo "- post-boot -- FW -------" >> /tmp/log.log
/usr/local/sbin/usb_printerid /dev/usb/lp0 | grep -q FWVER || cat /usr/local/sbin/sihp1018.dl > /dev/usb/lp0


сделал hotplug:


#!/bin/sh
echo "- start --------------" >> /tmp/log.log
date >> /tmp/log.log
echo $* >> /tmp/log.log
set >> /tmp/log.log
#
/usr/local/sbin/usb_printerid /dev/usb/lp0 | grep -q FWVER || cat /usr/local/sbin/sihp1018.dl > /dev/usb/lp0
echo "- end ----------------" >> /tmp/log.log


- заливается софт в принтер на старте
- А вот hotplug не запускается! Хоть ты тресни!

Oleg
07-04-2008, 18:52
А почему
echo "/usr/local/sbin/hotplug" >> /proc/sys/kernel/hotplug

а не

echo "/usr/local/sbin/hotplug" > /proc/sys/kernel/hotplug

?

justason
07-04-2008, 19:14
Без толку.
hotplug не запускается.

/tmp/syslog.log


Apr 7 21:00:01 kernel: hub.c: new USB device 01:03.2-1, assigned address 4
Apr 7 21:00:01 kernel: printer.c: usblp0: USB Bidirectional printer dev 4 if 0 alt 0 proto 2 vid 0x03F0 pid 0x4117
Apr 7 21:00:01 kernel: printer.c: usblp0 Device ID string [84]='MFG:Hewlett-Packard;MDL:HP LaserJet 1018;CMD:ACL;CLS:PRINTER;DES:HP LaserJet 1018;'


/tmp/log.log:


- pre-boot --------------
- post-boot -------------
- post-boot -- FW -------
- post-mount ------------


ls -l /usr/local/sbin/


-rwxr-xr-x 1 admin root 627 Apr 7 20:45 hotplug
-rwxr-xr-x 1 admin root 300 Apr 7 19:52 post-boot
-rwxr-xr-x 1 admin root 120 Apr 7 19:53 post-mount
-rwxr-xr-x 1 admin root 117 Apr 7 20:56 pre-boot
-rw-r--r-- 1 admin root 129143 Apr 7 17:51 sihp1018.dl
-rwxr-xr-x 1 admin root 5800 Apr 7 17:51 usb_printerid

Oleg
07-04-2008, 19:22
А если ручками запустить, отрабатывает?

justason
07-04-2008, 20:20
Да, отрабатывает... но странно как-то

cat /usr/local/sbin/hotplug


#!/bin/sh
echo "- hotplug start --------------" >> /tmp/pluglog.log
date >> /tmp/pluglog.log
echo $* >> /tmp/pluglog.log
set >> /tmp/pluglog.log
#
#/usr/local/sbin/usb_printerid /dev/usb/lp0 | grep -q FWVER || cat /usr/local/sbin/sihp1018.dl > /dev/usb/lp0


Если подать:


[admin@Asus1 root]$ /usr/local/sbin/hotplug
-sh: /usr/local/sbin/hotplug: not found

[admin@Asus1 root]$ sh /usr/local/sbin/hotplug


то получим:


- hotplug start --------------
Mon Apr 7 21:58:17 EETDST 2008

HOME='/usr/local/root'
IFS='
'
LOGNAME='admin'
PATH='/opt/sbin:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
PPID='86'
PS1='[\u@\h \W]$ '
PS2='> '
PS4='+ '
PWD='/tmp/local/root'
SHELL='/bin/sh'
TERM='linux'
USER='admin'


А вот файл: /tmp/pluglog.log
генериться со странным именем: с кучей пробелов на конце или в этом роде. Так как руками набирая "cat /tmp/pluglog.log" будет файла нету.

команда
/usr/local/sbin/usb_printerid /dev/usb/lp0 | grep -q FWVER || cat /usr/local/sbin/sihp1018.dl > /dev/usb/lp0
отрабатывается

tchaynik
08-04-2008, 07:10
Да, отрабатывает... но странно как-то

cat /usr/local/sbin/hotplug


#!/bin/sh
echo "- hotplug start --------------" >> /tmp/pluglog.log
date >> /tmp/pluglog.log
echo $* >> /tmp/pluglog.log
set >> /tmp/pluglog.log
#
#/usr/local/sbin/usb_printerid /dev/usb/lp0 | grep -q FWVER || cat /usr/local/sbin/sihp1018.dl > /dev/usb/lp0


Если подать:


[admin@Asus1 root]$ /usr/local/sbin/hotplug
-sh: /usr/local/sbin/hotplug: not found

[admin@Asus1 root]$ sh /usr/local/sbin/hotplug


то получим:


- hotplug start --------------
Mon Apr 7 21:58:17 EETDST 2008

HOME='/usr/local/root'
IFS='
'
LOGNAME='admin'
PATH='/opt/sbin:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
PPID='86'
PS1='[\u@\h \W]$ '
PS2='> '
PS4='+ '
PWD='/tmp/local/root'
SHELL='/bin/sh'
TERM='linux'
USER='admin'


А вот файл: /tmp/pluglog.log
генериться со странным именем: с кучей пробелов на конце или в этом роде. Так как руками набирая "cat /tmp/pluglog.log" будет файла нету.

команда
/usr/local/sbin/usb_printerid /dev/usb/lp0 | grep -q FWVER || cat /usr/local/sbin/sihp1018.dl > /dev/usb/lp0
отрабатывается

chmod +x /usr/local/sbin/hotplug это, по идее, должно помочь

justason
08-04-2008, 07:18
chmod +x /usr/local/sbin/hotplug это, по идее, должно помочь

Да он и так исполняемый


-rwxr-xr-x 1 admin root 627 Apr 7 20:45 hotplug
-rwxr-xr-x 1 admin root 300 Apr 7 19:52 post-boot
-rwxr-xr-x 1 admin root 120 Apr 7 19:53 post-mount
-rwxr-xr-x 1 admin root 117 Apr 7 20:56 pre-boot
-rw-r--r-- 1 admin root 129143 Apr 7 17:51 sihp1018.dl
-rwxr-xr-x 1 admin root 5800 Apr 7 17:51 usb_printerid

tchaynik
08-04-2008, 07:55
Да он и так исполняемый


-rwxr-xr-x 1 admin root 627 Apr 7 20:45 hotplug
-rwxr-xr-x 1 admin root 300 Apr 7 19:52 post-boot
-rwxr-xr-x 1 admin root 120 Apr 7 19:53 post-mount
-rwxr-xr-x 1 admin root 117 Apr 7 20:56 pre-boot
-rw-r--r-- 1 admin root 129143 Apr 7 17:51 sihp1018.dl
-rwxr-xr-x 1 admin root 5800 Apr 7 17:51 usb_printerid

Но у меня то почемуто выполняется

cat /usr/local/sbin/hotplug
#!/bin/sh
echo "---------------" >> /tmp/log.log
date >> /tmp/log.log
echo $* >> /tmp/log.log
set >> /tmp/log.log




ls -l
-rwxr-xr-x 1 admin root 114 Apr 7 16:30 hotplug
-rwxr-xr-x 1 admin root 206 Apr 7 18:30 post-boot
-rwxr-xr-x 1 admin root 145 Apr 4 13:35 post-firewall
-rwxr-xr-x 1 admin root 63 Mar 31 14:21 post-mount
-rwxr-xr-x 1 admin root 417 Apr 7 16:31 pre-boot
-rwxrwxr-- 1 admin root 175 Mar 27 13:09 pre-mount
-rwxr-xr-x 1 admin root 151 Mar 27 13:10 pre-shutdown



cat pre-boot
#!/bin/sh

echo "/usr/local/sbin/hotplug" >> /proc/sys/kernel/hotplug

al37919
08-04-2008, 08:19
строка #!/bin/sh завершается корректно? (нет ли там CR LF ?)

justason
08-04-2008, 09:03
Сейчас не могу сказать - роутер дома.
Делал все в "nano"...

justason
08-04-2008, 12:27
И натравить, к примеру, cron проверять каждые 5 секунд есть-ли принтер...
Тока где переменную статуса держать? чтобы он каждые 5 секунд не заливал софт в принтер по-новой...

Это как почесать правое ухо левой пяткой...

dmig
08-04-2008, 12:59
Тока где переменную статуса держать? чтобы он каждые 5 секунд не заливал софт в принтер по-новой...
как раз для этого делается команда grep FWVER

а вообще, вместо того чтобы извращаться: поудаляйте всё, что сделано сейчас и по новой создайте скрипты.

justason
08-04-2008, 20:25
как раз для этого делается команда grep FWVER

а вообще, вместо того чтобы извращаться: поудаляйте всё, что сделано сейчас и по новой создайте скрипты.

Так и получилось.

tarasius
12-04-2008, 15:27
помогите подключить правильно принтер HP p1006 к рутеру wl500gp с последней 10 прошивкой.
эту тему прочитал http://wl500g.info/showthread.php?t=3909&highlight=%EF%F0%E8%ED%F2%E5%F0
но там ссылки на директорию с файлами .dl для других принтеров (http://oleg.wl500g.info/hplj/)

нашел, что на дружественном ресурсе уже есть вариант драйвера для этого принтера под линукс (http://foo2zjs.rkkda.com/foo2zjs.tar.gz)...
но как его "портировать" под ASUS ? я так понимаю, что необходимо както получить файл sihpP1006.dl для этого???

заранее спасибо!

tarasius
14-04-2008, 09:15
Господа помогите плиз. что делать то?:mad:

dmig
14-04-2008, 09:26
я так понимаю, что необходимо както получить файл sihpP1006.dl для этого???
файл этот достань из родного драйвера. или средствами foo2zjs.
спроси у Олега, что он делал с этими файлами - он писал что обрабатывал их какой-то утилитой. или попроси сделать то же самое и с этим файлом.

в остальном инструкция отличаться не будет.

al37919
17-04-2008, 12:33
Вот прошивки для трех новых принтеров HP.

Oleg
17-04-2008, 12:56
Вот прошивки для трех новых принтеров HP.
Я их выложил у себя на сайте, спасибо! :)

Lesder
17-04-2008, 13:01
Я их выложил у себя на сайте, спасибо! :)

to Oleg & al37919. Спасибо большое...=)))

al37919
17-04-2008, 13:49
Значит cat sihpP1006.dl > /dev/usb/lp0

redline
28-04-2008, 03:59
у меня та же проблема, что и у tarasius. рутер wl-520gu, принтер LJ P1505, настроил хотплаг, прошивка грузится вот лог:


Apr 28 10:24:38 kernel: printer.c: usblp0 Device ID string [109/max 1552]='MFG:Hewlett-Packard;MDL:HP LaserJet P1505;CMD:HBS,PJL,ACL;CLS:PRINTER;DES:HP LaserJet P1505;FWVER:20070910;'
Apr 28 10:24:38 kernel: printer.c: Parsing USBLPID...

но не печатает ничего. галка двустороннего обмена данными не помогает...

tarasius
28-04-2008, 04:45
а ты в самом рутере (в web-интерфейсе System Setup - Services) разрешил использование принтера в RAW и LPR режимах ?

redline
28-04-2008, 06:18
а ты в самом рутере (в web-интерфейсе System Setup - Services) разрешил использование принтера в RAW и LPR режимах ?конечно разрешил. не печатает хоть тресни. :confused:

tarasius
28-04-2008, 06:40
конечно разрешил. не печатает хоть тресни. :confused:

когда прошивка грузится - принтер жужжит?

redline
28-04-2008, 07:20
когда прошивка грузится - принтер жужжит?да, жужжит, лампами моргает.

Lesder
28-04-2008, 11:40
да, жужжит, лампами моргает.

Попробуй переткнуть принтер в комп в usb и что нить на печать отправить...
У меня была такая штука видимо долго маршрутизатор мучал принтер и комп... в итоге все ребутнул... потом заработало... Просто если у тебя не будет работать напрямую (ну если принтер через комп вкл) попробуй ребут сделать.. Если не поможет можешь дрова поменять... Насамом деле тут вариантов куча...

Rat
25-06-2008, 20:15
10ая прошивка на Премиуме. Помогло только убивание на обоих компах (один ХП, другой Виста) параллельных драйверов, на одном - 1018, на другом - 1020. Потом скачал с Хьюлетта свежую и самую маленькую версию драйверов под 1006, поставил, поигрался с настройками очереди. Печатать начало, наконец-то, но под 10ой прошивкой умер Осел. Нет в мире совершенства. Как в десятой прошивке пашут upnp и форвардинг? С 7ой все нормально было...

Zenzelya
02-10-2008, 18:13
У меня ASUS WL-520GU сейчас без проблем работает с принтером HP1018.
Ниже привожу подробную инструкцию как все сделать.
1. Скачиваете программу Putty.
2. Запускаете ее и сразу на первой вкладке в поле "Host Name or IP Addres" пишите сетевой адрес роутера.
3. Connection Type > Telnet
4. Нажимаете Open
5. Вводим логин и пароль для доступа к роутеру
6. Создаем директорию: mkdir /usr/local/sbin
7. Переходим в эту директорию: cd /usr/local/sbin
8. Копируем необходимые для принтера файлы в эту директорию:
wget http://oleg.wl500g.info/hplj/usb_printerid
wget http://oleg.wl500g.info/hplj/sihp1018.dl
9. Создаем файл hotplug.sh.
Для этого пишем:
echo "#!/bin/sh" > hotplug.sh
echo "/usr/local/sbin/usb_printerid /dev/usb/lp0 | grep -q FWVER || cat /usr/local/sbin/sihp1018.dl > /dev/usb/lp0" >> hotplug.sh
10. Создаем файл post-boot.
Пишем:
echo "#!/bin/sh" > post-boot
echo "if [ -w /dev/usb/lp0 ]" >> post-boot
echo "cat /usr/local/sbin/sihp1018.dl>/dev/usb/lp0" >> post-boot
echo "fi" >> post-boot
echo "/usr/local/sbin/hotplug.sh">>/proc/sys/kernel/hotplug
11. Создаем файл pre-boot.
Пишем:
echo "#!/bin/sh" >> pre-boot
echo "# Printer" >> pre-boot
echo "/bin/echo "/usr/local/sbin/hotplug.sh >> /proc/sys/kernel/hotplug" >> pre-boot
12. Командой ls смотрим все ли у нас на месте. Должно быть 5 файлов: hotplug.sh, pre-boot, post-boot, sihp1018.dl, usb_printerid.
13. Делаем эти файлы исполняемыми: chmod +x /usr/local/sbin/*
14. Набираем команду ls и видим, что цвет названий всех 5 файлов теперь изменился.
15. В конце всех действий пишем:
flashfs save
flashfs commit
flashfs enable
reboot

Есть еще вариант редактирования используя VI, но это не для меня.
После выполнения этих действий принтер можно включать, выключать и снова включать - он будет определяться и работать. Никакие провода "передергивать" не нужно.

RuM
08-10-2008, 09:48
Сделал все как написано у Zenzelya
Из изменений заметил только статус "Printing" в веб-интерфейсе, принтер по прежнему молчит ((
WL500gP v2 + HP LJ 1018

Zenzelya
08-10-2008, 10:28
Сделал все как написано у Zenzelya
Из изменений заметил только статус "Printing" в веб-интерфейсе, принтер по прежнему молчит ((
WL500gP v2 + HP LJ 1018

Где-то ошиблись видимо. Проверьте еще раз. Сгрузите через веб-интерфейс (раздел Flashfs Management) файл содержимого flashfs и откройте архив. Внутри архива по пути \tmp\local\sbin\ посмотрите содержимое файлов hotplug.sh, pre-boot, post-boot.

В файле hotplug.sh должно быть:
1 строка: #!/bin/sh
2 строка: /usr/local/sbin/usb_printerid /dev/usb/lp0 | grep -q FWVER || cat /usr/local/sbin/sihp1018.dl > /dev/usb/lp0

В файле pre-boot должно быть:
1 строка: #!/bin/sh
2 строка: # Printer
3 строка: /bin/echo /usr/local/sbin/hotplug.sh >> /proc/sys/kernel/hotplug

В файле post-boot должно быть:
1 строка: #!/bin/sh
2 строка: if [ -w /dev/usb/lp0 ]
3 строка: cat /usr/local/sbin/sihp1018.dl>/dev/usb/lp0
4 строка: fi

А что касается статуса Printing, то на появление этой надписи Ваши действия с вышеуказанными файлами никак не влияет. Роутер способен отображать этот статус с рождения. Проверяйте файлы. Уверен, что где-то ошиблись.

RuM
08-10-2008, 13:04
Да, Вы были правы, спасибо большое
В описании в паре мест не хватает ">> pre-boot" и ">> hotplug.sh", а я на это не обратил внимания

Zenzelya
08-10-2008, 17:44
Да, Вы были правы, спасибо большое
В описании в паре мест не хватает ">> pre-boot" и ">> hotplug.sh", а я на это не обратил внимания

Запечатал принтер?

RuM
09-10-2008, 10:43
Запечатал принтер?
да, конечно, еще раз спасибо :D

helena_j
18-10-2008, 09:28
У меня принтер P1006. Соответственно, заменила файл sihp1018.dl на sihpP1006.dl. Все остальное делала так же, содержимое файлов проверила. Когда посылаю задание на печать, в диспетчере печати появляется задание с состоянием "Печать", секунд через 10 состояние сменяется на "Удаление", и через пару секунд задание пропадает. С принтером при этом ничего не происходит. :( Что делать?

al37919
18-10-2008, 10:39
что кажет
usb_printerid /dev/usb/lp0

При прямом подключении к ПК точно печатает --- т.е. с дровами все ok на 100%?

Если в драйвере принтера есть опция что то вроде двухстороннего обмена данными, то ее лучше выключить

В веб интерфейсе включена поддержака RAW (LPR можно выключить) и принтер настроен согласно http://oleg.wl500g.info/printing/ ?

helena_j
18-10-2008, 14:00
Спасибо за ответ. Все проверила, все равно не печатает

При прямом поключении к ПК печатает без проблем.
Настороено все, как в http://oleg.wl500g.info/printing/, стоит RAW (только он в установках принтера стоит, про какой веб-интерфейс идет речь? если асуса, то не вижу, где там это надо выбирать), в драйвере опции про двухстронний обмен не нашла.

Вот что мне на usb_printerid /dev/usb/lp0 отвечает:
Get_device_id string:
MFG:Hewlett-Packard;MDL:HP LaserJet P1006;CMD:HBS,PJL,ACL;CLS:PRINTER;DES:HP LaserJet P1006;FWVER:20080415

al37919
18-10-2008, 14:14
FWVER:20080415 --- это хорошо. Оно говорит о том, что прошивка в принтер загружена успешно.


про какой веб-интерфейс идет речь? если асуса, то не вижу, где там это надо выбирать)
У нас другого, по умолчанию, пока не завелось :) system setup --> services

helena_j
18-10-2008, 22:49
Вы уж простите мою недогадливость, но я никогда раньше ничем подобным не занималась, это мой первый опыт. Буду стараться. :)

Нашла, убрала. Все равно не печатает.

Кстати, у меня теперь сразу выдает в диспетчере печати, что "Ошибка - печать". Так сразу стало после того, как я принтер, как в той ссылке из предыдущего поста, установила. После попытки удаления пишет "Ошибка - Отправлен на принтер". После второго удаления - удаляет. Принтер же делает вид, что эго все это не касается. :(

al37919
19-10-2008, 15:37
что то у меня идеи иссякли. Firmware загружено => печатать должен. Проблема скорее всего на ПК. Попробуйте еще раз драйвер принтера поставить или TCP порт создать.

На всякий случай еще раз: в веб интерфейсе роутера system setup --> services RAW точно включен? Это же можно проверить коммандой ps. В списке процессов должен быть p9100d -f /dev/usb/lp0 0

Принтер подключен напрямую или через usb hub?

Zenzelya
30-10-2008, 15:43
У меня принтер P1006. Соответственно, заменила файл sihp1018.dl на sihpP1006.dl. Все остальное делала так же, содержимое файлов проверила. Когда посылаю задание на печать, в диспетчере печати появляется задание с состоянием "Печать", секунд через 10 состояние сменяется на "Удаление", и через пару секунд задание пропадает. С принтером при этом ничего не происходит. :( Что делать?

Давайте расставим все точки на Ё.
1. То, что где-то там показан статус "Печать" ровным счетом ничего не значит.
2. Как определить подгружается ли драйвер в момент включения принтера (но скажу сразу так реагирует HP1018, как другие принтеры реагируют я не знаю, но догадываюсь, что также): происходит как бы "двойная" инициализация. Простыми словами жужжит он дважды - пожужжал и успокоился и еще один раз также.
3. Проверили аттрибуты на файлах? (как сделать и как проверить в моем посте есть).
4. flashfs save
flashfs commit
flashfs enable
reboot
После всех операций с файлами эти комманды выполнили? Многие забывают.
5. Не поленитесь и проверьте все ли строчки присутствуют в файлах. Как сделать написано после первой моей инструкции.
6. Особое внимание уделите символам ">" и ">>" это важно! Могли просто пропустить.
7. Ну а самое главное проверьте, все ли файлы находятся на своем месте и по нужным путям.
8. И напоследок: версия прошивки роутера 1.9.2.7, а релиз прошивки 1.9.2.7-10. Так и у Вас?

Elik
11-11-2008, 16:04
доброго времени суток. имеются в наличии указанные роутер и принтер. всю нужную информацию изучил, написал скрипт с загрузкой драйвера в принтер, прописал в постмаунт и т.д. собственно, одно время все работало без проблем. но буквально на днях вдруг перестало. документ тупо висит в очереди на печать, а потом возвращает ошибку.

в логах после подключения принтера следующее:


Nov 11 18:12:04 kernel: hub.c: new USB device 01:03.2-1, assigned address 4
Nov 11 18:12:04 kernel: printer.c: usblp0: USB Bidirectional printer dev 4 if 0 alt 0 proto 2 vid 0x03F0 pid 0x2B17
Nov 11 18:12:04 kernel: printer.c: usblp0 Device ID string [99]='MFG:Hewlett-Packard;MDL:HP LaserJet 1020;CMD:ACL;CLS:PRINTER;DES:HP LaserJet 1020;FWVER:20041129;'
Nov 11 18:23:00 kernel: printer.c: usblp0 Device ID string [99/max 1552]='MFG:Hewlett-Packard;MDL:HP LaserJet 1020;CMD:ACL;CLS:PRINTER;DES:HP LaserJet 1020;FWVER:20041129;'
Nov 11 18:23:00 kernel: printer.c: Parsing USBLPID...

вроде ничего с роутером не делали. единственное, не могу гарантировать, что не было перебоев в питании. на принтере, опять же на днях, поменяли картридж (до замены работало все).

посоветуйте что-нибудь (желательно не сброс роутера на дефолт и настройку по новой)). уже мозг сломал себе весь.

Oldman06
08-04-2009, 08:32
Подключил к роутеру принтер HP LaserJet 1018. Сделал все как описано здесь, да уже и не в первый раз подключаю, но именно такой принтер первый раз. Не печатает вообще. В статусе роутера написано, что принтер подключен, но при отправке тестовой страницы с любого компа сети принтер не печатает. Задание из очереди исчезает, но принтер никак не реагирует. Где проверить, что посмотреть, почему не работает?

al37919
08-04-2009, 09:24
Проблема решается следующим образом: http://wl500g.info/showthread.php?t=4092

jurys
14-05-2009, 20:48
Проблема в драйверах принтера. Возможно в настройках принтера стоит отключить двунаправленный обмен.

Доброго времени суток, господа!

Имею точно такую-же проблемку. Мой НР D1560 (дешевенький струйник) не хочет допечатывать страницу до конца (буквально несколько строчек):mad:
При подключении того-же кабеля ЮСБ к компьютеру напрямую - все работает.
Само собой это: http://oleg.wl500g.info/printing/ выполнено, в итоге даже заменил прошивку: на http://code.google.com/p/wl500g/downloads/list, но ни с разрешенным двусторонним обменом данными, ни с запрещенным, правильно работать не хочет: останавливается в конце страницы и в очереди печати пишет ошибка.

Может кто-то сталкивался, буду признателен за помощь!!

lly
15-05-2009, 07:32
Проблема или в совместимости p910nd с виндой (во что я слабо верю, т.к. проекту уже несколько лет и давно бы нашли багу), или, как и написал Олег - в драйверах принтера.

Если это GDI принтер, то для исследования проблемы просто просниффить траффик будет недостаточно, придется как то получить еще эталон того, что должен получить принтер.

fizik
10-06-2009, 12:28
День добрый.
имеется wl500gP , hp1018
винда напрямую без роутера осуществляет двустороннюю печать, а по сети просто печатает подряд.
как эту печать можно наладить, ими это невозможно?

Zenzelya
18-06-2009, 23:09
Oldman06, fizik

Пост 24 этой темы посмотрите.
Все должно работать.
Сгрузите файл Flashfs и посмотрите все ли на месте. Посмотрите содержимое файлов - все ли строки есть.

Ennio
19-06-2009, 09:13
У меня еще дурнее вопрос...
Печать работает. Все ок. Но если печать остановилась, например из-за отсутствия бумаги, то как ее продолжить? Мне приходится выключать/включать принтер и запускать печать заново... неудобно.

al37919
19-06-2009, 19:16
а кнопки у него нет? у hplj1000 система такая же дурная --- помогает открытие-закрытие отсека с картриджем.

Ennio
22-06-2009, 06:45
Нет кнопки :(
За совет спасибо, попробую :)

serega19
01-07-2009, 13:17
У меня ASUS WL-520GU сейчас без проблем работает с принтером HP1018.
Ниже привожу подробную инструкцию как все сделать.
1. Скачиваете программу Putty.
2. Запускаете ее и сразу на первой вкладке в поле "Host Name or IP Addres" пишите сетевой адрес роутера.
3. Connection Type > Telnet
4. Нажимаете Open
5. Вводим логин и пароль для доступа к роутеру
6. Создаем директорию: mkdir /usr/local/sbin
7. Переходим в эту директорию: cd /usr/local/sbin
8. Копируем необходимые для принтера файлы в эту директорию:
wget http://oleg.wl500g.info/hplj/usb_printerid
wget http://oleg.wl500g.info/hplj/sihp1018.dl
9. Создаем файл hotplug.sh.
Для этого пишем:
echo "#!/bin/sh" > hotplug.sh
echo "/usr/local/sbin/usb_printerid /dev/usb/lp0 | grep -q FWVER || cat /usr/local/sbin/sihp1018.dl > /dev/usb/lp0" >> hotplug.sh
10. Создаем файл post-boot.
Пишем:
echo "#!/bin/sh" > post-boot
echo "if [ -w /dev/usb/lp0 ]" >> post-boot
echo "cat /usr/local/sbin/sihp1018.dl>/dev/usb/lp0" >> post-boot
echo "fi" >> post-boot
echo "/usr/local/sbin/hotplug.sh">>/proc/sys/kernel/hotplug
11. Создаем файл pre-boot.
Пишем:
echo "#!/bin/sh" >> pre-boot
echo "# Printer" >> pre-boot
echo "/bin/echo "/usr/local/sbin/hotplug.sh >> /proc/sys/kernel/hotplug" >> pre-boot
12. Командой ls смотрим все ли у нас на месте. Должно быть 5 файлов: hotplug.sh, pre-boot, post-boot, sihp1018.dl, usb_printerid.
13. Делаем эти файлы исполняемыми: chmod +x /usr/local/sbin/*
14. Набираем команду ls и видим, что цвет названий всех 5 файлов теперь изменился.
15. В конце всех действий пишем:
flashfs save
flashfs commit
flashfs enable
reboot

Есть еще вариант редактирования используя VI, но это не для меня.
После выполнения этих действий принтер можно включать, выключать и снова включать - он будет определяться и работать. Никакие провода "передергивать" не нужно.


сдесь ошибка ребята и кто неустановил 1018 у вас неполучиться пока неубирёте выделил сверху что я потратил 2 дня но нашол касяк всем спасибо иудачи а принтр пашит ништяк УРРРАААААААААА бухаем

avk
01-07-2009, 17:09
УРРРАААААААААА бухаем

Бухать – это не для Вас, похоже, что норма по буханию уже выполнена во время уроков русского языка и литературы.


сдесь ошибка ребята и кто не_установил 1018 у вас не_получиться пока не_убирёте выделил сверху что я потратил 2 дня но нашол касяк всем спасибо и_удачи а принт_р пашит...
Здесь море ошибок!


Здесь ошибка, ребята. И кто не_установил 1018, у вас не_получиться, пока не_уберёте, что я выделил сверху. Потратил 2 дня, но нашел косяк. Всем спасибо и_удачи, а принтер пашет...

boobo
03-07-2009, 04:28
Я конечно лолич в линуксе, но по-моему здесь ошибка:
echo "/bin/echo "/usr/local/sbin/hotplug.sh >> /proc/sys/kernel/hotplug" >> pre-boot
Правда я не знаю, как правильно, может так
echo "/bin/echo "/usr/local/sbin/hotplug.sh" >> /proc/sys/kernel/hotplug" >> pre-boot

al37919
05-07-2009, 12:56
Я конечно лолич в линуксе, но по-моему здесь ошибка:
echo "/bin/echo "/usr/local/sbin/hotplug.sh >> /proc/sys/kernel/hotplug" >> pre-boot
Правда я не знаю, как правильно, может так
echo "/bin/echo "/usr/local/sbin/hotplug.sh" >> /proc/sys/kernel/hotplug" >> pre-boot
Полагаю, такой вариант:

echo "/bin/echo /usr/local/sbin/hotplug.sh >> /proc/sys/kernel/hotplug" >> pre-boot
тоже должен работать. А еще лучше:

cat > /usr/local/sbin/pre-boot << __END
#!/bin/sh
# Printer
/bin/echo /usr/local/sbin/hotplug.sh >> /proc/sys/kernel/hotplug
__END
такая запись куда как лучше читается, чем все эти echo...

RCM
06-07-2009, 13:25
то нить настраивал hp 1022 на роутер 500gprem... тут для него нету нечего или может подойдет с hp 1020?

salamander
20-07-2009, 20:08
сдесь ошибка ребята и кто неустановил 1018 у вас неполучиться пока неубирёте выделил сверху что я потратил 2 дня но нашол касяк всем спасибо иудачи а принтр пашит ништяк УРРРАААААААААА бухаем

все здорово, только 1 но. ввиду моей непрогядной безграмотности объясните где разрешить заход на 520-й с путти, у меня ошибку выдает, что роутер отрубает соединение. стоит последняя прошивка с сайта асуса. если надо заменить - просьба написать ссылку.
для разрешения - напишите мануал плз:confused:

smi
20-07-2009, 23:27
все здорово, только 1 но. ввиду моей непрогядной безграмотности объясните где разрешить заход на 520-й с путти, у меня ошибку выдает, что роутер отрубает соединение. стоит последняя прошивка с сайта асуса. если надо заменить - просьба написать ссылку.
для разрешения - напишите мануал плз:confused:
1. Install a useful brain
2. Switch the brain state to on
3. Go to get information (http://wl500g.info/search.php)
4. Put the information to the brain
5. Use the result :D

salamander
21-07-2009, 07:31
1. Install a useful brain
2. Switch the brain state to on
3. Go to get information (http://wl500g.info/search.php)
4. Put the information to the brain
5. Use the result :D

если так сложно, то ответте только на 1 вопрос: причиной того, что я не могу подключиться к роутеру по телнету являеться прошивка от асуса и замена ее на олеговскую позволит подключиться?

AleksandrFrolov
09-09-2009, 23:20
Господа линуксоводы помогите!

Пишу все замечательно работает, но после выключение питания принтера приходится вводить все заново:

mkdir /usr/local/sbin

cd /usr/local/sbin

wget http://oleg.wl500g.info/hplj/usb_printerid
wget http://oleg.wl500g.info/hplj/sihp1018.dl
chmod +x usb_printerid
./usb_printerid /dev/usb/lp0 | grep -q FWVER || cat sihp1018.dl > /dev/usb/lp0


Дальше как? Как закончить что-бы не приходилось после перезагрузки принтера вбивать все заново?
Спасибо!

flibukerk
12-09-2009, 13:48
Связка Asus WL520GU + HP LaserJet 1018. Два компьютера, один с Windows XP на проводе, другой с Windows 7 по воздуху. После тыканья и двухдневного курения форума заставил работать. Работает и после перезагрузки роутера, и принтера, и даже и роутера и принтера. Итак, ноты для игры на бубне:


# Here is described how to make HP LaserJet 1018 print over Asus WL520GU router

# going to router
telnet 192.168.1.1

# logging in
admin
пароль

# making a dir
mkdir /usr/local/sbin

# change to that dir
cd /usr/local/sbin

# copy files from to flash
wget http://oleg.wl500g.info/hplj/usb_printerid
wget http://oleg.wl500g.info/hplj/sihp1018.dl

# make hotplug.sh file
echo "#!/bin/sh" > hotplug.sh
echo "/usr/local/sbin/usb_printerid /dev/usb/lp0 | grep -q FWVER || cat /usr/local/sbin/sihp1018.dl > /dev/usb/lp0" >> hotplug.sh
# this will load firmware every time printer is plugged in, and firmware is not present

# make post-boot script
echo "#!/bin/sh" > post-boot
echo "if [ -w /dev/usb/lp0 ]" >> post-boot
echo "cat /usr/local/sbin/sihp1018.dl>/dev/usb/lp0" >> post-boot
echo "fi" >> post-boot

# place hotplug.sh into hotplug
# this will take care of situation when printer was plugged in before powering router, and activate hotplug
echo "/usr/local/sbin/hotplug.sh" >> /proc/sys/kernel/hotplug

# make pre-boot file
echo "#!/bin/sh" >> pre-boot
echo "# Printer" >> pre-boot
echo "/bin/echo /usr/local/sbin/hotplug.sh >> /proc/sys/kernel/hotplug" >> pre-boot

# now make everything executable
chmod +x /usr/local/sbin/*

# save everything to flash and restart router
flashfs save
flashfs commit
flashfs enable
reboot

# and now install printer
1. Click Start, select Settings, click Printers.
2. Click Add printer. .
3. Wizard Window should appear - press Next
4. Select Local printer and remove check mark at "Automatically detect ...", press Next
5. Select "Create a new port option" and "Standard TCP/IP port" in the drop down list, press Next
6. New wizard window will appear, press Next
7. Type your wl520gu address in the IP address box, press Next
8. Select Custom option on the next screen, and press Settings
9. New "Configure standard ..." window will appear, and you will need to check the RAW option, if not already checked and change port number - specify 9101 for LPT printer or 9100 for USB one. Once completed press OK. Once this window is closed press Next in the Wizard window.
10. Add Standard TCP/IP Printer port finished, press Finish
11. Once you've completed port configuration Add Printer should appear and you will need to continue with regular printer setup procedure.

AleksandrFrolov
13-09-2009, 22:04
To flibukerk
СПАСИБО! Все получилось!

Это самая внятная, полная и понятная инструкция по настройке принтера! :rolleyes:

orel
26-09-2009, 14:20
Проблема такая - роутер принтер видит, вот лог:

Sep 26 17:03:12 kernel: printer.c: usblp0 Device ID string [84/max 1552]='MFG:Hewlett-Packard;MDL:HP LaserJet 1018;CMD:ACL;CLS:PRINTER;DES:HP LaserJet 1018;'
Sep 26 17:03:12 kernel: printer.c: Parsing USBLPID...

Настраивал по здешней инструкции:

http://oleg.wl500g.info/printing/

Windows Vista - печатать ни хочет ни в какую! В чём проблема?

vifr
22-10-2009, 09:36
для тех у кого нету внешнего винта:
Копируем файлы :
sihp1020.dl
usb_printerid
в директорию /usr/local/sbin
В ней же создаем hotplug.sh :

#!/bin/sh
PRN_BIN=/usr/local/sbin/usb_printerid
PRN_FRM=/usr/local/sbin/sihp1020.dl
if [ "$ACTION" = "add" ] || [ "$1" = "usb" ] || [ "$DEVFS" = "/proc/bus/usb" ]; then
sleep 5
$PRN_BIN /dev/usb/lp0 | grep -q FWVER || cat $PRN_FRM > /dev/usb/lp0
fi
killall hotplug.sh

В файл post-boot в самом конце добавляем :
# Printer
/bin/echo "/usr/local/sbin/hotplug.sh" >> /proc/sys/kernel/hotplug

Делаем
flashfs save
flashfs commit
flashfs enable
Вуаля. Все работает

Опишу свою проблему и метод ее решения :
У меня WL500gpv2 и HP1018 тоже не дружили сначала.
Сделал все как советовали на форуме - прошил роутер от Олега, прокинул файлы инициализации принтера на роутер - см. выше.
Но вот головняк, который я нигде более не встречал - принтер печатает хорошо, правильно, но не одну копию, а десятки!! не смотря на то, что я прошу распечатать 1 копию! Ломал голову долго, искал по форумам - но оказалось - не поверите - дело было в неправильном USB проводе, который я пользовал временно от сканера МФУ Epson (довольно уже старенького). Когда поменял на родной провод от HP1018 - все стало печатать правильно - столько копий сколько запрошу, и после перезагрузок роутера и принтера тоже без проблем! Спасибо форуму!

К сведению - на том USB проводе стоял такой "цилиндрик", не знаю как правильно его называют, который уменьшает типа помехи. Может кому пригодится моя история.

ppt_
29-10-2009, 09:10
Связка Asus WL520GU + HP LaserJet 1018. Два компьютера, один с Windows XP на проводе, другой с Windows 7 по воздуху. После тыканья и двухдневного курения форума заставил работать. Работает и после перезагрузки роутера, и принтера, и даже и роутера и принтера. Итак, ноты для игры на бубне:


Все здорово, только telnet'ом попасть не могу, пишет access deny (
Наверняка дело в какой нибудь банальной галке на роутере, искал , не нашел. Подскажите пожалуйста, кто сталкивался?
PS. Последнюю прошивку (WL520gu_0.0.0.13_EN) ставил.

Shevgen
06-02-2010, 07:58
Работают два роутера в связке hybrid, на том где operation mode стоит access point - хотел прикрутить Hp 1018, но после перезагрузки роутера файлы на флеше не сохраняются. На обоих прошивка 1.9.2.7-d-627-3g-wimax-mpcs. Делал по инструкция выше, естественно flashfs save && flashfs commit && flashfs enable. Help please.
flash commit пишет что слишком большой объем флеша требуется.
На dir-320 реально ли записать на флеш файлы с прошивкой принтера, или он у него меньше чем wl-500g и надо флешку ставить?

Basile
06-02-2010, 11:50
Shevgen, на DIR-320 слишком маленькая встроенная флэшка. Придется подключать обычную USB-флэшку (тут главный вопрос "как?" ;) Можно в локальной сети поднять ftp/http сервер, и при старте роутера скачивать нужный драйвер на DIR)

MrGalaxy
06-02-2010, 12:21
Настроил свой cp1215 по инструкции Олега через локальный порт ip.
Принтер печатал, но зацикливался - одно и то же задание печатал до тех пор, пока не выключишь питание принтера.
Ударил в этот бубен

Если в драйвере принтера есть опция что то вроде двухстороннего обмена данными, то ее лучше выключить
и всё заработало корректно.

А вообще зачем ставить дрова в роутер, что-то там дополнительно прописывать, если и так работает?

al37919
06-02-2010, 13:18
А вообще зачем ставить дрова в роутер, что-то там дополнительно прописывать, если и так работает?
вообще то, это тема не про cp1215, а про hp1018. Вот его Вы и попробуйте запустить без прошивки.

al37919
06-02-2010, 13:20
На dir-320 реально ли записать на флеш файлы с прошивкой принтера, или он у него меньше чем wl-500g и надо флешку ставить?
Реально, но для этого придется пересобрать прошивку под себя выкинув что-нибудь ненужное, чтобы освободить место под прошивку принтера.

gabarit
14-02-2010, 21:29
Может переписать скрипт так чтобы он выкачивал прошивку (http://oleg.wl500g.info/hplj/sihp1018.dl) с инета каждый раз при включении роутера и держал его в ОЗУ
Именно http://oleg.wl500g.info/hplj/sihp1018.dl весит 124 Кб и не помещается при попытке записи на флеш

Хотя сообщение:

[gabarit@(none) root]$ flashfs commit
/tmp/flash.tar.gz: File is too big (72426, max 65536)

странное. Свободно на флеше минус прошивка около 400 Кб
почему не помещается 72 Кб и почему 72 , а не больше 124-ёх
И почему максимум 64 Кб - это похоже скорее на какое-то ограничение, а не доступную память

Siddharta
15-03-2010, 08:03
Добрый день. Есть ASUS WL-500gPV2 и Hp1018 и потребность заставить всё это работать:)
Сделал следующее:

mkdir /usr/local/sbin

#change to that dir

cd /usr/local/sbin

#copy files from HDD to flash

cp /tmp/harddisk/part0/tmp/sihp1018.dl sihp1018.dl
cp /tmp/harddisk/part0/tmp/usb_printerid usb_printerid

#make hotplug.sh file

echo "#!/bin/sh" > hotplug.sh
echo "/usr/local/sbin/usb_printerid /dev/usb/lp0 | grep -q FWVER || cat /usr/local/sbin/sihp1018.dl > /dev/usb/lp0" >> hotplug.sh

#this will load firmware every time printer is plugged in, and firmware is not present
# make post-boot script

echo "#!/bin/sh" > post-boot
echo "if [ -w /dev/usb/lp0 ]" >> post-boot
echo "cat /usr/local/sbin/sihp1020.dl>/dev/usb/lp0" >> post-boot
echo "fi" >> post-boot
echo "/usr/local/sbin/hotplug.sh">>/proc/sys/kernel/hotplug

#this will take care of situation when printer was plugged in before powering router, and activate hotplug
# now make everything eXecutable

chmod +x /usr/local/sbin/*

#save everything to flash and restart router

flashfs save
flashfs commit
flashfs enable

после этого (и настройки в виндовс порта принтера) всё печатает, но только до перезагрузки роутера или принтера. После этого - ничего. Если выключить/включить принтер то тоже ничего. Но если через putty запустить на исполнение post-boot или hotplug.sh то всё опять работает.
В линуксе я полный чайник, но заставить всё работать очень надо. Подскажите куда копать и что делать?

vasab-i
10-06-2010, 15:35
Может кто писал подобный скрипт, поделитесь .

seadh
27-06-2010, 16:38
Принтер HP LaserJet P1006, роутер Dlink DIR-320 прошивка 1.9.2.7-d-r1612
Сделал hotplug.sh:
#!/bin/sh
PRN_BIN=/usr/local/sbin/usb_printerid
PRN_FRM=/usr/local/sbin/sihpP1006.dl
if [ "$ACTION" = "add" ] || [ "$1" = "usb" ] || [ "$DEVFS" = "/proc/bus/usb" ]; then
sleep 5
$PRN_BIN /dev/usb/lp0 | grep -q FWVER || cat $PRN_FRM > /dev/usb/lp0
fi
killall hotplug.sh

Файл sihpP1006.dl естественно великоват, как уже не раз подчеркивалось... Как тогда правильно задать переменную PRM_FRM? Прописать у нее путь на флешку? Типа PRN_FRM=/usr/tmp/harddisk/sihpP1006.dl ? Попробовал - не работает.
Или каким-то образом заранее подгружать прошивку в директорию /usr/local/sbin ?
Подгрузка драйвера напрямую cat sihpP1006.dl > /dev/usb/lp0 прекрасно срабатывет...
Как посмотреть, на каком этапе происходит затык?

Всё. Понял. Сам дурак. Делал хотплаг из-под винды в AkelPade, а он насовал своих левых символов в конце строк. Отредактировал через mc - заработало.
usb_printerid бросил в /usr/local/sbin благо он маленький, а PRN_FRM=/tmp/harddisk/sihpP1006.dl - вполне прокатило.
sihpP1006.dl теперь на флешке. Сделан исполняемым... Обязательно ли это?

Vityok
28-07-2010, 20:44
Достаточно много времени потратил на поиск рабочего решения с принтером HP LaserJet P1005. В процессе поиска понял, что тема актуальна для целого ряда принтеров этого производителя и не только, а именно Minolta/QMS magicolor 2300 DL, Minolta/QMS magicolor 2200 DL, Konica Minolta magicolor 2430 DL, Minolta Color PageWorks/Pro L, HP LaserJet P2035, HP LaserJet 1022, HP LaserJet 1020, HP LaserJet 1018, HP LaserJet 1005, HP LaserJet 1000, HP LaserJet M1319 MFP, LaserJet P1005, LaserJet P1006, LaserJet P1007, LaserJet P1008, laserJet P1505, HP LaserJet P1505/P2014, HP LaserJet M1005/M1120 MFP, HP Color LaserJet CP1215, HP Color LaserJet 1600/2600n, HP Color LaserJet 1500, HP Color LaserJet 2605dn, Konica Minolta magicolor 2480/2490 MF, Konica Minolta magicolor 2530 DL, Konica Minolta magicolor 1680MF/1690MF, Konica Minolta magicolor 1600W, Samsung CLP-300/310/315/600/610, Xerox Phaser 6110, Lexmark C500n, Oki C3100n/C3200n/C3300/C3400n, Oki C5100n/C5200n, Oki C5500n/C5600n/C5800n, Kyocera KM-1635/KM-2035, Minolta/QMS magicolor 2300W/2400W/2500W, Minolta/QMS PagePro 12xxW, Minolta/QMS PagePro 13xxW, Konica Minolta PagePro 14xxW и др.
Проблема принтера HP LaserJet P1005 (и перечисленнных полагаю тоже) состоит в том, что их прошивка не понимает ничего, кроме кода, генерируемого фирменным драйвером, установленным на машинке, с которой происходит печать, к которой должен быть подключен принтер. Лечится прочисткой мозгов альтернативной прошивкой, которая держится в принтере до выключения питания.

Предлагаемое решение честно взято и сведено из различных топиков на этом сайте, проверено на D-Link DIR-320 и Asus WL-500gP V1, прошитых девятым и десятым "Олегом" и отлавливает включение-выключение/передергивание USB-кабеля принтера.

1. Логинимся в шелл роутера
2. Переходим в директорию


cd /usr/local/sbin

3. Копируем необходимые для принтера файлы в эту директорию:


wget http://oleg.wl500g.info/hplj/usb_printerid
wget http://oleg.wl500g.info/hplj/*МОДЕЛЬ ВАШЕГО ПРИНТЕРА*.dl (точное имя файла/модели принтера можно найти на http://oleg.wl500g.info/hplj, для других производителей - искать драйвер на сайтах http://foo2zjs.rkkda.com и http://foo2xqx.rkkda.com)

4. В ней же создаем hotplug.sh :


#!/bin/sh
PRN_BIN=/usr/local/sbin/usb_printerid
PRN_FRM=/usr/local/sbin/*МОДЕЛЬ ВАШЕГО ПРИНТЕРА*.dl
if [ "$ACTION" = "add" ] || [ "$1" = "usb" ] || [ "$DEVFS" = "/proc/bus/usb" ]; then
sleep 5
$PRN_BIN /dev/usb/lp0 | grep -q FWVER || cat $PRN_FRM > /dev/usb/lp0
fi
killall hotplug.sh

5. В файл post-boot в самом НАЧАЛЕ после #!/bin/sh добавляем:


/bin/echo "/usr/local/sbin/hotplug.sh" >> /proc/sys/kernel/hotplug

6. Делаем эти файлы исполняемыми: chmod +x /usr/local/sbin/*
7. Набираем команду ls и видим, что цвет названий всех 5 файлов теперь изменился.
8. В конце всех действий пишем:


flashfs save && flashfs commit && flashfs enable && reboot


Все! После этого можно использовать принтер как сетевой.

Буду рад конструктивным замечаниям и предложениям.
Пожалуйста, выкладывайте готовые решения - ими будут пользоваться люди, а не гуру.
Слушайте, поставил, как тут напиасано, HP LJ 1020, принтер работает, спасибо, а вот юэсбишный жёсткий диск перестаёт монтироваться. Где косяк? Подскажите, пожалуйста. Очень надо, чтоб и диск, и принтер был. Роутер Asus WL-500gPV2, прошивка 1.9.2.7-d-r1612

Vityok
29-07-2010, 19:55
Всё, проблема решена добавлением строки
/bin/echo "/usr/local/sbin/hotplug.sh" >> /proc/sys/kernel/hotplug
не в post-boot, а в post-mount

Blitzkrieg
30-08-2010, 13:38
Спасибо огромное XIS.
Тоже с год назад пытался добиться чтобы работал hp 1000. Не хватило уопрства и знаний чтобы нащупать проблему.
Дело просто в том что p910nd может работать и в двунаправленном режиме, нужно его с ключем -b запустить попробовать. Эта программка перенаправляет все, что приходит на порт 9100 на /dev/usb/lp0.


p910nd is a small printer daemon intended for diskless workstations that does not spool to disk but passes the job directly to the printer. Normally a lpr daemon on a spooling host connects to it with a TCP connection on port 910n (where n=0, 1, or 2 for lp0, 1 and 2 respectively).


The -b option turns on bidirectional copying.


82 admin 652 S p9100d -f /dev/usb/lp0 0


p910nd Version 0.93 Copyright (c) 2008 Ken Yap, GPLv2
Usage: p910nd [-f device] [-i bindaddr] [-bv] [0|1|2]


tcp 0 0 0.0.0.0:9100 0.0.0.0:* LISTEN



Естественно что при установленном двунаправленном режиме в настройках драйвера работать ничего не будет.
Вобщем либо ключ -b либо снять галку. Первый вариант сегодня проверю и доложу о результатах.

Blitzkrieg
30-08-2010, 18:29
Попробовал запускать p910nd с ключем -b, не работает.
Итак, полный список действий.

1. Устанавливаем принтер как описано тут http://wl500g.dyndns.org/printing/
!!! ОБЯЗАТЕЛЬНО !!! Заходим в свойства принтера и на вкладке ПОРТЫ снимаем галочку с РАЗРЕШИТЬ ДВУСТОРОННИЙ ОБМЕН ДАННЫМИ.
2.

cd /opt/printer
wget http://oleg.wl500g.info/hplj/usb_printerid
wget http://oleg.wl500g.info/hplj/sihp1000.dl
chmod +x usb_printerid
/opt/printer/usb_printerid /dev/usb/lp0 | grep -q FWVER || cat /opt/printer/sihp1000.dl > /dev/usb/lp0
После этой команды принтер должен замигать лампочками и пошуршать приводом.
Далее можно пользоваться принтером.


Автоматическая загрузка sihp1000.dl в принтер:



[blitzkrieg@ROUTER root]$ cat /usr/local/sbin/post-mount
#!/bin/sh

echo "/opt/usr/hotplug/hotplug.sh" >> /proc/sys/kernel/hotplug

if [ -w /dev/usb/lp0 ]; then
/opt/printer/usb_printerid /dev/usb/lp0 | grep -q FWVER || cat /opt/printer/sihp1000.dl>/dev/usb/lp0
fi



[blitzkrieg@ROUTER root]$ cat /opt/usr/hotplug/hotplug.sh
#!/bin/sh
/opt/printer/usb_printerid /dev/usb/lp0 | grep -q FWVER || cat /opt/printer/sihp1000.dl > /dev/usb/lp0

Думал думал, должен ли роутер считать после своей загрузки уже подключенный принтер не прошитый хотплаг устройством или нет, практика показала что он таковым его не считает. Поэтому в post-mount написано еще это:

if [ -w /dev/usb/lp0 ]; then
/opt/printer/usb_printerid /dev/usb/lp0 | grep -q FWVER || cat /opt/printer/sihp1000.dl>/dev/usb/lp0
fi

Проверка показала, что при загрузке роутера если он обнаруживает подключенный принтер, то выполняется именно эта часть.

Еще раз огромное спасибо топик стартеру.

maloy20051
19-09-2010, 20:08
Добрый вечер.

Столкнулся с проблемой, что после перезагрузки роутера "слетают" настройки печати.

в логах пишется, что джоб успешно финишед, но при этом не печатает.

asus wl500gp v2
прошивка последняя от энтузиастов.
причём в процессе установки я сделал 2 бекапа (обеих частей) до первого подключения принтера и после ..

так вот если отрубить роутер и потом просто включить - не печатает.
если аплоаднуть бекап снятый с "подключенным принтером" - не работает
если подтянуть бекап до первого подключения печаталки и потом воткнуть юсб шнурок с принтером - печатает.

Теперь собсна вопросы:

1. сталкивался ли кто то с подобной сложностью и есть ли готовое решение данного вопроса ?

2. Если я правильно понял - то конфиг "подключенного устройства" хранится в неком файлике\файликах которые надо бы каким то образом поставить на самоперезаписывание при загрузке (или нечто в этом духе) ? Что это за файлики ? :)

При этом настройки принтера на рабочих станциях я не менял, принтеры установлены по инструкции олега. (это я к тому, что трабл не на раб. станциях)

Заранее благодарен.

Зы: если захотите логов укажите плз. каких именно, с ошибкой, без ошибки и т.д.

AlekseyA
22-09-2010, 12:11
Помогите советом.
Настроил принтер по первому посту, все работает.
При этом в Логе вот такое (две одинаковые строчки):
Sep 22 13:10:32 kernel: /dev/scsi/host0/bus0/target0/lun0: p1 p2 p3
Sep 22 13:10:33 kernel: hub.c: new USB device 01:03.2-2, assigned address 3
Sep 22 13:10:33 kernel: printer.c: usblp0: USB Bidirectional printer dev 3 if 0 alt 0 proto 2 vid 0x03F0 pid 0x4117
Sep 22 13:10:33 kernel: printer.c: usblp0 Device ID string [84]='MFG:Hewlett-Packard;MDL:HP LaserJet 1018;CMD:ACL;CLS:PRINTER;DES:HP LaserJet 1018;'
Sep 22 13:10:33 kernel: printer.c: usblp0 Device ID string [84]='MFG:Hewlett-Packard;MDL:HP LaserJet 1018;CMD:ACL;CLS:PRINTER;DES:HP LaserJet 1018;'
Sep 22 13:10:33 pppd[137]: System time change detected.

Но, как и в посте 12 (http://www.wl500g.info/showpost.php?p=156067&postcount=12): Если роутер загружается с уже подключенным принтером, то прошивку он в него не заливает, если принтер включить позже или просто вытащить вставить USB, то все нормально.
Решил сделать, как советовал al37919: скрипт для подгрузки/выгрузки драйвера. (http://www.wl500g.info/showpost.php?p=152552&postcount=11) Делал все по этому посту и получил совсем не похожий результат:
[root@Router sbin]$ cat /tmp/hotplug.log
---------------
Срд Сен 22 14:43:41 MSD 2010
ARGV=
HOME='/usr/local/root'
IFS='
'
LANG='ru_RU.UTF-8'
LC_ALL='ru_RU.UTF-8'
LOGNAME='root'
OLDPWD='/tmp/local/root'
PATH='/opt/sbin:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
PPID='947'
PS1='[\u@\h \W]$ '
PS2='> '
PS4='+ '
PWD='/usr/local/sbin'
SHELL='/bin/sh'
TERM='xterm'
TERMINFO='/opt/share/terminfo'
USER='root'


Скорее всего при чистки форума предыдущие посты были удалены и что вних содержалось, теперь покрыто мраком.

Если верить Логу, может я конечно не прав, PRODUCTID="3f0/4117/100"
Создал новый hotplug.sh с этим PRODUCTID, но принтер больше печатать не хочет, хотя в WEB-морде в статусе значится.

P.S.: Да, на счет строки

/bin/echo "/usr/local/sbin/hotplug.sh" >> /proc/sys/kernel/hotplug
как правильно указал Vityok (http://www.wl500g.info/showpost.php?p=205275&postcount=60) надо записывать не в post-boot, а в post-mount. Проверял и как советует al37919 в /usr/local/sbin/pre-boot, не монтируется внешний диск.

pvag@mail.ru
23-09-2010, 15:18
Всё, проблема решена добавлением строки
/bin/echo "/usr/local/sbin/hotplug.sh" >> /proc/sys/kernel/hotplug
не в post-boot, а в post-mount

сделал все, а он,зараза, не печатает вот лог:
18:13:26 23-09-2010 (info|kern|kernel) usb 1-2: new high speed USB device using ehci_hcd and address 4
18:13:26 23-09-2010 (info|kern|kernel) usb 1-2: configuration #1 chosen from 1 choice
18:13:26 23-09-2010 (info|kern|kernel) usblp0: USB Bidirectional printer dev 4 if 0 alt 0 proto 2 vid 0x03F0 pid 0x2B17
18:13:26 23-09-2010 (info|kern|kernel) drivers/usb/class/usblp.c: usblp0 Device ID string [84]=\'MFG:Hewlett-Packard;MDL:HP LaserJet 1020;CMD:ACL;CLS:PRINTER;DES:HP LaserJet 1020;\'
18:13:37 23-09-2010 (notice|lpr|p9100d) p9100d[270]: Connection from ::ffff:192.168.1.194 port 52051 accepted
18:13:37 23-09-2010 (notice|lpr|p9100d) p9100d[270]: Finished job: 43988 bytes received
18:13:37 23-09-2010 (err|lpr|p9100d) p9100d[270]: copy_stream: Connection reset by peer

makanmel
14-10-2010, 20:18
Добрый день. Есть ASUS WL-500gPV2 и Hp1018 и потребность заставить всё это работать:)
Сделал следующее:

У меня принтер OKI B2200, DIR-320 прошитый прошивкой 1.9.2.7-d-r2174M
Пробовал LPR и RAW, lp1 и lp0, 9100 и 9101 - ничего не помогает - принтер молчит.

Oct 14 21:44:14 kernel: hub.c: new USB device 00:03.0-1, assigned address 6
Oct 14 21:44:14 kernel: printer.c: usblp0: USB Bidirectional printer dev 6 if 0 alt 0 proto 2 vid 0x06BC pid 0x00F5
Oct 14 21:44:14 kernel: printer.c: usblp0 Device ID string [101]='MANUFACTURER:OKI DATA CORP;COMMAND SET:PJL,PCL,SDL;MODEL:B2200;CLASS:PRINTER;DESCRIPT ION:OKI B2200;'

Интересно, поможет ли мне ваше решение? Если да, этот код вводить? HDD - имеется в виду подключенный к роутеру?

sunny_smiley
31-10-2010, 09:53
а как использовать эти фиксы? как их нужно ставить?

sagitt
03-11-2010, 17:59
Доброго времени суток. Столкнулся вот с какой проблемой: подключаю принтер hp1018 по инструкции Zenzelya (пост №24), всё прекрасно, всё работает, но вот какая штука, после установки принтера не монтируются автоматом ни одна флешка. То есть fdisk -l я устройство вижу, а по df -h оно ни куда не смонтировано. Заремарил #/bin/echo /usr/local/sbin/hotplug.sh >> /proc/sys/kernel/hotplug в pre-boot флешка отлично монтируется. Что не так делаю или как поправить?

al37919
04-11-2010, 11:23
Доброго времени суток. Столкнулся вот с какой проблемой: подключаю принтер hp1018 по инструкции Zenzelya (пост №24), всё прекрасно, всё работает, но вот какая штука, после установки принтера не монтируются автоматом ни одна флешка. То есть fdisk -l я устройство вижу, а по df -h оно ни куда не смонтировано. Заремарил #/bin/echo /usr/local/sbin/hotplug.sh >> /proc/sys/kernel/hotplug в pre-boot флешка отлично монтируется. Что не так делаю или как поправить?
а если добавить строку /sbin/hotplug в конец /usr/local/sbin/hotplug.sh ?

sagitt
04-11-2010, 19:35
а если добавить строку /sbin/hotplug в конец /usr/local/sbin/hotplug.sh ?

не понял, какую именно строку?

al37919
05-11-2010, 15:48
не понял, какую именно строку?

/sbin/hotplug
это вызов того, что стандартно вызывалось до нашей подмены.

sagitt
06-11-2010, 14:37
/sbin/hotplug
это вызов того, что стандартно вызывалось до нашей подмены.

В файле hotplug.sh должно быть:
1 строка: #!/bin/sh
2 строка: /usr/local/sbin/usb_printerid /dev/usb/lp0 | grep -q FWVER || cat /usr/local/sbin/sihp1018.dl > /dev/usb/lp0
3 строка: /sbin/hotplug
вот так?
сделал, не помогает...
какие ещё мысли?

sagitt
11-11-2010, 20:17
Потеря потерь. Как же всё таки заставить работать их вместе?

dbirukov
17-11-2010, 16:41
Добрый вечер
У меня такая же проблема с принтером HP P1006, перегрузил принтер иничего больше не печатается.
Все настройки роутера Asus 500gP v2 сделал как у Вас написано, на telnet воообще не заходит.
И все настройки описанные, для меня как дремучии лес.
Огромноя просьба, Вы не могли бы расписать подробно как что сделать и куда нажать.
Заранее огромное спасибо

P.S.
И еще одна просьба, Вы не могли бы расписать подробно как внешний жесткий диск подввесить.
Еще раз Огромное спасибо!!!

Knight_Rider
04-12-2010, 15:45
Являюсь счастливым обладателем роутера WL-500gP, принтера HP LaserJet 1018 и внешнего HDD, которые должны работать в связке. На форуме существует много топиков, в которых обсуждается автоматическое подключение этих "нехороших" принтеров. Все они похожи друг на друга и все работают... Но у всех есть побочный эффект, перестают работать все USB устройства, кроме принтера, что есть не очень удобно. Ниже я в очередной раз приведу инструкцию по загрузке драйверов и установке скрипта, в котором работает определение всех USB устройств совместно с работой принтера.

Пример будет рассмотрен на базе того что у меня было, т.е. LaserJet 1018. В местах, где есть разлиия я буду сообщать.

Ну, преступим:

1. Заходим на роутер через TelNet или SSH.
2. Если еще не создана папка /usr/local/sbin, то создаем командой

mkdir /usr/local/sbin
3. Переходим в этот каталог

cd /usr/local/sbin
4. Загружаем файлы, необходимые для работы принтера

wget http://oleg.wl500g.info/hplj/usb_printerid
wget http://oleg.wl500g.info/hplj/sihp1018.dl
!Здесь надо уделить внимание строке wget http://oleg.wl500g.info/hplj/sihp1018.dl. Если у вас принтер не 1018, то ЗДЕСЬ (http://oleg.wl500g.info/hplj/) ищем прошивку под свой HP и подставляете свою ссылку. Если у вас не HP, то придется искать прошивку самим.
5. Создаем файл со скриптом

echo "#!/bin/sh" > hotplug.sh
echo "" >> hotplug.sh
echo "# set -x" >> hotplug.sh
echo "" >> hotplug.sh
echo "PRN_BIN=/usr/local/sbin/usb_printerid" >> hotplug.sh
echo "PRN_FRM=/usr/local/sbin/sihp1018.dl" >> hotplug.sh
echo "PRN_ID=3f0/4117/100" >> hotplug.sh
echo "if [ \$veros = 2.6 ] ; then" >> hotplug.sh
echo " PRN_DEV=/dev/lp0" >> hotplug.sh
echo "else" >> hotplug.sh
echo " PRN_DEV=/dev/usb/lp0" >> hotplug.sh
echo "fi" >> hotplug.sh
echo "PRN_NAME=\"HP LaserJet 1018\"" >> hotplug.sh
echo "" >> hotplug.sh
echo "logger -t hotplug \"Request for \$ACTION device \$PRODUCT at \$* interface\"" >> hotplug.sh
echo "" >> hotplug.sh
echo "if [ \"\$ACTION\" = \"add\" ] && [ \"\$*\" = \"usb\" ] && [ \"\$DEVFS\" = \"/proc/bus/usb\" ] && [ \"\$PRODUCT\" = \$PRN_ID ]; then" >> hotplug.sh
echo " logger -t hotplug \"Device is \$PRN_NAME Printer\"" >> hotplug.sh
echo " while test ! -e \$PNT_DEV; do" >> hotplug.sh
echo " logger -t hotplug \"Waiting for printer respond\"" >> hotplug.sh
echo " sleep 1" >> hotplug.sh
echo " done" >> hotplug.sh
echo " sleep 2" >> hotplug.sh
echo " logger -t hotplug \"Loading firmware to printer\"" >> hotplug.sh
echo " \$PRN_BIN \$PRN_DEV | grep -q FWVER || cat \$PRN_FRM > \$PRN_DEV" >> hotplug.sh
echo " if [ \"\$?\" -eq 0 ] ; then" >> hotplug.sh
echo " logger -t hotplug \"Loading Successful\"" >> hotplug.sh
echo " else" >> hotplug.sh
echo " logger -t hotplug \"Loading Failed\"" >> hotplug.sh
echo " fi" >> hotplug.sh
echo "fi" >> hotplug.sh
echo "/sbin/hotplug \$*" >> hotplug.sh
!Здесь стоит обратить внимание на строки:

echo "PRN_FRM=/usr/local/sbin/sihp1018.dl" >> hotplug.sh
echo "PRN_ID=3f0/4117/100" >> hotplug.sh
echo "PRN_NAME=\"HP LaserJet 1018\"" >> hotplug.sh
Привожу описание по строкам:
5.1. Путь к прошивке принтера. Необходимо заменить sihp1018.dl на имя вашей прошивки.
5.2. Device ID вашего принтера.
5.3. Строка, которая будет подсталяться в syslog в качестве имени принтера.

6. Делаем автозапуск скрипта.
Создаем/обновляем файл pre-boot:
Если файл еще не существует, то

echo "#!/bin/sh" > pre-boot
Для всех

echo "/bin/echo \"/usr/local/sbin/hotplug.sh\" > /proc/sys/kernel/hotplug" >> pre-boot

7. Делаем файлы исполняемыми

chmod +x /usr/local/sbin/*

8. Сохраняем изменения

flashfs save && flashfs commit && flashfs enable && reboot

На этом настройка роутера закончена. После перезапуска роутер будет готов для работы с принтером и другой перефирией.

ЗДЕСЬ (http://wl500g.info/showpost.php?p=219965&postcount=104) представлен универсальный скрипт, потдерживающий все модели LaserJet. Все что от Вас требуется - это скачать файл прошивки и положить в нужный каталог.

MrGalaxy
06-12-2010, 17:22
Настроил HP P1006 на печать. Всё завелось сразу, без танцев с бубном под балалайку.:)
Авторам методики большое спасибо и респект!

Однако, есть вопрос: писал кто-н. скрипт автоопределения модели принтера и подгрузки в зависимости от модели нужного драйвера?

И ещё: при подключении-отключении принтера в логах, кроме даты и сообщения о подключении, выводится какая-то фигня и как при подключении, так и при отключении, сообщения в логах "Printer OnLine":

...
---------------
Thu Jan 1 03:01:26 MSK 1970
usb
ACTION='add'
DEVFS='/proc/bus/usb'
DEVICE='/proc/bus/usb/001/003'
HOME='/'
IFS='
'
INTERFACE='7/1/2'
LOG='/tmp/syslog.log'
PATH='/sbin:/bin:/usr/sbin:/usr/bin'
PPID='2'
PRN_BIN='/usr/local/hplj/usb_printerid'
PRN_FRM='/usr/local/hplj/sihpP1006.dl'
PRODUCT='3f0/3e17/100'
PS1='\w \$ '
PS2='> '
PS4='+ '
PWD='/'
TYPE='0/0/0'
Printer OnLine
Jan 1 03:02:13 kernel: usb.c: USB disconnect on device 00:03.0-1 address 3
Jan 1 03:02:13 kernel: printer.c: usblp0: removed
---------------
Thu Jan 1 03:02:13 MSK 1970
usb
ACTION='remove'
DEVFS='/proc/bus/usb'
DEVICE='/proc/bus/usb/001/003'
HOME='/'
IFS='
'
INTERFACE='7/1/2'
LOG='/tmp/syslog.log'
PATH='/sbin:/bin:/usr/sbin:/usr/bin'
PPID='2'
PRN_BIN='/usr/local/hplj/usb_printerid'
PRN_FRM='/usr/local/hplj/sihpP1006.dl'
PRODUCT='3f0/3e17/100'
PS1='\w \$ '
PS2='> '
PS4='+ '
PWD='/'
TYPE='0/0/0'
Printer OnLine
Jan 1 03:02:58 kernel: hub.c: new USB device 00:03.0-1, assigned address 4
Jan 1 03:02:58 kernel: printer.c: usblp0: USB Bidirectional printer dev 4 if 0 alt 0 proto 2 vid 0x03F0 pid 0x3E17
Jan 1 03:02:58 kernel: printer.c: usblp0 Device ID string [86]='MFG:Hewlett-Packard;MDL:HP LaserJet P1006;CMD:ACL;CLS:PRINTER;DES:HP LaserJet P1006;'
..., хотя в веб-морде статус отображается нормально: OnLine и OffLine.

Knight_Rider
08-12-2010, 17:46
Однако, есть вопрос: писал кто-н. скрипт автоопределения модели принтера и подгрузки в зависимости от модели нужного драйвера?
В принципе это возможно, ну а какой в этом смысл?
Пока искал рабочий метод для подулючения, такого скрипта не обнаружил.

sagitt
09-12-2010, 19:45
Knight_Rider, огромное спасибо! Всё как НАДО!

MrGalaxy
10-12-2010, 16:12
В принципе это возможно, ну а какой в этом смысл?
Смысл - не прописывать новый драйвер в скрипте подгрузки при смене модели принтера. В принципе, это недолго, но уж очень неэстетично.:)
Ладно, будет время, сам напишу.


А такой вопрос: никто не пробовал подключать несколько принтеров через хаб? Как в этом случае надо поступать?

Knight_Rider
10-12-2010, 16:45
Смысл - не прописывать новый драйвер в скрипте подгрузки при смене модели принтера. В принципе, это недолго, но уж очень неэстетично.:)
Ладно, будет время, сам напишу.


А такой вопрос: никто не пробовал подключать несколько принтеров через хаб? Как в этом случае надо поступать?

Да, но при этом тебе необходимо хранить все прошивки во flashfs - это раз.
У тебя очень много HostBased принтеров? это два.
Для написания этого скрипта необходимо знать ID всех этих устройств - это три

MrGalaxy
10-12-2010, 18:07
Да, но при этом тебе необходимо хранить все прошивки во flashfs - это раз.
У тебя очень много HostBased принтеров? это два.
Для написания этого скрипта необходимо знать ID всех этих устройств - это три

Не прошивки.Драйвера надо хранить. Так я их и так все сохранил туда.
HostBased - слово-то какое страшное,впервые слышу.:D Чур меня!
Ну знать не обязательно, они все прописываются в nvram по одинаковому принципу, так что мысли на этот счёт у меня есть.Просто заняться лениво.:)

И тыкать не надо.

Knight_Rider
10-12-2010, 18:49
Не прошивки.Драйвера надо хранить. Так я их и так все сохранил туда.
HostBased - слово-то какое страшное,впервые слышу.:D Чур меня!
Ну знать не обязательно, они все прописываются в nvram по одинаковому принципу, так что мысли на этот счёт у меня есть.Просто заняться лениво.:)

И тыкать не надо.

За "тыканье" извените.
Разве в данном контексте драйвер и прошивка не одно и то же?
Что касается Host-Based, нахватался разных словечек при изучении этой проблемы. По сути при подключении принтера происходит загрузка прошивки в сам принтер, так как он ее хранит только во время сеанса. Собственно в этом то и заключалась проблема неработоспособности этих принтеров с роутером, да и линуксом в целом.
Если где ошибаюсь, поправьте.

al37919
10-12-2010, 18:58
все же это прошивка (firmware), а не драйвер (driver).
да и термин host-based употреблен вполне в кассу, уж даже не возьмусь перевести его ни на великий, ни на могучий.

MrGalaxy
10-12-2010, 19:22
Разве в данном контексте драйвер и прошивка не одно и то же?
Что касается Host-Based, нахватался разных словечек при изучении этой проблемы. По сути при подключении принтера происходит загрузка прошивки в сам принтер, так как он ее хранит только во время сеанса. Собственно в этом то и заключалась проблема неработоспособности этих принтеров с роутером, да и линуксом в целом.
Если где ошибаюсь, поправьте.К сожалению, так глубоко, как Вы, я не копал. Спасибо за информацию. Я всегда считал, что прошивка любого устройства хранится в его флеше и загружается в ОЗУ этого же устройства сразу после включения питания. Теперь буду знать, что бывают принтеры без прошивок.
Похоже, что так и есть. Зашёл на сайт HP. Для моего CP1215, которому ничего подгружать дополнительно не требуется, лежит микропрограмма, а для P1005 и P1006 - нет.

А мысли по поводу анализа модели подключённого принтера такие:

nvram get printer_model_t
и далее с помощью sed вычленить подстроку-название принтера.
Или записать с десяток операторов типа

nvram get printer_model_t | grep <модель принтера>
и, если строка не пустая, то подгружать соответствующий драйвер.

Knight_Rider
10-12-2010, 19:38
К сожалению, так глубоко, как Вы, я не копал. Спасибо за информацию. Я всегда считал, что прошивка любого устройства хранится в его флеше и загружается в ОЗУ этого же устройства сразу после включения питания. Теперь буду знать, что бывают принтеры без прошивок.
Похоже, что так и есть. Зашёл на сайт HP. Для моего CP1215, которому ничего подгружать дополнительно не требуется, есть обновление микропрограммы, а для P1005 и P1006 - нет.

А мысли по поводу анализа модели подключённого принтера такие:

nvram get printer_model_t
и далее с помощью sed вычленить подстроку-название принтера.
Или записать с десяток операторов типа

nvram get printer_model_t | grep <модель принтера>
и, если строка не пустая, то подгружать соответствующий драйвер.

Когда Вы сказали про nvram я про нечто такое и подумал только маленький нюанс. На моем LaserJet 1018 nvram get printer_model_t возвращает пустую строку.
Раз уж на то пошло, то надежнее будет проверять

/usr/local/sbin/usb_printerid /dev/usb/lp0 | grep -q <MODEL>
К примеру мой 1018 через usb_printerid выдает

GET_DEVICE_ID string:
MFG:Hewlett-Packard;MDL:HP LaserJet 1018;CMD:ACL;CLS:PRINTER;DES:HP LaserJet 1018;FWVER:20051028;

P.S. Слегка модифицировал мой скрипт в пользу универсальности. заменил

PRN_DEV=/dev/usb/lp0
на

if [ $veros = 2.6 ] ; then
PRN_DEV=/dev/lp0
else
PRN_DEV=/dev/usb/lp0
fi
Теперь скрипт работает адекватно как на старом, так и на новом ядрах

MrGalaxy
10-12-2010, 20:01
Сейчас под рукой нет P1006, он у меня на работе, но мне как-то удавалось выдрать из nvram сведения о подключении и о названии принтера. В понедельник попробую пошаманить с этим делом и по результатам отпишусь.

Knight_Rider,
если в веб-морде Вашего роутера во вкладке Статус есть название принтера, то попробуйте сделать

nvram show | grep 1018
должно вылезти название переменной nvram.

Knight_Rider
10-12-2010, 20:21
Сейчас под рукой нет P1006, он у меня на работе, но мне как-то удавалось выдрать из nvram сведения о подключении и о названии принтера. В понедельник попробую пошаманить с этим делом и по результатам отпишусь.

Knight_Rider,
если в веб-морде Вашего роутера во вкладке Статус есть название принтера, то попробуйте сделать

nvram show | grep 1018
должно вылезти название переменной nvram.
Беру слова обратно. По непонятным причинам начал получать модель из nvram. Решил разобраться в феномене. Заключение:
nvram get printer_model_t возвращает модель принтера только в том случае, если была просмотрена страница старистики с подключеным принтером. После отключения принтера, инфа о нем хранится до следующего входа через морду.
Вывод:
Описаный Вами способ не является рабочим, т.к. предоставляет недостоверную информацию о подключенном принтере.
Я все же склонен к варианту с Device ID. хочу покапать inf файл с драйвером, может в нем есть все Device ID.

al37919
10-12-2010, 21:45
PRN_ID=3f0/4117/100
именно это идентифицирует подключенное устройство.
vid=3f0 (HP)
pid=4117 (конкретная модель)
100 --- версия внутренней прошивки

Knight_Rider
11-12-2010, 11:18
именно это идентифицирует подключенное устройство.
vid=3f0 (HP)
pid=4117 (конкретная модель)
100 --- версия внутренней прошивки

Ну это я знаю. Просто решил их поискать в ini файлах с драйверами
вот что нашел


LaserJet 1000
USB\VID_03F0&PID_0517

LaserJet 1005
USB\VID_03F0&PID_1317

[Setup.HP LaserJet 1018]
USBPrint = Hewlett-PackardHP_LASERJET_1018
USBHardwareID = VID_03F0&PID_4117
USBSubclassID = VID_03F0&PID_4117&MI_00
PrimaryDriver = HP LaserJet 1018

[Setup.HP LaserJet 1020]
USBPrint = Hewlett-PackardHP_LASERJET_1020
USBHardwareID = VID_03F0&PID_2B17
USBSubclassID = VID_03F0&PID_2B17&MI_00
PrimaryDriver = HP LaserJet 1020

[Setup.HP LaserJet 1022]
NetworkPort = 1
USBPrint = Hewlett-PackardHP_LASERJET_1022
USBHardwareID = VID_03F0&PID_2C17
USBSubclassID = VID_03F0&PID_2C17&MI_00
PrimaryDriver = HP LaserJet 1022

[Setup.HP LaserJet 1022n]
NetworkPort = 1
USBPrint = Hewlett-PackardHP_LASERJET_1022N
USBHardwareID = VID_03F0&PID_2D17
USBSubclassID = VID_03F0&PID_2D17&MI_00
PrimaryDriver = HP LaserJet 1022n

[Setup.HP LaserJet 1022nw]
NetworkPort = 1
USBPrint = Hewlett-PackardHP_LASERJET_1022NW
USBHardwareID = VID_03F0&PID_3017
USBSubclassID = VID_03F0&PID_3017&MI_00
PrimaryDriver = HP LaserJet 1022nw

[Setup.HP LaserJet P1005]
USBPrint = Hewlett-PackardHP_LASERJET_P1005
USBHardwareID = VID_03F0&PID_3D17
USBSubclassID = VID_03F0&PID_3D17&MI_01
PrimaryDriver = HP LaserJet P1005

[Setup.HP LaserJet P1007]
USBPrint = Hewlett-PackardHP_LASERJET_P1007
USBHardwareID = VID_03F0&PID_4817
USBSubclassID = VID_03F0&PID_4817&MI_01
PrimaryDriver = HP LaserJet P1007

[Setup.HP LaserJet P1008]
USBPrint = Hewlett-PackardHP_LASERJET_P1008
USBHardwareID = VID_03F0&PID_4917
USBSubclassID = VID_03F0&PID_4917&MI_01
PrimaryDriver = HP LaserJet P1008

[Setup.HP LaserJet P1006]
USBPrint = Hewlett-PackardHP_LASERJET_P1006
USBHardwareID = VID_03F0&PID_3E17
USBSubclassID = VID_03F0&PID_3E17&MI_01
PrimaryDriver = HP LaserJet P1006

[Setup.HP LaserJet P1505]
USBPrint = Hewlett-PackardHP_LASERJET_P1505
USBHardwareID = VID_03F0&PID_3F17
USBSubclassID = VID_03F0&PID_3F17&MI_01
PrimaryDriver = HP LaserJet P1505

[Setup.HP LaserJet P1505n]
USBPrint = Hewlett-PackardHP_LASERJET_P1505n
USBHardwareID = VID_03F0&PID_4017
USBSubclassID = VID_03F0&PID_4017&MI_01
PrimaryDriver = HP LaserJet P1505n

Теперь можно мутить универсальный загрузчик:D

Knight_Rider
11-12-2010, 15:15
Вот состряпал скрипт

#!/bin/sh

# set -x

LJ_1000=3f0/517/100
LJ_1005=3f0/1317/100
LJ_1018=3f0/4117/100
LJ_1020=3f0/2b17/100
LJ_1022=3f0/2c17/100
LJ_1022n=3f0/2d17/100
LJ_1022nw=3f0/3017/100
LJ_P1005=3f0/3d17/100
LJ_P1006=3f0/3e17/100
LJ_P1007=3f0/4817/100
LJ_P1008=3f0/4917/100
LJ_P1505=3f0/3f17/100
LJ_P1505n=3f0/4017/100

FRM_CAT=/usr/local/sbin/
PRN_BIN=usb_printerid
PRN_ID=ffff/ffff/ffff

case $PRODUCT in
$LJ_1000)
PRN_FRM=sihp1000.dl
PRN_ID=$LJ_1000
PRN_NAME="HP LaserJet 1000"
;;
$LJ_1005)
PRN_FRM=sihp1005.dl
PRN_ID=$LJ_1005
PRN_NAME="HP LaserJet 1005"
;;
$LJ_1018)
PRN_FRM=sihp1018.dl
PRN_ID=$LJ_1018
PRN_NAME="HP LaserJet 1018"
;;
$LJ_1020)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1020
PRN_NAME="HP LaserJet 1020"
;;
$LJ_1022)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1020
PRN_NAME="HP LaserJet 1022"
;;
$LJ_1022n)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1022n
PRN_NAME="HP LaserJet 1022n"
;;
$LJ_1022nw)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1022nw
PRN_NAME="HP LaserJet 1022nw"
;;
$LJ_P1005)
PRN_FRM=sihpP1005.dl
PRN_ID=$LJ_P1005
PRN_NAME="HP LaserJet P1005"
;;
$LJ_P1006)
PRN_FRM=sihpP1006.dl
PRN_ID=$LJ_P1006
PRN_NAME="HP LaserJet P1006"
;;
$LJ_P1007)
PRN_FRM=sihpP1007.dl
PRN_ID=$LJ_P1007
PRN_NAME="HP LaserJet P1007"
;;
$LJ_P1008)
PRN_FRM=sihpP1008.dl
PRN_ID=$LJ_P1008
PRN_NAME="HP LaserJet P1008"
;;
$LJ_P1505)
PRN_FRM=sihpP1505.dl
PRN_ID=$LJ_P1505
PRN_NAME="HP LaserJet P1505"
;;
$LJ_P1505n)
PRN_FRM=sihpP1505.dl
PRN_ID=$LJ_P1505n
PRN_NAME="HP LaserJet P1505n"
;;
esac

if [ $veros = 2.6 ] ; then
PRN_DEV=/dev/lp0
else
PRN_DEV=/dev/usb/lp0
fi

logger -t hotplug "Request for $ACTION device $PRODUCT at $* interface"

if [ "$ACTION" = "add" ] && [ "$*" = "usb" ] && [ "$DEVFS" = "/proc/bus/usb" ] && [ "$PRODUCT" = $PRN_ID ]; then
logger -t hotplug "Device is $PRN_NAME Printer"
while test ! -e $PNT_DEV; do
logger -t hotplug "Waiting for printer respond"
sleep 1
done
sleep 2
logger -t hotplug "Loading firmware to printer"
$FRM_CAT$PRN_BIN $PRN_DEV | grep -q FWVER || cat $FRM_CAT$PRN_FRM > $PRN_DEV
if [ "$?" -eq 0 ] ; then
logger -t hotplug "Loading Successful"
else
logger -t hotplug "Loading Failed"
fi
fi
/sbin/hotplug $*
Теперь путь к папке с прошивками и usb_printerid записан в переменную FRM_CAT. Не уверен по поводу 3-го прпаметра в DeviceID, тестируйте.
Жду отзывов.

MrGalaxy
13-12-2010, 18:12
nvram get printer_model_t возвращает модель принтера только в том случае, если была просмотрена страница старистики с подключеным принтером. После отключения принтера, инфа о нем хранится до следующего входа через морду.Подтверждаю. Сегодня на работе проверил. Видимо, глюк прошивки. Попробую Ваш скрипт.

Knight_Rider
13-12-2010, 18:16
Подтверждаю. Сегодня на работе проверил. Видимо, глюк прошивки. Попробую Ваш скрипт.

Если скрипт не заработает, то просьба посмотрите сообщения от hotplug в системном логе. Предварительно перед подключением принтера его лучше очистить, дабы избавиться от ненужной инфы.

MrGalaxy
14-12-2010, 17:57
Попробовал Ваш скрипт. В принципе, работает. Убрал пару ошибок, выкинул последний оператор как лишний и немного адаптировал скрипт под себя: указал свой каталог, убрал оператор logger, который у меня никогда почему-то не работал.

Почему-то принтер P1006, который у нас в отделе, при подключении давал параметры 3f0/3e17/100, поэтому я 101 для этой модели заменил на 100.

Кроме того, после отключения принтера скрипт продолжал висеть в процессах и давать сообщения об ожидании подключения. Я это дело убрал, добавив ещё одну проверку. Сейчас скрипт работает корректно, несмотря на некоторую кургузость моих изменений. Ну да работает - и ладно. Может, в дальнейшем, я это отшлифую или найдётся энтузиаст, который за это дело возьмётся.

Вот и сам скрипт:

#!/bin/sh

HOTPLUG_SH_LOG=/tmp/syslog.log

echo "hotplug: hotplug.sh started" >> $HOTPLUG_SH_LOG

LJ_1000=3f0/517/100
LJ_1005=3f0/1317/100
LJ_1018=3f0/4117/100
LJ_1020=3f0/2b17/100
LJ_1022=3f0/2c17/100
LJ_1022n=3f0/2d17/100
LJ_1022nw=3f0/3017/100
LJ_P1005=3f0/3d17/101
LJ_P1006=3f0/3e17/100
LJ_P1007=3f0/4817/101
LJ_P1008=3f0/4917/101
LJ_P1505=3f0/3f17/101
LJ_P1505n=3f0/4017/101

FRM_CAT=/usr/local/hplj/
PRN_BIN=usb_printerid
PRN_ID=ffff/ffff/ffff

case $PRODUCT in
$LJ_1000)
PRN_FRM=sihp1000.dl
PRN_ID=$LJ_1000
PRN_NAME="HP LaserJet 1000"
;;
$LJ_1005)
PRN_FRM=sihp1005.dl
PRN_ID=$LJ_1005
PRN_NAME="HP LaserJet 1005"
;;
$LJ_1018)
PRN_FRM=sihp1018.dl
PRN_ID=$LJ_1018
PRN_NAME="HP LaserJet 1018"
;;
$LJ_1020)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1020
PRN_NAME="HP LaserJet 1020"
;;
$LJ_1022)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1020
PRN_NAME="HP LaserJet 1022"
;;
$LJ_1022n)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1022n
PRN_NAME="HP LaserJet 1022n"
;;
$LJ_1022nw)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1022nw
PRN_NAME="HP LaserJet 1022nw"
;;
$LJ_P1005)
PRN_FRM=sihpP1005.dl
PRN_ID=$LJ_P1005
PRN_NAME="HP LaserJet P1005"
;;
$LJ_P1006)
PRN_FRM=sihpP1006.dl
PRN_ID=$LJ_P1006
PRN_NAME="HP LaserJet P1006"
;;
$LJ_P1007)
PRN_FRM=sihpP1007.dl
PRN_ID=$LJ_P1007
PRN_NAME="HP LaserJet P1007"
;;
$LJ_P1008)
PRN_FRM=sihpP1008.dl
PRN_ID=$LJ_P1008
PRN_NAME="HP LaserJet P1008"
;;
$LJ_P1505)
PRN_FRM=sihpP1505.dl
PRN_ID=$LJ_P1505
PRN_NAME="HP LaserJet P1505"
;;
$LJ_P1505n)
PRN_FRM=sihpP1505.dl
PRN_ID=$LJ_P1505n
PRN_NAME="HP LaserJet P1505n"
;;
esac

if [ $veros = 2.6 ] ;
then PRN_DEV=/dev/lp0
else PRN_DEV=/dev/usb/lp0
fi

echo "hotplug: Request for $ACTION device $PRODUCT at $* interface" >> $HOTPLUG_SH_LOG

if [ "$ACTION" != "remove" ] ;
then
if [ "$ACTION" = "add" ] || [ "$*" = "usb" ] || [ "$DEVFS" = "/proc/bus/usb" ] || [ "$PRODUCT" = $PRN_ID ];
then
echo "hotplug: Device is $PRN_NAME Printer" >> $HOTPLUG_SH_LOG

while test ! -e $PRN_DEV; do
echo "hotplug: Waiting for printer response" >> $HOTPLUG_SH_LOG
sleep 1s
done
echo "hotplug: Loading firmware to printer" >> $HOTPLUG_SH_LOG

$FRM_CAT$PRN_BIN $PRN_DEV | grep -q FWVER || cat $FRM_CAT$PRN_FRM > $PRN_DEV
sleep 1s

if [ "$?" -eq 0 ] ;
then echo "hotplug: Loading Successful" >> $HOTPLUG_SH_LOG
else echo "hotplug: Loading Failed" >> $HOTPLUG_SH_LOG
fi
fi
fi

echo "hotplug: hotplug.sh ended" >> $HOTPLUG_SH_LOG
Пара вопросов, если позволите:
1) в качестве ликбеза: где почитать про переменную veros и её использование? Я гуглил, но всё без толку;
2) возможно ли одновременное подключение нескольких принтеров через хаб и, если да, то каким образом?

Knight_Rider
14-12-2010, 18:34
выкинул последний оператор как лишний
Ну он вовсе не лишний. Без него не будут подключаться другие USB устройства.


Почему-то принтер P1006, который у нас в отделе, при подключении давал параметры 3f0/3e17/100, поэтому я 101 для этой модели заменил на 100.
Ну ети числа я брал, основываясь на интуиции. Помнится Вы говорили что у вас есть P1005. Какой ID он выдал?


1) в качестве ликбеза: где почитать про переменную veros и её использование? Я гуглил, но всё без толку;
Ну этого незнаю, высмотрел в каком-то из скриптов. Поидее определяется самим ядром.


2) возможно ли одновременное подключение нескольких принтеров через хаб и, если да, то каким образом?
Я в линуксе не силен. Надо проверять практикой. Поидее 2 принтера подключить можно. Легко проверить наличие 2х принтеров зайдя в папку "/dev/usb/" Если возможно, то будут два устройства.lp
Другой вопрос, как все это разрулит дравер принтера. Скорее всего придется ставить самбу с потдержкой принтеров. Но это уже другой вопрос.

MrGalaxy
14-12-2010, 19:00
Ну он вовсе не лишний. Без него не будут подключаться другие USB устройства.Понятно, тогда придётся оставить.:)


Ну ети числа я брал, основываясь на интуиции. Помнится Вы говорили что у вас есть P1005. Какой ID он выдал?У меня дома CP1215, а в конторе P1006. P1005-го нет. Есть в соседнем отделе какой-то ещё, но сейчас не до этого, чтобы с ним возиться.

Knight_Rider
14-12-2010, 19:04
Ясно. я склонен к тому, что в остальных моделях тоже надо 101 заменить на 100.
Google подтвердил мои опасения.
Есть мысля прикрутить в скрипт загрузку прошивки из http://oleg.wl500g.info/hplj/ , если она небыл найден в папке с прошивками. Но я сомневаюсь в его целесообразности.

MrGalaxy
15-12-2010, 04:51
Есть мысля прикрутить в скрипт загрузку прошивки из http://oleg.wl500g.info/hplj/ , если она небыл найден в папке с прошивками. Но я сомневаюсь в его целесообразности.
Это - на любителя, т.к. Интернет есть не везде, а, если даже и есть, то не всегда работает. Да и папка эта давно не пополняется. Пополнится - можно добавить в скрипт и скачать новый драйвер.

al37919
15-12-2010, 06:54
уберите вообще третий параметр. Это версия внутренней прошивки, теоретически он может изменяться со временем. Оставьте только проверку vid и pid


2) возможно ли одновременное подключение нескольких принтеров через хаб и, если да, то каким образом?
Для подключения второго принтера следует запустить еще одну копию p910nd на порту 9101 или 9102. Всего поддерживается до трех принтеров. Здесь http://www.wl500g.info/showpost.php?p=80189&postcount=7 предлагался скрипт как два принтера разруливать по портам

MrGalaxy
16-12-2010, 10:32
Выкладываю "допиленный" скрипт. Пришлось повозиться с проверкой подключённого принтера безотносительно к версии прошивки. Вроде, на первый взгляд, несложно, но геморрой ещё тот!
Убрал лишние проверки, исправил ещё одну ошибку, вернул оператор logger, который почему-то на сей раз стал у меня работать. Ну, и навёл некоторую косметику.

#!/bin/sh

logger -t hotplug "================================================== ==="
logger -t hotplug hotplug.sh started

LJ_1000=3f0/517
LJ_1005=3f0/1317
LJ_1018=3f0/4117
LJ_1020=3f0/2b17
LJ_1022=3f0/2c17
LJ_1022n=3f0/2d17
LJ_1022nw=3f0/3017
LJ_P1005=3f0/3d17
LJ_P1006=3f0/3e17
LJ_P1007=3f0/4817
LJ_P1008=3f0/4917
LJ_P1505=3f0/3f17
LJ_P1505n=3f0/4017

FRM_CAT=/usr/local/hplj/
PRN_BIN=usb_printerid

case `expr substr $PRODUCT 1 \`expr \\\`expr length $PRODUCT\\\` - 4\`` in

$LJ_1000)
PRN_FRM=sihp1000.dl
PRN_ID=$LJ_1000
PRN_NAME="HP LaserJet 1000"
;;

$LJ_1005)
PRN_FRM=sihp1005.dl
PRN_ID=$LJ_1005
PRN_NAME="HP LaserJet 1005"
;;

$LJ_1018)
PRN_FRM=sihp1018.dl
PRN_ID=$LJ_1018
PRN_NAME="HP LaserJet 1018"
;;

$LJ_1020)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1020
PRN_NAME="HP LaserJet 1020"
;;

$LJ_1022)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1020
PRN_NAME="HP LaserJet 1022"
;;

$LJ_1022n)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1022n
PRN_NAME="HP LaserJet 1022n"
;;

$LJ_1022nw)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1022nw
PRN_NAME="HP LaserJet 1022nw"
;;

$LJ_P1005)
PRN_FRM=sihpP1005.dl
PRN_ID=$LJ_P1005
PRN_NAME="HP LaserJet P1005"
;;

$LJ_P1006)
PRN_FRM=sihpP1006.dl
PRN_ID=$LJ_P1006
PRN_NAME="HP LaserJet P1006"
;;

$LJ_P1007)
PRN_FRM=sihpP1007.dl
PRN_ID=$LJ_P1007
PRN_NAME="HP LaserJet P1007"
;;

$LJ_P1008)
PRN_FRM=sihpP1008.dl
PRN_ID=$LJ_P1008
PRN_NAME="HP LaserJet P1008"
;;

$LJ_P1505)
PRN_FRM=sihpP1505.dl
PRN_ID=$LJ_P1505
PRN_NAME="HP LaserJet P1505"
;;

$LJ_P1505n)
PRN_FRM=sihpP1505.dl
PRN_ID=$LJ_P1505n
PRN_NAME="HP LaserJet P1505n"
;;

*)
PRN_FRM=''
PRN_ID=fff/ffff
PRN_NAME="unknown"
;;

esac

if [ $veros = 2.6 ] ;
then PRN_DEV=/dev/lp0
else PRN_DEV=/dev/usb/lp0
fi

logger -t hotplug Request for $ACTION device $PRODUCT at $* interface

if [ $ACTION = "add" ] && [ $PRN_ID != "fff/ffff" ]
then
logger -t hotplug Device is $PRN_NAME

while test ! -e $PRN_DEV; do
logger -t hotplug Waiting for printer response
sleep 1s
done

logger -t hotplug Loading firmware to printer

$FRM_CAT$PRN_BIN $PRN_DEV | grep -q "$PRN_NAME" && cat $FRM_CAT$PRN_FRM > $PRN_DEV
RET_CODE=$?
sleep 1s

if [ $RET_CODE -eq 0 ]
then logger -t hotplug "Loading successful! :)"
else logger -t hotplug "Loading failed! :("
fi
fi

logger -t hotplug hotplug.sh ended
logger -t hotplug "************************************************** ***"

Knight_Rider
16-12-2010, 10:48
MrGalaxy, все отлично, вот только Вы забыли добавить в конец скрипта

/sbin/hotplug $*
P.S. Думаю теперь этот скрипт можно добавлять в FAQ

MrGalaxy
16-12-2010, 12:32
MrGalaxy, все отлично, вот только Вы забыли добавить в конец скрипта

/sbin/hotplug $*
P.S. Думаю теперь этот скрипт можно добавлять в FAQ
Да, забыл вставить.:)

al37919
16-12-2010, 14:55
Пришлось повозиться с проверкой подключённого принтера безотносительно к версии прошивки. Вроде, на первый взгляд, несложно, но геморрой ещё тот!
советую эту проверку заменить на что-то вроде:

echo $PRODUCT | awk -F/ '{print $1 "/" $2}'
поскольку привязка к длине поля не сильно универсальна...

Knight_Rider
16-12-2010, 16:43
советую эту проверку заменить на что-то вроде:

echo $PRODUCT | awk -F/ '{print $1 "/" $2}'
поскольку привязка к длине поля не сильно универсальна...

Подставил этот код и вывел $PRODUCT, он не изменился.
$PRODUCT менять не желательно, т.к. потом эти данные идут к hotplug.

al37919
16-12-2010, 18:55
это предлагается использовать вместо следующего достаточно мутного кода:

expr substr $PRODUCT 1 \`expr \\\`expr length $PRODUCT\\\` - 4\`
для формирования строки для проверки. $PRODUCT меняться не должен.

Knight_Rider
16-12-2010, 19:06
это предлагается использовать вместо следующего достаточно мутного кодаКак я понял этот код должен брать значение из $PRODUCT преобразовывать из 3f0/1317/100 в 3f0/1317 и записывать обратно в $PRODUCT.
вот что у меня получилось

Dec 16 21:06:21 hotplug: PRODUCT before 3f0/4117/100 echo
Dec 16 21:06:21 hotplug: PRODUCT after 3f0/4117/100 echo
UPD:
Точнее она должна возвращать укороченный вариант. Только вот ничего не происходит

al37919
16-12-2010, 19:20
неправильно. Берем $PRODUCT и преобразуем его в строку для сравнения с $LJ_1000 etc. Контроль:

echo '3f0/517/100' | awk -F/ '{print $1 "/" $2}'
в общем, посмотите, что такое case

Knight_Rider
16-12-2010, 19:58
неправильно. Берем $PRODUCT и преобразуем его в строку для сравнения с $LJ_1000 etc. Контроль:

echo '3f0/517/100' | awk -F/ '{print $1 "/" $2}'
в общем, посмотите, что такое case

Что такое case я знаю, я его в этот скрипт и вкрутил.
Покалупал Вашу команду, разобрался. Надо было использовать

echo "$PRODUCT" | awk -F/ '{print $1 "/" $2}'>$PRODUCT
но когда я подставляю этот код в case, то получаю ошибку:

./hotplug.sh: line 23: syntax error: unexpected word (expecting "in")
попробовал убрать echo, получил

./hotplug.sh: line 23: syntax error: unexpected "|" (expecting "in")
Как можно выводимый функцией результат вывести в файл?

MrGalaxy
16-12-2010, 20:12
...
Покалупал Вашу команду, разобрался. Надо было использовать

echo "$PRODUCT" | awk -F/ '{print $1 "/" $2}'>$PRODUCT
но когда я подставляю этот код в case, то получаю ошибку:...
Зачем Вы так упорно пытаетесь записать новое значение в переменную PRODUCT?
Вот так надо:

case `echo $PRODUCT | awk -F/ '{print $1 "/" $2}'` in
Далее по тексту.

Knight_Rider
16-12-2010, 20:36
Зачем Вы так упорно пытаетесь записать новое значение в переменную PRODUCT?
Вот так надо:

case `echo $PRODUCT | awk -F/ '{print $1 "/" $2}'` in
Далее по тексту.

Я не пытался записать в PRODUCT, вот с такими вот косыми апострофами все отлично заработало. Спасибо Вам за совет. Итоговый скрипт будет иметь вид:

#!/bin/sh

LJ_1000=3f0/517
LJ_1005=3f0/1317
LJ_1018=3f0/4117
LJ_1020=3f0/2b17
LJ_1022=3f0/2c17
LJ_1022n=3f0/2d17
LJ_1022nw=3f0/3017
LJ_P1005=3f0/3d17
LJ_P1006=3f0/3e17
LJ_P1007=3f0/4817
LJ_P1008=3f0/4917
LJ_P1505=3f0/3f17
LJ_P1505n=3f0/4017

FRM_CAT=/usr/local/sbin/
PRN_BIN=usb_printerid

case `echo $PRODUCT | awk -F/ '{print $1 "/" $2}'` in
$LJ_1000)
PRN_FRM=sihp1000.dl
PRN_ID=$LJ_1000
PRN_NAME="HP LaserJet 1000"
;;
$LJ_1005)
PRN_FRM=sihp1005.dl
PRN_ID=$LJ_1005
PRN_NAME="HP LaserJet 1005"
;;
$LJ_1018)
PRN_FRM=sihp1018.dl
PRN_ID=$LJ_1018
PRN_NAME="HP LaserJet 1018"
;;
$LJ_1020)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1020
PRN_NAME="HP LaserJet 1020"
;;
$LJ_1022)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1020
PRN_NAME="HP LaserJet 1022"
;;
$LJ_1022n)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1022n
PRN_NAME="HP LaserJet 1022n"
;;
$LJ_1022nw)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1022nw
PRN_NAME="HP LaserJet 1022nw"
;;
$LJ_P1005)
PRN_FRM=sihpP1005.dl
PRN_ID=$LJ_P1005
PRN_NAME="HP LaserJet P1005"
;;
$LJ_P1006)
PRN_FRM=sihpP1006.dl
PRN_ID=$LJ_P1006
PRN_NAME="HP LaserJet P1006"
;;
$LJ_P1007)
PRN_FRM=sihpP1007.dl
PRN_ID=$LJ_P1007
PRN_NAME="HP LaserJet P1007"
;;
$LJ_P1008)
PRN_FRM=sihpP1008.dl
PRN_ID=$LJ_P1008
PRN_NAME="HP LaserJet P1008"
;;
$LJ_P1505)
PRN_FRM=sihpP1505.dl
PRN_ID=$LJ_P1505
PRN_NAME="HP LaserJet P1505"
;;
$LJ_P1505n)
PRN_FRM=sihpP1505.dl
PRN_ID=$LJ_P1505n
PRN_NAME="HP LaserJet P1505n"
;;
*)
PRN_FRM=''
PRN_ID=ffff/ffff
PRN_NAME="unknown"
;;
esac

if [ $veros = 2.6 ] ;
then PRN_DEV=/dev/lp0
else PRN_DEV=/dev/usb/lp0
fi

logger -t hotplug "Request for $ACTION device $PRODUCT at $* interface"

if [ "$ACTION" = "add" ] && [ "$*" = "usb" ] && [ "$DEVFS" = "/proc/bus/usb" ] && [ "$PRN_ID" != "ffff/ffff" ]; then
logger -t hotplug "Device is $PRN_NAME Printer"
while test ! -e $PNT_DEV; do
logger -t hotplug "Waiting for printer respond"
sleep 1s
done

logger -t hotplug "Loading firmware to printer"
$FRM_CAT$PRN_BIN $PRN_DEV | grep -q FWVER || cat $FRM_CAT$PRN_FRM > $PRN_DEV
RET_CODE=$?
sleep 1s

if [ $RET_CODE -eq 0 ] ;
then logger -t hotplug "Loading Successful"
else logger -t hotplug "Loading Failed"
fi
fi
/sbin/hotplug $*

Вот теперь бы замутить скрипт, который перезапускает печать в случае ошибки. Это вообще возможно реализовать?

MrGalaxy
17-12-2010, 03:22
Какой смысл в этом

$FRM_CAT$PRN_BIN $PRN_DEV | grep -q FWVER операторе?

При каких условиях результат выполнения

/.../usb_printerid /dev/usb/lp0будет содержать строку FWVER?

al37919
17-12-2010, 06:28
когда прошивка загружена

AlekseyA
20-12-2010, 06:20
Спасибо за подробную инструкцию!
Но похоже главная проблема не решена:
Если настройки вести при включенном принтере и после перезагрузить роутер, принтер отлично работает.
НО, если позже принтер выключить и включить больше он печатать не будет, до перезагрузки роутера.
Вот такая шняга.:(

MrGalaxy
20-12-2010, 09:36
Спасибо за подробную инструкцию!
Но похоже главная проблема не решена:
Если настройки вести при включенном принтере и после перезагрузить роутер, принтер отлично работает.
НО, если позже принтер выключить и включить больше он печатать не будет, до перезагрузки роутера.
Вот такая шняга.:(
С P1006 такого не замечено. Выключал-включал принтер многократно при включенном роутере - печатает нормально, без сбоев. В логах каждый раз - успешная загрузка firmware.

AlekseyA
20-12-2010, 10:27
После перезагрузки с включенным принтером и последующем выключением и включением принтера:

Dec 19 20:51:30 p9100d[101]: /dev/usb/lp0: No such file or directory, will try opening later
Dec 19 20:51:30 kernel: hub.c: new USB device 01:03.2-3, assigned address 3
Dec 19 20:51:30 kernel: printer.c: usblp0: USB Bidirectional printer dev 3 if 0 alt 0 proto 2 vid 0x03F0 pid 0x4117
Dec 19 20:51:30 kernel: printer.c: usblp0 Device ID string [99]='MFG:Hewlett-Packard;MDL:HP LaserJet 1018;CMD:ACL;CLS:PRINTER;DES:HP LaserJet 1018;FWVER:20051028;'
Dec 19 20:51:30 kernel: printer.c: usblp0 Device ID string [99]='MFG:Hewlett-Packard;MDL:HP LaserJet 1018;CMD:ACL;CLS:PRINTER;DES:HP LaserJet 1018;FWVER:20051028;'
Dec 19 20:51:30 hotplug: Request for add device 3f0/4117/100 at usb interface
Dec 19 20:51:30 hotplug: Device is HP LaserJet 1018 Printer
20:51:50 19-12-2010 (err|lpr|p9100d) p9100d[101]: copy_stream: Connection refused
20:53:31 19-12-2010 (notice|lpr|p9100d) p9100d[101]: Connection from 192.168.1.180 port 2455 accepted
20:53:31 19-12-2010 (notice|lpr|p9100d) p9100d[101]: Finished job: 12802 bytes received
20:53:31 19-12-2010 (err|lpr|p9100d) p9100d[101]: copy_stream: Connection reset by peer
20:55:49 19-12-2010 (info|kern|kernel) usb.c: USB disconnect on device 01:03.2-3 address 3
20:55:49 19-12-2010 (info|kern|kernel) printer.c: usblp0: removed
20:55:50 19-12-2010 (notice|user|hotplug) hotplug: Request for remove device 3f0/4117/100 at usb interface
20:57:16 19-12-2010 (notice|lpr|p9100d) p9100d[101]: Connection from 192.168.1.180 port 2765 accepted
20:57:16 19-12-2010 (err|lpr|p9100d) p9100d[101]: /dev/usb/lp0: No such file or directory, will try opening later
20:57:26 19-12-2010 (err|lpr|p9100d) p9100d[101]: /dev/usb/lp0: No such file or directory, will try opening later
20:57:46 19-12-2010 (err|lpr|p9100d) p9100d[101]: /dev/usb/lp0: No such file or directory, will try opening later
20:58:26 19-12-2010 (err|lpr|p9100d) p9100d[101]: /dev/usb/lp0: No such file or directory, will try opening later
20:59:46 19-12-2010 (err|lpr|p9100d) p9100d[101]: /dev/usb/lp0: No such file or directory, will try opening later


Весь лог забит этим:

10:38:26 20-12-2010 (err|lpr|p9100d) p9100d[101]: /dev/usb/lp0: No such file or directory, will try opening later
10:43:46 20-12-2010 (err|lpr|p9100d) p9100d[101]: /dev/usb/lp0: No such file or directory, will try opening later
10:49:06 20-12-2010 (err|lpr|p9100d) p9100d[101]: /dev/usb/lp0: No such file or directory, will try opening later

Knight_Rider
20-12-2010, 14:28
После перезагрузки с включенным принтером и последующем выключением и включением принтера
Судя по логу, проблема с самим драйвером. Какой у Вас роутер, какая прошивка, какой именно скрипт использовали?
Какой собственно у Вас кабель? У меня была похожая картина, когда я подключал принтер несовместимым кабелем. только мне выдавал, что не может прочесть статус. Вы в курсе о проблеме с совместимостью USB кабеля и принтера?

P.S. У самого LJ1018, таких проблем не замечено. Прошивка от энтузиастов r2425.

MrGalaxy
20-12-2010, 14:50
Knight_Rider
Роутер и прошивка указана в подписи.

AlekseyA
Принтер, вроде, определяется. А что за скрипт используете?

Knight_Rider
20-12-2010, 17:17
Knight_Rider
Роутер и прошивка указана в подписи.
Вот блин, как-то нет привычки подписи читать
AlekseyA
Как по мне версия прошивки уж сильно устарела, попробуйте обновиться

AlekseyA
20-12-2010, 18:26
Скрипт с 5 страницы этой ветки, не думаю чтобы прошивка на это повлияла, но попробую обновить.
Кабель стандартный, 1.5 метра, черный какой-то.

Knight_Rider
20-12-2010, 18:33
Скрипт с 5 страницы этой ветки, не думаю чтобы прошивка на это повлияла, но попробую обновить.
Кабель стандартный, 1.5 метра, черный какой-то.

Ну на 5й странице только этот (http://wl500g.info/showpost.php?p=218824&postcount=70) скрипт. Я его опробовал начиная с r23xx. Обновляйтесь, если не поможет, то будем думать дальше. У меня сейчас стоит вот ЭТА (ftp://core.dumped.ru/wl/2425/) прошивка

AlekseyA
20-12-2010, 18:42
Именно этот скрипт.
Сейчас еще раз попробывал, включил принтер, в логах:

21:38:13 20-12-2010 (info|kern|kernel) hub.c: new USB device 01:03.2-3, assigned address 3
21:38:14 20-12-2010 (info|kern|kernel) printer.c: usblp0: USB Bidirectional printer dev 3 if 0 alt 0 proto 2 vid 0x03F0 pid 0x4117
21:38:14 20-12-2010 (info|kern|kernel) printer.c: usblp0 Device ID string [84]=\'MFG:Hewlett-Packard;MDL:HP LaserJet 1018;CMD:ACL;CLS:PRINTER;DES:HP LaserJet 1018;\'
21:38:14 20-12-2010 (info|kern|kernel) printer.c: usblp0 Device ID string [84]=\'MFG:Hewlett-Packard;MDL:HP LaserJet 1018;CMD:ACL;CLS:PRINTER;DES:HP LaserJet 1018;\'
21:38:14 20-12-2010 (notice|user|hotplug) hotplug: Request for add device 3f0/4117/100 at usb interface
21:38:14 20-12-2010 (notice|user|hotplug) hotplug: Device is HP LaserJet 1018 Printer
21:38:16 20-12-2010 (notice|user|hotplug) hotplug: Loading firmware to printer
21:38:16 20-12-2010 (notice|user|hotplug) hotplug: Loading Successful


Принтер не печатает.
что-то стрница с прошивками на гугле не открывается, а у вас какой-то китайский что ли? :)

Knight_Rider
20-12-2010, 18:47
Сейчас еще раз попробывал, включил принтер
Ну судя по логам все загрузилось.


что-то стрница с прошивками на гугле не открывается, а у вас какой-то китайский что ли? :)Не понял, что за китай? По моей ссылке лежит прошивка от энтузиастов, точнее ночной билд. Вполне стабильный. Может ссылка с вашей прошивки уже не действительна. ВОТ (http://wl500g.googlecode.com/) адрес, который в моей.

AlekseyA
20-12-2010, 19:51
Да, похоже новая прошивка все исправила.
Печатает, гад такой, сколько крови выпил.
Спасибо, еще раз! ;)

aleksey230469
10-01-2011, 09:10
Здравствуйте!
Dlink официально не поддерживает принтеры HP из-за особого протокола печати.
В DIR-320 имеется встроенный принт-сервер. И был куплен, собственно, из-за него.
Хотелось бы узнать, как обстоят дела в плане поддержки пинтеров HP LJ 1020 (и ему подобных) в прошивке DIR320-1.9.2.7-d-r2394M.trx?
Спасибо!

al37919
10-01-2011, 11:44
у этого устройства всего 4Мб встроенной флеш памяти, так что придется либо добавить usb хаб и подключить внешнюю флешку для хранения прошивки принтера, либо перекомпилировать прошивку удалив что-то ненужное и добавив прошивку принтера. В любом случае решения "искаропки" нет и не предвидится.

MrGalaxy
10-01-2011, 13:55
Или заменить флешку 8-мегабайтную и насовать в неё файлы для принтеров HP на все случаи жизни.;)

-vvv-
16-01-2011, 20:20
Есть роутер wl500gPv2 с прошивкой WL500gpv2-1.9.2.7-10
к нему подключен принтер HPLJ1018.
При двусторонней печати печатается одна сторона и принтер переходит в ожидание,
вторую сторону начинает печатать если открыть любую страничку через веб интерфейс роутера :eek::eek::eek:.

Как можно обьяснить такое поведение и как исправить?
uu

MrGalaxy
23-01-2011, 13:46
Добрый вечер
У меня такая же проблема с принтером HP P1006, перегрузил принтер иничего больше не печатается.
Все настройки роутера Asus 500gP v2 сделал как у Вас написано, на telnet воообще не заходит.
И все настройки описанные, для меня как дремучии лес.
Огромноя просьба, Вы не могли бы расписать подробно как что сделать и куда нажать.
Заранее огромное спасибо

P.S.
И еще одна просьба, Вы не могли бы расписать подробно как внешний жесткий диск подввесить.
Еще раз Огромное спасибо!!!
http://www.wl500g.info/showthread.php?t=13847
http://www.wl500g.info/showthread.php?t=4440

Shevgen
26-01-2011, 11:57
Здравствуйте.
Имеется роутер DIR-320, прошитый DIR320-1.9.2.7-d-r2394M.trx.
Необходимо привязать принтер HP1018.
Прошивка sihp1018.dl лежит на флешке.
Флешка и принтер подключены через USB-hub.
Вопрос - куда можно прописать cat sihp1018.dl>/dev/usb/lp0.
Пробовал в post-boot, не выходит, как писал Олег в FAQ'e обнаружение usb происходит после post-boot, и флешка оказывается еще не смонтированной.
Через hotplug тоже не выходит, принтер обнаруживается раньше флешки.


Jan 1 00:00:02 syslogd started: BusyBox v1.17.4
Jan 1 00:00:02 kernel: klogd started: BusyBox v1.17.4 (2010-11-29 20:24:47 MSK)
Jan 1 00:00:02 kernel: CPU revision is: 00029029
Jan 1 00:00:02 kernel: Primary instruction cache 16kB, physically tagged, 4-way, linesize 16 bytes.
Jan 1 00:00:02 kernel: Primary data cache 16kB, 2-way, linesize 16 bytes.
Jan 1 00:00:02 kernel: Linux version 2.4.37.10 (root@localhost) (gcc version 3.4.6) #1 2010-11-29 20:31:01 MSK
Jan 1 00:00:02 kernel: Setting the PFC to its default value
Jan 1 00:00:02 kernel: Determined physical RAM map:
Jan 1 00:00:02 kernel: memory: 02000000 @ 00000000 (usable)
Jan 1 00:00:02 kernel: On node 0 totalpages: 8192
Jan 1 00:00:02 kernel: zone(0): 8192 pages.
Jan 1 00:00:03 kernel: Amd/Fujitsu Extended Query Table v1.1 at 0x0040
Jan 1 00:00:03 kernel: Flash Id: Vendor: 0x00c2 Device: 0x00a7
Jan 1 00:00:03 kernel: Physically mapped flash: Swapping erase regions for broken CFI table.
Jan 1 00:00:03 kernel: number of CFI chips: 1
Jan 1 00:00:03 kernel: cfi_cmdset_0002: Disabling fast programming due to code brokenness.
Jan 1 00:00:03 kernel: Flash device: 0x400000 at 0x1c000000
Jan 1 00:00:03 kernel: usb.c: registered new driver usbdevfs
Jan 1 00:00:03 kernel: usb.c: registered new driver hub
Jan 1 00:00:03 kernel: usb-ohci.c: USB OHCI at membase 0xb8003000, IRQ 6
Jan 1 00:00:03 kernel: usb-ohci.c: usb-00:03.0, PCI device 14e4:471a
Jan 1 00:00:03 kernel: usb.c: new USB bus registered, assigned bus number 1
Jan 1 00:00:03 kernel: hub.c: USB hub found
Jan 1 00:00:03 kernel: hub.c: 2 ports detected
Jan 1 00:00:03 kernel: ehci_hcd 00:03.1: PCI device 14e4:471a
Jan 1 00:00:03 kernel: ehci_hcd 00:03.1: irq 6, pci mem b8003800
Jan 1 00:00:03 kernel: usb.c: new USB bus registered, assigned bus number 2
Jan 1 00:00:03 kernel: ehci_hcd 00:03.1: USB 0.0 enabled, EHCI 1.00, driver 10 Dec 2004/2.4
Jan 1 00:00:03 kernel: hub.c: USB hub found
Jan 1 00:00:03 kernel: hub.c: 2 ports detected
Jan 1 00:00:04 kernel: usb.c: registered new driver usblp
Jan 1 00:00:04 kernel: printer.c: v0.13: USB Printer Device Class driver
Jan 1 00:00:04 kernel: Linux video capture interface: v1.00
Jan 1 00:00:04 kernel: SCSI subsystem driver Revision: 1.00
Jan 1 00:00:04 kernel: Initializing USB Mass Storage driver...
Jan 1 00:00:04 kernel: usb.c: registered new driver usb-storage
Jan 1 00:00:04 kernel: USB Mass Storage support registered.
Jan 1 00:00:04 kernel: hub.c: new USB device 00:03.1-1, assigned address 2
Jan 1 00:00:04 kernel: hub.c: USB hub found
Jan 1 00:00:04 kernel: hub.c: 4 ports detected
Jan 1 00:00:05 kernel: hub.c: new USB device 00:03.1-1.1, assigned address 3
Jan 1 00:00:06 kernel: scsi0 : SCSI emulation for USB Mass Storage devices
Jan 1 00:00:06 kernel: Vendor: Generic Model: USB Flash Disk Rev: 7.76
Jan 1 00:00:06 kernel: Type: Direct-Access ANSI SCSI revision: 02
Jan 1 00:00:06 kernel: Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0
Jan 1 00:00:06 kernel: sda: Waiting for disc 0 to settle.
Jan 1 00:00:06 kernel: SCSI device sda: 1024000 512-byte hdwr sectors (524 MB)
Jan 1 00:00:06 kernel: sda: Write Protect is off
Jan 1 00:00:06 kernel: Partition check:
Jan 1 00:00:06 kernel: /dev/scsi/host0/bus0/target0/lun0: p1 p2
Jan 1 00:00:07 kernel: hub.c: new USB device 00:03.1-1.4, assigned address 4
Jan 1 00:00:07 kernel: printer.c: usblp0: USB Bidirectional printer dev 4 if 0 alt 0 proto 2 vid 0x03F0 pid 0x4117
Jan 1 00:00:07 kernel: printer.c: usblp0 Device ID string [99]='MFG:Hewlett-Packard;MDL:HP LaserJet 1018;CMD:ACL;CLS:PRINTER;DES:HP LaserJet 1018;FWVER:20051028;'
Jan 1 00:00:14 kernel: Adding Swap: 83120k swap-space (priority -1)
Jan 1 00:00:14 kernel: kjournald starting. Commit interval 5 seconds
Jan 1 00:00:14 kernel: EXT3-fs warning: maximal mount count reached, running e2fsck is recommended
Jan 1 00:00:14 kernel: EXT3 FS 2.4-0.9.19, 19 August 2002 on sd(8,2), internal journal
Jan 1 00:00:14 kernel: EXT3-fs: recovery complete.
Jan 1 00:00:14 kernel: EXT3-fs: mounted filesystem with ordered data mode.
Jan 1 00:00:14 USB storage: ext3 fs at /dev/discs/disc0/part2 mounted to /tmp/mnt/disc0_2

Sergio20
26-01-2011, 12:33
Knight_Rider, в скрипте имеет место быть заместо:

while test ! -e $PNT_DEV; do


while test ! -e $PRN_DEV; do

Не работает исходный скрипт на RT-N ветке с HP1020 =(
При включении принтера hotplug вызывается 4 раза. Как видим, Product передается только в первых двух случаях.

1й проход: Action= add ; Product= 3f0/2b17/100 ; Devpath= /devices/pci0000:00/0000:00:04.1/usb1/1-1 ; Type = 0/0/0
2й проход: Action= add ; Product= 3f0/2b17/100 ; Devpath= /devices/pci0000:00/0000:00:04.1/usb1/1-1/1-1:1.0 ; Type = 0/0/0
3й проход: Action= add ; Product= ; Devpath= /class/usb_device/usbdev1.7 ; Type =
4й проход: Action= add ; Product= ; Devpath= /class/usb/lp0 ; Type =

Данные, при каждом передергивании меняются, например, вместо того, что написано выше во время четвертого прохода может (абсолютно рандомно) передаться
Action= add ; Product= ; Devpath= /class/usb_device/usbdev1.5 ; Type =
И это при том, что /dev/lp0 создается.

Alexey
02-03-2011, 06:18
Есть роутер WL-500gp с прошивкой 1.9.2.7-d-r1825 и подключенный к нему LaserJet1018.

При печати с двух сторон после печати первой стороны принтер останавливается и начинает моргать лампочкой, чтобы ему перевернули бумагу (если подключить принтер напрямую к компу, то вылезет окошко, с просьбой перевернуть бумагу и будет ждать нажатия Ок в этом окне).
Окошко никакое не возникает при подключении через роутер. Со старой прошивкой это лечилось заходом в Web-морду роутера на вкладку "Status".
Попробовал подключаться через RAW и LPR. Эффект одинаковый - лампочка моргает, принтер не печатает.

IgorZaz
03-03-2011, 10:23
Подтверждаю, что благодаря первому решению заработала связка Linksys 160nl и HP LJ 1018 . Прошивка DDWRT 24 sp2. Винда настроена по http://wl500g.dyndns.org/printing/ .
Но так и не нашел что делать для того чтобы при сбоях или отключении все также работало. И при отключении/включении принтера приходится передергивать USB из рутера.
Нарыл где-то в просторах скрипт, который мол опрашивает в Cron порт каждую минуту на предмет принтера, но увы - не задалось видимо(
P.S. Упссс ... Передергивание не помогает... Помогает - внимание- печать напрямую с компа (к примеру пробную страницу), а потом уже спокойно можно втыкаать кабель в рутер и распечатывать через вафлю... До первого выключения принтера...

Alexey
10-03-2011, 20:12
Неужели ни у кого такой проблемы не стоит. или никто с ней не борется....

FilimoniC
11-03-2011, 06:59
Неужели ни у кого такой проблемы не стоит. или никто с ней не борется....

Для двусторонней печати обычно берут соответствующие принтеры. Да и мало кто печатает двестороннюю вручную.
Могу дать решение - поставьте FinePrint - там есть такая фишка. Печатает как 2 отдельных документа.

DrTraum
27-03-2011, 15:31
Не нашел, увы, темы...
Дело в том, что со стандартной прошивкой роутер упорно не хотел коннектиться к инету (от Beeline). Скачал прошивку для WL520 (1.9.2.7-10), перепрошил. Прошивка встала, интернет есть. Но теперь, спустя год, понадобилось подружить роутер и принтер (т.е. через усб сделать сетевой принтер). Подскажите, пожалуйста, как это сделать, если в настройках роутера упорно не нахожу возможности подключить принтер...
Надо перепрошиваться?
PS если в старой прошивке был графический интерфейс, позволяющий легко подключить что внешний диск (с настройкой торрента), что принтер, то здесь ничего найти не могу =( Принтер HP Laser Jet P1102
PPS Не пинайте, я не компьютерщик, знаний хватает только на "перепрошить" и "ввести sudo apt-get install ***". Для травматолога хватает =)

al37919
27-03-2011, 16:38
можно попробовать простой путь: http://oleg.wl500g.info/printing/
если не поможет, то для дальнейшего диалога нужны как минимум логи

DrTraum
27-03-2011, 19:40
Спасибо, попробовал. Опыт полезный, в чем-то забавный.

С ноута под вин ХР все заработало. Единственное НО - медленно. Т.е. приходится раза три нажать на кнопку "печать" в ворде, дабы отпечатать одну копию документа. Но это так, мелочи.
Веселости начались с подключением ноута, бегающего на семерке. При отправке на печать и одновременном мониторировании очереди печати было видно, что один и тот же документ "прогружается" в очередь очень быстро (размер 3 кб) и очень много раз, при этом в поле "документов на печать" была по-прежнему единица. Принтер печатал до посинения, пока не опомнился и не выключил его аппаратно. При повторных попытках - итог тот же. Мониторируя лог в самом роутере, отклонений не было (т.е. что при печати из ХР, что из 7 - все одно).
Так что пока я на том же месте, на котором и был =(

al37919
27-03-2011, 20:07
по семерке помочь вряд ли смогу за отсутствием оной, а также интереса к таковой. Хотя что-то мне подсказывает, что проблему надо искать именно в ней.

могу подсказать только две общих идеи. Во первых, в этом режиме роутер функционирует аналогично принтсерверу типа HP JetDirect. Во вторых, не стоит ожидать обратной связи от принтера, скорее всего ее не будет (а также вероятно общей очереди печати, так что возможно безостановочная печать принтера связана с многократным нажатием кнопки печать в первом варианте).

Почитайте форум --- здесь уже жаловались на проблемы с этой осью, возможно решение было найдено.

DrTraum
28-03-2011, 16:30
Спасибо)
Я тоже думаю, что проблема именно в семерке. Буду искать.
На мой взгляд, проблема как раз в том, что семерка не принимает "подтверждение" принтера на печать, и пытается многократно "протолкнуть" документ. А до принтера доходит "медленно". Ламерским языком, но вроде понятно...

N!K!TA
07-04-2011, 18:03
if [ $veros = 2.6 ] ;
then PRN_DEV=/dev/lp0
else PRN_DEV=/dev/usb/lp0
fi



На RTN-16 с прошивкой RT-N16-1.9.2.7-rtn-r2775.trx не работает $veros. Может что-нибудь сделать на основе uname -r

al37919
07-04-2011, 19:46
можете вместо $veros написать:

$(uname -r | cut -c -3)

Shadow Of Fire
02-06-2011, 14:17
Подключил к своему WL500gpv2 принтер hp1018 по этой (http://wl500g.info/showpost.php?p=159578&postcount=117) инструкции, на 1.9.2.7-d-r2787 работало всё отлично, но стоило обновиться до 1.9.2.7-rtn-r2972 и принтер перестал "цепляться" роутером.
В логе вот такие вот строки видны:

Jun 2 17:18:11 kernel: usb 1-1.1: new high speed USB device using ehci_hcd and address 3
Jun 2 17:18:11 kernel: usb 1-1.1: configuration #1 chosen from 1 choice
Jun 2 17:18:11 kernel: usblp0: USB Bidirectional printer dev 3 if 0 alt 0 proto 2 vid 0x03F0 pid 0x4117
Jun 2 17:18:11 kernel: drivers/usb/class/usblp.c: usblp0 Device ID string [84]='MFG:Hewlett-Packard;MDL:HP LaserJet 1018;CMD:ACL;CLS:PRINTER;DES:HP LaserJet 1018;'

В разделе "status & log" в поле "printer" теперь пусто, собственно я в тупике...

dunlopy
29-10-2011, 15:15
Здравствуйте!
никак не получается подключить принтер HP LaserJet P1005 к девайсу ASUS WL-500gpv2.
Облазил форум, не смог решить проблему.

на роутере последняя прошивка от Олега. При подключении usb-кабеля к нему, принтер не видется.

Напишите, пожалуйста, пошаговую инструкцию для блондинок, как подружить эти 2 девайса.

Заранее спасибо.

Knight_Rider
26-11-2011, 09:50
Слегка доработал скрипт, теперь должна быть полная совместимость между версиями -d и -rtn.


#!/bin/sh

LJ_1000=3f0/517
LJ_1005=3f0/1317
LJ_1018=3f0/4117
LJ_1020=3f0/2b17
LJ_1022=3f0/2c17
LJ_1022n=3f0/2d17
LJ_1022nw=3f0/3017
LJ_P1005=3f0/3d17
LJ_P1006=3f0/3e17
LJ_P1007=3f0/4817
LJ_P1008=3f0/4917
LJ_P1505=3f0/3f17
LJ_P1505n=3f0/4017

FRM_CAT=/usr/local/sbin/
PRN_BIN=usb_printerid
PRN_DEV=""

case `echo $PRODUCT | awk -F/ '{print $1 "/" $2}'` in
$LJ_1000)
PRN_FRM=sihp1000.dl
PRN_ID=$LJ_1000
PRN_NAME="HP LaserJet 1000"
;;
$LJ_1005)
PRN_FRM=sihp1005.dl
PRN_ID=$LJ_1005
PRN_NAME="HP LaserJet 1005"
;;
$LJ_1018)
PRN_FRM=sihp1018.dl
PRN_ID=$LJ_1018
PRN_NAME="HP LaserJet 1018"
;;
$LJ_1020)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1020
PRN_NAME="HP LaserJet 1020"
;;
$LJ_1022)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1020
PRN_NAME="HP LaserJet 1022"
;;
$LJ_1022n)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1022n
PRN_NAME="HP LaserJet 1022n"
;;
$LJ_1022nw)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1022nw
PRN_NAME="HP LaserJet 1022nw"
;;
$LJ_P1005)
PRN_FRM=sihpP1005.dl
PRN_ID=$LJ_P1005
PRN_NAME="HP LaserJet P1005"
;;
$LJ_P1006)
PRN_FRM=sihpP1006.dl
PRN_ID=$LJ_P1006
PRN_NAME="HP LaserJet P1006"
;;
$LJ_P1007)
PRN_FRM=sihpP1007.dl
PRN_ID=$LJ_P1007
PRN_NAME="HP LaserJet P1007"
;;
$LJ_P1008)
PRN_FRM=sihpP1008.dl
PRN_ID=$LJ_P1008
PRN_NAME="HP LaserJet P1008"
;;
$LJ_P1505)
PRN_FRM=sihpP1505.dl
PRN_ID=$LJ_P1505
PRN_NAME="HP LaserJet P1505"
;;
$LJ_P1505n)
PRN_FRM=sihpP1505.dl
PRN_ID=$LJ_P1505n
PRN_NAME="HP LaserJet P1505n"
;;
*)
PRN_FRM=''
PRN_ID=ffff/ffff
PRN_NAME="unknown"
;;
esac

if [ -d /dev/usb ] ;
then PRN_DEV=/dev/usb/lp0
else PRN_DEV=/dev/lp0
fi

logger -t hotplug "Request for $ACTION device $PRODUCT at $* interface"

if [ "$ACTION" = "add" ] && [ "$*" = "usb" ] && [ "$PRN_DEV" != "" ] && [ "$PRN_ID" != "ffff/ffff" ]; then
logger -t hotplug "Device is $PRN_NAME Printer"
while test ! -e $PNT_DEV; do
logger -t hotplug "Waiting for printer respond"
sleep 1
done

logger -t hotplug "Loading firmware to printer"
$FRM_CAT$PRN_BIN $PRN_DEV | grep -q FWVER || cat $FRM_CAT$PRN_FRM > $PRN_DEV
RET_CODE=$?
sleep 1

if [ $RET_CODE -eq 0 ] ;
then logger -t hotplug "Loading Successful"
else logger -t hotplug "Loading Failed"
fi
fi
/sbin/hotplug $*

Shadow Of Fire
04-12-2011, 23:53
Knight_Rider, спасибо большое, настроил наконец на -rtn, полёт нормальный :)

RuM
25-12-2011, 20:20
Доброго времени суток,
после обновления прошивки на WL500GPv2 с -d на -rtn перестал работать hp1018. При использовании вышеуказанного скрипта прошивка на принтер перестает грузиться даже вручную (cat sihp1018.dl > /dev/lp0)

вывод hotplug

Jan 1 00:00:07 hotplug: Request for add device 3f0/4117/100 at usb interface
Jan 1 00:00:07 hotplug: Device is HP LaserJet 1018 Printer
Jan 1 00:00:07 hotplug: Loading firmware to printer
Jan 1 00:00:07 hotplug: Request for add device 1d6b/1/206 at usb interface
Jan 1 00:00:07 kernel: usblp0: USB Bidirectional printer dev 3 if 0 alt 0 proto 2 vid 0x03F0 pid 0x4117
Jan 1 00:00:07 kernel: drivers/usb/class/usblp.c: usblp0 Device ID string [99]='MFG:Hewlett-Packard;MDL:HP LaserJet 1018;CMD:ACL;CLS:PRINTER;DES:HP LaserJet 1018;FWVER:20051028;'
Jan 1 00:00:07 kernel: usbcore: registered new interface driver usblp
Jan 1 00:00:07 hotplug: Request for add device 1d6b/1/206 at usb interface
Jan 1 00:00:07 hotplug: Request for add device at usb interface
Jan 1 00:00:07 hotplug: Request for add device at drivers interface
Jan 1 00:00:07 hotplug: Request for add device at module interface
Jan 1 00:00:08 hotplug: Loading Successful

Knight_Rider
06-01-2012, 07:04
Доброго времени суток,
после обновления прошивки на WL500GPv2 с -d на -rtn перестал работать hp1018. При использовании вышеуказанного скрипта прошивка на принтер перестает грузиться даже вручную (cat sihp1018.dl > /dev/lp0)

Странно. Согласно предоставленному логу, прошивка успешно загружается на борт принтера.

RuM
07-01-2012, 04:17
Странно. Согласно предоставленному логу, прошивка успешно загружается на борт принтера.

То есть думаете, косяк на стороне компа? попробую завтра на другом проверить
Вроде, на сколько я помню, при заливе прошивки принтер должен прокрутить валики?

-=CRANK=-
12-03-2012, 22:17
У меня WL500gP v2 (прошивка 1.9.2.7-10) + HP LaserJet 1015; Windows XP Pro SP3.

Я действовал по инструкции http://oleg.wl500g.info/printing/. Драйвер на принтер установлен родной в варианте "подключению по порту TCP/IP ...".
Принтер не печатает (задание в очереди печати через некоторое время переходит в статус "ошибка - идёт печать").
В логе роутера:


Jan 21 21:47:26 kernel: printer.c: usblp0 Device ID string [148/max 1552]='MFG:Hewlett-Packard;CMD:PJL,MLC,BIDI-ECP,PCL,DW-PCL;MDL:hp LaserJet 1015;CLS:PRINTER;DES:Hewlett-Packard LaserJet 1015;MEM:13MB;COMMENT:RES=600x2;'
Jan 21 21:47:26 kernel: printer.c: Parsing USBLPID...


Я видел обсуждение других моделей серии 10xx, для которых надо отдельно загружать firmware в роутер. Но здесь (http://oleg.wl500g.info/hplj/) модели 1015 нет, и гуглом файл sihp1015.dl тоже не обнаруживается.

Update:
TCP Monitor при отправке чего-нибудь на печать не обнаруживает активности в порту 9100.

Update:
Проблему удалось частично решить, переведя порт принтера из режима RAW в режим LPR с именем очереди LPR. Теперь принтер печатает. Но если выключить принтер и перезагрузить роутер (так что в момент включения роутера принтер выключен), и затем включить принтер, то он не определяется. В логе при этом появляются такие строки:


Jan 24 21:50:18 kernel: hub.c: new USB device 00:03.1-1.1, assigned address 3
Jan 24 21:50:18 kernel: usb.c: not enough configurations
Jan 24 21:50:18 kernel: usb.c: unable to get device 3 configuration (error=-22)
Jan 24 21:50:19 kernel: hub.c: new USB device 00:03.1-1.1, assigned address 4
Jan 24 21:50:19 kernel: usb.c: not enough configurations
Jan 24 21:50:19 kernel: usb.c: unable to get device 4 configuration (error=-22)

Если же в момент включения роутера принтер уже включён, то он определяется нормально и в дальнейшем его можно включать-выключать --- он работает нормально.

Update:
Проблема окончательно решена перепрошивкой на WL500gpv2-1.9.2.7-d-r2381
Такая же ситуация, принтер тот же - hp laserjet 1015
компы Win7
принтеры устанавливались через asus'овскую тулзу по установке принтеров, драйвера устанавлены
Принтер не печатает (задание в очереди печати через некоторое время переходит в статус "ошибка - идёт печать").
Как я понял все решилось кастомной прошивкой
Где взять такую на RT-N13U? И где это что меняется с RAW на LPR?
поиск чтото не сильно помог, нашел вот эту тему
подскажите в каком направлении просвещаться, или что надо сделать

Hyppo
13-03-2012, 05:22
И где это что меняется с RAW на LPR?
Настройка протокола (RAW или LPR) происходит в свойствах принтера, вкладка "Порты" и там нажмите на кнопку "Настроить порт", попробуйте сменить, возможно уже это поможет.
Эта же картинка в 9 пункте инструкции http://oleg.wl500g.info/printing/

-=CRANK=-
15-03-2012, 20:36
Настройка протокола (RAW или LPR) происходит в свойствах принтера, вкладка "Порты" и там нажмите на кнопку "Настроить порт", попробуйте сменить, возможно уже это поможет.
Эта же картинка в 9 пункте инструкции http://oleg.wl500g.info/printing/
в общем вопрос решился действительно сменой протокола
но еще выявился нюанс, что принтер надо добавлять строго по инструкции выше, а не асусовской тулзой - иначе вместо одного принтера появляются еще какието виртуальные порты и настроить смену протокола нельзя

Poheto
18-03-2012, 01:39
парни, скажите, пожалуйста, а для другого рутера asus все описанное ниже справедливо? интересует rtn56u+p1005. Из коробки рутер опознает принтер без проблем в интерфейсе. Только настройка принтера средствами винды 7 не приводит к печати. Думаю, может, попробовать метод из этой темы.

Alexey
30-03-2012, 10:31
после обновления прошивки появились проблемы с принтером.
после отключения и подключения принтер не печатает по сети.
для включения печати необходимо выполнить команду:
/opt/usr/printer/usb_printerid /dev/lp0 | grep -q FWVER || cat /opt/usr/printer/sihp1018.dl > /dev/lp0
после этого принтер работает до следующего его отключения.
В старой прошивке для решения данной проблемы был файл /usr/local/sbin/hotplug.sh
который запускался при подключении устройства и выполнял эту команду.
Я так понял, что в новой прошивке этот файл не запускается.
Подскажите как решить данную проблему.
Роутер WL-500gP, прошивка 1.9.2.7-rtn-r4001 с сайта http://asus.vectormm.net/rtn/4001/wl/ , принтер LaserJet 1018

Alexey
30-03-2012, 11:44
после обновления прошивки появились проблемы с принтером.
после отключения и подключения принтер не печатает по сети.
для включения печати необходимо выполнить команду:
/opt/usr/printer/usb_printerid /dev/lp0 | grep -q FWVER || cat /opt/usr/printer/sihp1018.dl > /dev/lp0
после этого принтер работает до следующего его отключения.
В старой прошивке для решения данной проблемы был файл /usr/local/sbin/hotplug.sh
который запускался при подключении устройства и выполнял эту команду.
Я так понял, что в новой прошивке этот файл не запускается.
Подскажите как решить данную проблему.
Роутер WL-500gP, прошивка 1.9.2.7-rtn-r4001 с сайта http://asus.vectormm.net/rtn/4001/wl/ , принтер LaserJet 1018

Проблема решена.
в старой прошивке принтер был подключен к /dev/usb/lp0, а в новой - к /dev/lp0
надо было поправить файл /opt/usr/hotplug/hotplug , заменив /dev/usb/lp0 на /dev/lp0
Все работает

serega19
01-04-2012, 10:51
в общем вопрос решился действительно сменой протокола
но еще выявился нюанс, что принтер надо добавлять строго по инструкции выше, а не асусовской тулзой - иначе вместо одного принтера появляются еще какието виртуальные порты и настроить смену протокола нельзя
Добрый день а прошивка у Вас какая у меня ситуация такая роутер asus wl500 GP V2 принтер HP LJ 1018 стояла прошивка от олега WL500gpv2-1.9.2.7-10.trx через тел нет прошил под принтер всё работала хорошо но вот поставил прошивку WL500gpv2-1.9.2.7-rtn-r3702.trx и всё роутер видит принтер всё ок но печать никак и вот что делать не знаю кто может подскажет настройки RAW и LPR все варианты ни в какую не хочет может где что надо поставить (почему перешел на эту прошивку она не режет скорость и хорошо работает )

Спасибо больше за ответ сделал как всё и написано замечу что при команде LS все файлы зелёного цвета но вот принтер почему то всё равно не печатает в роутере он виден и ещё при включение принтера раньше было конект это смена цветов диодов то сейчас просто включается и ничего не происходит тоесть диоды зелёного цвета

вот что пишет в логах может кто подскажет как же всё таки подружить их прошивка в роутере WL500gpv2-1.9.2.7-rtn-r3702.trx


Apr 1 11:39:38 kernel: usb 1-1.2: new high speed USB device using ehci_hcd and address 3
Apr 1 11:39:38 kernel: usb 1-1.2: configuration #1 chosen from 1 choice
Apr 1 11:39:38 kernel: usblp0: USB Bidirectional printer dev 3 if 0 alt 0 proto 2 vid 0x03F0 pid 0x4117
Apr 1 11:39:38 kernel: drivers/usb/class/usblp.c: usblp0 Device ID string [84]='MFG:Hewlett-Packard;MDL:HP LaserJet 1018;CMD:ACL;CLS:PRINTER;DES:HP LaserJet 1018;'
Apr 1 11:39:38 hotplug: Request for add device 3f0/4117/100 at usb interface
Apr 1 11:39:38 hotplug: Request for add device at usb interface
Apr 1 11:39:38 hotplug: Request for add device at usb_device interface
Apr 1 11:39:38 hotplug: Request for add device 3f0/4117/100 at usb interface
Apr 1 11:40:50 p9100d[335]: Connection from ::ffff:192.168.1.2 port 56773 accepted
Apr 1 11:40:51 p9100d[335]: Finished job: 89618 bytes received

MrGalaxy
04-04-2012, 09:33
Подскажите, пожалуйста.
Имеется: локальная сеть с доменом, ip у всех ПЭВМ динамические; настроен принт-сервер на основе wl500gP-v.2, прошивка r2624, принтер HP P1006, ip у принт-сервера статический; принтер подключены через локальный tcp-ip порт.
Нужно ограничить доступ к принт-серверу всем, кроме нескольких ПЭВМ.
Имена NetBios известны.
Как это сделать?

dimez
04-04-2012, 12:40
Подскажите, пожалуйста.
Имеется: локальная сеть с доменом, ip у всех ПЭВМ динамические; настроен принт-сервер на основе wl500gP-v.2, прошивка r2624, принтер HP P1006, ip у принт-сервера статический; принтер подключены через локальный tcp-ip порт.
Нужно ограничить доступ к принт-серверу всем, кроме нескольких ПЭВМ.
Имена NetBios известны.
Как это сделать?
Средствами принт-сервера - никак, к нему идут обращения с IP (более низкоуровнево), а не с нетбиос-имён. Тем более, что они динамические.
Может быть, доменными политиками распределить доступ к принтеру?

MrGalaxy
04-04-2012, 15:17
Средствами принт-сервера - никак, к нему идут обращения с IP (более низкоуровнево), а не с нетбиос-имён. Тем более, что они динамические.
Может быть, доменными политиками распределить доступ к принтеру?
Администратор домена далеко, а ответственный за сеть совмещает эту должность, у него куча основной работы. Поэтому идти к ним на поклон - крайний случай.

А можно по нет-биос-имени узнать ip и прописать разрешающие правила? А доступ с остальных ip запретить.

ЗЫ. Пойду ещё погуглю...

dimez
04-04-2012, 15:55
Администратор домена далеко, а ответственный за сеть совмещает эту должность, у него куча основной работы. Поэтому идти к ним на поклон - крайний случай.

А можно по нет-биос-имени узнать ip и прописать разрешающие правила? А доступ с остальных ip запретить.

ЗЫ. Пойду ещё погуглю...
Можно. При запущенной самбе
nmblookup netbios-name|tail -n 1|cut -d\ -f 1 (nmblookup из состава самбы, и после "-d\" стоят 2 пробела) выдаст IP машины, нарисовать нужные правила правила. Но это костыль, сам понимаешь :-)

MrGalaxy
06-04-2012, 15:34
Погуглил, почесал репу и нашёл решение сам. Докладываю.
Засунул в post-boot такие строки:

iptables -A INPUT -j DROP
iptables -I INPUT -m mac --mac-source xx:xx:xx:xx:xx:xx -j ACCEPT
iptables -I INPUT -m mac --mac-source yy:yy:yy:yy:yy:yy -j ACCEPT
...
Перечислил все маки тех ЭВМ, с которых печать должна быть разрешена.
Хотел поначалу эти скрипты сунуть в post-firewall, где им самое место, но роутер, это шайтан-устройство, вообще его не запускает.:mad: ХЗ почему, наверное он запускается только когда есть хотя бы один vlan. (У меня-то он настроен как точка доступа). Вообще-то могли бы и в ФАК эту информацию добавить!

Есть ещё решение, но оно мне не нравится, хотя тоже работает:

iptables -A INPUT -j DROP
iptables -I INPUT -s Machine1.local.domain -j ACCEPT
iptables -I INPUT -s Machine2.local.domain -j ACCEPT
...(Блин, так и в iptables разбираться начну.:D)

Уважаемый dimez, не знаете - не советуйте.

dmitryn
07-04-2012, 20:45
После обновления прошивки до r4051 перестал работать принтер.
В логах вижу тоже, что и всегда:

Apr 7 19:30:56 kernel: usb 1-1.1: new high speed USB device using ehci_hcd and address 10
Apr 7 19:30:56 kernel: usb 1-1.1: configuration #1 chosen from 1 choice
Apr 7 19:30:56 kernel: usblp0: USB Bidirectional printer dev 10 if 0 alt 0 proto 2 vid 0x03F0 pid 0x002A
Apr 7 19:30:56 kernel: drivers/usb/class/usblp.c: usblp0 Device ID string [140]='MFG:Hewlett-Packard;MDL:HP LaserJet Professional P1102;CMD:ZJS,PJL,ACL,HTTP;CLS:PRINTER;DES:HP LaserJet Professional P1102;FWVER:20100223;'
Но на странице Status принтер не появляется.

Пришлось откатиться обратно на r3702.

wl500gpv2, hp p1102.

evgenych
26-04-2012, 07:33
asus wl500 gpv2 прошивка 4051 не определяются принтеры на странице статуса (пробовал и brother и xerox) откатился на прошивку 3700 - там все работает

raklid
30-04-2012, 18:53
После обновления прошивки до r4051 перестал работать принтер.
В логах вижу тоже, что и всегда:

Apr 7 19:30:56 kernel: usb 1-1.1: new high speed USB device using ehci_hcd and address 10
Apr 7 19:30:56 kernel: usb 1-1.1: configuration #1 chosen from 1 choice
Apr 7 19:30:56 kernel: usblp0: USB Bidirectional printer dev 10 if 0 alt 0 proto 2 vid 0x03F0 pid 0x002A
Apr 7 19:30:56 kernel: drivers/usb/class/usblp.c: usblp0 Device ID string [140]='MFG:Hewlett-Packard;MDL:HP LaserJet Professional P1102;CMD:ZJS,PJL,ACL,HTTP;CLS:PRINTER;DES:HP LaserJet Professional P1102;FWVER:20100223;'
Но на странице Status принтер не появляется.

Пришлось откатиться обратно на r3702.

wl500gpv2, hp p1102.

После отката заработало? У меня такая же ошибка, откатился на r3702 все равно не работает.

MrGalaxy
25-05-2012, 16:46
У кого она не работает, как и у меня, предлагаю такое решение.
В файле hotplug.sh вместо строк

if [ $veros = 2.6 ] ;
then PRN_DEV=/dev/lp0
else PRN_DEV=/dev/usb/lp0
fi
запишите следующее:

if [ `cat /proc/version | awk '{print substr($3,0,index(substr($3,index($3,".")+1),".")+1)}'` = 2.6 ] ;
then PRN_DEV=/dev/lp0
else
if [ `cat /proc/version | awk '{print substr($3,0,index(substr($3,index($3,".")+1),".")+1)}'` = 2.4 ] ;
then PRN_DEV=/dev/usb/lp0
else
logger -t hotplug "incompatible linux version :("
exit
fi
fi
Работает и на -d, и на -rtn.

MrGalaxy
21-08-2012, 07:33
Если включить принтер обсуждаемой линейки HP до окончания загрузки роутера, то на принтере ничего не печатается.
Тупо жду некоторое время, пока роутер загрузится, потом подключаю принтер, тогда всё нормально.
Кто как эту проблему решил?

ryzhov_al
21-08-2012, 08:41
Если включить принтер обсуждаемой линейки HP до окончания загрузки роутера, то на принтере ничего не печатается.
Тупо жду некоторое время, пока роутер загрузится, потом подключаю принтер, тогда всё нормально.
Кто как эту проблему решил?Интересно, отрабатывает ли hotplug после окончания загрузки роутера, если принтер был включен заблаговременно? Если нет, то надо добавить скрипт, который будет после загрузки роутера проверять наличие принтера и выполнять описанные в hotplug-файлах манипуляции.

MrGalaxy
21-08-2012, 12:11
Интересно, отрабатывает ли hotplug после окончания загрузки роутера, если принтер был включен заблаговременно?
Нет, в логе молчок и ситуация как я написал выше.


Если нет, то надо добавить скрипт, который будет после загрузки роутера проверять наличие принтера и выполнять описанные в hotplug-файлах манипуляции.Я об этом думал. При подключении устройства к usb, ряду переменных (ACTION и др.), используемых в скрипте hotplug.sh, присваиваются значения (поправьте, если ошибаюсь). Если вручную запускать скрипт hotplug.sh, то откуда возьмутся эти значения?
Оптимальным было бы программно сымитировать отключение и подключение принтера как если б это делалось аппаратно вытыканием-втыканием разъёма.

ryzhov_al
24-08-2012, 09:03
Оптимальным было бы программно сымитировать отключение и подключение принтера как если б это делалось аппаратно вытыканием-втыканием разъёма.Кручу-верчу, отключить\включить хочу!:)
Добавил в репозиторий пакет usbreset (https://dev.openwrt.org/ticket/10394), реализующий фичу USB reset / USB re-enumeration.


$ usbreset
Usage:
usbreset PPPP:VVVV - reset by product and vendor id
usbreset BBB/DDD - reset by bus and device number
usbreset "Product" - reset by product name

Devices:
Number 002/001 ID 1d6b:0001 OHCI Host Controller
Number 001/001 ID 1d6b:0002 EHCI Host Controller
Number 001/002 ID 058f:6254 USB2.0Hub
Number 001/003 ID 1bcf:0c31 USB to Serial-ATA bridge
Number 001/004 ID 0a12:0001 BT2.0
Number 001/005 ID 058f:6366 Mass Storage Device

$ usbreset "BT2.0"
Resetting BT2.0 ... ok
Попробуйте сделать сброс принтера по окончании загрузки роутера.

MrGalaxy
24-08-2012, 09:59
Кручу-верчу, отключить\включить хочу!:)
Добавил в репозиторий пакет usbreset (USB reset / USB re-enumeration), реализующий фичу USB reset / USB re-enumeration.


$ usbreset
Usage:
usbreset PPPP:VVVV - reset by product and vendor id
usbreset BBB/DDD - reset by bus and device number
usbreset "Product" - reset by product name

Devices:
Number 002/001 ID 1d6b:0001 OHCI Host Controller
Number 001/001 ID 1d6b:0002 EHCI Host Controller
Number 001/002 ID 058f:6254 USB2.0Hub
Number 001/003 ID 1bcf:0c31 USB to Serial-ATA bridge
Number 001/004 ID 0a12:0001 BT2.0
Number 001/005 ID 058f:6366 Mass Storage Device

$ usbreset "BT2.0"
Resetting BT2.0 ... ok
Попробуйте сделать сброс принтера по окончании загрузки роутера.
Дико извиняюсь, но что-то он не виден...

[admin@WL-001FC652FD2B root]$ opkg list | grep usbreset
[admin@WL-001FC652FD2B root]$

ryzhov_al
24-08-2012, 10:01
Дико извиняюсь, но что-то он не виден...

$ opkg update

MrGalaxy
24-08-2012, 18:22
$ opkg update
Надо ж так лохануться! Потерял бдительность):)

Во-первых, огромное спасибо за этот полезный пакет.

[admin@WL-00265A88423B /opt]$ usbreset
Usage:
usbreset PPPP:VVVV - reset by product and vendor id
usbreset BBB/DDD - reset by bus and device number
usbreset "Product" - reset by product name

Devices:
Number 001/001 ID 1d6b:0001 OHCI Host Controller
Number 001/002 ID 03f0:4717 HP Color LaserJet CP1215
[admin@WL-00265A88423B /opt]$ usbreset 001/002
Resetting HP Color LaserJet CP1215 ... ok
[admin@WL-00265A88423B /opt]$
Вот лог:

Aug 24 21:02:54 hotplug: ================================================== ===
Aug 24 21:02:54 hotplug: hotplug.sh started
Aug 24 21:02:54 hotplug: ================================================== ===
Aug 24 21:02:54 hotplug: hotplug.sh started
Aug 24 21:02:54 hotplug: Request for remove device at usb interface
Aug 24 21:02:54 hotplug: Request for remove device at class interface
Aug 24 21:02:54 kernel: usb 1-1: reset full speed USB device using ohci_hcd and address 2
Aug 24 21:02:54 hotplug: hotplug.sh ended
Aug 24 21:02:54 hotplug: ************************************************** ***
Aug 24 21:02:54 hotplug: ================================================== ===
Aug 24 21:02:54 hotplug: hotplug.sh started
Aug 24 21:02:54 hotplug: ================================================== ===
Aug 24 21:02:54 hotplug: hotplug.sh started
Aug 24 21:02:54 kernel: usblp0: USB Bidirectional printer dev 2 if 0 alt 0 proto 2 vid 0x03F0 pid 0x4717
Aug 24 21:02:54 kernel: drivers/usb/class/usblp.c: usblp0 Device ID string [132]='MFG:Hewlett-Packard;MDL:HP Color LaserJet CP1215;CMD:ZJS,HBS,PJL,ACL,HTTP;CLS:PRINTER;DES:HP Color LaserJet CP1215;FWVER:20120213;'
Aug 24 21:02:55 hotplug: Request for add device at usb interface
Aug 24 21:02:55 hotplug: Request for add device at class interface
Aug 24 21:02:55 hotplug: hotplug.sh ended
Aug 24 21:02:55 hotplug: ************************************************** ***
Эффект именно такой, как ожидалось! Сначала идёт отключение, потом подключение принтера.
Пробовал дома с CP-1215, на работе попробую с "безмозглым" HP-P1006. Думаю, всё будет нормально, против лома нет приёма.:)

Однако, вот, что получается. Внешнюю флешку я не использую, установил пакеты во внутреннюю флешь роутера. А она не резиновая.

[admin@WL-00265A88423B /opt]$ flashfs commit
/tmp/flash.tar.gz: File is too big (2283444, max 2097152)

[admin@WL-00265A88423B /opt]$ opkg list-installed
findutils - 4.5.10-1
ldconfig - 0.9.32-3
libc - 0.9.32-3
libgcc - 4.5.3-3
libpthread - 0.9.32-3
librt - 0.9.32-3
libstdcpp - 4.5.3-3
uclibc-opt - 0.9.32-2
usbreset - 2
[admin@WL-00265A88423B /opt]$
Какие пакеты можно удалить безболезненно?
Или, может быть есть ненужное содержимое каталогов, которое не скажется на работе usbreset?

Отвечаю себе сам.:D Снёс findutils, ldconfig, всё работает:

[admin@WL-00265A88423B root]$ opkg list-installed
libc - 0.9.32-3
libgcc - 4.5.3-3
libpthread - 0.9.32-3
librt - 0.9.32-3
libstdcpp - 4.5.3-3
uclibc-opt - 0.9.32-2
usbreset - 2
[admin@WL-00265A88423B root]$ usbreset 001/002
Resetting HP Color LaserJet CP1215 ... ok
[admin@WL-00265A88423B root]$

ryzhov_al
24-08-2012, 20:24
Отвечаю себе сам.:D

Снёс findutils, ldconfig, всё работает:Всё верно. Findutils используется только в стартовых скриптах, а ldconfig после установки базовых библиотек вовсе не нужен.



[admin@WL-00265A88423B root]$ opkg list-installed
libc - 0.9.32-3
libgcc - 4.5.3-3
libpthread - 0.9.32-3
librt - 0.9.32-3
libstdcpp - 4.5.3-3
uclibc-opt - 0.9.32-2
usbreset - 2
[admin@WL-00265A88423B root]$ usbreset 001/002
Resetting HP Color LaserJet CP1215 ... ok
[admin@WL-00265A88423B root]$Если все эти зависимости устанавливались только ради usbreset, то можно половину из них удалить: uclibc-opt, libpthread, librt, libstdcpp.


$ ldd /opt/bin/usbreset
libgcc_s.so.1 => /opt/lib/libgcc_s.so.1 (0x2aac0000)
libc.so.0 => /opt/lib/libc.so.0 (0x2aae1000)
ld-uClibc.so.0 => /opt/lib/ld-uClibc.so.0 (0x2aaa8000)

MrGalaxy
25-08-2012, 06:27
Если все эти зависимости устанавливались только ради usbreset,
Именно так. Я не стал разбираться дальше, т.к. во флеш влезло - и ладно. Прошивка для ДИР-320 сама по себе мало места занимает, а вот на работе у меня wl500gP-v2. Там уже прошивка ого-го. Библиотеки придётся ставить по минимуму. А то и попробовать прошивку от Вампика для ДИР-320 залить.

ryzhov_al
25-08-2012, 06:33
Именно так. Я не стал разбираться дальше, т.к. во флеш влезло - и ладно. Прошивка для ДИР-320 сама по себе мало места занимает, а вот на работе у меня wl500gP-v2. Там уже прошивка ого-го. Библиотеки придётся ставить по минимуму. А то и попробовать прошивку от Вампика для ДИР-320 залить.OpenWRT в ряде случаев включает usbreset в состав прошивки, т.к. сам по себе он "весит" семь килобайт.

MrGalaxy
28-08-2012, 13:38
ryzhov_al Благодарю Вас за то, что делитесь знаниями.

Я на работе напечатал памятку, как включать принтер.;)
Написал, чтобы принтер включали только после окончательной загрузки роутера (индикацию сделал).
А то народ удивлялся "А что это принтер включен, а не печатает?".:D:D Теперь эта памятка будет лишней.

И можно ещё удалить /opt/var/opkg-lists/openwrt. вот так у меня выглядит теперь post-boot:

#!/bin/sh

logger -t post-boot started

# starting samba
smbd -D
nmbd -D

# mount /opt to main memory
mount /usr/local/opt /opt

# script to hotplug printer
echo "/usr/local/hplj/hotplug.sh" >> /proc/sys/kernel/hotplug

# resetting usb port
sleep 2s
/opt/bin/usbreset `/opt/bin/usbreset | grep 3f0 | awk '{print $2}'`

# starting crond
crond

logger -t post-boot ended
Увы, с принтером, который "без мозгов", ничего не получается.:(
При выполнении usbreset не происходит присвоение значений переменной PRODUCT в скрипте hotplug.sh, поэтому никакой драйвер принтера не выбирается и загрузится не может.
Фрагменты логов после выполнения команды usbreset (syslog1.txt), после отключения и включения принтера (syslog2.txt) и мой вариант скрипта hotplug.sh прикреплены к сообщению.

ЗЫ. И попутный вопрос: почему скрипт вызывается системой аж по 3 раза по одному событию? В post-boot записано

echo "/usr/local/hplj/hotplug.sh" >> /proc/sys/kernel/hotplug

MrGalaxy
30-08-2012, 12:55
При загрузке роутера при подключенном принтере в логе появляется строка

Jan 1 04:00:12 kernel: usblp0: USB Bidirectional printer dev 3 if 0 alt 0 proto 2 vid 0x03F0 pid 0x3E17
т.е. информация о модели принтера в ситеме имеется.
Как её оттуда выщемить, в каких системных переменных хранится vid и pid?

Кажется, решение найдено.
Информацию о модели принтера хранится в файле /proc/bus/usb/devices:

[admin@WL-00265A88423B root]$ cat /proc/bus/usb/devices | grep 3f0
P: Vendor=03f0 ProdID=4717 Rev= 1.00
[admin@WL-00265A88423B root]$
Это в случае ядра 2.6.
Господа! Просьба к тем, у кого прошивка на ядре 2.4, посмотрите, пожалуйста, где аналогичный файл находится у вас, я тогда напишу универсальный скрипт.
Пока hotplug.sh выглядит вот так:

#!/bin/sh

logger -t hotplug "================================================== ==="
logger -t hotplug hotplug.sh started

LJ_1000=3f0/517
LJ_1005=3f0/1317
LJ_1018=3f0/4117
LJ_1020=3f0/2b17
LJ_1022=3f0/2c17
LJ_1022n=3f0/2d17
LJ_1022nw=3f0/3017
LJ_P1005=3f0/3d17
LJ_P1006=3f0/3e17
LJ_P1007=3f0/4817
LJ_P1008=3f0/4917
LJ_P1505=3f0/3f17
LJ_P1505n=3f0/4017

FRM_CAT=/usr/local/hplj/
PRN_BIN=usb_printerid

# detecting printer model
case `cat /proc/bus/usb/devices | grep 3f0 | awk '{print substr($2,9) "/" substr($3,8)}'` in

$LJ_1000)
PRN_FRM=sihp1000.dl
PRN_ID=$LJ_1000
PRN_NAME="HP LaserJet 1000"
;;

$LJ_1005)
PRN_FRM=sihp1005.dl
PRN_ID=$LJ_1005
PRN_NAME="HP LaserJet 1005"
;;

$LJ_1018)
PRN_FRM=sihp1018.dl
PRN_ID=$LJ_1018
PRN_NAME="HP LaserJet 1018"
;;

$LJ_1020)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1020
PRN_NAME="HP LaserJet 1020"
;;

$LJ_1022)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1020
PRN_NAME="HP LaserJet 1022"
;;

$LJ_1022n)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1022n
PRN_NAME="HP LaserJet 1022n"
;;

$LJ_1022nw)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1022nw
PRN_NAME="HP LaserJet 1022nw"
;;

$LJ_P1005)
PRN_FRM=sihpP1005.dl
PRN_ID=$LJ_P1005
PRN_NAME="HP LaserJet P1005"
;;

$LJ_P1006)
PRN_FRM=sihpP1006.dl
PRN_ID=$LJ_P1006
PRN_NAME="HP LaserJet P1006"
;;

$LJ_P1007)
PRN_FRM=sihpP1007.dl
PRN_ID=$LJ_P1007
PRN_NAME="HP LaserJet P1007"
;;

$LJ_P1008)
PRN_FRM=sihpP1008.dl
PRN_ID=$LJ_P1008
PRN_NAME="HP LaserJet P1008"
;;

$LJ_P1505)
PRN_FRM=sihpP1505.dl
PRN_ID=$LJ_P1505
PRN_NAME="HP LaserJet P1505"
;;

$LJ_P1505n)
PRN_FRM=sihpP1505.dl
PRN_ID=$LJ_P1505n
PRN_NAME="HP LaserJet P1505n"
;;

*)
PRN_FRM=''
PRN_ID=fff/ffff
PRN_NAME="unknown"
;;

esac

if [ `cat /proc/version | awk '{print substr($3,0,index(substr($3,index($3,".")+1),".")+1)}'` = 2.6 ] ;
then PRN_DEV=/dev/lp0
else
if [ `cat /proc/version | awk '{print substr($3,0,index(substr($3,index($3,".")+1),".")+1)}'` = 2.4 ] ;
then PRN_DEV=/dev/usb/lp0
else
logger -t hotplug "incompatible linux version :("
exit
fi
fi

logger -t hotplug Request for $ACTION device $PRODUCT at $* interface

if [ $ACTION = "add" ] && [ $PRN_ID != "fff/ffff" ]
then
logger -t hotplug Device is $PRN_NAME

while test ! -e $PRN_DEV; do
logger -t hotplug Waiting for printer response
sleep 1s
done

logger -t hotplug Loading firmware to printer

# If firmware is not loaded yet then loading
$FRM_CAT$PRN_BIN $PRN_DEV | grep -q FWVER || cat $FRM_CAT$PRN_FRM > $PRN_DEV
RET_CODE=$?
sleep 1s

if [ $RET_CODE -eq 0 ]
then logger -t hotplug "Loading successful! :)"
else logger -t hotplug "Loading failed! :("
fi
fi

# Possibility to hotplug other connected devices
/sbin/hotplug $*

logger -t hotplug hotplug.sh ended
logger -t hotplug "************************************************** ***"

dimez
31-08-2012, 12:00
Небольшая оптимизация: строку
case `cat /proc/bus/usb/devices | grep 3f0 | awk '{print substr($2,9) "/" substr($3,8)}'` in
Можно сократить
case `awk '/03f0/ {print substr($2,9) "/" substr($3,8)}' /proc/bus/usb/devices` in

MrGalaxy
31-08-2012, 12:37
Продолжаем разговор. (с)
Не работает последний скрипт, засунутый в hotplug.sh - зацикливается.
Пришлось оставить первичный вариант скрипта с переменной PRODUCT.
А чтоб микрокод принтера загружался в ситуации, когда принтер включается до или во время включения роутера, в post-boot я записал следующее:

#!/bin/sh
...

# occupation of the file lp0, depending on shell version
if [ `cat /proc/version | awk '{print substr($3,0,index(substr($3,index($3,".")+1),".")+1)}'` = 2.6 ] ;
then PRN_DEV=/dev/lp0
else
if [ `cat /proc/version | awk '{print substr($3,0,index(substr($3,index($3,".")+1),".")+1)}'` = 2.4 ] ;
then PRN_DEV=/dev/usb/lp0
else logger -t post-boot "incompatible linux version :("
fi
fi

# analyzing if file lp0 exists then trying to load HP printer firmware
if [ -e $PRN_DEV ] ;
then
LJ_1000=3f0/517
LJ_1005=3f0/1317
LJ_1018=3f0/4117
LJ_1020=3f0/2b17
LJ_1022=3f0/2c17
LJ_1022n=3f0/2d17
LJ_1022nw=3f0/3017
LJ_P1005=3f0/3d17
LJ_P1006=3f0/3e17
LJ_P1007=3f0/4817
LJ_P1008=3f0/4917
LJ_P1505=3f0/3f17
LJ_P1505n=3f0/4017

FRM_CAT=/usr/local/hplj/
PRN_BIN=usb_printerid

# detecting HP printer model
case `cat /proc/bus/usb/devices | grep 3f0 | awk '{print substr($2,9) "/" substr($3,8)}'` in
$LJ_1000)
PRN_FRM=sihp1000.dl
PRN_ID=$LJ_1000
PRN_NAME="HP LaserJet 1000"
;;
$LJ_1005)
PRN_FRM=sihp1005.dl
PRN_ID=$LJ_1005
PRN_NAME="HP LaserJet 1005"
;;
$LJ_1018)
PRN_FRM=sihp1018.dl
PRN_ID=$LJ_1018
PRN_NAME="HP LaserJet 1018"
;;
$LJ_1020)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1020
PRN_NAME="HP LaserJet 1020"
;;
$LJ_1022)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1020
PRN_NAME="HP LaserJet 1022"
;;
$LJ_1022n)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1022n
PRN_NAME="HP LaserJet 1022n"
;;
$LJ_1022nw)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1022nw
PRN_NAME="HP LaserJet 1022nw"
;;
$LJ_P1005)
PRN_FRM=sihpP1005.dl
PRN_ID=$LJ_P1005
PRN_NAME="HP LaserJet P1005"
;;
$LJ_P1006)
PRN_FRM=sihpP1006.dl
PRN_ID=$LJ_P1006
PRN_NAME="HP LaserJet P1006"
;;
$LJ_P1007)
PRN_FRM=sihpP1007.dl
PRN_ID=$LJ_P1007
PRN_NAME="HP LaserJet P1007"
;;
$LJ_P1008)
PRN_FRM=sihpP1008.dl
PRN_ID=$LJ_P1008
PRN_NAME="HP LaserJet P1008"
;;
$LJ_P1505)
PRN_FRM=sihpP1505.dl
PRN_ID=$LJ_P1505
PRN_NAME="HP LaserJet P1505"
;;
$LJ_P1505n)
PRN_FRM=sihpP1505.dl
PRN_ID=$LJ_P1505n
PRN_NAME="HP LaserJet P1505n"
;;
*)
PRN_FRM=''
PRN_ID=fff/ffff
PRN_NAME="unknown"
;;
esac

if [ $PRN_ID != "fff/ffff" ]
then
logger -t post-boot Loading firmware to printer

# Loading firmware
cat $FRM_CAT$PRN_FRM > $PRN_DEV
RET_CODE=$?
sleep 1s

if [ $RET_CODE -eq 0 ]
then logger -t post-boot "Loading successful! :)"
else logger -t post-boot "Loading failed! :("
fi
fi
fi

sleep 2s

# attaching script to hotplug printer
echo "/usr/local/hplj/hotplug.sh" >> /proc/sys/kernel/hotplug

...
Смысл такой: если принтер уже подключен, то файл lp0 существует. Его наличие проверяется и в принтер загружается микрокод, соответствующий его модели. В отсутствие lp0, или когда нужной модели принтера нет в списке, скрипт загрузки игнорируется.
Когда роутер окончательно загрузится, начинает работать скрипт hotplug.sh.
Решение вышло немного громоздким, но работает.
Сегодня весь день отлаживал на работе, благо начальства нет и никто не мешал работать))



ЗЫ. Вопрос про местоположение файла devices в ядре 2.4 остался открытым.

MrGalaxy
14-01-2013, 09:00
С появлением новых версий прошивок скрипт опять перестал работать.
Связано с тем, что файл lp0 появляется только после отработки системного модуля hotplug.
В результате проверка наличия lp0 не проходит и скрипт hotplug.sh зацикливается.
Есть 3 варианта решения:

1. Выкинуть (закомментарить) скрипт проверки наличия lp0:

...

# while test ! -e $PRN_DEV; do
# logger -t hotplug Waiting for printer response
# sleep 1s
# done

...

2. Перенести код

...

# Possibility to hotplug other connected devices
/sbin/hotplug $*

...
в начало скрипта hotplug.sh

3. Добавление скрипта hotplug.sh в post-boot к системному модулю hotplug записать следующим образом (не с добавлением, а с перезаписью):

...

# attaching script to hotplug printer
echo "/usr/local/hplj/hotplug.sh" > /proc/sys/kernel/hotplug

...

Работают все 3 способа, проверил.

И всё же это неправильно, когда скрипт в системе вызывается рекурсивно, как в случае с hotplug. Некрасиво, да и взбрыкнуть может в неподходящий момент. На одних прошивках работает, на других нет.

OMAAGAAD
16-01-2013, 17:04
Здравствуйте, прочитал все 16 страниц, но проблему свою так и не решил:

есть роутер asus rt-n16 и принтер hp lj p1005

делал все по инструкции из первого поста + последний вариант скрипта

на данный момент в папке /usr/local/sbin/ следущее:

drwxr-xr-x 4 admin root 80 Jan 1 2000 ..
-rwxr-xr-x 1 admin root 2123 Jan 16 20:18 hotplug.sh
-rwxr-xr-x 1 admin root 76 Jan 16 20:14 pre-boot
-rwxr-xr-x 1 admin root 116925 Jan 16 20:13 sihp1005.dl
-rwxr-xr-x 1 admin root 5800 Jan 16 20:12 usb_printerid

usb_printerid и sihp1005.dl скачаны по приведенным в первом посте ссылкам

файл hotplug.sh:

#!/bin/sh

LJ_1000=3f0/517
LJ_1005=3f0/1317
LJ_1018=3f0/4117
LJ_1020=3f0/2b17
LJ_1022=3f0/2c17
LJ_1022n=3f0/2d17
LJ_1022nw=3f0/3017
LJ_P1005=3f0/3d17
LJ_P1006=3f0/3e17
LJ_P1007=3f0/4817
LJ_P1008=3f0/4917
LJ_P1505=3f0/3f17
LJ_P1505n=3f0/4017

FRM_CAT=/usr/local/sbin/
PRN_BIN=usb_printerid

case `echo $PRODUCT | awk -F/ '{print $1 "/" $2}'` in
$LJ_1000)
PRN_FRM=sihp1000.dl
PRN_ID=$LJ_1000
PRN_NAME="HP LaserJet 1000"
;;
$LJ_1005)
PRN_FRM=sihp1005.dl
PRN_ID=$LJ_1005
PRN_NAME="HP LaserJet 1005"
;;
$LJ_1018)
PRN_FRM=sihp1018.dl
PRN_ID=$LJ_1018
PRN_NAME="HP LaserJet 1018"
;;
$LJ_1020)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1020
PRN_NAME="HP LaserJet 1020"
;;
$LJ_1022)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1020
PRN_NAME="HP LaserJet 1022"
;;
$LJ_1022n)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1022n
PRN_NAME="HP LaserJet 1022n"
;;
$LJ_1022nw)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1022nw
PRN_NAME="HP LaserJet 1022nw"
;;
$LJ_P1005)
PRN_FRM=sihpP1005.dl
PRN_ID=$LJ_P1005
PRN_NAME="HP LaserJet P1005"
;;
$LJ_P1006)
PRN_FRM=sihpP1006.dl
PRN_ID=$LJ_P1006
PRN_NAME="HP LaserJet P1006"
;;
$LJ_P1007)
PRN_FRM=sihpP1007.dl
PRN_ID=$LJ_P1007
PRN_NAME="HP LaserJet P1007"
;;
$LJ_P1008)
PRN_FRM=sihpP1008.dl
PRN_ID=$LJ_P1008
PRN_NAME="HP LaserJet P1008"
;;
$LJ_P1505)
PRN_FRM=sihpP1505.dl
PRN_ID=$LJ_P1505
PRN_NAME="HP LaserJet P1505"
;;
$LJ_P1505n)
PRN_FRM=sihpP1505.dl
PRN_ID=$LJ_P1505n
PRN_NAME="HP LaserJet P1505n"
;;
*)
PRN_FRM=''
PRN_ID=ffff/ffff
PRN_NAME="unknown"
;;
esac

if [ $veros = 2.6 ] ;
then PRN_DEV=/dev/lp0
else PRN_DEV=/dev/usb/lp0
fi

logger -t hotplug "Request for $ACTION device $PRODUCT at $* interface"

if [ "$ACTION" = "add" ] && [ "$*" = "usb" ] && [ "$DEVFS" = "/proc/bus/usb" ] && [ "$PRN_ID" != "ffff/ffff" ]; then
logger -t hotplug "Device is $PRN_NAME Printer"
while test ! -e $PNT_DEV; do
logger -t hotplug "Waiting for printer respond"
sleep 1s
done

logger -t hotplug "Loading firmware to printer"
$FRM_CAT$PRN_BIN $PRN_DEV | grep -q FWVER || cat $FRM_CAT$PRN_FRM > $PRN_DEV
RET_CODE=$?
sleep 1s

if [ $RET_CODE -eq 0 ] ;
then logger -t hotplug "Loading Successful"
else logger -t hotplug "Loading Failed"
fi
fi
/sbin/hotplug $*

файл pre-boot:


#!/bin/sh
/bin/echo "/usr/local/sbin/hotplug.sh" > /proc/sys/kernel/hotplug

Если ввести usb_printerid dev/lp0:

GET_DEVICE_ID string:
MFG:Hewlett-Packard;MDL:HP LaserJet P1005;CMD:ACL;CLS:PRINTER;DES:HP LaserJet P1005;

В статусе в поле принтера:
9433


По воздуху пытаюсь печатать с мака, вот то, как настроен принтер:
9434

LPR и RAW в настройках роутера включены

В общем, не могу понять почему не печатает ничего. Есть предположение, что прошивка не загружается, собственно по этому принтер даже не "жужжит" :(

Версия прошивки роутера: 1.9.2.7-rtn-r4772

UPD: вроде разобрался, все работает. Но теперь, если отключить принтер (просто нажать на кнопку питания) и включить обратно, ничего не печатается: помогает только ребут роутера :( что подскажите?

UPD2: пару раз включил/выключил и теперь все как и раньше: не печатает ни в какую. Сетевой принтер настроил как нужно (не так как на там скрине, тогда тоже не работало) через HP Jetdirect Socket + выбираю драйвер для принтера: HP LaserJet P1005 1.4.0 - был предложен системой

staticroute
16-01-2013, 22:28
С появлением новых версий прошивок скрипт опять перестал работать.
Связано с тем, что файл lp0 появляется только после отработки системного модуля hotplug.


можно попробовать использовать
mdev -s (должно обновить список устройств)

MrGalaxy
17-01-2013, 05:38
можно попробовать использовать
mdev -s (должно обновить список устройств)
Ради эксперимента попробовал. Не получилось, оставил так, как описал в своём предыдущем посте. Работает - и ладно.

OMAAGAAD, возможно, зависит от того, что у меня модель роутера другая, но я помещаю hotplug.sh в hotplug не в pre-boot, а в post-boot. Иначе не работает. В остальном, вроде, отличий от своих скриптов не вижу. Ну, может быть, маленький штришок. Следующую проверку я убрал как бессмысленную:

&& [ "$*" = "usb" ] && [ "$DEVFS" = "/proc/bus/usb" ]

OMAAGAAD
17-01-2013, 10:14
OMAAGAAD, возможно, зависит от того, что у меня модель роутера другая, но я помещаю hotplug.sh в hotplug не в pre-boot, а в post-boot. Иначе не работает. В остальном, вроде, отличий от своих скриптов не вижу. Ну, может быть, маленький штришок. Следующую проверку я убрал как бессмысленную:

&& [ "$*" = "usb" ] && [ "$DEVFS" = "/proc/bus/usb" ]
Не-а не помогло(
Не могли бы скинуть свои скрипты, ведь насколько я понял, они универсальные. Был бы очень вам признателен :)

MrGalaxy
17-01-2013, 11:06
Не-а не помогло(
Не могли бы скинуть свои скрипты, ведь насколько я понял, они универсальные. Был бы очень вам признателен :)
Да пожалуйста!
post-boot:

#!/bin/sh

# occupation of the file lp0, depending on shell version
if [ `cat /proc/version | awk '{print substr($3,0,index(substr($3,index($3,".")+1),".")+1)}'` = 2.6 ] ;
then PRN_DEV=/dev/lp0
else
if [ `cat /proc/version | awk '{print substr($3,0,index(substr($3,index($3,".")+1),".")+1)}'` = 2.4 ] ;
then PRN_DEV=/dev/usb/lp0
else logger -t post-boot "incompatible linux version :("
fi
fi

# analyzing if file lp0 exists then trying to load HP printer firmware
if [ -e $PRN_DEV ] ;
then
LJ_1000=3f0/517
LJ_1005=3f0/1317
LJ_1018=3f0/4117
LJ_1020=3f0/2b17
LJ_1022=3f0/2c17
LJ_1022n=3f0/2d17
LJ_1022nw=3f0/3017
LJ_P1005=3f0/3d17
LJ_P1006=3f0/3e17
LJ_P1007=3f0/4817
LJ_P1008=3f0/4917
LJ_P1505=3f0/3f17
LJ_P1505n=3f0/4017

FRM_CAT=/usr/local/hplj/
PRN_BIN=usb_printerid

# detecting HP printer model
case `cat /proc/bus/usb/devices | grep 3f0 | awk '{print substr($2,9) "/" substr($3,8)}'` in
$LJ_1000)
PRN_FRM=sihp1000.dl
PRN_ID=$LJ_1000
PRN_NAME="HP LaserJet 1000"
;;
$LJ_1005)
PRN_FRM=sihp1005.dl
PRN_ID=$LJ_1005
PRN_NAME="HP LaserJet 1005"
;;
$LJ_1018)
PRN_FRM=sihp1018.dl
PRN_ID=$LJ_1018
PRN_NAME="HP LaserJet 1018"
;;
$LJ_1020)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1020
PRN_NAME="HP LaserJet 1020"
;;
$LJ_1022)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1020
PRN_NAME="HP LaserJet 1022"
;;
$LJ_1022n)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1022n
PRN_NAME="HP LaserJet 1022n"
;;
$LJ_1022nw)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1022nw
PRN_NAME="HP LaserJet 1022nw"
;;
$LJ_P1005)
PRN_FRM=sihpP1005.dl
PRN_ID=$LJ_P1005
PRN_NAME="HP LaserJet P1005"
;;
$LJ_P1006)
PRN_FRM=sihpP1006.dl
PRN_ID=$LJ_P1006
PRN_NAME="HP LaserJet P1006"
;;
$LJ_P1007)
PRN_FRM=sihpP1007.dl
PRN_ID=$LJ_P1007
PRN_NAME="HP LaserJet P1007"
;;
$LJ_P1008)
PRN_FRM=sihpP1008.dl
PRN_ID=$LJ_P1008
PRN_NAME="HP LaserJet P1008"
;;
$LJ_P1505)
PRN_FRM=sihpP1505.dl
PRN_ID=$LJ_P1505
PRN_NAME="HP LaserJet P1505"
;;
$LJ_P1505n)
PRN_FRM=sihpP1505.dl
PRN_ID=$LJ_P1505n
PRN_NAME="HP LaserJet P1505n"
;;
*)
PRN_FRM=''
PRN_ID=fff/ffff
PRN_NAME="unknown"
;;
esac

if [ $PRN_ID != "fff/ffff" ]
then
logger -t post-boot Loading firmware to printer

# Loading firmware
cat $FRM_CAT$PRN_FRM > $PRN_DEV
RET_CODE=$?
sleep 1s

if [ $RET_CODE -eq 0 ]
then logger -t post-boot "Loading during post-boot successful! :)"
else logger -t post-boot "Loading during post-boot failed! :("
fi
fi
fi

sleep 2s

# attaching script to hotplug printer
echo "/usr/local/hplj/hotplug.sh" >> /proc/sys/kernel/hotplug

# starting process to analyze printer connection and indicate it
/usr/local/bin/printer_ind &

hotplug.sh:

#!/bin/sh

logger -t hotplug "================================================== ==="
logger -t hotplug hotplug.sh started

# Possibility to hotplug other connected devices
/sbin/hotplug $*

LJ_1000=3f0/517
LJ_1005=3f0/1317
LJ_1018=3f0/4117
LJ_1020=3f0/2b17
LJ_1022=3f0/2c17
LJ_1022n=3f0/2d17
LJ_1022nw=3f0/3017
LJ_P1005=3f0/3d17
LJ_P1006=3f0/3e17
LJ_P1007=3f0/4817
LJ_P1008=3f0/4917
LJ_P1505=3f0/3f17
LJ_P1505n=3f0/4017

FRM_CAT=/usr/local/hplj/
PRN_BIN=usb_printerid

case `echo $PRODUCT | awk -F/ '{print $1 "/" $2}'` in
$LJ_1000)
PRN_FRM=sihp1000.dl
PRN_ID=$LJ_1000
PRN_NAME="HP LaserJet 1000"
;;
$LJ_1005)
PRN_FRM=sihp1005.dl
PRN_ID=$LJ_1005
PRN_NAME="HP LaserJet 1005"
;;
$LJ_1018)
PRN_FRM=sihp1018.dl
PRN_ID=$LJ_1018
PRN_NAME="HP LaserJet 1018"
;;
$LJ_1020)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1020
PRN_NAME="HP LaserJet 1020"
;;
$LJ_1022)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1020
PRN_NAME="HP LaserJet 1022"
;;
$LJ_1022n)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1022n
PRN_NAME="HP LaserJet 1022n"
;;
$LJ_1022nw)
PRN_FRM=sihp1020.dl
PRN_ID=$LJ_1022nw
PRN_NAME="HP LaserJet 1022nw"
;;
$LJ_P1005)
PRN_FRM=sihpP1005.dl
PRN_ID=$LJ_P1005
PRN_NAME="HP LaserJet P1005"
;;
$LJ_P1006)
PRN_FRM=sihpP1006.dl
PRN_ID=$LJ_P1006
PRN_NAME="HP LaserJet P1006"
;;
$LJ_P1007)
PRN_FRM=sihpP1007.dl
PRN_ID=$LJ_P1007
PRN_NAME="HP LaserJet P1007"
;;
$LJ_P1008)
PRN_FRM=sihpP1008.dl
PRN_ID=$LJ_P1008
PRN_NAME="HP LaserJet P1008"
;;
$LJ_P1505)
PRN_FRM=sihpP1505.dl
PRN_ID=$LJ_P1505
PRN_NAME="HP LaserJet P1505"
;;
$LJ_P1505n)
PRN_FRM=sihpP1505.dl
PRN_ID=$LJ_P1505n
PRN_NAME="HP LaserJet P1505n"
;;
*)
PRN_FRM=''
PRN_ID=fff/ffff
PRN_NAME="unknown"
;;
esac

if [ `cat /proc/version | awk '{print substr($3,0,index(substr($3,index($3,".")+1),".")+1)}'` = 2.6 ] ;
then PRN_DEV=/dev/lp0
else
if [ `cat /proc/version | awk '{print substr($3,0,index(substr($3,index($3,".")+1),".")+1)}'` = 2.4 ] ;
then PRN_DEV=/dev/usb/lp0
else
logger -t hotplug "incompatible linux version :("
exit
fi
fi

logger -t hotplug Request for $ACTION device $PRODUCT at $* interface

if [ $ACTION = "add" ] && [ $PRN_ID != "fff/ffff" ]
then
logger -t hotplug Device is $PRN_NAME
logger -t hotplug Loading firmware to printer

# If firmware is not loaded yet then loading
$FRM_CAT$PRN_BIN $PRN_DEV | grep -q FWVER || cat $FRM_CAT$PRN_FRM > $PRN_DEV
RET_CODE=$?
sleep 1s

if [ $RET_CODE -eq 0 ]
then logger -t hotplug "Loading during hotplug successful! :)"
else logger -t hotplug "Loading during hotplug failed! :("
fi
fi

logger -t hotplug hotplug.sh ended
logger -t hotplug "************************************************** ***"

Ну, и индикация (подправите под свою модель) ptinter_ind:

#!/bin/sh

# Script to analyze if printer is connected and then to indicate it

# starting unlimited loop
while true ; do

# occupation of the file lp0, depending on shell version
if [ `cat /proc/version | awk '{print substr($3,0,index(substr($3,index($3,".")+1),".")+1)}'` = 2.6 ] ;
then PRN_DEV=/dev/lp0
else
if [ `cat /proc/version | awk '{print substr($3,0,index(substr($3,index($3,".")+1),".")+1)}'` = 2.4 ] ;
then PRN_DEV=/dev/usb/lp0
fi
fi

# analyzing if file lp0 exists
if [ -e $PRN_DEV ] ;
# switching on/off of the power LED
then
if [ -n "`/bin/pidof pwrled`" ] ;
then killall pwrled
fi
pwrled on
else
if [ -z "`/bin/pidof pwrled`" ] ;
then
pwrled -c 0 -n 1 -d 4 -e 4 -b
fi
fi

# pause of 2 s
sleep 2s

done

OMAAGAAD
17-01-2013, 13:36
Да пожалуйста!


Не заработало :( причем,судя по-всему, не отработал post-boot:

Jan 1 04:00:11 post-boot: Loading firmware to printer
Jan 1 04:00:11 pppd[339]: CHAP authentication succeeded
Jan 1 04:00:11 pppd[339]: CHAP authentication succeeded
Jan 1 04:00:12 post-boot: Loading during post-boot failed! :(

На всех файлах +x :(

UPD:

Нашел, в чем была проблема - в разных директориях у нас с вами хранятся файлы hplj у вас и sbin у меня :)

Но принтер печатать так и не стал, причем вот что происходит в консоли:

an 1 04:00:14 post-boot: Loading firmware to printer
Jan 1 04:00:14 pppd[340]: CHAP authentication succeeded
Jan 1 04:00:14 pppd[340]: CHAP authentication succeeded
Jan 1 04:00:15 post-boot: Loading during post-boot successful! :)
Jan 1 04:00:16 pppd[340]: local IP address 128.68.109.15
Jan 1 04:00:16 pppd[340]: remote IP address 85.21.0.251
Jan 1 04:00:16 pppd[340]: primary DNS address 85.21.192.5
Jan 1 04:00:16 pppd[340]: secondary DNS address 213.234.192.7
Jan 1 04:00:16 L2TP: connected to ISP
Jan 1 04:00:16 dnsmasq[225]: read /etc/hosts - 2 addresses
Jan 1 04:00:16 dnsmasq[225]: using nameserver 213.234.192.7#53
Jan 1 04:00:16 dnsmasq[225]: using nameserver 85.21.192.5#53
Jan 17 18:50:11 pppd[340]: System time change detected.
Jan 17 18:51:00 ntp client: Synchronizing time with pool.ntp.org...
Jan 17 18:52:18 p9100d[290]: Connection from ::ffff:192.168.1.230 port 57289 accepted
Jan 17 18:52:23 p9100d[290]: Finished job: 66268 bytes received

На сколько я понял данные для печати он получает, но вот что-то дальше без движений :(

UPD2: разобрался, печатает, но только включения/выключения принтера, потом опять ни в какую требует ребут роутера :(

MrGalaxy
18-01-2013, 04:34
только включения/выключения принтера, потом опять ни в какую требует ребут роутера :(
Что в логах после включения-выключения принтера?

OMAAGAAD
18-01-2013, 08:51
Что в логах после включения-выключения принтера?


Jan 18 12:49:49 kernel: usb 1-1: USB disconnect, address 2
Jan 18 12:49:49 hotplug: ================================================== ===
Jan 18 12:49:49 hotplug: hotplug.sh started
Jan 18 12:49:49 hotplug: Request for remove device at usb_device interface
Jan 18 12:49:49 hotplug: hotplug.sh ended
Jan 18 12:49:49 hotplug: ************************************************** ***
Jan 18 12:49:49 hotplug: ================================================== ===
Jan 18 12:49:49 hotplug: hotplug.sh started
Jan 18 12:49:49 hotplug: Request for remove device 3f0/3d17/100 at usb interface
Jan 18 12:49:49 hotplug: hotplug.sh ended
Jan 18 12:49:49 hotplug: ************************************************** ***
Jan 18 12:49:49 hotplug: ================================================== ===
Jan 18 12:49:49 hotplug: hotplug.sh started
Jan 18 12:49:49 hotplug: Request for remove device at usb interface
Jan 18 12:49:49 hotplug: hotplug.sh ended
Jan 18 12:49:49 hotplug: ************************************************** ***
Jan 18 12:49:49 hotplug: ================================================== ===
Jan 18 12:49:49 hotplug: hotplug.sh started
Jan 18 12:49:49 hotplug: Request for remove device at class interface
Jan 18 12:49:49 hotplug: hotplug.sh ended
Jan 18 12:49:49 hotplug: ************************************************** ***
Jan 18 12:49:49 hotplug: ================================================== ===
Jan 18 12:49:49 hotplug: hotplug.sh started
Jan 18 12:49:49 hotplug: Request for remove device 3f0/3d17/100 at usb interface
Jan 18 12:49:49 hotplug: hotplug.sh ended
Jan 18 12:49:49 hotplug: ************************************************** ***
Jan 18 12:49:53 kernel: usb 1-1: new high speed USB device using ehci_hcd and address 3
Jan 18 12:49:53 hotplug: ================================================== ===
Jan 18 12:49:53 hotplug: hotplug.sh started
Jan 18 12:49:53 kernel: usb 1-1: configuration #1 chosen from 1 choice
Jan 18 12:49:53 hotplug: ================================================== ===
Jan 18 12:49:53 hotplug: hotplug.sh started
Jan 18 12:49:53 kernel: usblp0: USB Bidirectional printer dev 3 if 0 alt 0 proto 2 vid 0x03F0 pid 0x3D17
Jan 18 12:49:53 kernel: drivers/usb/class/usblp.c: usblp0 Device ID string [86]='MFG:Hewlett-Packard;MDL:HP LaserJet P1005;CMD:ACL;CLS:PRINTER;DES:HP LaserJet P1005;'
Jan 18 12:49:53 hotplug: ================================================== ===
Jan 18 12:49:53 hotplug: hotplug.sh started
Jan 18 12:49:53 hotplug: Request for add device at usb_device interface
Jan 18 12:49:53 hotplug: hotplug.sh ended
Jan 18 12:49:53 hotplug: ************************************************** ***
Jan 18 12:49:53 hotplug: hotplug.sh started
Jan 18 12:49:53 hotplug: Request for add device 3f0/3d17/100 at usb interface
Jan 18 12:49:53 hotplug: Device is HP LaserJet P1005
Jan 18 12:49:53 hotplug: Loading firmware to printer
Jan 18 12:49:53 hotplug: Request for add device at usb interface
Jan 18 12:49:53 hotplug: hotplug.sh ended
Jan 18 12:49:53 hotplug: ************************************************** ***
Jan 18 12:49:53 hotplug: Request for add device at class interface
Jan 18 12:49:53 hotplug: hotplug.sh ended
Jan 18 12:49:53 hotplug: ************************************************** ***
Jan 18 12:49:53 hotplug: Request for add device 3f0/3d17/100 at usb interface
Jan 18 12:49:53 hotplug: Device is HP LaserJet P1005
Jan 18 12:49:53 hotplug: Loading firmware to printer
Jan 18 12:49:54 hotplug: Loading during hotplug failed! :(
Jan 18 12:49:54 hotplug: hotplug.sh ended
Jan 18 12:49:54 hotplug: ************************************************** ***
Jan 18 12:49:54 hotplug: Loading during hotplug failed! :(
Jan 18 12:49:54 hotplug: hotplug.sh ended
Jan 18 12:49:54 hotplug: ************************************************** ***

MrGalaxy
18-01-2013, 11:04
Судя по логам, скрипт работает. Похоже на аппаратную ошибку. Попробуйте принудительно на роутере установить режим usb1.1 и использовать другой кабель.

Хотя, при перезагрузке, Вы пишете, всё работает. Значит, дело не в аппаратной части...
У меня пока мыслей нет.:confused:

OMAAGAAD
18-01-2013, 17:25
Хм, сменил на юсб 1.1, поменял кабель, но, похоже, ничего не изменилось: если принтер включен и делаю ребут роутера, то все работает как часы, но если выключить и выключить принтер, то все попытки распечтать тщетны.
Все-таки не грузится прошивка, после такого выключения включения, вроде даже скрипт об этом рапортует :(

Jan 1 04:00:08 kernel: drivers/usb/class/usblp.c: usblp0 Device ID string [86]='MFG:Hewlett-Packard;MDL:HP LaserJet P1005;CMD:ACL;CLS:PRINTER;DES:HP LaserJet P1005;'
Jan 1 04:00:08 kernel: usbcore: registered new interface driver usb-storage
Jan 1 04:00:08 kernel: USB Mass Storage support registered.
Jan 1 04:00:08 kernel: NTFS driver 2.1.30 [Flags: R/O MODULE].
Jan 1 04:00:08 dhcp client: skipping resetting IP address to 0.0.0.0
Jan 1 04:00:08 dhcp client: deconfig: lease is lost
Jan 1 04:00:08 kernel: vlan2: dev_set_allmulti(master, 1)
Jan 1 04:00:08 dhcp client: bound IP : 10.185.53.40 from 10.185.48.1
Jan 1 04:00:08 dnsmasq[225]: read /etc/hosts - 2 addresses
Jan 1 04:00:08 dnsmasq[225]: using nameserver 213.234.192.8#53
Jan 1 04:00:08 dnsmasq[225]: using nameserver 85.21.192.3#53
Jan 1 04:00:10 pppd[327]: Plugin pppol2tp.so loaded.
Jan 1 04:00:10 pppd[327]: pppd 2.4.5 started by admin, uid 0
Jan 1 04:00:10 pppd[327]: Using interface ppp0
Jan 1 04:00:10 pppd[327]: Connect: ppp0 <--> l2tp (85.21.0.254)
Jan 1 04:00:10 post-boot: Loading firmware to printer
Jan 1 04:00:10 pppd[327]: CHAP authentication succeeded
Jan 1 04:00:10 pppd[327]: CHAP authentication succeeded
Jan 1 04:00:11 dnsmasq-dhcp[225]: DHCPREQUEST(br0) 192.168.1.230 14:10:9f:d7:d7:c1
Jan 1 04:00:11 dnsmasq-dhcp[225]: DHCPACK(br0) 192.168.1.230 14:10:9f:d7:d7:c1 MacBookPro-tema
Jan 1 04:00:12 pppd[327]: local IP address 95.28.4.176
Jan 1 04:00:12 pppd[327]: remote IP address 85.21.0.254
Jan 1 04:00:12 pppd[327]: primary DNS address 85.21.192.5
Jan 1 04:00:12 pppd[327]: secondary DNS address 213.234.192.7
Jan 1 04:00:12 L2TP: connected to ISP
Jan 1 04:00:12 dnsmasq[225]: read /etc/hosts - 2 addresses
Jan 1 04:00:12 dnsmasq[225]: using nameserver 213.234.192.7#53
Jan 1 04:00:12 dnsmasq[225]: using nameserver 85.21.192.5#53
Jan 1 04:00:14 dnsmasq-dhcp[225]: DHCPREQUEST(br0) 192.168.1.251 a4:d1:d2:e7:d0:1e
Jan 1 04:00:14 dnsmasq-dhcp[225]: DHCPACK(br0) 192.168.1.251 a4:d1:d2:e7:d0:1e iPhone
Jan 1 04:00:14 post-boot: Loading during post-boot successful! :)
Jan 18 21:32:04 pppd[327]: System time change detected.
Jan 18 21:32:06 login[356]: root login on 'pts/0'
Jan 18 21:32:27 kernel: usb 1-1: USB disconnect, address 2
Jan 18 21:32:27 hotplug: ================================================== ===
Jan 18 21:32:27 hotplug: hotplug.sh started
Jan 18 21:32:27 hotplug: Request for remove device 3f0/3d17/100 at usb interface
Jan 18 21:32:27 hotplug: hotplug.sh ended
Jan 18 21:32:27 hotplug: ================================================== ===
Jan 18 21:32:27 hotplug: hotplug.sh started
Jan 18 21:32:27 hotplug: Request for remove device at class interface
Jan 18 21:32:27 hotplug: hotplug.sh ended
Jan 18 21:32:27 hotplug: ================================================== ===
Jan 18 21:32:27 hotplug: hotplug.sh started
Jan 18 21:32:27 hotplug: Request for remove device 3f0/3d17/100 at usb interface
Jan 18 21:32:27 hotplug: hotplug.sh ended
Jan 18 21:32:27 hotplug: ================================================== ===
Jan 18 21:32:27 hotplug: hotplug.sh started
Jan 18 21:32:27 hotplug: Request for remove device at usb_device interface
Jan 18 21:32:27 hotplug: hotplug.sh ended
Jan 18 21:32:27 hotplug: ================================================== ===
Jan 18 21:32:27 hotplug: hotplug.sh started
Jan 18 21:32:27 hotplug: Request for remove device at usb interface
Jan 18 21:32:27 hotplug: hotplug.sh ended
Jan 18 21:32:28 kernel: usb 1-1: new full speed USB device using ohci_hcd and address 3
Jan 18 21:32:28 hotplug: ================================================== ===
Jan 18 21:32:28 hotplug: hotplug.sh started
Jan 18 21:32:29 kernel: usb 1-1: configuration #1 chosen from 1 choice
Jan 18 21:32:29 hotplug: ================================================== ===
Jan 18 21:32:29 hotplug: hotplug.sh started
Jan 18 21:32:29 kernel: usblp0: USB Bidirectional printer dev 3 if 0 alt 0 proto 2 vid 0x03F0 pid 0x3D17
Jan 18 21:32:29 kernel: drivers/usb/class/usblp.c: usblp0 Device ID string [86]='MFG:Hewlett-Packard;MDL:HP LaserJet P1005;CMD:ACL;CLS:PRINTER;DES:HP LaserJet P1005;'
Jan 18 21:32:29 hotplug: ================================================== ===
Jan 18 21:32:29 hotplug: hotplug.sh started
Jan 18 21:32:29 hotplug: Request for add device at usb_device interface
Jan 18 21:32:29 hotplug: hotplug.sh ended
Jan 18 21:32:29 hotplug: hotplug.sh started
Jan 18 21:32:29 hotplug: Request for add device 3f0/3d17/100 at usb interface
Jan 18 21:32:29 hotplug: Device is HP LaserJet P1005
Jan 18 21:32:29 hotplug: Loading firmware to printer
Jan 18 21:32:29 hotplug: Request for add device at usb interface
Jan 18 21:32:29 hotplug: hotplug.sh ended
Jan 18 21:32:29 hotplug: Request for add device at class interface
Jan 18 21:32:29 hotplug: hotplug.sh ended
Jan 18 21:32:29 hotplug: Request for add device 3f0/3d17/100 at usb interface
Jan 18 21:32:29 hotplug: Device is HP LaserJet P1005
Jan 18 21:32:29 hotplug: Loading firmware to printer
Jan 18 21:32:30 hotplug: Loading during hotplug failed! :(
Jan 18 21:32:30 hotplug: hotplug.sh ended
Jan 18 21:32:30 hotplug: Loading during hotplug failed! :(
Jan 18 21:32:30 hotplug: hotplug.sh ended
Jan 18 21:32:54 ntp client: Synchronizing time with pool.ntp.org...

MrGalaxy
19-01-2013, 09:32
Пока кто-нибудь из понимающих товарищей не напишет, почему скрипт hotplug.sh выполняется несколько раз, вместо одного (что хорошо видно из логов), мы с места не сдвинемся.:confused:

ConstAntz
20-01-2013, 06:36
Просто USB так устроено. hotplug вызывается для каждого Interface и Class USB устройства, и тем паче, если оно составное. Работая через конструкцию /proc/sys/kernel/hotplug, есть вероятность, что скрипт будет вызываться не только при подключении USB-устройств. Ваш скрипт нужно дополнить избирательной логикой.

Григорий
20-04-2015, 11:25
Есть DIR-320 A1 с прошивкой DIR320-1.9.2.7-d-r2624M.trx от Vampik, пытаюсь подключить принтер HP1020, принтер при загрузке команд в роутер печатает нормально, НО при попытке сохранения выдается:
[admin@WL-f07d683e7c8d sbin]$ flashfs save && flashfs commit && flashfs enable && reboot
tar: removing leading '/' from member names
tmp/local/
tmp/local/sbin/
tmp/local/sbin/pre-boot
tmp/local/sbin/hotplug.sh
tmp/local/sbin/sihp1020.dl
tmp/local/sbin/usb_printerid
tmp/local/root/
-rw-r--r-- 1 admin root 71088 Apr 10 10:09 /tmp/flash.tar.gz
Check saved image and type "/sbin/flashfs commit" to commit changes
/tmp/flash.tar.gz: File is too big (71088, max 65536)
На странице http://oleg.wl500g.info/ указывается - PRECAUTION: Before committing the changes check the /tmp/flash.tar.gz file size. It should not exceed 65536 bytes (this is a flash space limitation).
Вопрос: это преодолимо?? Как, при условии использования только внутренней памяти (4Мб) без использования внешних флешек?
ПС: гугл не помог

ryzhov_al
20-04-2015, 11:43
/tmp/flash.tar.gz: File is too big (71088, max 65536)

Вопрос: это преодолимо?? Как, при условии использования только внутренней памяти (4Мб) без использования внешних флешек?
ПС: гугл не помогКажется, нет. У вас в распоряжении 64КБ flashfs, а файл микропрограммы sihp1020.dl вряд ли можно чем-то ужать.

Григорий
20-04-2015, 12:14
Кажется, нет. У вас в распоряжении 64КБ flashfs, а файл микропрограммы sihp1020.dl вряд ли можно чем-то ужать.

Надежда умирает последней - а как же с тем же flashfs работает у коллег? Кто может из гуру форума дать пояснения!? может возможно изменить 64КБ flashfs ????

ryzhov_al
20-04-2015, 13:41
Надежда умирает последней - а как же с тем же flashfs работает у коллег? Кто может из гуру форума дать пояснения!? может возможно изменить 64КБ flashfs ????У DIR-320 куций флеш, куда и прошивка-то еле влезает. У коллег наверняка работает на wl500gpv1 и прочих устройствах.

Григорий
20-04-2015, 13:50
У DIR-320 куций флеш, куда и прошивка-то еле влезает. У коллег наверняка работает на wl500gpv1 и прочих устройствах.
А вот тут и есть недопонимание - ограничение объемом флеш-памяти роутера или как вы писали "Кажется, нет. У вас в распоряжении 64КБ flashfs,"" - те чисто программное ограничение, кто нибудь грамотно может дать пояснения????

ryzhov_al
20-04-2015, 15:15
Это «чисто программное ограничение» взято не с потолка. Пространство флеша надо распределить между загрузчиком, прошивкой (ядро+rootfs), настройками (nvram) и вашими скриптами (flashfs). Посмотреть разбивку флеша можно в выводе:

cat /proc/mtd
В вашем роутере стоит микросхема флеша 4МБ, поэтому на flashfs остаётся лишь 64КБ (0х10000 bytes). Что не ясно-то?