PDA

Bekijk de volledige versie : Как подружить роутер и принтер HP LaserJet?



SpireStone
17-06-2012, 08:05
Ребят, расскажите как подружить роутер RT-N10U и принтер HP LaserJet 1020 с Вашей прошивкой?
Скачивал стабильные версии (http://code.google.com/p/wl500g/downloads/list) и "ночные" релизы (http://asus.vectormm.net/rtn/) - ничего не получается!
Опишите, пожалуйста, по пунктам... ну или ткните носом где почитать! :)

SpireStone
17-06-2012, 20:28
Почитал... нашел такой способ! На примере HP 1018...

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

Но... не нашел нужные мне файлы usb_printerid и sihp1020.dl т.к. сайт Олега "лежит" и не встает! Может у кого есть дубликаты этих файлов?

TReX
17-06-2012, 20:33
А кто-нибудь с энтузиастской прошивкой пробовал этот роутер но в черном корпусе? Не поменялось там железо?

dima-ryabykh
17-06-2012, 20:45
Но... не нашел нужные мне файлы usb_printerid и sihp1020.dl т.к. сайт Олега "лежит" и не встает! Может у кого есть дубликаты этих файлов?
Обе ссылки полностью рабочие, сам только что проверил. Попробуйте еще раз.

SpireStone
17-06-2012, 21:11
А кто-нибудь с энтузиастской прошивкой пробовал этот роутер но в черном корпусе? Не поменялось там железо?

У меня как раз такой... сижу - мучаюсь))


Обе ссылки полностью рабочие, сам только что проверил. Попробуйте еще раз.

Будь добр, перезалей куда-нибудь... Не пускает меня что-то на этот сайт... ни одна ссылка не работает! :(

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

TReX
17-06-2012, 23:21
У меня как раз такой... сижу - мучаюсь))


A какие конкретно проблемы? Энтузиастская прошивка то встала?

staticroute
18-06-2012, 05:44
Почитал... нашел такой способ! На примере HP 1018...

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

Но... не нашел нужные мне файлы usb_printerid и sihp1020.dl т.к. сайт Олега "лежит" и не встает! Может у кого есть дубликаты этих файлов?

Там два IP у oleg.wl500g.info, первый из них не работает (158.250.19.3), поэтому wget тупит изначально.

Оба файла приложены к этому топику, можете залить через ssh (WinSCP / Filezilla) на роутер их.

По поводу метода hotplug.sh, раньше я подобный метод использовал на 1.9.2.7-10 (олега), все прекрасно работало, в прошивке энтузиастов, при использовании этого метода, флешки не детектятся совсем (видимо поменялось что-то в алгоритме хотплага) после ребута, но принтер у меня прекрасно работает без каких-либо телодвижений сразу. Правда принтер у меня не такой, как у вас,а старенький струйник от HP.

