Сделайте hotplug.sh такой же как я давал последний вариант, в /usr/local/sbin/pre-boot запишите вот это:
не забудьтеCode:#!/bin/sh /bin/echo "/usr/local/sbin/hotplug.sh" > /proc/sys/kernel/hotplug
ребутнуть роутер после этого надо будет естественно.Code:chmod +x /usr/local/sbin/pre-boot; flashfs save && flashfs commit && flashfs enable
должно автоматом подгружать, как только принтер будет подсоединен..
Last edited by staticroute; 03-08-2012 at 10:11.
упс, опечатался
вместоCode:#!/bin/sh/usr/local/sbin/hotlug.shCode:#/bin/sh
лучше вставлять vi.Code:#!/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 $*
i для инсерта и потом вставляете.
:wq выйти с сохранением
Last edited by staticroute; 03-08-2012 at 14:55.
staticroute,
меня смущает, почему при команде cat /tmp/printer выводится can't open '/tmp/printer': No such file or directory.
Остальные файлы вроде бы верно прописаны...
Смотрите... сейчас имею:
1. hotplug.sh:
2. post-boot:Code:#!/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 $*
3. pre-boot: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
Все файлы исполняемые (зеленые).Code:#!/bin/sh /bin/echo "/usr/local/sbin/hotplug.sh" > /proc/sys/kernel/hotplug
Загружаем систему (одновременно грузится роутер, принтер и ПК)... во время загрузки ХР принтер начинает мигать лампочками... значит pre-boot отработал.
Захожу в PuTTY - смотрю cat /tmp/printer:
printer connected
YES
Пытаюсь распечатать - задание уходит, появляется на принтере и сразу обнуляется!
Мне кажется надо в вот так поправить hotplug.sh:
попробуйте!Code:#!/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, то затем скрипт отрабатывается и принтер печатает!
Но стоит только выключить все (роутер, принтер и ПК) через фильтр, а затем включить - при попытке печати, задание обнуляется!
Last edited by SpireStone; 03-08-2012 at 21:52.
Попробуйте вот такой вариант hotplug.sh:
Code:#!/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!
Теперь он постояно с таким статусом... видимо это из-за
почему мы отказались от post-boot?Code:killall -9 p910nd p910nd -f /dev/lp0