OpenWrt 20.02.2 小米路由器3G配置CP1025网络打印
家里的施乐 CP116w 工作快五年了终于罢工了. 黑粉报错, 自己也不会拆, 只能搁置了. 后来换了个 HP CP1025. 这个打印机也不错, 墨盒便宜没什么废粉, 就是启动慢一点, 而且 -- 没有网络, 打印不太方便.
今天用一个刷好OpenWrt 20.02.2 的小米路由器3G, 配置了网络打印, 记录一下过程.
硬件准备
- 小米路由器3G (或者其它带USB口的, 能运行OpenWrt的路由器), 如何刷机可以参考前面的笔记
- 打印机 CP1025
安装软件
SSH登录到小米路由器3G上,
opkg update
opkg install kmod-usb-printer
opkg install p910nd luci-app-p910nd
重启路由器, 登录到Luci界面下, 可以看到增加了一个 Services -> p910nd - Printer server 菜单
连接打印机
连接打印机到路由器的USB口, 如果正常识别的话, 执行dmesg
命令应该会显示如下的信息
Wed May 25 20:12:27 2022 kern.info kernel: [ 2405.266691] usb 1-1: new high-speed USB device number 4 using xhci-mtk
Wed May 25 20:12:46 2022 kern.info kernel: [ 2424.223008] usb 1-1: USB disconnect, device number 4
Wed May 25 20:13:12 2022 kern.info kernel: [ 2450.738376] usb 1-1: new high-speed USB device number 5 using xhci-mtk
Wed May 25 20:13:18 2022 kern.err kernel: [ 2456.430394] usb 1-1: device descriptor read/64, error -145
Wed May 25 20:14:18 2022 kern.info kernel: [ 2516.767524] usb 1-1: USB disconnect, device number 5
Wed May 25 20:14:20 2022 kern.info kernel: [ 2518.153931] usb 1-1: new high-speed USB device number 6 using xhci-mtk
Wed May 25 20:14:20 2022 kern.info kernel: [ 2518.310862] usblp 1-1:1.0: usblp0: USB Bidirectional printer dev 6 if 0 alt 0 proto 2 vid 0x03F0 pid 0x112A
Wed May 25 20:15:18 2022 user.info : luci: accepted login on /admin/services/p910nd for root from 192.168.15.142
Wed May 25 20:16:15 2022 daemon.notice hostapd: wlan1: STA-OPMODE-SMPS-MODE-CHANGED d4:d2:52:ad:16:aa off
并且在 /dev 目录下出现 usb/lp0 设备
遇到的问题
运行中的打印机, 如果直接连接可能无法识别, /dev下不会显示新设备, 通过dmesg看, 能看到有usb设备连接, 但是没有usblp0: USB Bidirectional printer
这样的信息. 出现这种情况原因可能是打印机还保持在原来的运行状态, 或者被识别成了其它设备(例如CD光驱).
解决办法: 断电重启打印机, 或者长按开关键彻底重启打印机
启动打印服务
在 Services -> p910nd - Printer server 下,
- 勾选 enable
- Device: /dev/usb/lp0 使用默认就行, 在ssh下
ls /dev/usb
确认一下设备存在, 如果不存在这里设置是没用的 - Interface: unspecified
- Port: 9100
- Bidirectional mode 勾选 -- 注意这里要看打印机的型号, 有些型号网上说不能勾选, 否则会无限打印. 我用的 CP1025 可以勾选
然后保存应用就可以了
开启防火墙
如果你的电脑是直接连到这个路由器上, 可以省掉这步. 如果这个路由器和你的电脑都一起接在上一级路由器上, 则往下设置
设置静态IP
在 Network -> Interface -> WAN 点 Edit
- 切换协议为 Static address, 点击切换
- IPv4 address: 自行指定
- IPv4 netmask: 255.255.255.0
- IPv4 gateway: 上一级路由器的IP
- 在 Advanced Settings 下设置 Use custom DNS servers, 添加上一级路由器的IP作为DNS
保存应用, 连上这个路由器检查一下访问外网是否正常
打开WAN的9100端口
在 Network -> Firewall -> Traffic Rules, 点击 Add 添加
- Name: Allow-9100
- Protocol: TCP
- Source Zone: wan/wan6
- Source address: 空
- Source port: any
- Destination zone: Device (input)
- Destination address: 空
- Destination port: 9100
- Save 保存
保存&应用
从 Win10 连接
先安装好打印机驱动, 最后设置打印机这步可以跳过
设置 -> 打印机和扫描仪
- 点击 添加打印机或扫描仪
- 点击 我的打印机不在列表中
- 选择 通过TCP/IP 地址或主机名, 下一步
- Device Type 设备类型: TCP/IP 设备
- Hostname or IP address: 如果你是直接连在连接打印机的路由器上, 就填路由器IP, 如果你是连在上级路由器上, 就填上一步设置的路由器WAN IP
- 勾选 Query the printer and automatically ... to use
- 下一步
- 大概率是认不出驱动的, 这里手动选择驱动安装就可以了
最后打印测试页试试
从 MacOS / OSX 链接
界面方式添加
- System Preferences -> Printers → + (Add Printer)
- 切换到 IP 标签页
- Address: 192.168.1.1:9101 or socket://192.168.1.1:9101
- Protocol: HP Jetdirect - Socket
- Name: 随便填, 给打印机取一个名称
- Use: 选择 Software... 然后选择你的打印机
保存后打印测试页
手工添加
上面的方法适用于 HP M1120 , 但是对于 Canon MP480 会提示错误(Error: unable to communicate with printer). 可以通过CUPS添加
- 启动CUPS
cupsctl WebInterface=yes
- 访问 http://localhost:631/:
- 点击 Adding Printers and Classes in the center and on Add Printer. Log in with your system username/password. Select AppSocket/HP JetDirect and click on Continue.
- 在 Connection field 输入 socket://yourLEDEipaddress:9100 (你的OpenWrt提供的打印服务IP和端口), 点击继续
- 下一页输入打印机名称并继续
- 最后一页选择打印机厂商和型号, 点击添加
打印测试页