SpireStone
18-06-2012, 20:59
A какие конкретно проблемы? Энтузиастская прошивка то встала?
Прошивка встала... По заданному алгоритму создается 5 файлов, которые можно проверить командой ls.
Но принтер никак не реагирует! Смущает то, что не горит светодиод подключенного USB-принтера!
И после выполнения скрипта - пропадает подключенный статус принтера в веб-интерфейсе роутера!
На установку по TCP/IP порту - никакой реакции! Принтер создается, но не печатает!
Даже никаких команд на него не посылается... :(

SpireStone
19-06-2012, 19:32
Ребят, что не так? :(
1. Захожу через PuTTY в роутер (пробывал и Telnet и SSH протоколы)
2. Ввожу данный скрипт (см. пост выше)
3. Все хорошо... создаются файлы, но от принтера никакой реакции! Диод подключенного принтера не горит! В веб интерфейсе принтер виден, но после скрипта пропадает!
4. Принтер в XP создается, печатать принимается... видно задание на печать, но сама печать не идет! Потом пропадает и задание!

Сбрасывал настройки на дефолт и ДО и ПОСЛЕ прошивки. Сейчас стоит "ночной" билд RT-N10U-1.9.2.7-rtn-r4375.trx. Ну никак не хотят принтер и роутер дружить! :(

Со стоковой асусовской прошивкой принтер работает, но правда через виртуальный порт USB, а не TCP/IP!

staticroute
19-06-2012, 20:01
Ребят, что не так? :(
1. Захожу через PuTTY в роутер (пробывал и Telnet и SSH протоколы)
2. Ввожу данный скрипт (см. пост выше)
3. Все хорошо... создаются файлы, но от принтера никакой реакции! Диод подключенного принтера не горит! В веб интерфейсе принтер виден, но после скрипта пропадает!
4. Принтер в XP создается, печатать принимается... видно задание на печать, но сама печать не идет! Потом пропадает и задание!

Сбрасывал настройки на дефолт и ДО и ПОСЛЕ прошивки. Сейчас стоит "ночной" билд RT-N10U-1.9.2.7-rtn-r4375.trx. Ну никак не хотят принтер и роутер дружить! :(

Со стоковой асусовской прошивкой принтер работает, но правда через виртуальный порт USB, а не TCP/IP!

Надо смотреть лог, принтер вообще виден у вас в dmesg ?

SpireStone
19-06-2012, 20:24
Надо смотреть лог, принтер вообще виден у вас в dmesg ?

Если я Вас правильно понимаю, то Вы об этом?


Linux version 2.6.22.19 (root@localhost) (gcc version 4.5.3 (GCC) ) #1 Sun Jun 17 02:10:20 MSK 2012
CPU revision is: 00019749
Found a 8MB ST compatible serial flash
Determined physical RAM map:
memory: 02000000 @ 00000000 (usable)
On node 0 totalpages: 8192
Normal zone: 64 pages used for memmap
Normal zone: 0 pages reserved
Normal zone: 8128 pages, LIFO batch:0
Built 1 zonelists. Total pages: 8128
Kernel command line: root=/dev/mtdblock2 noinitrd init=/sbin/init console=ttyS0,115200
Primary instruction cache 32kB, physically tagged, 4-way, linesize 32 bytes.
Primary data cache 32kB, 4-way, linesize 32 bytes.
Synthesized TLB refill handler (20 instructions).
Synthesized TLB load handler fastpath (32 instructions).
Synthesized TLB store handler fastpath (32 instructions).
Synthesized TLB modify handler fastpath (31 instructions).
PID hash table entries: 128 (order: -3, 512 bytes)
CPU: BCM5357 rev 1 at 300 MHz
Using 150.000 MHz high precision timer.
console [ttyS0] enabled
Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
Memory: 29200k/32768k available (2499k kernel code, 3568k reserved, 526k data, 116k init, 0k highmem)
SLUB: Genslabs=6, HWalign=32, Order=0-1, MinObjects=4, CPUs=1, Nodes=1
Calibrating delay loop... 148.99 BogoMIPS (lpj=74496)
Mount-cache hash table entries: 512
NET: Registered protocol family 16
PCI: no core
PCI: Fixing up bus 0
Time: MIPS clocksource has been installed.
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 1024 (order: 1, 8192 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 1024 bind 1024)
TCP reno registered
squashfs: version 3.4 (2008/08/26) Phillip Lougher
squashfs: LZMA suppport for slax.org by jro
io scheduler noop registered (default)
HDLC line discipline: version $Revision: 4.8 $, maxframe=4096
N_HDLC line discipline registered.
Serial: 8250/16550 driver $Revision: 1.90 $ 2 ports, IRQ sharing enabled
serial8250: ttyS0 at MMIO 0xb8000300 (irq = 8) is a 16550A
loop: module loaded
PPP generic driver version 2.4.2
PPP Deflate Compression module registered
PPP BSD Compression module registered
MPPE/MPPC encryption/compression module registered
pflash: found no supported devices
sflash: squashfs filesystem found at block 1205
Creating 5 MTD partitions on "sflash":
0x00000000-0x00020000 : "boot"
0x00020000-0x007f0000 : "linux"
0x0012d598-0x007f0000 : "rootfs"
0x007f0000-0x00800000 : "nvram"
0x005f0000-0x007f0000 : "flashfs"
GACT probability NOT on
Mirror/redirect action on
u32 classifier
Performance counters on
input device check on
Actions configured
Netfilter messages via NETLINK v0.30.
nf_conntrack version 0.5.0 (1024 buckets, 4096 max)
BCM fast NAT: INIT
ip_tables: (C) 2000-2006 Netfilter Core Team
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 10
ip6_tables: (C) 2000-2006 Netfilter Core Team
IPv6 over IPv4 tunneling driver
NET: Registered protocol family 17
802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com>
All bugs added by David S. Miller <davem@redhat.com>
VFS: Mounted root (squashfs filesystem) readonly.
Freeing unused kernel memory: 116k freed
Algorithmics/MIPS FPU Emulator v1.5
emf: module license 'Proprietary' taints kernel.
PCI: Setting latency timer of device 0000:00:02.0 to 64
eth0: Broadcom BCM47XX 10/100/1000 Mbps Ethernet Controller 5.60.127.5
PCI: Setting latency timer of device 0000:00:01.0 to 64
eth1: Broadcom BCM4329 802.11 Wireless Controller 5.60.127.5
NET: Registered protocol family 24
PPPoL2TP kernel driver, V0.18.3
vlan0: add 33:33:00:00:00:01 mcast address to master interface
vlan0: add 01:00:5e:00:00:01 mcast address to master interface
vlan0: dev_set_promiscuity(master, 1)
device eth0 entered promiscuous mode
device vlan0 entered promiscuous mode
device eth1 entered promiscuous mode
br0: port 2(eth1) entering forwarding state
br0: port 1(vlan0) entering forwarding state
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
PCI: Setting latency timer of device 0000:00:04.1 to 64
ehci_hcd 0000:00:04.1: EHCI Host Controller
ehci_hcd 0000:00:04.1: new USB bus registered, assigned bus number 1
ehci_hcd 0000:00:04.1: irq 5, io mem 0x18004000
ehci_hcd 0000:00:04.1: USB 0.0 started, EHCI 1.00
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
PCI: Setting latency timer of device 0000:00:04.0 to 64
ohci_hcd 0000:00:04.0: OHCI Host Controller
ohci_hcd 0000:00:04.0: new USB bus registered, assigned bus number 2
ohci_hcd 0000:00:04.0: irq 5, io mem 0x18009000
usb 1-1: new high speed USB device using ehci_hcd and address 2
usb usb2: configuration #1 chosen from 1 choice
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 2 ports detected
usb 1-1: configuration #1 chosen from 1 choice
usblp0: USB Bidirectional printer dev 2 if 0 alt 0 proto 2 vid 0x03F0 pid 0x2B17
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;'
usbcore: registered new interface driver usblp
SCSI subsystem initialized
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
NTFS driver 2.1.30 [Flags: R/O MODULE].
vlan1: add 33:33:00:00:00:01 mcast address to master interface
vlan1: add 01:00:5e:00:00:01 mcast address to master interface
vlan1: dev_set_allmulti(master, 1)
vlan1: add 01:00:5e:42:4b:30 mcast address to master interface

Объясните, пожалуйста, поподробнее как дальше действовать...

staticroute
19-06-2012, 21:08
Если я Вас правильно понимаю, то Вы об этом?
Объясните, пожалуйста, поподробнее как дальше действовать...
Это пробовали - http://wl500g.info/showthread.php?4092-HP-LaserJet-1000-1005-1020-not-working-sort-of-solution&p=24807#post24807 ?

SpireStone
19-06-2012, 21:18
Это пробовали - http://wl500g.info/showthread.php?4092-HP-LaserJet-1000-1005-1020-not-working-sort-of-solution&p=24807#post24807 ?

Да, на что PuTTY отвечает:

./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: can't create /dev/usb/lp0: nonexistent directory

staticroute
19-06-2012, 21:28
Так попробуйте:

./usb_printerid /dev/lp0 | grep -q FWVER || cat sihp1020.dl > /dev/lp0

SpireStone
19-06-2012, 21:50
Так попробуйте:

./usb_printerid /dev/lp0 | grep -q FWVER || cat sihp1020.dl > /dev/lp0


Спасибо!!! Печатает!!! :) Так гораздо лучше!!! Но диод так и не горит)
Я уже тоже стал копать в совместимость кода от -d к -rtn! Но ведь это только до перезагрузки!

Пытался причесать большой скрипт, чтобы и после перезагрузки печататься, в соответствии с этим (удалить параметр /usb/)... но как-то не получается...

staticroute
19-06-2012, 22:22
Спасибо!!! Печатает!!! :) Так гораздо лучше!!! Но диод так и не горит)
Я уже тоже стал копать в совместимость кода от -d к -rtn! Но ведь это только до перезагрузки!

Пытался причесать большой скрипт, чтобы и после перезагрузки печататься, в соответствии с этим (удалить параметр /usb/)... но как-то не получается...

сделайте, как тут - http://wl500g.info/showthread.php?4092-HP-LaserJet-1000-1005-1020-not-working-sort-of-solution&p=25148#post25148
только замените на /dev/lp0.

файлы у вас во флэш помещаются или на usb ?

SpireStone
20-06-2012, 03:31
сделайте, как тут - http://wl500g.info/showthread.php?4092-HP-LaserJet-1000-1005-1020-not-working-sort-of-solution&p=25148#post25148
только замените на /dev/lp0.

файлы у вас во флэш помещаются или на usb ?

Файлы помещаются во флеш, проверяю через System Setup - Flashfs Management!
Какова моя последовательность действий? А то я уже путаться начинаю...

1.
cd /tmp
wget http://oleg.wl500g.info/hplj/usb_printerid
wget http://oleg.wl500g.info/hplj/sihp1020.dl
chmod +x usb_printerid
./usb_printerid /dev/lp0 | grep -q FWVER || cat sihp1020.dl > /dev/lp0
Принтер начинает шуршать - печать работает!
Далее добавляю? (заменив на dev/lp0)

2.
#!/bin/sh
echo --------------- >> /tmp/hotplug.log
date >> /tmp/hotplug.log
echo $* >> /tmp/hotplug.log
set >> /tmp/hotplug.log
if [ "$ACTION" = "add" ] || [ "$1" = "usb" ] || [ "$DEVFS" = "/proc/bus/usb" ]; then
sleep 5
/tmp/harddisk/etc/usb_printerid /dev/lp0 | grep -q FWVER || cat /tmp/harddisk/etc/sihp1020.dl > /dev/lp0
echo "Firmware loaded succesfully!" >> /tmp/hotplug.log
else
echo "Device removed" >> /tmp/hotplug.log

fi
/sbin/hotplug $*

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

Получается, что этого достаточно? Но ведь файлы помещаются в папку tmp, которая очищается...
И следующий скрипт без параметра /usb/ работать не желает...

3.
# 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/sihp1020.dl

# make hotplug.sh file
echo "#!/bin/sh" > hotplug.sh
echo "/usr/local/sbin/usb_printerid /dev/lp0 | grep -q FWVER || cat /usr/local/sbin/sihp1020.dl > /dev/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/lp0 ]" >> post-boot
echo "cat /usr/local/sbin/sihp1020.dl>/dev/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
Перед танцами с бубном предварительно очищаю флеш.

staticroute
20-06-2012, 08:02
Файлы помещаются во флеш, проверяю через System Setup - Flashfs Management!
Какова моя последовательность действий? А то я уже путаться начинаю...

1.
cd /tmp
wget http://oleg.wl500g.info/hplj/usb_printerid
wget http://oleg.wl500g.info/hplj/sihp1020.dl
chmod +x usb_printerid
./usb_printerid /dev/lp0 | grep -q FWVER || cat sihp1020.dl > /dev/lp0

Лучше добавлять файлы тогда в /usr/local/sbin


cd /usr/local/sbin
wget http://oleg.wl500g.info/hplj/usb_printerid
wget http://oleg.wl500g.info/hplj/sihp1020.dl
chmod +x usb_printerid





2.
#!/bin/sh
echo --------------- >> /tmp/hotplug.log
date >> /tmp/hotplug.log
echo $* >> /tmp/hotplug.log
set >> /tmp/hotplug.log
if [ "$ACTION" = "add" ] || [ "$1" = "usb" ] || [ "$DEVFS" = "/proc/bus/usb" ]; then
sleep 5
/tmp/harddisk/etc/usb_printerid /dev/lp0 | grep -q FWVER || cat /tmp/harddisk/etc/sihp1020.dl > /dev/lp0
echo "Firmware loaded succesfully!" >> /tmp/hotplug.log
else
echo "Device removed" >> /tmp/hotplug.log

fi
/sbin/hotplug $*

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

Лучше записать вот такой скрипт в /usr/local/sbin/hotplug.sh:


#!/bin/sh
# Upload the firmware to the printer
PROD=3f0/2b17/100
PRINTERID=/usr/local/sbin/usb_printerid
FIRMWARE=/usr/local/sbin/sihp1020.dl
DEVICE=/dev/lp0

if [ "$PRODUCT" = "$PROD" ] && [ "$ACTION" = "add" ]; then
${PRINTERID} ${DEVICE} | grep -q FWVER || cat ${FIRMWARE} > ${DEVICE}
echo "`date` Firmware loaded for HP LaserJet 1020 device ${DEVICE}" >> /tmp/syslog.log
fi
/sbin/hotplug $*




Получается, что этого достаточно? Но ведь файлы помещаются в папку tmp, которая очищается...
И следующий скрипт без параметра /usb/ работать не желает...

3.
# 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/sihp1020.dl

# make hotplug.sh file
echo "#!/bin/sh" > hotplug.sh
echo "/usr/local/sbin/usb_printerid /dev/lp0 | grep -q FWVER || cat /usr/local/sbin/sihp1020.dl > /dev/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/lp0 ]" >> post-boot
echo "cat /usr/local/sbin/sihp1020.dl>/dev/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
Перед танцами с бубном предварительно очищаю флеш.

В общем-то нужно добавить в /usr/local/sbin/post-boot:


#!/bin/sh
if [ -w "/dev/lp0" ]; then
PRINTERID=/usr/local/sbin/usb_printerid
FIRMWARE=/usr/local/sbin/sihp1020.dl
DEVICE=/dev/lp0
${PRINTERID} ${DEVICE} | grep -q FWVER || cat ${FIRMWARE} > ${DEVICE}
fi
echo "/usr/local/sbin/hotplug.sh" > /proc/sys/kernel/hotplug


Далее сделать:


chmod +x /usr/local/sbin/post-boot
chmod +x /usr/local/sbin/hotplug.sh
flashfs save && flashfs commit && flashfs enable


Как-то так, тогда, если у вас принтер уже будет подключен к роутеру до его старта, по идее должен прогрузить Firmware.

SpireStone
20-06-2012, 19:58
Выражаю благодарность staticroute - за непосильную помощь и Omega - за направление в нужное русло!

Спасибо, ребят! Разобрался... Все получилось! Принтер печатает даже после перезагрузки! За это время стал немного понимать в столь темных для меня вещах...
Теперь все стоковые асусовские прошивки идут лесом. Все равно от них толку - нуль, да и поддержки тоже!

Будем дальше осваивать энтузиазные прошивки! Спасибо! Если появятся вопросы - то я к Вам! :)

