找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888广告投放联系QQ68610888
glinet
楼主: turboYI

Padavan插入HP的GDI打印机时自动发送固件的脚本

 火... [复制链接]
 楼主| 发表于 2022-3-11 21:50 | 显示全部楼层
rongxinma 发表于 2022-3-11 09:35
turboYI,大神,你太厉害啦,成功!! 解决梅林打印的千古难题啊,膜拜大神,
热插拔打印共享正常啦。 ...

没关系。我曾经实验过,发现 linux 在检测到USB打印机时,会有两次热插拔的“ add ”事件,所以发送打印机固件的程序会被触发两次。由于发送两次固件不影响打印机正常运行,就没有再专门做判断筛选。

点评

再次感谢turboYI大神。hp1020打印机运行稳定,奥里给  详情 回复 发表于 2022-3-13 21:28
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

发表于 2022-3-13 21:28 | 显示全部楼层
turboYI 发表于 2022-3-11 21:50
没关系。我曾经实验过,发现 linux 在检测到USB打印机时,会有两次热插拔的“ add ”事件,所以发送打印 ...

再次感谢turboYI大神。hp1020打印机运行稳定,奥里给
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

发表于 2022-3-16 18:46 来自手机 | 显示全部楼层
马克,经常找不到
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

发表于 2022-3-27 11:29 来自手机 | 显示全部楼层
大神,求教opwrt下没有/etc/mdev.conf这个文件,脚本添加到什么位置

点评

