找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 36142|回复: 79

关于OpenWrt共享打印机P910nd+ HP P1007 +HG255D - 已成功,不完美。

  [复制链接]
发表于 2017-4-18 15:25 | 显示全部楼层 |阅读模式
本帖最后由 明月光不光 于 2017-4-24 17:47 编辑

看了官方的,才明白CUPS缩写是啥意思,哈哈

我手头是HGH55d+HP P1007,直接安装了P910nd,算是已经搞定了!
偶尔第二个打印任务发送不到打印机(轻微的咔哒一声,然后没有反应了),但是再试几次有可以了。总之不太完美。


后来发现CUPS对资源吃的多,决定还是再好好试试p910nd,有可能是没有开防火墙的原因。

我回头也会把有价值的帖子都集中放在这里,供大家参考。

p910nd Printer Server
https://wiki.openwrt.org/doc/howto/p910nd.server

CUPS Server
https://wiki.openwrt.org/doc/howto/cups.server

【2017-04-22 22:39】【补充一下】
使用了另外一台Samsung SCX-4521F的打印机,路由器上针对此打印机的啥脚本都没弄(应该只有防火墙的rules起作用),接上就直接好使了,看来以后买打印机还是别图便宜啊,还是别买主机型打印机。
所以今天的结论是:P910nd好使,关键还是麻烦在主机型打印机(也叫windows 打印机,GDI打印机)需要每次上传固件这事儿上。对于非GDI打印机,“几乎”就是即插即用的。

我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2017-4-18 18:13 | 显示全部楼层
还真的是不太好搞啊,目前都能看见9100的连接已经建立了,但是依然无法打印。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2017-4-19 08:55 | 显示全部楼层
这个资料很有用,起码让我家里的成功了,回头试试公司的

点评

学习一下学习一下学习一下学习一下学习一下学习一下  详情 回复 发表于 2020-3-3 17:08
家里的hp 3548,算是比较新的型号,可以正常使用。但是公司的HP3015和HP1280,不知道什么情况,能够发现打印机,但是无法加载驱动,手动指定ppd完成添加打印机,但是显示/usr/lib/cups/filter/foomatic-rip-hplip文  详情 回复 发表于 2017-4-19 22:31
啊?你都成功了啊!什么打印机型号啊?  详情 回复 发表于 2017-4-19 14:19
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2017-4-19 14:19 | 显示全部楼层
funison 发表于 2017-4-19 08:55
这个资料很有用,起码让我家里的成功了,回头试试公司的

啊?你都成功了啊!什么打印机型号啊?
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2017-4-19 15:36 | 显示全部楼层
今天也成功了一小步,能够打印了,但是停不下来,除非手工取消。官方帖子里也提到这事儿了,明天再研究看看。

今天能够打印的关键步骤:cat /usr/lib/sihpP1007.dl > /dev/usb/lp0, 就是要把固件上传到打印机才行。

点评

请问一下, 如何实现开打印机就可以马上打,现在是需要手动执行一下上传固件的语句才可以。我目前的解决方法是计划任务里定时5分钟执行一次这个语句: #!/bin/sh /usr/lib/usb_printerid /dev/usb/lp0 | grep -q  详情 回复 发表于 2017-4-28 01:24
你这个dl文件哪里弄得。  详情 回复 发表于 2017-4-19 22:31
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2017-4-19 22:31 | 显示全部楼层
funison 发表于 2017-4-19 08:55
这个资料很有用,起码让我家里的成功了,回头试试公司的

家里的hp 3548,算是比较新的型号,可以正常使用。但是公司的HP3015和HP1280,不知道什么情况,能够发现打印机,但是无法加载驱动,手动指定ppd完成添加打印机,但是显示/usr/lib/cups/filter/foomatic-rip-hplip文件不存在,不清楚哪里出问题了。。。暂时没时间折腾,换命令行的ubuntu系统了.

点评

新的型号应该没啥大问题,主要就是那些所谓的GDI的打印机,其实就是低端型号,不是PostScript或者PCL语言的,等于是Windows打印机,需要每次上传固件的,这种麻烦的很。不过帖子里其实说的很详细,估计应该能搞定。  详情 回复 发表于 2017-4-20 13:21
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2017-4-19 22:31 | 显示全部楼层
明月光不光 发表于 2017-4-19 15:36
今天也成功了一小步,能够打印了,但是停不下来,除非手工取消。官方帖子里也提到这事儿了,明天再研究看看 ...

你这个dl文件哪里弄得。

点评

http://oleg.wl500g.info/hplj/  详情 回复 发表于 2017-4-20 13:19
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2017-4-20 07:28 | 显示全部楼层
感谢分享
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2017-4-20 10:10 | 显示全部楼层
66666666666666666666大大
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2017-4-20 13:19 | 显示全部楼层

点评

朋友有qq吗咋联系你  详情 回复 发表于 2019-10-30 22:04
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2017-4-20 13:21 | 显示全部楼层
funison 发表于 2017-4-19 22:31
家里的hp 3548,算是比较新的型号,可以正常使用。但是公司的HP3015和HP1280,不知道什么情况,能够发现 ...