P.S.: так для меня и осталось загадкой почему диод подключенного usb не горит на роутере....

SpireStone
26-07-2012, 20:00
Ребят, пользуюсь предыдущим кодом (пост от staticroute) для печати, но принтер отваливается после перезагрузки... Приходится каждый раз вызывать его командой... как это лечится? :(

staticroute
26-07-2012, 21:51
Ребят, пользуюсь предыдущим кодом (пост от staticroute) для печати, но принтер отваливается после перезагрузки... Приходится каждый раз вызывать его командой... как это лечится? :(

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

Попробуйте, добавить тот же самый код в /usr/local/sbin/post-boot

SpireStone
29-07-2012, 18:49
Вообще странно, так как хотплаг должен отрабатывать автоматически, как только принтер подсоединен или подгружен драйвер для принтера.

Попробуйте, добавить тот же самый код в /usr/local/sbin/post-boot

У меня сейчас в этом файле прописан код:

#!/bin/sh
if [ -w "/dev/lp0" ]; then
PRINTERID=/usr/local/sbin/usb_printerid
FIRMWARE=/usr/local/sbin/sihp1020.dl
DEVICE=/dev/lp0
${PRINTERID} ${DEVICE} | grep -q FWVER || cat ${FIRMWARE} > ${DEVICE}
fi
echo "/usr/local/sbin/hotplug.sh" > /proc/sys/kernel/hotplug

Командой ls проверяю наличие файлов в /usr/local/sbin/
Их там 4 шт. : hotplug.sh post-boot sihp1020.dl usb_printerid
3 из которых исполнительные (зеленые), но почему-то принтер отваливается с завидной периодичностью...

staticroute
29-07-2012, 20:13
У меня сейчас в этом файле прописан код:

#!/bin/sh
if [ -w "/dev/lp0" ]; then
PRINTERID=/usr/local/sbin/usb_printerid
FIRMWARE=/usr/local/sbin/sihp1020.dl
DEVICE=/dev/lp0
${PRINTERID} ${DEVICE} | grep -q FWVER || cat ${FIRMWARE} > ${DEVICE}
fi
echo "/usr/local/sbin/hotplug.sh" > /proc/sys/kernel/hotplug

Командой ls проверяю наличие файлов в /usr/local/sbin/
Их там 4 шт. : hotplug.sh post-boot sihp1020.dl usb_printerid
3 из которых исполнительные (зеленые), но почему-то принтер отваливается с завидной периодичностью...

В смысле отваливается после ребута ? Или во время работы роутера ?

SpireStone
30-07-2012, 20:02
В смысле отваливается после ребута ? Или во время работы роутера ?

После перезагрузки системы! Приходится заного прописывать данный скрипт через PUTTY!

staticroute
30-07-2012, 20:17
После перезагрузки системы! Приходится заного прописывать данный скрипт через PUTTY!

Наверное, нужно добавить этот скрипт в /usr/local/sbin/post-mount из post-boot можете убрать.

Тогда он вызовется после монтирования устройств, по сути принтер тоже по-своему монтируется.

(https://code.google.com/p/wl500g/wiki/UserScripts)

Попробуйте и отпишитесь, должно работать.

SpireStone
31-07-2012, 21:30
Наверное, нужно добавить этот скрипт в /usr/local/sbin/post-mount из post-boot можете убрать.

Тогда он вызовется после монтирования устройств, по сути принтер тоже по-своему монтируется.

(https://code.google.com/p/wl500g/wiki/UserScripts)

Попробуйте и отпишитесь, должно работать.

Никакой реакции... добавил файл post-mount, а post-boot удалил... печать на принтер уходит - и тут же обнуляется в задании... пока не пропишу через PuTTY скрипт:
#!/bin/sh
if [ -w "/dev/lp0" ]; then
PRINTERID=/usr/local/sbin/usb_printerid
FIRMWARE=/usr/local/sbin/sihp1020.dl
DEVICE=/dev/lp0
${PRINTERID} ${DEVICE} | grep -q FWVER || cat ${FIRMWARE} > ${DEVICE}
fi
echo "/usr/local/sbin/hotplug.sh" > /proc/sys/kernel/hotplug на принтере даже лампочки не мигают... :(

staticroute
31-07-2012, 21:44
Никакой реакции... добавил файл post-mount, а post-boot удалил... печать на принтер уходит - и тут же обнуляется в задании... пока не пропишу через PuTTY скрипт:
#!/bin/sh
if [ -w "/dev/lp0" ]; then
PRINTERID=/usr/local/sbin/usb_printerid
FIRMWARE=/usr/local/sbin/sihp1020.dl
DEVICE=/dev/lp0
${PRINTERID} ${DEVICE} | grep -q FWVER || cat ${FIRMWARE} > ${DEVICE}
fi
echo "/usr/local/sbin/hotplug.sh" > /proc/sys/kernel/hotplug на принтере даже лампочки не мигают... :(


chmod +x /usr/local/sbin/post-mount

сделали?

вообще странно, логика-то простая, инициализировать принтер после того, как он появился в системе, по идее принтер должен уже появится перед запуском post-mount.

попробуйте добавить
killall -9 p910nd; p910nd -f /dev/lp0 0 в конце post-mount..

можно попробовать конечно еще сунуть в pre-mount, но вообще он инициализирует вроде бы уже после подгрузки драйвера, поэкспериментируйте в общем..

файлы-то не забыли сохранить ?
flashfs save && flashfs commit && flashfs enable

SpireStone
01-08-2012, 10:21
chmod +x /usr/local/sbin/post-mount

сделали?

вообще странно, логика-то простая, инициализировать принтер после того, как он появился в системе, по идее принтер должен уже появится перед запуском post-mount.

попробуйте добавить
killall -9 p910nd; p910nd -f /dev/lp0 0 в конце post-mount..

можно попробовать конечно еще сунуть в pre-mount, но вообще он инициализирует вроде бы уже после подгрузки драйвера, поэкспериментируйте в общем..

файлы-то не забыли сохранить ?
flashfs save && flashfs commit && flashfs enable

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

И еще смущает, почему файлы сидят не только в /urs/local/sbin, но и в /tmp/local/sbin. Ведь как я понимаю, флеш активируется для /tmp/local/sbin?

staticroute
01-08-2012, 14:56
Может проблема в том, что компьютер и роутер висят у меня на одной розетке (фильтр), и когда я выключаю компьютер - роутер соответсвенно отключается... Моежет он после этого терять терять принтер?

И еще смущает, почему файлы сидят не только в /urs/local/sbin, но и в /tmp/local/sbin. Ведь как я понимаю, флеш активируется для /tmp/local/sbin?


все верно /usr/local является симлинком на /tmp/local[b].

вообще надо просто понять появляется ли /dev/lp0 в post-mount, добавьте вот это для теста в [b]/usr/local/sbin/post-mount:


#!/bin/sh
if [ -w "/dev/lp0" ]; then
echo "YES" >> /tmp/printer
PRINTERID=/usr/local/sbin/usb_printerid
FIRMWARE=/usr/local/sbin/sihp1020.dl
DEVICE=/dev/lp0
${PRINTERID} ${DEVICE} | grep -q FWVER || cat ${FIRMWARE} > ${DEVICE}
else
echo "NO" >> /tmp/printer
fi
echo "/usr/local/sbin/hotplug.sh" > /proc/sys/kernel/hotplug

После загрузки посмотреть содержимое /tmp/printer.


cat /tmp/printer

если там NO то рыть на предмет когда появляется сам принтер или попробовать добавить в pre-boot, в hotplug.sh у вас также должно быть что-то типа такого:

#!/bin/sh
# Upload the firmware to the printer
PROD=3f0/2b17/100
PRINTERID=/usr/local/sbin/usb_printerid
FIRMWARE=/usr/local/sbin/sihp1020.dl
DEVICE=/dev/lp0

if [ "$PRODUCT" = "$PROD" ] && [ "$ACTION" = "add" ]; then
${PRINTERID} ${DEVICE} | grep -q FWVER || cat ${FIRMWARE} > ${DEVICE}
echo "`date` Firmware loaded for HP LaserJet 1020 device ${DEVICE}" >> /tmp/syslog.log
fi
/sbin/hotplug $*

SpireStone
02-08-2012, 09:35
staticroute
1. Если принтер и роутер не отключались от сети, и я через PuTTY во флеш их прописал командой
#!/bin/sh
if [ -w "/dev/lp0" ]; then
echo "YES" >> /tmp/printer
PRINTERID=/usr/local/sbin/usb_printerid
FIRMWARE=/usr/local/sbin/sihp1020.dl
DEVICE=/dev/lp0
${PRINTERID} ${DEVICE} | grep -q FWVER || cat ${FIRMWARE} > ${DEVICE}
else
echo "NO" >> /tmp/printer
fi
echo "/usr/local/sbin/hotplug.sh" > /proc/sys/kernel/hotplug
тогда при посылке команды
cat /tmp/printer
пишется YES!
2. Если отключить принтер и роутер от сети (а висят они на одном фильтре), то при посыле команды
cat /tmp/printer пишется, что мол, такой директории не существует!!!
Следовательно, можно сделать вывод, что флеш при этом не подгружается?
В прикрепленном файле моя флеш... посмотрите, может что не так?

staticroute
02-08-2012, 16:08
staticroute
1. Если принтер и роутер не отключались от сети, и я через PuTTY во флеш их прописал командой
#!/bin/sh
if [ -w "/dev/lp0" ]; then
echo "YES" >> /tmp/printer
PRINTERID=/usr/local/sbin/usb_printerid
FIRMWARE=/usr/local/sbin/sihp1020.dl
DEVICE=/dev/lp0
${PRINTERID} ${DEVICE} | grep -q FWVER || cat ${FIRMWARE} > ${DEVICE}
else
echo "NO" >> /tmp/printer
fi
echo "/usr/local/sbin/hotplug.sh" > /proc/sys/kernel/hotplug
тогда при посылке команды
cat /tmp/printer
пишется YES!
2. Если отключить принтер и роутер от сети (а висят они на одном фильтре), то при посыле команды
cat /tmp/printer пишется, что мол, такой директории не существует!!!
Следовательно, можно сделать вывод, что флеш при этом не подгружается?
В прикрепленном файле моя флеш... посмотрите, может что не так?

Ничего не понял, что значит "отключить принтер и роутер" ? Вы в этом случае ничего не увидите и роутер у вас работать не будет. Мне кажется проблема в том, что роутер у вас загружается быстрее принтера и, скорее всего, роутер в момент полной загрузки принтер не видит (принтер все еще инициализируется). Вам нужно, чтобы это подтвердить посмотреть после загрузки роутера /tmp/router, если там NO, значит так и есть. Вообще hotplug.sh скрипт должен отработать в любом случае, как только принтер будет подсоединен к роутеру, попробуйте вместо его содержимого указать такое (возможно там есть ошибка) в /usr/local/sbin/hotplug.sh:



#!/bin/sh
if [ -w "/dev/lp0" ]; then
echo "printer connected" >> /tmp/printer
PRINTERID=/usr/local/sbin/usb_printerid
FIRMWARE=/usr/local/sbin/sihp1020.dl
DEVICE=/dev/lp0
${PRINTERID} ${DEVICE} | grep -q FWVER || cat ${FIRMWARE} > ${DEVICE}
else
echo "printer disconnected" >> /tmp/printer
fi
/sbin/hotplug $*

SpireStone
02-08-2012, 18:55
Ничего не понял, что значит "отключить принтер и роутер" ? Вы в этом случае ничего не увидите и роутер у вас работать не будет. Мне кажется проблема в том, что роутер у вас загружается быстрее принтера и, скорее всего, роутер в момент полной загрузки принтер не видит (принтер все еще инициализируется). Вам нужно, чтобы это подтвердить посмотреть после загрузки роутера /tmp/router, если там NO, значит так и есть. Вообще hotplug.sh скрипт должен отработать в любом случае, как только принтер будет подсоединен к роутеру, попробуйте вместо его содержимого указать такое (возможно там есть ошибка) в /usr/local/sbin/hotplug.sh:



#!/bin/sh
if [ -w "/dev/lp0" ]; then
echo "printer connected" >> /tmp/printer
PRINTERID=/usr/local/sbin/usb_printerid
FIRMWARE=/usr/local/sbin/sihp1020.dl
DEVICE=/dev/lp0
${PRINTERID} ${DEVICE} | grep -q FWVER || cat ${FIRMWARE} > ${DEVICE}
else
echo "printer disconnected" >> /tmp/printer
fi
/sbin/hotplug $*


Если завершить работу компьютера и выключить фильтр! На фильтре висят ПК, принтер и роутер!
Затем включаем фильтр - грузим компьютер!
Пытаемся распечатать - видим, что задание ушло на принтер... и потом обнулилось! От принтера никакой реакции!
Идем в PyTTY:
1. Пытаемся посмотреть, определились ли принтеры - видим, что нет!
2. Прописываем код из hotplug.sh - принтер замигал!
3. Смотрим - принтер определился!

Теперь самое интересное! Если просто перезагрузить компьютер (не отключая фильтр на котором все висит), то роутер потом увидит принтер и можно будет печать! Но если Завершить сеанс и выключить фильтр (т.е. отключить всю оргтехнику) - то можно смело повторять действия с п. 1.
Флеш моя прикреплена в предыдущем посте... вот думаю, где что не так... :(

staticroute
02-08-2012, 19:36
Если завершить работу компьютера и выключить фильтр! На фильтре висят ПК, принтер и роутер!

Тогда у вас ничего работать не будет :)



Затем включаем фильтр - грузим компьютер!
Пытаемся распечатать - видим, что задание ушло на принтер... и потом обнулилось! От принтера никакой реакции!

посмотрите есть ли что-то в /tmp/printer к этому моменту, не забудьте добавить код, как я посоветовал в предыдущем посте в файлы и сохраните флэш.

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



Идем в PyTTY:
1. Пытаемся посмотреть, определились ли принтеры - видим, что нет!
2. Прописываем код из hotplug.sh - принтер замигал!
3. Смотрим - принтер определился!

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




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



Но если Завершить сеанс и выключить фильтр (т.е. отключить всю оргтехнику) - то можно смело повторять действия с п. 1.
Значит не отрабатывает либо hotplug.sh, либо у вас не успевает принтер загрузится, тогда как роутер уже все скрипты отработал.

SpireStone
02-08-2012, 20:07
.....
Значит не отрабатывает либо hotplug.sh, либо у вас не успевает принтер загрузится, тогда как роутер уже все скрипты отработал.

Вот и мне кажется что не отрабатывает hotplug.sh.
Итак... имеем... 4 файла...
hotplug.sh, post-mount, sihp1020.dl, usb_printerid / 3 исполнительных!
hotplug.sh:

#!/bin/sh
if [ -w "/dev/lp0" ]; then
echo "printer connected" >> /tmp/printer
PRINTERID=/usr/local/sbin/usb_printerid
FIRMWARE=/usr/local/sbin/sihp1020.dl
DEVICE=/dev/lp0
${PRINTERID} ${DEVICE} | grep -q FWVER || cat ${FIRMWARE} > ${DEVICE}
else
echo "printer disconnected" >> /tmp/printer
fi
/sbin/hotplug $*

post-mount:

#!/bin/sh
if [ -w "/dev/lp0" ]; then
echo "YES" >> /tmp/printer
PRINTERID=/usr/local/sbin/usb_printerid
FIRMWARE=/usr/local/sbin/sihp1020.dl
DEVICE=/dev/lp0
${PRINTERID} ${DEVICE} | grep -q FWVER || cat ${FIRMWARE} > ${DEVICE}
else
echo "NO" >> /tmp/printer
fi
echo "/usr/local/sbin/hotplug.sh" > /proc/sys/kernel/hotplug

Ну и соответсвенно sihp1020.dl, usb_printerid загружены с сайта - их не трогаем....

Загружаем компьютер со всей перефирией... лезем в PuTTY...
если бы hotplug.sh отрабатывал при загрузке, то через
cat /tmp/printer
выводилось бы YES или NO в зависимости от ситуации... А в моем случае, выводится "can't open '/tmp/printer': No such file or directory", но после отработки скрипта вручную через PuTTY принтер определяется, т.е. по команде выводится YES!

Флеш естессно сохраняю командой
flashfs save && flashfs commit && flashfs enable

staticroute
02-08-2012, 20:10
Вот и мне кажется что не отрабатывает hotplug.sh.
Итак... имеем... 4 файла...
hotplug.sh, post-mount, sihp1020.dl, usb_printerid / 3 исполнительных!
hotplug.sh:

#!/bin/sh
if [ -w "/dev/lp0" ]; then
echo "printer connected" >> /tmp/printer
PRINTERID=/usr/local/sbin/usb_printerid
FIRMWARE=/usr/local/sbin/sihp1020.dl
DEVICE=/dev/lp0
${PRINTERID} ${DEVICE} | grep -q FWVER || cat ${FIRMWARE} > ${DEVICE}
else
echo "printer disconnected" >> /tmp/printer
fi
/sbin/hotplug $*

post-mount:

#!/bin/sh
if [ -w "/dev/lp0" ]; then
echo "YES" >> /tmp/printer
PRINTERID=/usr/local/sbin/usb_printerid
FIRMWARE=/usr/local/sbin/sihp1020.dl
DEVICE=/dev/lp0
${PRINTERID} ${DEVICE} | grep -q FWVER || cat ${FIRMWARE} > ${DEVICE}
else
echo "NO" >> /tmp/printer
fi
echo "/usr/local/sbin/hotplug.sh" > /proc/sys/kernel/hotplug

Ну и соответсвенно sihp1020.dl, usb_printerid загружены с сайта - их не трогаем....

Загружаем компьютер со всей перефирией... лезем в PuTTY...
если бы hotplug.sh отрабатывал при загрузке, то через
cat /tmp/printer
выводилось бы YES или NO в зависимости от ситуации... А в моем случае, выводится "can't open '/tmp/printer': No such file or directory", но после отработки скрипта вручную через PuTTY принтер определяется, т.е. по команде выводится YES!

Флеш естессно сохраняю командой
flashfs save && flashfs commit && flashfs enable

переименуйте post-mount в post-boot

SpireStone
02-08-2012, 20:36
переименуйте post-mount в post-boot

Никакой разницы...
cat: can't open '/tmp/printer': No such file or directory
Не отрабатывает hotplug.sh
После прописки скрипта вручную - все работает...
где же накосячили мои руки? :confused:

ConstAntz
02-08-2012, 21:19
если бы hotplug.sh отрабатывал при загрузке, то через
cat /tmp/printer
выводилось бы YES или NO в зависимости от ситуации...

Не совсем верное утверждение. Не отрабатывает на ранней стадии или echo (ввиду отсутсвия полного пути к нему), либо редирект в файл. ;)


Никакой разницы...
...
где же накосячили мои руки? :confused:


sleep 20s перед if не помог?

SpireStone
02-08-2012, 22:09
Не совсем верное утверждение. Не отрабатывает на ранней стадии или echo (ввиду отсутсвия полного пути к нему), либо редирект в файл. ;)


sleep 20s перед if не помог?

Неа... не помог! Может я как-то не правильно скрипты пишу? :confused:
Наверно пора уже к костоправу сходить - пусть мои руки проверит! У всех работает... а у меня - нет!

staticroute
02-08-2012, 22:09
да нет, никаких путей не надо, echo должно отрабатывать корректно, все пути уже включены перед тем, как пускать какой-то скрипт.

а какая версия прошивки у вас SpireStone ?

похоже post-boot вообще не пускается чтоли..

SpireStone
02-08-2012, 22:17
да нет, никаких путей не надо, echo должно отрабатывать корректно, все пути уже включены перед тем, как пускать какой-то скрипт.

а какая версия прошивки у вас SpireStone ?

похоже post-boot вообще не пускается чтоли..

RT-N10U-1.9.2.7-rtn-r4525M.trx , та которая от Vampika! Но она тоже на энтузиазной основана...

staticroute
02-08-2012, 22:38
RT-N10U-1.9.2.7-rtn-r4525M.trx , та которая от Vampika! Но она тоже на энтузиазной основана...

попробуйте просто потестить, добавьте в post-boot, что-нибудь типа:



#!/bin/sh
/bin/echo "POST-BOOT STARTED" >> /tmp/syslog.log


и посмотрите syslog на наличие этого слова

SpireStone
03-08-2012, 10:02
попробуйте просто потестить, добавьте в post-boot, что-нибудь типа:



#!/bin/sh
/bin/echo "POST-BOOT STARTED" >> /tmp/syslog.log


и посмотрите syslog на наличие этого слова

1. Очистил полностью флеш;
2. Создал директорию /usr/local/sbin
3. Создал там 1 файл post-boot и прописал Ваш код;
4. Сделал его исполнительным;
5. Выключил / включил компьютер;
6. Проверяю syslog.log на наличие данного слова
7. Его нет! :confused:

SpireStone
03-08-2012, 10:04
Здравствуйте, на дняю купил RT-N10U в черном корпусе, не работало IPTV, понял что без прошивки от энтузиастов не обойтись.
Как указано, сделал сброс нажатием кнопки ручкой на задней панели роутера, через стандартное обновление залил прошивку RT-N10U-1.9.2.7-rtn-r4527.trx, IPTV работает даже по вайфаю, за что огромное спасибо!
Теперь о проблеме. Почему-то постоянно отваливается WiFi, нужно перегружать роутер, или WiFi сеть есть но без инета, т.е. опять таки помогает перегрузка.
Есть ли решение такой проблемы?

Откатится на версию RT-N10U-1.9.2.7-rtn-r4525 - там не отваливается!
P.S. сегодня сам обновился до 4527 - намучался с WiFi, потом одумался и откатился на 4525...

staticroute
03-08-2012, 10:25
1. Очистил полностью флеш;
2. Создал директорию /usr/local/sbin
3. Создал там 1 файл post-boot и прописал Ваш код;
4. Сделал его исполнительным;
5. Выключил / включил компьютер;
6. Проверяю syslog.log на наличие данного слова
7. Его нет! :confused:

Ребутнуть надо роутер, а не компьютер. Плохо, значит что-то поломали видать в прошивке Vampik-a, связанное с загрузочными скриптами..

SpireStone
03-08-2012, 10:33
Ребутнуть надо роутер, а не компьютер. Плохо, значит что-то поломали видать в прошивке Vampik-a, связанное с загрузочными скриптами..

Усе сделал как надо... POST-BOOT нашелся...
куда копаем дальше, шеф? ;)

staticroute
03-08-2012, 10:42
Усе сделал как надо... POST-BOOT нашелся...
куда копаем дальше, шеф? ;)

Сделайте hotplug.sh такой же как я давал последний вариант, в /usr/local/sbin/pre-boot запишите вот это:


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


не забудьте

chmod +x /usr/local/sbin/pre-boot; flashfs save && flashfs commit && flashfs enable

ребутнуть роутер после этого надо будет естественно.
должно автоматом подгружать, как только принтер будет подсоединен..

SpireStone
03-08-2012, 11:02
Сделайте hotplug.sh такой же как я давал последний вариант, в /usr/local/sbin/pre-boot запишите вот это:


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


не забудьте

chmod +x /usr/local/sbin/pre-boot; flashfs save && flashfs commit && flashfs enable

ребутнуть роутер после этого надо будет естественно.
должно автоматом подгружать, как только принтер будет подсоединен..

Сделал... вот что вижу...

staticroute
03-08-2012, 11:07
Сделал... вот что вижу...

упс, опечатался


#!/bin/sh вместо
#/bin/sh

/usr/local/sbin/hotlug.sh

#!/bin/sh
if [ -w "/dev/lp0" ]; then
/bin/echo "printer connected" >> /tmp/printer
PRINTERID=/usr/local/sbin/usb_printerid
FIRMWARE=/usr/local/sbin/sihp1020.dl
DEVICE=/dev/lp0
${PRINTERID} ${DEVICE} | grep -q FWVER || cat ${FIRMWARE} > ${DEVICE}
else
/bin/echo "printer disconnected" >> /tmp/printer
fi
/sbin/hotplug $*

лучше вставлять vi.

i для инсерта и потом вставляете.
:wq выйти с сохранением

SpireStone
03-08-2012, 11:49
staticroute,
меня смущает, почему при команде cat /tmp/printer выводится can't open '/tmp/printer': No such file or directory.
Остальные файлы вроде бы верно прописаны...

staticroute
03-08-2012, 15:56
staticroute,
меня смущает, почему при команде cat /tmp/printer выводится can't open '/tmp/printer': No such file or directory.
Остальные файлы вроде бы верно прописаны...

Отредактировал, чтобы было /bin/echo, возможно в этом проблема? Попробуйте так.

SpireStone
03-08-2012, 21:17
Отредактировал, чтобы было /bin/echo, возможно в этом проблема? Попробуйте так.
Смотрите... сейчас имею:
1. hotplug.sh:

#!/bin/sh
if [ -w "/dev/lp0" ]; then
echo "printer connected" >> /tmp/printer
PRINTERID=/usr/local/sbin/usb_printerid
FIRMWARE=/usr/local/sbin/sihp1020.dl
DEVICE=/dev/lp0
${PRINTERID} ${DEVICE} | grep -q FWVER || cat ${FIRMWARE} > ${DEVICE}
else
echo "printer disconnected" >> /tmp/printer
fi
/sbin/hotplug $*
2. post-boot:

#!/bin/sh
if [ -w "/dev/lp0" ]; then
echo "YES" >> /tmp/printer
PRINTERID=/usr/local/sbin/usb_printerid
FIRMWARE=/usr/local/sbin/sihp1020.dl
DEVICE=/dev/lp0
${PRINTERID} ${DEVICE} | grep -q FWVER || cat ${FIRMWARE} > ${DEVICE}
else
echo "NO" >> /tmp/printer
fi
echo "/usr/local/sbin/hotplug.sh" > /proc/sys/kernel/hotplug
3. pre-boot:

#!/bin/sh
/bin/echo "/usr/local/sbin/hotplug.sh" > /proc/sys/kernel/hotplug
Все файлы исполняемые (зеленые).
Загружаем систему (одновременно грузится роутер, принтер и ПК)... во время загрузки ХР принтер начинает мигать лампочками... значит pre-boot отработал.
Захожу в PuTTY - смотрю cat /tmp/printer:
printer connected
YES
Пытаюсь распечатать - задание уходит, появляется на принтере и сразу обнуляется!

staticroute
03-08-2012, 21:19
Смотрите... сейчас имею:
1. hotplug.sh:

#!/bin/sh
if [ -w "/dev/lp0" ]; then
echo "printer connected" >> /tmp/printer
PRINTERID=/usr/local/sbin/usb_printerid
FIRMWARE=/usr/local/sbin/sihp1020.dl
DEVICE=/dev/lp0
${PRINTERID} ${DEVICE} | grep -q FWVER || cat ${FIRMWARE} > ${DEVICE}
else
echo "printer disconnected" >> /tmp/printer
fi
/sbin/hotplug $*
2. post-boot:

#!/bin/sh
if [ -w "/dev/lp0" ]; then
echo "YES" >> /tmp/printer
PRINTERID=/usr/local/sbin/usb_printerid
FIRMWARE=/usr/local/sbin/sihp1020.dl
DEVICE=/dev/lp0
${PRINTERID} ${DEVICE} | grep -q FWVER || cat ${FIRMWARE} > ${DEVICE}
else
echo "NO" >> /tmp/printer
fi
echo "/usr/local/sbin/hotplug.sh" > /proc/sys/kernel/hotplug
3. pre-boot:

#!/bin/sh
/bin/echo "/usr/local/sbin/hotplug.sh" > /proc/sys/kernel/hotplug
Все файлы исполняемые (зеленые).
Загружаем систему (одновременно грузится роутер, принтер и ПК)... во время загрузки ХР принтер начинает мигать лампочками... значит pre-boot отработал.
Захожу в PuTTY - смотрю cat /tmp/printer:
printer connected
YES
Пытаюсь распечатать - задание уходит, появляется на принтере и сразу обнуляется!

у вас два раза отрабатывает, уберите скрипт из post-boot (можете просто удалить файл этот).

SpireStone
03-08-2012, 21:43
у вас два раза отрабатывает, уберите скрипт из post-boot (можете просто удалить файл этот).

Удалил! Выключаю систему - выключаю фильтр на котром вся перефирия висит! Затем загружаемся заного...
Печатаем - задание уходит и тут же обнуляется! При этом через cat /tmp/printer выводится printer connected!

staticroute
03-08-2012, 21:46
Удалил! Выключаю систему - выключаю фильтр на котром вся перефирия висит! Затем загружаемся заного...
Печатаем - задание уходит и тут же обнуляется! При этом через cat /tmp/printer выводится printer connected!

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

SpireStone
03-08-2012, 21:53
По идее сейчас скрипт должен отрабатывать корректно, попробуйте сбросить принтер. Роутер можно больше не перезагружать, можно просто выключать/включать принтер и проверять будет работать или нет. Должен работать.

Скрипт отрабатывает:
Если отключить принтер - имеем printer disconnected
Если включить - printer connected
Но задание обнуляется.... :confused:
принтер подключен по TCP/IP порту, протокол RAW номер порта 9100!

staticroute
03-08-2012, 21:55
Скрипт отрабатывает:
Если отключить принтер - имеем printer disconnected
Если включить - printer connected
Но задание обнуляется.... :confused:
принтер подключен по TCP/IP порту, протокол RAW номер порта 9100!

Мне кажется надо в вот так поправить hotplug.sh:


#!/bin/sh
if [ -w "/dev/lp0" ]; then
echo "printer connected" >> /tmp/printer
PRINTERID=/usr/local/sbin/usb_printerid
FIRMWARE=/usr/local/sbin/sihp1020.dl
DEVICE=/dev/lp0
${PRINTERID} ${DEVICE} | grep -q FWVER || cat ${FIRMWARE} > ${DEVICE}
else
echo "printer disconnected" >> /tmp/printer
fi
killall -9 p910nd
p910nd -f /dev/lp0
/sbin/hotplug $*

попробуйте!

SpireStone
03-08-2012, 22:22
Мне кажется надо в вот так поправить hotplug.sh:


#!/bin/sh
if [ -w "/dev/lp0" ]; then
echo "printer connected" >> /tmp/printer
PRINTERID=/usr/local/sbin/usb_printerid
FIRMWARE=/usr/local/sbin/sihp1020.dl
DEVICE=/dev/lp0
${PRINTERID} ${DEVICE} | grep -q FWVER || cat ${FIRMWARE} > ${DEVICE}
else
echo "printer disconnected" >> /tmp/printer
fi
killall -9 p910nd
p910nd -f /dev/lp0
/sbin/hotplug $*

попробуйте!

Никакой разницы... Скрипт принтер видит, но печать не идет! Обнуляется...

Немного локализую проблему...
Если при загруженной системе и подключенном принтере ребутнуть роутер командой reboot, то затем скрипт отрабатывается и принтер печатает!
Но стоит только выключить все (роутер, принтер и ПК) через фильтр, а затем включить - при попытке печати, задание обнуляется!

staticroute
03-08-2012, 23:26
Никакой разницы... Скрипт принтер видит, но печать не идет! Обнуляется...

Немного локализую проблему...
Если при загруженной системе и подключенном принтере ребутнуть роутер командой reboot, то затем скрипт отрабатывается и принтер печатает!
Но стоит только выключить все (роутер, принтер и ПК) через фильтр, а затем включить - при попытке печати, задание обнуляется!

Попробуйте вот такой вариант hotplug.sh:


#!/bin/sh
if [ -w "/dev/lp0" ]; then
sleep 10;
PRINTERID=/usr/local/sbin/usb_printerid
FIRMWARE=/usr/local/sbin/sihp1020.dl
DEVICE=/dev/lp0
${PRINTERID} ${DEVICE} | grep -q FWVER || cat ${FIRMWARE} > ${DEVICE}
echo "printer connected" >> /tmp/printer
killall -9 p910nd
p910nd -f /dev/lp0
else
echo "printer disconnected" >> /tmp/printer
fi
/sbin/hotplug $*

SpireStone
03-08-2012, 23:57
Попробуйте вот такой вариант hotplug.sh:


#!/bin/sh
if [ -w "/dev/lp0" ]; then
sleep 10;
PRINTERID=/usr/local/sbin/usb_printerid
FIRMWARE=/usr/local/sbin/sihp1020.dl
DEVICE=/dev/lp0
${PRINTERID} ${DEVICE} | grep -q FWVER || cat ${FIRMWARE} > ${DEVICE}
echo "printer connected" >> /tmp/printer
killall -9 p910nd
p910nd -f /dev/lp0
else
echo "printer disconnected" >> /tmp/printer
fi
/sbin/hotplug $*

даже 90 секундная задержка ни дает результат... НО теперь смущает другое...
Включение / отключение принтера не влияет на статус printer connected!
Теперь он постояно с таким статусом... видимо это из-за

killall -9 p910nd
p910nd -f /dev/lp0

почему мы отказались от post-boot?

staticroute
04-08-2012, 00:11
даже 90 секундная задержка ни дает результат... НО теперь смущает другое...
Включение / отключение принтера не влияет на статус printer connected!
Теперь он постояно с таким статусом... видимо это из-за

killall -9 p910nd
p910nd -f /dev/lp0

почему мы отказались от post-boot?

post-boot происходит после загрузки и инициализации всех устройств.

SpireStone
04-08-2012, 00:23
post-boot происходит после загрузки и инициализации всех устройств.

Это понятно... мне кажется память роутера чем-то забивается или происходит конфликт... Хотя, сейчас проверил с post-boot - результат тот же - обнуление!
Не знаю как объяснить, но после команды reboot, принтер печатает!!!
Возможно ли в скрипт добавить принудительную перезагрузку роутера после загрузки системы? Ну или как-то так...

staticroute
04-08-2012, 00:41
Это понятно... мне кажется память роутера чем-то забивается или происходит конфликт... Хотя, сейчас проверил с post-boot - результат тот же - обнуление!
Не знаю как объяснить, но после команды reboot, принтер печатает!!!
Возможно ли в скрипт добавить принудительную перезагрузку роутера после загрузки системы? Ну или как-то так...

Да собственно все просто, скорее всего после записи firmware, надо выгрузить драйвер принтера и обратно загрузить.. :



rmmod usblp
insmod usblp


Т.е. выгрузить драйвер.

1) Попробуйте отключить от сети принтер, потом включить - попробовать напечатать.

2) Если не удастся, тогда выполнить 2 команды, приведенные выше без перезагрузок, прямо в терминале.