Openwrt 用不着这个脚本。 Openwrt 热插拔的实现方法和 Padavan 不同,它另有一套非常方便的 hotplug 事件脚本解决方案。只要建立一个 /etc/hotplug.d/usb/20-hp1020 脚本文件,就能在系统发现USB打印机时被调用  详情 回复 发表于 2022-3-28 20:31
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

 楼主| 发表于 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`的脚本:

  1. #!/bin/sh

  2. set -e

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

  5. DEVICE=/dev/usb/lp0
  6. LOGFILE=/var/log/hp

  7. if [ "$PRODUCT" = "3f0/2b17/100" -a "$ACTION" = "add" ]; then
  8.     for i in $(seq 30); do
  9.         if [ -c $DEVICE ]; then
  10.             echo "$(date) : Sending firmware to printer…" > $LOGFILE
  11.             cat $FIRMWARE > $DEVICE
  12.             echo "$(date) : done." >> $LOGFILE
  13.             exit
  14.         fi
  15.         sleep 1
  16.     done
  17. fi
复制代码


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

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

点评

请教如何写两个打印机的脚本,两台打印机分别插的时候要换脚本很麻烦呀。openwrt  详情 回复 发表于 2022-4-10 21:47
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

发表于 2022-3-28 22:46 | 显示全部楼层
感谢大神,终于搞好了
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

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

点评

何必呢?少说几句吧,网络这么大,聚到一起也不容易!: 1.0
@wodeppmm 你说点保存的地方,是高级设置>系统管理>恢复/导出/上传设置>保存 /etc/storage/ 内容到闪存 这个位置吗  发表于 2022-10-9 14:48
何必呢?少说几句吧,网络这么大,聚到一起也不容易!: 1
上传好以后,在老毛子高级设置>系统管理里有个保存提交选项,点下提交就好了。我也是这个问题卡了一晚上。  发表于 2022-6-13 13:21
我没有小米路由器,但听说小米路由器的固件是基于 openwrt 的,如果可以 root 和 SSH,可以参考 80 楼 openwrt 的做法。或者去刷个 Padavan 固件,就可以按这个帖子的做法来了。  详情 回复 发表于 2022-4-4 11:33
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

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

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

点评

大佬,小米路由器mini,刷了padavan, 脚本里添加了13楼的那个本地脚本,也上传打印固件到mini,路由关了再开,无法打印,登录看了下打印固件没有了,是什么问题? 然后再路由器里更换为那个即时下载的脚本,重  详情 回复 发表于 2022-4-25 00:31
大佬,小米路由器mini,刷了padavan, 脚本里添加了13楼的那个本地脚本,也上传打印固件到mini,路由关了再开,无法打印,登录看了下打印固件没有了 是什么问题呢  详情 回复 发表于 2022-4-24 23:54
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

发表于 2022-4-4 12:48 | 显示全部楼层
用华硕原厂的软件可行不??

点评

开启 TELNET 或 SSH 登录,然后可以参考 62 楼的方法来试一试 。  详情 回复 发表于 2022-4-4 13:27
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-4 13:27 | 显示全部楼层
gundam007 发表于 2022-4-4 12:48
用华硕原厂的软件可行不??

开启 TELNET 或 SSH 登录,然后可以参考 62 楼的方法来试一试 。
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

发表于 2022-4-4 13:52 | 显示全部楼层
谢谢分享
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

发表于 2022-4-8 22:16 | 显示全部楼层
感谢分享
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

发表于 2022-4-9 14:25 | 显示全部楼层
楼主这个代码太给力了,我一直都是将打印机和路由器接在一个小米插座后面,实在不行就是统一关掉后在重新上电,发送驱动的指令写在自定义脚本内。楼主这个代码更完美。感谢分享!
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

发表于 2022-4-10 21:47 来自手机 | 显示全部楼层
turboYI 发表于 2022-3-28 20:31
Openwrt 用不着这个脚本。

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

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

点评

参考1楼的脚本修改即可。 OpenWRT 的成品脚本如下:  详情 回复 发表于 2022-4-12 20:45
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-12 20:45 | 显示全部楼层
yff0217 发表于 2022-4-10 21:47
请教如何写两个打印机的脚本,两台打印机分别插的时候要换脚本很麻烦呀。openwrt

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

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

  4. HPLJSITE=http://oleg.wl500g.info/hplj
  5. DEVICE=/dev/usb/lp0
  6. LOGFILE=/var/usblp_hotplug.log
  7. FIRMWARE=
  8. pid=${PRODUCT:0:8}
  9. if [ $pid -a $ACTION = 'bind' -a $DRIVER = 'usblp' ]; then
  10.     case $pid in
  11.     3f0/0517)
  12.         FIRMWARE=sihp1000.dl
  13.         ;;
  14.     3f0/1317)
  15.         FIRMWARE=sihp1005.dl
  16.         ;;
  17.     3f0/4117)
  18.         FIRMWARE=sihp1018.dl
  19.         ;;
  20.     3f0/2b17)
  21.         FIRMWARE=sihp1020.dl
  22.         ;;
  23.     3f0/3d17)
  24.         FIRMWARE=sihpP1005.dl
  25.         ;;
  26.     3f0/3e17)
  27.         FIRMWARE=sihpP1006.dl
  28.         ;;
  29.     3f0/4817)
  30.         FIRMWARE=sihpP1005.dl
  31.         ;;
  32.     3f0/4917)
  33.         FIRMWARE=sihpP1006.dl
  34.         ;;
  35.     3f0/3f17)
  36.         FIRMWARE=sihpP1505.dl
  37.         ;;
  38.     esac
  39.     if [ $FIRMWARE ]; then
  40.         if [ ! -f /var/$FIRMWARE ]; then
  41.             wget -O /var/$FIRMWARE $HPLJSITE/$FIRMWARE
  42.         fi
  43.         for i in $(seq 30); do
  44.             if [ -c $DEVICE ]; then
  45.                echo "$(date "+%Y-%m-%d %H:%M:%S") : Sending $FIRMWARE firmware to $DEVICE" > $LOGFILE
  46.                cat /var/$FIRMWARE > $DEVICE
  47.                echo "$(date "+%Y-%m-%d %H:%M:%S") : done." >> $LOGFILE
  48.                exit
  49.             fi
  50.             sleep 1
  51.         done
  52.     fi
  53. fi
复制代码

点评

大神,1020实测,没起作用,也没日志。请问什么原因?  详情 回复 发表于 2022-6-10 19:22
感谢大佬,再问一个问题,这个代码我看了一下,是插上USB之后根据型号去网上下载固件,请问固件下载路径是哪里?如果跟前面发的那个代码保存在本机,是怎么样的?因为打印机没联网  详情 回复 发表于 2022-4-13 09:05
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2025-12-5 12:40

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com

快速回复 返回顶部 返回列表