新的型号应该没啥大问题,主要就是那些所谓的GDI的打印机,其实就是低端型号,不是PostScript或者PCL语言的,等于是Windows打印机,需要每次上传固件的,这种麻烦的很。不过帖子里其实说的很详细,估计应该能搞定。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2017-4-20 13:22 | 显示全部楼层
本帖最后由 明月光不光 于 2017-4-20 14:12 编辑

今天继续折腾,现在缺的就是usb_printerid这个文件,这个网站(http://oleg.wl500g.info/hplj/)提供的不好用,因为CPU不同,准备今天再找找。如果要自己编译也不是不行,可能稍微麻烦一些。

点评

哪天你搞定了,教我一些编第三方IPK的经验吧  详情 回复 发表于 2017-4-20 16:05
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2017-4-20 16:05 | 显示全部楼层
明月光不光 发表于 2017-4-20 13:22
今天继续折腾,现在缺的就是usb_printerid这个文件,这个网站(http://oleg.wl500g.info/hplj/)提供的不好 ...

哪天你搞定了,教我一些编第三方IPK的经验吧
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2017-4-20 19:03 | 显示全部楼层
谢谢LZ分享
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2017-4-21 12:12 | 显示全部楼层
昨天就基本搞定了,不会咔哒咔哒响了,也不会重复打印了,而且打印任务也能正常停止,也没有用到usb_printerid(需要交叉编译),但是不太稳定的地方是:有时打印任务出不来,打印测试页每次都OK,但是有时word和Excel的任务出不来。
关键步骤就是:在Windows中去掉“双向打印”的对勾即可。

考虑到目前对于共享打印的诉求不是太强烈,暂时放弃了。以后有机会再试试CUPS,不过好像OpenWRT官方停止对CUPS的支持了。



我把用到的脚本贴上来,供大家参考一下,强烈建议大家仔细看原帖的内容,这些脚本都是从那儿COPY过来修改的:

/etc/config/p910nd, 是不需要修改的!

/etc/hotplug.d/usb/10-printer

#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
if [ "$PRODUCT" ="3f0/4817/100" ]
then
case "$ACTION" in
        add)
        /etc/init.d/p910nd stop
        echo "`date`: HP LaserJet P1007 added" >> /tmp/hp-1007
        /etc/init.d/p910nd start >> /tmp/hp-1007
        echo "Done." >> /tmp/hp-1007
        ;;
        remove)
        echo "`date`: HP LaserJet P1007 removed" >> /tmp/hp-1007
        /etc/init.d/p910nd stop >> /tmp/hp-1007
        echo "Done." >> /tmp/hp-1007
        ;;
esac
fi

上述命令成功了,插拔打印机之后,有反应。

/etc/hotplug.d/usb/10-hplj1007

#!/bin/sh

set -e

# change this to the location where you put the .dl file:
FIRMWARE="/usr/lib/sihpP1007.dl"
DEVICE=/dev/usb/lp0
LOGFILE=/tmp/hp-fm

if [ "$PRODUCT" = "3f0/4817/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

上述脚本也可以用,但是同样会不停的打印,而且打印任务也无法结束。

针对HP的GDI系列,应该改为下列的样子

#!/bin/sh

set -e

# change this to the location where you put the .dl file:
FIRMWARE=/usr/lib/sihpP1007.dl
DEVICE=/dev/usb/lp0
LOGFILE=/tmp/hp-fm

if [ "$PRODUCT" = "3f0/4817/100" -a "$ACTION" = "add" -a "$DEVTYPE" = "usb_interface" ]; then
   echo "$(date): STARTING" > $LOGFILE
   for i in $(seq 30); do
       echo "$(date): Attempt number $i on $DEVICE" » $LOGFILE
       if [ -c $DEVICE ]; then
          echo "$(date): Device $DEVICE found." » $LOGFILE
          if [ -z "`usb_printerid $DEVICE | grep FWVER`" ]; then
              echo "$(date): No firmware found on $DEVICE" » $LOGFILE
              echo "$(date): Sending firmware to printer…" » $LOGFILE
              cat $FIRMWARE > $DEVICE
              echo "$(date): done." » $LOGFILE
          else
              echo "$(date): Firmware already there on $DEVICE" » $LOGFILE
          fi
          echo "$(date): EXITING" » $LOGFILE
          exit
       fi
       sleep 1
    done
fi

点评

你说的很对。: 5.0 我赞同你的说法。: 5.0
你说的很对。: 5 我赞同你的说法。: 5
  发表于 2017-10-31 22:05
感谢分享,usb_printerid 这个文件你需要么?我有,发给你研究一下?  详情 回复 发表于 2017-4-21 13:15

评分

参与人数 2恩山币 +2 收起 理由
pcwww + 1 一看就是觉得高端、大气、上档次!.
jeffreyscu + 1 我对你的敬仰犹如江水滔滔,我上朝鲜战场后一定写信给你!!!

查看全部评分

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 16:13

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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

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