3) Если снова не поможет, то можно еще попытаться перезагрузить p910nd:


killall p910nd
p910nd -f /dev/lp0

SpireStone
04-08-2012, 00:54
Да собственно все просто, скорее всего после записи firmware, надо выгрузить драйвер принтера и обратно загрузить.. :



rmmod usblp
insmod usblp


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

Смотрите... сейчас тыркался... создал post-boot , вместо pre-boot...
а в hotplug.sh ввел Ваш последний скрипт, только с 30 сек задержкой...
2 раза включал / выключал компьютер, принтер подхватывется уже практически в системе... и что самое итересное - он печатает! С pre-boot такого не было...
Сейчас в консоле пишет - printer connected! но почему-то при отключении принтера, НЕ пишет - printer disconnected!

На дые команды он почему-то никак не среагировал... Если отключить / влючить принтер - печать не работает, не одним из способов...

staticroute
04-08-2012, 00:57
Смотрите... сейчас тыркался... создал post-boot , вместо pre-boot...
а в hotplug.sh ввел Ваш последний скрипт, только с 30 сек задержкой...
2 раза включал / выключал компьютер, принтер подхватывется уже практически в системе... и что самое итересное - он печатает! С pre-boot такого не было...
Сейчас в консоле пишет - printer connected! но почему-то при отключении принтера, НЕ пишет - printer disconnected!

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

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

