Являюсь счастливым обладателем роутера WL-500gP, принтера HP LaserJet 1018 и внешнего HDD, которые должны работать в связке. На форуме существует много топиков, в которых обсуждается автоматическое подключение этих "нехороших" принтеров. Все они похожи друг на друга и все работают... Но у всех есть побочный эффект, перестают работать все USB устройства, кроме принтера, что есть не очень удобно. Ниже я в очередной раз приведу инструкцию по загрузке драйверов и установке скрипта, в котором работает определение всех USB устройств совместно с работой принтера.
Пример будет рассмотрен на базе того что у меня было, т.е. LaserJet 1018. В местах, где есть разлиия я буду сообщать.
Ну, преступим:
1. Заходим на роутер через TelNet или SSH.
2. Если еще не создана папка /usr/local/sbin, то создаем командой
Code:
mkdir /usr/local/sbin
3. Переходим в этот каталог
4. Загружаем файлы, необходимые для работы принтера
Code:
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, то ЗДЕСЬ ищем прошивку под свой HP и подставляете свою ссылку. Если у вас не HP, то придется искать прошивку самим.
5. Создаем файл со скриптом
Code:
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
!Здесь стоит обратить внимание на строки:
Code:
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:
Если файл еще не существует, то
Code:
echo "#!/bin/sh" > pre-boot
Для всех
Code:
echo "/bin/echo \"/usr/local/sbin/hotplug.sh\" > /proc/sys/kernel/hotplug" >> pre-boot
7. Делаем файлы исполняемыми
Code:
chmod +x /usr/local/sbin/*
8. Сохраняем изменения
Code:
flashfs save && flashfs commit && flashfs enable && reboot
На этом настройка роутера закончена. После перезапуска роутер будет готов для работы с принтером и другой перефирией.
ЗДЕСЬ представлен универсальный скрипт, потдерживающий все модели LaserJet. Все что от Вас требуется - это скачать файл прошивки и положить в нужный каталог.