旧式有线打印机联网探索

小米 mini 路由器刷机刷入 OpenWrt 后作为中介,通过打印机的 USB 接口与 OpenWrt 进行交互,实现有线打印机联网

材料准备

  • 硬件

    • 小米 mini 路由器
    • HP JetLaser 1020 打印机一台
    • U 盘一枚(可以使用读卡器插入 TF 卡代替)
  • 软件
    • XShell / Xftp

实践步骤

给小米 mini 刷入 OpenWrt

本步骤主要参考资料

小米路由器mini刷openwrt - 简书

预先准备

  • 取卡针(牙签或回形针,用于按压 Reset 复位键)
  • 网线两根(一根插入 wan 口用于后续更新路由器,一根插入 lan 口用于刷入原生 OpenWrt 后默认未开启 Wifi 功能时进行通讯
  • 路由器官方开发版 ROM 以及官方开启 SSH 补丁
    • 刷入路由器需要先进行路由器的账号绑定(下载 SSH 工具也需要该步骤),绑定在个人的小米账号下表示该路由器后续操作由个人承担
    • 官方开发版 ROM 下载地址,选取合适版本的路由器开发版 ROM,可同时下载稳定版 ROM 作为备用恢复的 ROM
    • 官方开启 SSH 补丁下载地址,需要绑定路由器的登录账号,因此完成下文《绑定路由器》步骤再进行下载
  • 下载对应路由器的 breed 包,用于创建恢复固件的环境,下载地址,小米路由对应的 breed 包为 breed-mt7620-xiaomi-mini.bin
  • 下载对应路由器的 OpenWrt 插件,注意选择正确的版本,
    • OpenWrt 发行版区别 - CSDN
    • OpenWrt 下载 - 清华镜像源,下载依次点击 ramips - mt7620,选择下载 openwrt-21.02.3-ramips-mt7620-xiaomi_miwifi-mini-squashfs-sysupgrade.bin
    • 使用原生 OpenWrt,刷入第三方 OpenWrt 后因版本问题有可能导致无法更新和下载,遇见该问题需要重回 breed 重新刷入固件

绑定路由器

连接路由器,WAN 口连接公网,手机连接该路由器后根据提示下载(或直接应用商店下载)小米 WiFi app,点击右上角 + 选择添加新的路由器然后按照提示操作绑定到小米账号

绑定路由器完毕后进行 ssh 工具包的下载,注意记录对应路由器的 root 密码后续步骤会用到

路由器更换至开发版

绑定完毕后电脑连接路由器,使用浏览器进入后台(默认小米路由后台为 192.168.31.1),输入密码登录后台

点击右上角的下拉菜单,选择 系统升级 - 手动升级,选择上一步准备的开发版 ROM(我的版本为 miwifi_r1cm_firmware_2e9b9_2.21.109.bin,使用最新版本即可)

如果忘记路由器密码,可以参考官网的使用 U 盘来刷机,刷机帖 - 小米社区。值得一提的是,使用 U 盘这种方式更新系统会删除硬盘中的所有数据。

刷入过程中蓝灯会变为黄灯闪烁,闪烁完毕后变为黄色,等一段时间后会重新变为蓝色

刷入完毕后重新连接路由器(可能需要重新初始化,若需要则重复手机连接路由器步骤重新初始化即可),检查系统版本是否为开发版

使用 刷机帖 - 小米社区 的方式进行刷机,否则无法正常开启 SSH

开启 SSH 功能

  1. 将官网下载的用于开启 SSH 工具 bin 文件 miwifi_ssh.bin 复制到U盘的根目录下,保证文件名为miwifi_ssh.bin 且目录中不存在其他 .bin 文件
  2. 断开小米路由器的电源,将 U 盘插入 USB 接口
  3. 按住 reset 按钮之后接入电源,指示灯变为黄色闪烁时再松开 reset 键(灯变为常亮黄色代表正常执行,变为红色代表读取失败)
  4. 等待 3 - 5 分钟,小米路由器会自动重启,指示灯变蓝了表示成功

即使是同型号的不同路由器的 miwifi_ssh.bin 不一样!!!必须针对的下载!!!否则不识别

刷入 Breed

Breed 是由网友开发的一个号称“不死”的引导加载程序。只要路由器成功刷入 Breed 之后,就可以借助它来备份和刷入路由器固件。

  1. 路由器断电,将U盘拔出
  2. breed-mt7620-xiaomi-mini.bin 文件名更改为 breed.bin,复制到 U 盘根目录,并保证 U 盘根目录没有其他 bin 文件
  3. 路由器插入 U 盘,插电启动,在终端里输入 ssh root@192.168.31.1 回车(登陆密码在下载 SSH 的网站内获取)连接你的路由器
  4. 输入指令 mtd -r write /extdisks/sda1/breed.bin Bootloader

  1. 出现以上提示时,路由器断电,拔出 U 盘,指示灯蓝灯闪烁时松开 Reset 键,运行时保持蓝灯闪烁
  2. LAN 口插入网线,另一端连接电脑,浏览器输入 192.168.1.1 见到 Breed Web 代表刷入成功

刷入 OpenWrt

  1. 进入 Breed 管理页面
  2. 点击 固件备份,分别备份 EEPROM编程器固件 方便未来恢复
  3. 点击 固件更新,勾选 固件,选中 OpenWrt 固件包 openwrt-21.02.3-ramips-mt7620-xiaomi_miwifi-mini-squashfs-sysupgrade.bin,点击 上传 ,点击 更新 等待进度条完成
  4. 更新完毕后插拔网线,访问 192.168.1.1 若进入 OpenWrt 界面则刷入完成

其他配置

  • 修改密码

    • administartion 选项
  • 更换清华镜像源
    • 通过命令行 ssh root@192.168.1.1 登录 OpenWrt 后输入 sed -i 's_downloads.openwrt.org_mirrors.tuna.tsinghua.edu.cn/openwrt_' /etc/opkg/distfeeds.conf 即可完成更换
    • OpenWrt 下载使用 opkg,默认不包含 nano / whereis
      • opkg update 下载更新列表并完成更新
      • opkg install [包名] 下载安装包并安装,由于 OpenWrt 自带的 Luci 在线桌面中包含 system - software 菜单栏,可以使用图形化的方式进行下载
    • 更换镜像源后建议的操作
      • 下载 whereis / nano
      • 更换 Luci 界面语言为中文
        • opkg update
        • opkg install luci-i18n-base-zh-cn
  • 修改 OpenWrt 默认 IP 地址,可选
    • nano /etc/config/network,将其中的 lan 选项的 ipaddr 改为需要的 ip 后重启 OpenWrt 即可
  • 追加 SFTP 服务 - 知乎
    • opkg install vsftpd openssh-sftp-server 下载管理及 sftp 服务端
    • /etc/init.d/vsftpd enable 允许开机启动
    • /etc/init.d/vsftpd start 启动服务
  • 默认开启 Wifi 无线连接
    • /etc/config/wireless 文件管理无线配置

      • config wifi-deviceoption disabled 不存在则增加,设置为 0 则默认开启,设置为 1 则默认关闭
      • config wifi-ifaceoption encryption 设置加密选项,无密码设置为 none,设置密码设置为 wpa 且追加配置 option key '你的密码'
      • 配置失误时可以使用 rm -f /etc/config/wireless ; wifi detect > /etc/config/wireless 重置配置
    • Luci 的无线配置中选择 SSID: OpenWrt | 模式: Master 的编辑按钮,在高级设置中将无线信号覆盖密度改为 正常保存并应用
    • 配置完毕后 reboot 生效
  • 其他指令
    • cat /proc/version 查看系统信息

OpenWrt 连接打印机

本步骤主要参考资料

USB 打印服务配置

驱动配置及连接打印机

预先准备

  • Linux 端驱动 sihp1020.dl,下载后改名为此名称
  • Windows 端驱动(安装但不使用,由于实际连接的是 OpenWrt 即 Linux 系统,因此该驱动仅用于跳过配置流程(是否可以直接不安装此驱动?未进行尝试))
  • 驱动脚本文件 10-usb-printer
#!/bin/bash
FIRMWARE="/etc/sihp1020.dl"
LOG="/tmp/sihp1020-log"
if [ "$PRODUCT" = "3f0/2b17/100" ]
thensleep 3if [ "$ACTION" = "add" ]thenecho "`date '+%Y-%m-%d %H:%M:%S'`: HP LaserJet 1020 add" >> $LOGcat $FIRMWARE > /dev/usb/lp0 || echo "`date '+%Y-%m-%d %H:%M:%S'`: HP LaserJet 1020 init failed" >> $LOG || echo "`date '+%Y-%m-%d %H:%M:%S'`: HP LaserJet 1020 init success" >> $LOGelif [ "$ACTION" = "remove" ]thenecho "`date '+%Y-%m-%d %H:%M:%S'`: HP LaserJet 1020 remove" >> $LOGelseecho "`date '+%Y-%m-%d %H:%M:%S'`: HP LaserJet 1020 $ACTION" >> $LOGfi
fi

添加打印服务

  1. 下载需求的依赖包
opkg update # 读入软件列表
# 好像每次 reboot 都会清除软件列表,history 也无记录
opkg install p910nd # 安装功能模块
opkg install kmod-usb-printer # 安装打印支持
# opkg install libusb # usb 接口支持,安装失败
opkg install usbutils # usb 接口支持
opkg install luci-app-p910nd # Luci 管理界面
  1. 配置 p910nd 模块,建议手动配置

    • p910nd - OpenWrt Docs
    • enable '1' 代表启用服务,默认值为 0
    • port '2' 代表监听的端口,基准值为 9100,范围为 0-9 即允许端口为 9100-9109
    • bidirectional '0' 必须设置为取消即配置为 0(由于 HP LaserJet 1200 不支持该功能),否则将无法停止打印,默认值为 1 即开启双向读出功能

这里端口默认9100即可,**HP1000、1005、1018、1020、P1005、P1006、P1007、P1008、P1505这些型号打印机,不要勾选双向模式,不勾选,**否则打印一旦开始,无法停止,就算你打印一个测试页,也停不下来。

# 进行手动的修改,p910nd 的配置文件位置在 /etc/config/p910ndconfig p910ndoption device '/dev/usb/lp0'option runas_root '0'option mdns '0'option mdns_ty 'My Printer Manufacturer/Model'option mdns_note 'Basement'option enabled '1'option port '2'# 保存文件后检查文件内容无误后
/etc/init.d/p910nd enable # 启用服务
/etc/init.d/p910nd start # 启动服务

实际配置过程中由于未知原因,图形化配置的内容未实际写入配置文件,改为手动修改配置文件后生效

测试 Linux 驱动

  1. 将打印机通过 USB 连接线连接到路由器并开机
  2. 通过 XFtp 连接到路由器,复制 sihp1020.dl 到 OpenWrt 的 /etc 目录下
  3. 使用 lsusb 检查打印机的 pid / vid 是否为 03f0:2b17 以及进入 /dev/usb 中是否存在 lp0 且属性为 crw-rw----
  4. 执行 cat /etc/sihp1020.dl > /dev/usb/lp0 将驱动送入打印机,若有响应则代表连接成功

添加无线打印机服务

见驱动配置及连接打印机的 Windows 端配置部分

Windows 端配置同样需要取消勾选双向打印

在选择驱动的步骤选择不覆盖打印机驱动!

设置热插拔选项

  1. /etc/hotplug.d/usb 中新增文件 10-usb-printer

    • 可以通过 XFtp 服务将文件拷贝到该目录下
    • 拷贝完毕后 cat 检查文件是否有乱码
  2. 检查 sihp1020.dl 是否存在于 /etc 目录中
  3. chmod +x /etc/hotplug.d/usb/10-usb-printer 追加文件执行权限,增加了执行权限才允许被调用
  4. /etc/init.d/p910nd reload 至此可以热插拔重复写入固件

其他配置信息

  • 以下为完成配置后的各项配置信息

    • OpenWrt 后台设置在 192.168.5.1 ,配置文件路径为 /etc/config/network,修改其中的 LAN 的 IP 配置
    • Wifi 名为 OpenWrt,未设置密码,配置文件路径为 /etc/config/wireless
    • 设计的脚本要求配置的设备占用为 /dev/usb/lp0,使用的设备 VID/UID3f0/2b17/100 ,脚本路径为 /etc/hotplug.d/usb/10-usb-printer

旧式有线打印机联网探索相关推荐

  1. 涉密计算机打印机共享案例分析,案例教程|兼收并蓄,有线打印机无线共享实战...

    原标题:案例教程|兼收并蓄,有线打印机无线共享实战 纵观整个电脑行业,有实力的厂商们往往会开辟出商用系列产品线来完善自己的产品布局,英特尔NUC亦是如此,从早期的"枫树峡谷"到现在 ...

  2. Fedora开启SSH以及虚拟机有线/无线联网

    目录 前言 一.Fedora开启ssh 二.虚拟机联网 1.有线 2.无线wifi 总结 前言 记录虚拟机连接网络,并且主机与虚拟机可以互ping 一.Fedora开启ssh Fedora 启动ssh ...

  3. 对于win11系统中有线打印机共享问题的解决

    1.在[蓝牙和其他设备]中找到要共享的打印机,点击[打印机属性]. 2.单机[共享]-[共享这台打印机]-[确定] 3.按[win+R]打开"操作命令"对话框,输入[cmd],然后 ...

  4. Flask有线打印机转无线打印机(电脑和手机)

    后台代码: # coding="utf-8" from flask import Flask,render_template,request from werkzeug.utils ...

  5. 打印机(联网)连接无线网路,设置共享 mac

    文章目录 1.下载安装驱动 2.用USB线将打印机和电脑连接 3.给打印机联网 4.将打印机设置为共享(以mac为例) 5.扫描 6. OS X 就是mac os操作系统,苹果电脑上的操作系统 1.下 ...

  6. 详解Printjack打印机攻击

    通过评估网络安全风险和隐私威胁,研究人员发现针对打印机可以发起一系列攻击--Printjack,包括将打印机纳入DDoS网络.执行隐私泄露攻击等. 研究人员发现过度信任打印机会引发DDoS攻击.隐私泄 ...

  7. 笔记本电脑连接打印机_傻瓜操作,轻松搞定工作中各种打印难题,兄弟激光打印机开箱体验...

    开工后,老板说要提高下工作效率,决定更新一批设备,首当其冲的就是打印机.老板说,要求不多,就这么几点:连接方便,因为公司很多工位没有网线,要能无线连接的:还有就是打印的速度要够快:当然,双面打印也必不 ...

  8. 打印机问题:虚拟机连接打印机、物理机连接打印机

    一.VMware虚拟机连接打印机 问题1 遇到的问题:虚拟机找不到打印机 解决1: 虚拟机设置-网络适配器-把NAT模式改为桥接模式 网络连接3模式:桥接模式.NAT模式.仅主机模式的区别.见此文:h ...

  9. 开发者成长激励计划-基于TencentOS Tiny FDM 3D打印机云控制系统方案

    点击上方"嵌入式应用研究院",选择"置顶/星标公众号" 干货福利,第一时间送达! 来源 | 嵌入式应用研究院 整理&排版 | 嵌入式应用研究院 1.方案 ...

  10. Fedora Linux添加Canon打印机驱动

    在Linux系统下安装驱动确实比较麻烦,步骤如下[1]: 首先要安装官网提供的rpm软件包,这个用dnf/yum/rpm命令都可以实现. 在Fedora系统中选择:setting-> print ...

最新文章

  1. Linux下安装Oracle参数自动初始化脚本
  2. 【AI白身境】学AI必备的python基础
  3. python-pyinstaller打包程序为exe
  4. SQL Server更新某一列中多个字典码对应内容(sql示例)
  5. python 非线性多项式拟合_用python进行非线性回归-有什么简单的方法可以更好地拟合这些数据?...
  6. CF468A 24 Game
  7. html 表格转换为dbf,DBF Excel 文件相互转换-完美教程资讯
  8. 二叉树数组求前中后序遍历
  9. 黑苹果外接显示器最优解决方案
  10. PDF删除页面技巧介绍
  11. android 生成Excel表
  12. python--if语句判断数字正负值
  13. 《数据分析实战:基于EXCEL和SPSS系列工具的实践》一导读
  14. php 防注册机,discuz论坛自动注册机 伪造注册会员数
  15. at91sam9x5ek linux 4,为AT91SAM9X5-EK开发板建立linux目标文件
  16. 苹果开发者账号修改公司名称的过程
  17. 软件学报投稿的大致时间线分享
  18. 2020年中国嵌入式软件市场现状分析,国家政策大力支持行业发展「图」
  19. arcgis字段计算器使用rnd函数生成随机数
  20. PB powerbuilder timing类

热门文章

  1. oracle数据库:恢复delete的数据
  2. 高中计算机基础知识,高中计算机基础知识.ppt
  3. 计算机常见的硬件故障及维护,计算机硬件故障原理及日常维护
  4. 文档下载道客巴巴豆丁网原创力文档代下载Word PPT文件下载
  5. 中标麒麟linux界面设置ftp,中标麒麟下sambat和vsftp配置
  6. Python语言翻译包translate,支持翻译多语种
  7. 【数字电路】组合逻辑电路
  8. [人物]USTC十大IT精英
  9. java MD5完整加解密工具类
  10. 2D地图tile纹理自动拼接算法