В общем-то это очень странно, так как в pre-boot, всего навсего одна строчка, говорящая ядру использовать hotplug.sh вместо /sbin/hotplug.. возможно происходит подключение принтера еще раньше, чем срабатывает pre-boot..

Насчет дисконнекта затрудняюсь ответить. Посмотрите вообще логи в моменты когда вы подсоединяете принтер и сколько времени проходит, пока он инициализируется..

SpireStone
04-08-2012, 01:19
Вообще надо конечно смотреть, когда сам принтер появляется у вас в системе, в частности, в dmesg. Возможно 30 секунд как раз решают проблему, просто я не сталкивался с подобным принтером, поэтому мало знаю, что там и как работает, читал только соседние топики, где людям удавалось завести подобное.

В общем-то это очень странно, так как в pre-boot, всего навсего одна строчка, говорящая ядру использовать hotplug.sh вместо /sbin/hotplug.. возможно происходит подключение принтера еще раньше, чем срабатывает pre-boot..

Насчет дисконнекта затрудняюсь ответить. Посмотрите вообще логи в моменты когда вы подсоединяете принтер и сколько времени проходит, пока он инициализируется..

На этой чудесной прошивке от Vampika горит диод подключенного usb. Так вот с pre-boot как только диод загорался - сразу начинал отрабатывать скрипт - принтер сверкал лампочками и жужжал! По логам на 8 сек загрузки начинается определение принтера! Скрипт отрабатывал, мне кажется, попозже!
На pre-boot даже 90 сек не решили проблемы, а вот с post-boot - задержка в 30 сек дала результат! На post-boot оставил тот же самый код, что и в pre-boot:

