找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

 火... [复制链接]
 楼主| 发表于 2022-3-9 22:07 | 显示全部楼层
kingsinger 发表于 2022-2-28 10:15
用的是梅林固件,日志里显示是这样的
但是驱动目录里是空的

从日志来看,发送固件的脚本已经运行过了,但是因为系统没有发现打印机,实际上固件没有发送成功。

在设备目录里没有 /dev/usb/lp0 的原因我也不太清楚,我猜测的原因,可能是系统缺什么驱动或服务,类似 OpenWRT 里的 kmod-usb-printer 之类的?或者是脚本执行太早了,设备还没有准备好?
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2022-3-9 22:33 | 显示全部楼层
本帖最后由 turboYI 于 2022-3-9 22:41 编辑
rongxinma 发表于 2022-3-2 22:06
梅林380版本的也没有自定义脚本,功能,楼主怎么创建servicces-start.sh。楼主能上传一份更好谢谢
,

我现在用的是从论坛里收的博通版腾达 AC9,卖家发来时的固件是梅林,那一版的 WEB 管理里面有自定义的脚本调用功能,我就又折腾了一下,给它加上热发送打印机固件的功能。后来不知怎的,路由器的 LPR 打印服务进程经常无缘无故地退出,我分析了一阵没头绪,也懒了,为图稳定,就再次刷上论坛里淘来的 AC9 定制的华硕 RT-AC1200G+ 固件,然后 LPR 打印就正常了——可惜就是慢,PC 发送打印任务后,要等十几秒后打印机才有动静。

我的打印机还是 HP Laserjet 1020 plus ,华硕固件的WEB管理端里没有可以自定义脚本的地方。但是我想华硕固件作为 Padavan 和梅林的源头,总是有相通的地方。我继续在论坛里淘,然后实验,发现还是可以做到在华硕固件系统自启动时加载自己的脚本的。

下面的自启动脚本仅用于在路由器开机后发送一次 HP LJ1020 固件。我分享一下具体步骤:

参考了 https://www.right.com.cn/forum/thread-312516-1-1.html 这个帖子,经过我的实验,做了一些修正。现在的步骤如下:(用SSH登录路由器运行)

第一步:安装
  1. chmod 755 /jffs/boot.sh
  2. chmod 755 /jffs/install_hp1020.sh
  3. nvram set jffs2_on=1
  4. nvram set jffs2_enable=1
  5. nvram set jffs2_format=1
  6. nvram set jffs2_exec="sh /jffs/boot.sh"
  7. nvram commit
复制代码


第二步:重启,然后创建3个文件

1. 打印机固件 /jffs/sihp1020.dl
  1. wget -O /jffs/sihp1020.dl http://oleg.wl500g.info/hplj/sihp1020.dl
复制代码


2. 自动启动脚本 /jffs/boot.sh

可以用 cp /dev/tty /jffs/boot.sh 命令创建文件,粘贴下面的内容后,按 Ctrl+D 保存。

  1. #!/bin/sh

  2. #Asynchronously
  3. /bin/sh /jffs/install_hp1020.sh &
复制代码


3. 发送打印机固件脚本 /jffs/install_hp1020.sh

可以用 cp /dev/tty /jffs/install_hp1020.sh 命令创建文件,粘贴下面的内容后,按 Ctrl+D 保存。

  1. #!/bin/sh

  2. for i in 1 2 3 4 5 6 7 8 9 10; do
  3.         if [ -c /dev/usb/lp0 ]; then
  4.                 cat /jffs/sihp1020.dl > /dev/usb/lp0
  5.                 break
  6.         fi
  7.         sleep 3
  8. done
复制代码


第三步:修改权限

  1. chmod 755 /jffs/boot.sh
  2. chmod 755 /jffs/install_hp1020.sh
复制代码


这样,开机时路由器会自动运行 /jffs/boot.sh ,在这个脚本里调用 /jffs/install_hp1020.sh 。如果调用其他脚本,就能实现其他功能。这个思路,我想别的固件里应该可以借鉴一下。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-3-10 12:09 | 显示全部楼层
我的华硕68u,梅林改386最新版,按大神你的方法弄好重新启动,啥都不见了,刚才的两个sh文件都不见了,不知道为啥?

点评

