сделайте, как тут - http://wl500g.info/showthread.php?40...5148#post25148
только замените на /dev/lp0.
файлы у вас во флэш помещаются или на usb ?
сделайте, как тут - http://wl500g.info/showthread.php?40...5148#post25148
только замените на /dev/lp0.
файлы у вас во флэш помещаются или на usb ?
Файлы помещаются во флеш, проверяю через System Setup - Flashfs Management!
Какова моя последовательность действий? А то я уже путаться начинаю...
Принтер начинает шуршать - печать работает!Code: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)
Получается, что этого достаточно? Но ведь файлы помещаются в папку tmp, которая очищается...Code: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
И следующий скрипт без параметра /usb/ работать не желает...
Перед танцами с бубном предварительно очищаю флеш.Code: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
Code:cd /usr/local/sbin wget http://oleg.wl500g.info/hplj/usb_printerid wget http://oleg.wl500g.info/hplj/sihp1020.dl chmod +x usb_printeridЛучше записать вот такой скрипт в /usr/local/sbin/hotplug.sh:Code: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
Code:#!/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 $*В общем-то нужно добавить в /usr/local/sbin/post-boot:Получается, что этого достаточно? Но ведь файлы помещаются в папку tmp, которая очищается...
И следующий скрипт без параметра /usb/ работать не желает...
Перед танцами с бубном предварительно очищаю флеш.Code: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
Далее сделать:Code:#!/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
Как-то так, тогда, если у вас принтер уже будет подключен к роутеру до его старта, по идее должен прогрузить Firmware.Code:chmod +x /usr/local/sbin/post-boot chmod +x /usr/local/sbin/hotplug.sh flashfs save && flashfs commit && flashfs enable
Выражаю благодарность staticroute - за непосильную помощь и Omega - за направление в нужное русло!
Спасибо, ребят! Разобрался... Все получилось! Принтер печатает даже после перезагрузки! За это время стал немного понимать в столь темных для меня вещах...
Теперь все стоковые асусовские прошивки идут лесом. Все равно от них толку - нуль, да и поддержки тоже!
Будем дальше осваивать энтузиазные прошивки! Спасибо! Если появятся вопросы - то я к Вам!
P.S.: так для меня и осталось загадкой почему диод подключенного usb не горит на роутере....
Last edited by Omega; 20-06-2012 at 22:37. Reason: ну что бы он загорелся, нужен патч или прошивка от Vampik'a :) она тоже на основе энтузиастской ;)
Ребят, пользуюсь предыдущим кодом (пост от staticroute) для печати, но принтер отваливается после перезагрузки... Приходится каждый раз вызывать его командой... как это лечится?![]()
У меня сейчас в этом файле прописан код:
Командой ls проверяю наличие файлов в /usr/local/sbin/Code:#!/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
Их там 4 шт. : hotplug.sh post-boot sihp1020.dl usb_printerid
3 из которых исполнительные (зеленые), но почему-то принтер отваливается с завидной периодичностью...
Наверное, нужно добавить этот скрипт в /usr/local/sbin/post-mount из post-boot можете убрать.
Тогда он вызовется после монтирования устройств, по сути принтер тоже по-своему монтируется.
(https://code.google.com/p/wl500g/wiki/UserScripts)
Попробуйте и отпишитесь, должно работать.
Никакой реакции... добавил файл post-mount, а post-boot удалил... печать на принтер уходит - и тут же обнуляется в задании... пока не пропишу через PuTTY скрипт:на принтере даже лампочки не мигают...Code:#!/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![]()
сделали?Code:chmod +x /usr/local/sbin/post-mount
вообще странно, логика-то простая, инициализировать принтер после того, как он появился в системе, по идее принтер должен уже появится перед запуском post-mount.
попробуйте добавитьв конце post-mount..Code:killall -9 p910nd; p910nd -f /dev/lp0 0
можно попробовать конечно еще сунуть в pre-mount, но вообще он инициализирует вроде бы уже после подгрузки драйвера, поэкспериментируйте в общем..
файлы-то не забыли сохранить ?Code:flashfs save && flashfs commit && flashfs enable
Last edited by staticroute; 31-07-2012 at 20:47.
Может проблема в том, что компьютер и роутер висят у меня на одной розетке (фильтр), и когда я выключаю компьютер - роутер соответсвенно отключается... Моежет он после этого терять терять принтер?
И еще смущает, почему файлы сидят не только в /urs/local/sbin, но и в /tmp/local/sbin. Ведь как я понимаю, флеш активируется для /tmp/local/sbin?
все верно /usr/local является симлинком на [b]/tmp/local[b].
вообще надо просто понять появляется ли /dev/lp0 в post-mount, добавьте вот это для теста в /usr/local/sbin/post-mount:
После загрузки посмотреть содержимое /tmp/printer.Code:#!/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
если там NO то рыть на предмет когда появляется сам принтер или попробовать добавить в pre-boot, в hotplug.sh у вас также должно быть что-то типа такого:Code:cat /tmp/printer
Code:#!/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 $*
Last edited by staticroute; 01-08-2012 at 23:27.
staticroute
1. Если принтер и роутер не отключались от сети, и я через PuTTY во флеш их прописал командойтогда при посылке командыCode:#!/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пишется YES!Code:cat /tmp/printer
2. Если отключить принтер и роутер от сети (а висят они на одном фильтре), то при посыле командыпишется, что мол, такой директории не существует!!!Code:cat /tmp/printer
Следовательно, можно сделать вывод, что флеш при этом не подгружается?
В прикрепленном файле моя флеш... посмотрите, может что не так?