#!/bin/sh
/bin/echo "/usr/local/sbin/hotplug.sh" > /proc/sys/kernel/hotplug
А раз post-boot отрабатывает скрипт после инициализации всех устройств, да еще и принтер печатал после ребута - значит память роутера чем-то забивалась... Возможно это мои догадки... но тем не менее... как-то заработало...

pavlo
10-09-2012, 12:10
Народ, кто нить знает поддержку принтера hp 1020 сделают когда нить или нет? пашет после первой прошивки и потом все, перестает.
если делаю как описал ниже все пашет отлично, но при перезагрузке роутера притер инициализируется, что сказывается на шуме как буд-то его только что врубили, и после прошивки новой версии прошивки все улетает само собой :(
На всякий прошивка RT-N16-1.9.2.7-rtn-r4330.trx. Еще стало чаще рвать вафлю со всеми в доме устройствами.

телнтетом:



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

mkdir /usr/local/sbin
cd /usr/local/sbin

#copy files from HDD to flash

cp /tmp/sihp1020.dl sihp1020.dl
cp /tmp/usb_printerid usb_printerid

#make hotplug.sh file

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



Но хотелось бы нативной уже поддержки, никто не в курсе? может куда ниаписать об этом еще?

MrGalaxy
10-09-2012, 13:57
Народ, кто нить знает поддержку принтера hp 1020 сделают когда нить или нет? пашет после первой прошивки и потом все, перестает.
если делаю как описал ниже все пашет отлично, но при перезагрузке роутера притер инициализируется, что сказывается на шуме как буд-то его только что врубили, и после прошивки новой версии прошивки все улетает само собой :(
...
Но хотелось бы нативной уже поддержки, никто не в курсе? может куда ниаписать об этом еще?
Рискну предположить, что после перепрошивки flashfs пропадает. Попробуйте после каждой перепрошивки проверять его наличие и, при необходимости, восстанавливать из сохранённого образа.
Для rtn16 да, могли бы и сделать нативную поддержку, там места во флеше до хрена, это не 500gp.

staticroute
10-09-2012, 18:43
Помойму включать по умолчанию все же не стоит. Лучше всего добавить в конфиг опцию включения при компиляции тогда уж.

Сделайте патч - вполне возможно кто-то из разработчиков его рассмотрит.

EDIT: насчет wifi есть баг, проявляющийся при установке ширины канала в 40 Мгц в SDK Broadcom wl драйвере - wifi рвется через некоторое время.
Попробуйте использовать 20 Мгц ширину канала. У меня работает очень стабильно.

theMIROn
10-09-2012, 18:55
Помойму включать по умолчанию все же не стоит. Лучше всего добавить в конфиг опцию включения при компиляции тогда уж.

Сделайте патч - вполне возможно кто-то из разработчиков его рассмотрит.

ага, было бы не плохо

pavlo
10-09-2012, 22:15
Рискну предположить, что после перепрошивки flashfs пропадает. Попробуйте после каждой перепрошивки проверять его наличие и, при необходимости, восстанавливать из сохранённого образа.
Для rtn16 да, могли бы и сделать нативную поддержку, там места во флеше до хрена, это не 500gp.

так то да, но вот куда бы черкануть может сделают? :)

MrGalaxy
12-09-2012, 06:49
ИМХО, надо объединить несколько смежных веток по этим принтерам.

slhoh2007
31-10-2012, 05:49
Подскажите, пожалуйста, это будет работать на Asus RT-N16 ?

MrGalaxy
31-10-2012, 17:54
Подскажите, пожалуйста, это будет работать на Asus RT-N16 ?

Да, на всех роутерах с прошивкой Олега-энтузиастов.

MrGalaxy
12-11-2012, 11:50
Такая интересная проблема нарисовалась. Модель wl500gp-v.2 используется в качестве принт-сервера (натуральный wl500gp-v2, не путать с ДИРом из подписи). Принтер HP серии, который требует загрузки своей микропрограммы во время включения.
Микропрограмма загружается как во время post-boot (если принтер уже подключен), так и при hotplug.sh (если принтер подключается.

Большей частью всё нормально, но изредка роутер взбрыкивает - не хочет печатать.
Судя по логу, задание было отправлено на печать до того, как роутер загрузился. Демон p9100d выдал ошибку. Дальше началось интересное. В отсутствие файла lp0 роутер должен был написать сообщение "incompatible linux version :(", однако, это почему-то не произошло.

После перевключения принтера микропрограмма в него загрузилась и печать пошла.

Прошивка 4690М, но так роутер вёл себя и на предыдущих прошивках.

Файлы прилагаю.

grosser
01-08-2013, 08:34
Собственно столкнулся с проблемой подключения принтера к роутеру. Перешил на прошивку от энтузиастов, нашел скрипты в похожих темах, подправил под свой принтер. Он печатает, но...надо было напечатать док-т PDF, 1 копию. Он начал жрать бумагу и штамповать копии бесконечно. Перезагрузили комп, перезагрузили роутер. Молчит, но после печати другого документа стал заново штамповать те же самые копии. И вот еще момент. Если принтер включить после роутера, то он не будет печатать. Возможно ли это исправить? И как быть со спящим режимом принтера? Спасибо

don-pedro
01-08-2013, 10:20
Собственно столкнулся с проблемой подключения принтера к роутеру. Перешил на прошивку от энтузиастов, нашел скрипты в похожих темах, подправил под свой принтер. Он печатает, но...Он начал жрать бумагу и штамповать копии бесконечно.
P1606dn - сетевой. Чтобы "подключить его к роутеру" никакие скрипты не нужны.
Бесконечные копии лечатся отключением в свойствах принтера двустороннего обмена данными и snmp. Подразумевается печать из-под windows )

grosser
01-08-2013, 13:35
P1606dn - сетевой. Чтобы "подключить его к роутеру" никакие скрипты не нужны.
Бесконечные копии лечатся отключением в свойствах принтера двустороннего обмена данными и snmp. Подразумевается печать из-под windows )