第一步的 nvram 操作完后,要重新启动一下。重启后系统才会保存 /jffs/ 目录的内容,才能做第二步。  详情 回复 发表于 2022-3-10 12:33
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2022-3-10 12:33 | 显示全部楼层
rongxinma 发表于 2022-3-10 12:09
我的华硕68u,梅林改386最新版,按大神你的方法弄好重新启动,啥都不见了,刚才的两个sh文件都不见了,不知 ...

第一步的 nvram 操作完后,要重新启动一下。重启后系统才会保存 /jffs/ 目录的内容,才能做第二步。

点评

感谢turboYI大神,这个成功啦!但是这个操作必须要先开打印机,然后重启路由器,这样成功了。如果关掉打印机,再打开打印机就不能打印了,这咋办。 一般情况路由器都是开着不关的,主要是打印机不用就关了,用  详情 回复 发表于 2022-3-10 13:46
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-3-10 12:51 | 显示全部楼层
本帖最后由 rongxinma 于 2022-3-10 13:47 编辑

成功了,
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-3-10 13:46 | 显示全部楼层
turboYI 发表于 2022-3-10 12:33
第一步的 nvram 操作完后,要重新启动一下。重启后系统才会保存 /jffs/ 目录的内容,才能做第二步。

感谢turboYI大神,这个成功啦!但是这个操作必须要先开打印机,然后重启路由器,这样成功了。如果关掉打印机,再打开打印机就不能打印了,这咋办。


一般情况路由器都是开着不关的,主要是打印机不用就关了,用的时候才打开,为啥 关掉打印机再开机就不能打印啦。

点评

62楼的做法是简化的,本来就没有处理热插拔打印机的代码。 27楼的脚本就是做这个的,可以试一试把62楼里第二步的 /jffs/install_hp1020.sh 脚本文件内容换成27楼里的脚本内容。  详情 回复 发表于 2022-3-10 22:22
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-3-10 14:14 | 显示全部楼层
我于是运行cat /jffs/sihp1020.dl >>/dev/usb/lp0,
结果显示can't create /dev/usb/lp0: Device or resource busy。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2022-3-10 22:22 | 显示全部楼层
rongxinma 发表于 2022-3-10 13:46
感谢turboYI大神,这个成功啦!但是这个操作必须要先开打印机,然后重启路由器,这样成功了。如果关掉打 ...

62楼的做法是简化的,本来就没有处理热插拔打印机的代码。

27楼的脚本就是做这个的,可以试一试把62楼里第二步的 /jffs/install_hp1020.sh 脚本文件内容换成27楼里的脚本内容。

点评

好的,我回头试试,再反馈  详情 回复 发表于 2022-3-10 22:31
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-3-10 22:31 | 显示全部楼层
turboYI 发表于 2022-3-10 22:22
62楼的做法是简化的,本来就没有处理热插拔打印机的代码。

27楼的脚本就是做这个的,可以试一试把62楼 ...

好的,我回头试试,再反馈
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-3-11 09:35 | 显示全部楼层
turboYI,大神,你太厉害啦,成功!! 解决梅林打印的千古难题啊,膜拜大神,
热插拔打印共享正常啦。。。再次感谢大神的无私分享。
有个小问题,打印机关机再开机,会自检两声,不是一声,这是正常的吧?

点评

没关系。我曾经实验过,发现 linux 在检测到USB打印机时,会有两次热插拔的“ add ”事件,所以发送打印机固件的程序会被触发两次。由于发送两次固件不影响打印机正常运行,就没有再专门做判断筛选。  详情 回复 发表于 2022-3-11 21:50
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-3-11 18:12 | 显示全部楼层
turboYI 发表于 2021-9-15 23:11
能否完美解决USB Printer热插拔的问题了不知道,但我相信方向没错。

昨天晚上我看了老毛子网站的那篇文 ...

感谢大神,无私奉献,终于搞定!!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

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

点评

再次感谢turboYI大神。hp1020打印机运行稳定,奥里给  详情 回复 发表于 2022-3-13 21:28
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

再次感谢turboYI大神。hp1020打印机运行稳定,奥里给
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-3-16 18:46 来自手机 | 显示全部楼层
马克,经常找不到
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 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
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 09:14

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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

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