openwrt路由安装配置USB打印机OpenWrt共享打印机P910nd+HP P1007+HG255D已成功不完美

2020-10-01
0评论
/
4438阅读
爱搜啊

OpenWRT路由器安装打印服务

openwrt路由安装配置打印机

1,安装kmod-usb-printer, p910nd, luci-app-p910nd,重启,到“系统-启动项”确认P910ND已经启动。没看到USB-PRINTER,老固件是有这一项的。

2,SSH登录,输入

dmesg | grep printer

查看返回信息,确认安装打印驱动成功

2,SSH登录,输入

netstat -an

命令查看端口9100已经监听

3,添加windows 打印  

详细原文:《openwrt路由安装配置打印机

看了官方的,才明白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打印机,“几乎”就是即插即用的。

昨天就基本搞定了,不会咔哒咔哒响了,也不会重复打印了,而且打印任务也能正常停止,也没有用到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

本站附件分享,如果附件失效,可以去找找看

诚通网盘附件百度网盘附件


于2020-10-01发布