благодарю! все настроил все работает

idyl
06-08-2013, 22:27
Стал счастливым обладателем RT-N10U в черном корпусе. Прошил 1.9.2.7-rtn-r5066 от энтузиастов. Имеется HP LJ 1000. Решил их "подружить". Потрачено 2 дня. По факту обнаружил, что роутер не видит принтера, т.е. подсоединение/отсоединение, включение/выключение принтера никак не отражается в логах роутера (флешки и модемы роутер видит).

Вопрос: сталкивался кто с такой проблемой и есть ли решение?

gest
29-07-2014, 06:37
Каждые пять минут в логах появляется

l 29 08:27:43 p9100d[272]: /dev/lp0: No such file or directory, will try opening later
версия прошивки 1.9.2.7-rtn-r5536
Помогите пожалуйста решить проблему.

don-pedro
29-07-2014, 08:53
Каждые пять минут в логах появляется

l 29 08:27:43 p9100d[272]: /dev/lp0: No such file or directory, will try opening later

Принтер к роутеру подключен?
Если нет, отключите поддержку принтера.

gest
29-07-2014, 10:35
Принтер подключен к usb порту роутера.

don-pedro
29-07-2014, 12:37
Принтер подключен к usb порту роутера.
Способ "не обращать внимания" не годится?

