Results 1 to 15 of 251

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

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. Post Как подружить принтер HPLJ P1005/1022 и роутер Asus

    Подключение к роутеру Host-Based принтера + другой USB периферии.

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

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

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

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

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

    Code:
    cd /usr/local/sbin
    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.

    Если у вас принтер не HP 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.
    Все что от Вас требуется - это скачать файл прошивки и положить в нужный каталог.

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

    Code:
    #!/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 $*
    Last edited by Omega; 05-12-2011 at 01:21. Reason: fixed

Similar Threads

  1. Как настроить роутер для работы с внешним FTP ?
    By Scondo in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 273
    Last Post: 04-08-2014, 00:28
  2. Как подружить ASUS WL-500g Premium с ADSL модемом ZyXEL P-600?
    By FilimoniC in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 135
    Last Post: 11-03-2012, 08:44
  3. Настройка FTP сервера на Asus WL-500gP
    By RonS in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 259
    Last Post: 27-11-2011, 16:57

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •