turboYI 发表于 2022-3-28 20:31

pang0525 发表于 2022-3-27 11:29
大神,求教opwrt下没有/etc/mdev.conf这个文件,脚本添加到什么位置

Openwrt 用不着这个脚本。

Openwrt 热插拔的实现方法和 Padavan 不同,它另有一套非常方便的 hotplug 事件脚本解决方案。只要建立一个 /etc/hotplug.d/usb/20-hp1020 脚本文件,就能在系统发现USB打印机时被调用从而来发送固件。可参考这个`HP Laserjet 1020`的脚本:

#!/bin/sh

set -e

# change this to the location where you put the .dl file:
FIRMWARE="/var/sihp1020.dl"

DEVICE=/dev/usb/lp0
LOGFILE=/var/log/hp

if [ "$PRODUCT" = "3f0/2b17/100" -a "$ACTION" = "add" ]; then
    for i in $(seq 30); do
      if [ -c $DEVICE ]; then
            echo "$(date) : Sending firmware to printer…" > $LOGFILE
            cat $FIRMWARE > $DEVICE
            echo "$(date) : done." >> $LOGFILE
            exit
      fi
      sleep 1
    done
fi

把上面的脚本内容保存为“20-hp1020”,用 WINSCP 上传到 /etc/hotplug.d/usb/ 目录下;把 HP1020 的固件文件“sihp1020.dl” 上传到 /var/ 目录下。

这两步就行了,这个办法非常稳定有效。

pang0525 发表于 2022-3-28 22:46

感谢大神,终于搞好了

我来逛逛 发表于 2022-3-30 09:02

我是hp1007,按照方法二把固件传到小米mini里,路由器一重启,打印机就没反应,登录路由发现固件又没了。。。

turboYI 发表于 2022-4-4 11:33

我来逛逛 发表于 2022-3-30 09:02
我是hp1007,按照方法二把固件传到小米mini里,路由器一重启,打印机就没反应,登录路由发现固件又没了。。 ...

我没有小米路由器,但听说小米路由器的固件是基于 openwrt 的,如果可以 root 和 SSH,可以参考 80 楼 openwrt 的做法。或者去刷个 Padavan 固件,就可以按这个帖子的做法来了。

gundam007 发表于 2022-4-4 12:48

用华硕原厂的软件可行不??

turboYI 发表于 2022-4-4 13:27

gundam007 发表于 2022-4-4 12:48
用华硕原厂的软件可行不??

开启 TELNET 或 SSH 登录,然后可以参考 62 楼的方法来试一试 。

莫奇 发表于 2022-4-4 13:52

谢谢分享

恩山无线爱好者 发表于 2022-4-8 22:16

感谢分享

cj8510 发表于 2022-4-9 14:25

楼主这个代码太给力了,我一直都是将打印机和路由器接在一个小米插座后面,实在不行就是统一关掉后在重新上电,发送驱动的指令写在自定义脚本内。楼主这个代码更完美。感谢分享!

yff0217 发表于 2022-4-10 21:47

turboYI 发表于 2022-3-28 20:31
Openwrt 用不着这个脚本。

Openwrt 热插拔的实现方法和 Padavan 不同,它另有一套非常方便的 hotplug...

请教如何写两个打印机的脚本,两台打印机分别插的时候要换脚本很麻烦呀。openwrt

turboYI 发表于 2022-4-12 20:45

yff0217 发表于 2022-4-10 21:47
请教如何写两个打印机的脚本,两台打印机分别插的时候要换脚本很麻烦呀。openwrt

参考1楼的脚本修改即可。 OpenWRT 的成品脚本如下:
#!/bin/sh

# /etc/hotplug.d/usb/20-hpljgdi 准备打印机热插拔时安装固件(从网上下载固件) turboYI 20210821
set -e

HPLJSITE=http://oleg.wl500g.info/hplj
DEVICE=/dev/usb/lp0
LOGFILE=/var/usblp_hotplug.log
FIRMWARE=
pid=${PRODUCT:0:8}
if [ $pid -a $ACTION = 'bind' -a $DRIVER = 'usblp' ]; then
    case $pid in
    3f0/0517)
      FIRMWARE=sihp1000.dl
      ;;
    3f0/1317)
      FIRMWARE=sihp1005.dl
      ;;
    3f0/4117)
      FIRMWARE=sihp1018.dl
      ;;
    3f0/2b17)
      FIRMWARE=sihp1020.dl
      ;;
    3f0/3d17)
      FIRMWARE=sihpP1005.dl
      ;;
    3f0/3e17)
      FIRMWARE=sihpP1006.dl
      ;;
    3f0/4817)
      FIRMWARE=sihpP1005.dl
      ;;
    3f0/4917)
      FIRMWARE=sihpP1006.dl
      ;;
    3f0/3f17)
      FIRMWARE=sihpP1505.dl
      ;;
    esac
    if [ $FIRMWARE ]; then
      if [ ! -f /var/$FIRMWARE ]; then
            wget -O /var/$FIRMWARE $HPLJSITE/$FIRMWARE
      fi
      for i in $(seq 30); do
            if [ -c $DEVICE ]; then
               echo "$(date "+%Y-%m-%d %H:%M:%S") : Sending $FIRMWARE firmware to $DEVICE" > $LOGFILE
               cat /var/$FIRMWARE > $DEVICE
               echo "$(date "+%Y-%m-%d %H:%M:%S") : done." >> $LOGFILE
               exit
            fi
            sleep 1
      done
    fi
fi

wcj6376 发表于 2022-4-15 19:35

谢谢大神,参考完成,手机端和pc端HP 1020 成功打印

超马 发表于 2022-4-24 23:54

turboYI 发表于 2022-4-4 11:33
我没有小米路由器,但听说小米路由器的固件是基于 openwrt 的,如果可以 root 和 SSH,可以参考 80 楼 op ...

大佬,小米路由器mini,刷了padavan,
脚本里添加了13楼的那个本地脚本,也上传打印固件到mini,路由关了再开,无法打印,登录看了下打印固件没有了

是什么问题呢

超马 发表于 2022-4-25 00:13

turboYI 发表于 2021-9-6 14:05
我的路由器只有8M,剩余空间装不下固件,才选择即用即下载。如果空间大,就可以把固件保存下来直接用。在 ...

7个固件文件下载后上传到/etc/storage/里,已重启路由器就没了,不知道是怎么回事

超马 发表于 2022-4-25 11:13

路由器恢复出厂设置,现在设置好打印机,一点反应都没有了,太奇怪了
页: 1 2 3 4 5 [6] 7 8 9 10 11 12
查看完整版本: Padavan插入HP的GDI打印机时自动发送固件的脚本