dmhoh
09-09-2014, 11:37
Всем доброго дня!
Два дня бьюсь с принтером LaserJet 1020, не хочет работать на RT-N15U в черном корпусе...
Перепробовал все варианты скрипта hotplug.sh из этой темы - никаких результатов.
Посмотрите, может что то не так делаю - в unix не силен.
Что делал:
1. Создал директорию mkdir /usr/local/sbin
2. Скопировал файлы в нее:
wget http://oleg.wl500g.info/hplj/usb_printerid
wget http://oleg.wl500g.info/hplj/sihp1020.dl
3. Создал /usr/local/sbin/hotplug.sh

#h!/bin/sh
ad the firmware to the printer
PROD=3f0/2b17/100
PRINTERID=/usr/local/sbin/usb_printerid
FIRMWARE=/usr/local/sbin/sihp1020.dl
DEVICE=/dev/lp0

if [ "$PRODUCT" = "$PROD" ] && [ "$ACTION" = "add" ]; then
${PRINTERID} ${DEVICE} | grep -q FWVER || cat ${FIRMWARE} > ${DEVICE}
echo "`date` Firmware loaded for HP LaserJet 1020 device ${DEVICE}" >> /tmp/syslog.log
fi
/sbin/hotplug $*

4. Создал /usr/local/sbin/post-boot

#!/bin/sh
if [ -w "/dev/lp0" ]; then
PRINTERID=/usr/local/sbin/usb_printerid
FIRMWARE=/usr/local/sbin/sihp1020.dl
DEVICE=/dev/lp0
${PRINTERID} ${DEVICE} | grep -q FWVER || cat ${FIRMWARE} > ${DEVICE}
fi
echo "/usr/local/sbin/hotplug.sh" > /proc/sys/kernel/hotplug

5. Создал /usr/local/sbin/pre-boot

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

в /sbin пять файлов: hotplug.sh, post-boot, pre-boot, sihp1020.dl и usb_printerid
сделал исполняемыми командой:
chmod +x /usr/local/sbin/*

ввел flashfs save && flashfs commit && flashfs enable && reboot

После перезагрузки роутера в логах:

Sep 9 13:26:02 kernel: usb 1-1: USB disconnect, address 2
Sep 9 13:26:05 kernel: usb 1-1: new high speed USB device using ehci_hcd and address 3
Sep 9 13:26:05 kernel: usb 1-1: configuration #1 chosen from 1 choice
Sep 9 13:26:05 kernel: usblp0: USB Bidirectional printer dev 3 if 0 alt 0 proto 2 vid 0x03F0 pid 0x2B17
Sep 9 13:26:05 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;'

После того, как включаю питание принтера, появляется:

Sep 9 13:27:04 p9100d[240]: Connection from ::ffff:192.168.1.243 port 50223 accepted
Sep 9 13:27:04 p9100d[240]: /dev/lp0: No such file or directory, will try opening later
после этого "тишина" - задания на печать уходят на принтер и пропадают, принтер "молчит", лампочка на роутере о подключении USB не горит...

Прошивка от энтузиастов 1.9.2.7-rtn-r5450

Посмотрите, может что-то не так со скриптом, если можно то пошагово, что сделать и где исправить, повторюсь в unix я полный "чайник"

Заранее всем спасибо за ответы.

AndreyPopov
09-09-2014, 12:52
в начале темы речь идет об устройстве /dev/usb/lp0

в вашем логе идет речь о подключении usblp0

прежде чем отправлять в принтер firmware надо все же определится каким он числится устройством:

/dev/lp0
/dev/usb/lp0
/dev/usblp0

это раз


два - в скрипте hotplug.sh у вас по крайней мере лишний символ в самом начале!!
#h!/bin/sh (что говорит о том, чт оваш скрипт вообще-то НЕ работает совсем) и проверьте на всякий случай - вы дали скрипту разрешение на исполнение командой chmod +x?


три - строка ad the firmware to the printer должна быть закомментирована
# ad the firmware to the printer или иметь оператор echo "ad the firmware to the printer" или logger "ad the firmware to the printer"

четыре: два раза писать одно и тоже echo "/usr/local/sbin/hotplug.sh" > /proc/sys/kernel/hotplug из двух мест - не очень надо

dmhoh
09-09-2014, 15:02
Спасибо за помощь AndreyPopov

Исправил ошибку в скрипте hotplug.sh на #!/bin/sh, и закомментировал строку # ad the firmware to the printer принтер "зашуршал" и распечатал пробную сраницу:D

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

Если перезагрузить роутер при включенном принтере - то все "ок", печатает. Выключишь-включишь принтер - печать уходит в "никуда".

Подскажите чтоделать, куда рыть? Может дописать какую-то команду в pre-boot?

Заранее благодарю за ответ.


в начале темы речь идет об устройстве /dev/usb/lp0

в вашем логе идет речь о подключении usblp0

прежде чем отправлять в принтер firmware надо все же определится каким он числится устройством:

/dev/lp0
/dev/usb/lp0
/dev/usblp0

это раз


два - в скрипте hotplug.sh у вас по крайней мере лишний символ в самом начале!!
#h!/bin/sh (что говорит о том, чт оваш скрипт вообще-то НЕ работает совсем) и проверьте на всякий случай - вы дали скрипту разрешение на исполнение командой chmod +x?


три - строка ad the firmware to the printer должна быть закомментирована
# ad the firmware to the printer или иметь оператор echo "ad the firmware to the printer" или logger "ad the firmware to the printer"

четыре: два раза писать одно и тоже echo "/usr/local/sbin/hotplug.sh" > /proc/sys/kernel/hotplug из двух мест - не очень надо

AndreyPopov
09-09-2014, 16:38
вот эта строка:
/sbin/hotplug $*

она должна быть в hotplug.sh ?

hotplug по идее и так должен быть запущен. зачем его еще раз запускать из hotplug.sh?

dmhoh
09-09-2014, 17:04
вот эта строка:
/sbin/hotplug $*

она должна быть в hotplug.sh ?

hotplug по идее и так должен быть запущен. зачем его еще раз запускать из hotplug.sh?

Да эта строчка есть в hotplug.sh

#!/bin/sh
# ad the firmware to te printer
PROD=3f0/2b17/100
PRINTERID=/usr/local/sbin/usb_printerid
FIRMWARE=/usr/local/sbin/sihp1020.dl
DEVICE=/dev/lp0

if [ "$PRODUCT" = "$PROD" ] && [ "$ACTION" = "add" ]; then
${PRINTERID} ${DEVICE} | grep -q FWVER || cat ${FIRMWARE} > ${DEVICE}
echo "`date` Firmware loaded for HP LaserJet 1020 device ${DEVICE}" >> /tm
fi
/sbin/hotplug $*

причем он обрабатывается корректно, в логах никаких ошибок нет.

Но принтер работает если не выключать его питание. Если его выключить и снова включить - принтер не работает.
Стоит только роутер перезагрузить с включенным принтером - все "ок", печать идет.

Возможно нужно добавить какую-то команду в pre-boot, чтобы принтер повторно инициализировался в системе при включении?

Сейчас pre-boot у меня такой:

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

AndreyPopov
09-09-2014, 17:30
hotplug и есть то, что должно определять, что принтер подключился(включился) и соответственно каждый раз при включении принтера посылать firmware.

в скриптах на первой странице я /sbin/hotplug $* не вижу.


я бы вообще не заморачивался c hotplug , а воспользовался бы услугами cron(планировщик).

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

dmhoh
09-09-2014, 17:51
hotplug и есть то, что должно определять, что принтер подключился(включился) и соответственно каждый раз при включении принтера посылать firmware.

в скриптах на первой странице я /sbin/hotplug $* не вижу.


я бы вообще не заморачивался c hotplug , а воспользовался бы услугами cron(планировщик).

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

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

Поэтому хотел сделать чтобы при работающем 24/7 роутере можно было включить принтер - распечатать - выключить.

А сейчас принтер печатает только если роутер ребутнуть.

Я попробовал перенести строку /sbin/hotplug $* из hotplug.sh в post-boot, не помогло...

Может есть еще какие варианты?

AndreyPopov
09-09-2014, 18:24
для домашнего принтера есть несколько вариантов:

1. на рабочем столе в винде сделать ярлык с запуском команды copy /b <firmware> <port>
2. зайти в роутер по телнет/ссш и руками запустить скрипт с содержимым
#!/bin/sh
if [ -w "/dev/lp0" ]; then
PRINTERID=/usr/local/sbin/usb_printerid
FIRMWARE=/usr/local/sbin/sihp1020.dl
DEVICE=/dev/lp0
${PRINTERID} ${DEVICE} | grep -q FWVER || cat ${FIRMWARE} > ${DEVICE}
fi


3. как и писал в cron прописать скажем запуск того же скрипта каждые полчаса.

и роутер перегружать вообще НЕ НАДО!

flint
03-06-2016, 16:25
Не баньте если было, в поиске и в факе не нашёл. Дайте ссылку на ветку, если уже обсуждалось.

Есть ли возможность wl500 gp использовать в качестве принт-сервера, то есть в usb воткну принтер, а далее он как wifi клиент подключиться к dlinkу 620 (на dlinke прошивка tomato)