家里的施乐 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
    • 下一步
  • 大概率是认不出驱动的, 这里手动选择驱动安装就可以了

最后打印测试页试试

参考

OpenWrt 20.02.2 小米路由器3G配置CP1025网络打印的更多相关文章

  1. 小米路由器3G R3G 刷入Breed和OpenWrt 20.02.2 的记录

    小米 R3G 参数 Architecture: MIPS Vendor: Mediatek Bootloader: U-Boot System-On-Chip: MT7621 family CPU/S ...

  2. 小米路由器刷Xiaomi Mi WiFi Mini openwrt

    Current Stable Release - OpenWrt 18.06.1,released on August, 18th 2018. there is also PandoraBox fir ...

  3. 小米路由器4a千兆版刷openwrt

    现在网上搜小米路由器4a千兆版刷机的都是刷的padavan的,很少能找到openwrt的刷机教程. 首先刷openwrt系统的时候要先刷入引导程序breed,网上有一篇帖子写的很详细(https:// ...

  4. 使用 OpenWrt Image Generator 为 WR703N 路由器定制固件

    标题:使用 OpenWrt Image Generator 为 WR703N 路由器定制固件 之前试着自己编译固件,编译是成功了,但是在后期安装官方仓库的ipk时出现问题,因为自己编译的固件和官方固件 ...

  5. 中大东校小米路由器mini实现inode上网,ipv6 wifi【中大】【东校】【inode】【ipv6】

    还有不到4个月就要毕业了,前几天半夜没事捣鼓小米路由没想到竟然实现了wifi的ipv6. 正好又安利了同学一台小米路由mini,从刷机到inode到ipv6全搞了一遍. 这里将教程写出来,服务学弟妹. ...

  6. Cisco SG300系列交换机划分VLan与普通路由器连接配置

    思科SG300系列三层交换机是针对中小企业设计的一款产品,Marvell 主控和128M Ram,最大支持52个千兆RJ45端口和2个SFP端口,因公司业务需求,最近也进行了解和配置,具体型号为 SG ...

  7. 小米路由器mini如何设置外网访问wan网站的方法

    很多的玩友都在小米路由器mini上面搭建了自己的网站,有些朋友还需要设置对外网进行开放,我自己也在路由器上面实践了使用,下面与大家分享一下如何设置外网访问路由器网站的办法. 工具/原料 小米路由器mi ...

  8. 小米路由器mini搭建个人静态网站的方法

    小米路由和小米路由mini从本质上来说差距就在1T的硬盘上,其它并没有明显差别,但是功能却差很多,例如:小米路由有自带的LAMP模式,而小米路由mini则没有,换句话说,其实这个功能是被阉割了,仔细研 ...

  9. 【玩转开源】BananaPi R2 —— 第三篇 基于Openwrt开发一个简单的路由器

    上一篇讲解了R2的网口配置,这一篇我们以BananaPi R2为例子来实现一个简单的路由器:那么一个简单的路由器应该具备什么样的功能呢?最简单的说就是wan+lan+ap这三个功能. 首先wan+la ...

随机推荐

  1. 微信端页面使用-webkit-box和绝对定位时,元素上移的问题

    -webkit-box 的用法 通常,在移动端要实现水平方向平分宽度的布局,会使用 -webkit-box 来布局.它的使用方法是: <div class='parent'> <di ...

  2. 利用Charles做代理测试电脑上写的H5页面

    做H5页面的同学可能经常会遇到一个场景,就是电脑上调试好的页面怎么在手机上访问测试呢? 下面就介绍一种自己经常使用的方式,利用Charles代理软件来实现! 安装Charles 直接去官网下载对应的系 ...

  3. Anaconda安装tensorflow和keras(gpu版,超详细)

    本人配置:window10+GTX 1650+tensorflow-gpu 1.14+keras-gpu 2.2.5+python 3.6,亲测可行 一.Anaconda安装 直接到清华镜像网站下载( ...

  4. java中异常到底有什么用?举例

    异常的意义:马克-to-win:通过上面的例子,我们看出通过引入异常这种技术,即使出现不测(用户把0赋给除数),也可以让程序不崩溃,还能继续优雅 的运行.那,这种技术有用,值得学.马克-to-win: ...

  5. Mongo实验

    MongoDB数据库操作 Student: { "name": "zhangsan", "score": { "English&q ...

  6. properties和XML配置文件内容的获取

    @ 目录 总结内容 1. Java中为什么要使用配置文件 2. Java中常用的配置文件类型有哪些以及它们的特点 Properties配置文件 XML配置文件 总结 总结内容 1. Java中为什么要 ...

  7. python---替换空格

    """ 请实现一个函数,将一个字符串中的每个空格替换成"%20". 例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are ...

  8. C语言结构体指针与结构体变量作形参的区别

    区别 结构体变量 结构体变量作为形参,传递的是结构体变量本身,是一种值传递 形参结构体变量成员值的改变不影响对应的实参构体变量成员值的改变 结构体指针 结构体指针作为函数参数,传递的是指向结构体变量的 ...

  9. Windows原理深入学习系列-强制完整性检查

    这是[信安成长计划]的第 24 篇文章 0x00 目录 0x01 介绍 0x02 逆向分析 Win10_x64_20H2 0x03 总结 0x04 参考文章 最近因为一些事情,拖更了三个周,大家见谅啊 ...

  10. 认识python-个人笔记篇

    认识python 1 .python 的发展历史 一种广泛使用的解释型.高级编程.通用型编程语言,由"龟叔"吉多·范罗苏姆创造,第一版发布于1991年. Python的设计哲学强调 ...