小米路由器 BE7000 Docker、固件实践心得

背景

有一台兄弟 2260d打印机,想通过小米路由器实现局域网共享打印机。
小米BE7000路由器有docker功能,尝试折腾docker。

USB接口拓展的可行性

  • 小米BE7000只有一个USB接口,但是想要同时接入硬盘和打印机,至少需要两个接口,楼主尝试了两种方式:
  1. 直接把笔记本的拓展坞转为USB A口,接上路由器。路由器无法识别拓展坞上的任何设备。
  2. 购买绿联的USB 3.0 HUB。成功识别接入路由器的多个硬盘等设备。

结论:可行。

固件

三方固件

  • 没有找到合适的三方固件实践成功案例。仅能找到一些SSH折腾案例。
  • 给大家分享汇总一下吧:
    [1] https://post.smzdm.com/p/awz2l76g/?sort_tab=hot/#comments
    [2] https://www.right.com.cn/forum/thread-8283638-1-1.html
    [3] https://www.gaicas.com/xiaomi-be7000.html
    [4] https://www.right.com.cn/forum/thread-8294334-1-1.html

小米低版本固件

  • 一开始路由器没折腾,固件版本比较高,应该是24年8月最新的。docker中如果尝试挂载 /mnt/usb-xxxx 会提示权限不够。
  • 需要替换为低版本固件 1.0.122
    • 若版本高于 1.0.122,需要使用 小米路由器修复工具 降级。
    • 下载地址: https://cdn.cnbj1.fds.api.mi-img.com/xiaoqiang/rom/rc06/miwifi_rc06_firmware_7821f_1.0.122.bin

Docker

终端的开启

其实默认运行的的 simple-docker 可以认为是整个docker控制的管理者,很多命令直接在这里执行即可。

参考:
[1] https://post.smzdm.com/p/awz2l76g/?sort_tab=hot/#comments
[2] https://post.smzdm.com/p/akk9nvv8/

USB设备驱动问题

  • 小米路由器自带的 simpledocker 系统支持的驱动比较少。
    • 进入终端后使用 lsusb 命令可以看到打印机已经接入。
      • 默认的linux系统不显示打印机名称,但是可以根据windows上运行usbipd list 命令后显示的vid:pid来判断是否识别到。
    • 但是在/dev中并没有 usb相关设备,如:lp, usb等描述
      • 查询了一下相关资料以及GPT,初步怀疑原因是缺少内核模块usblp (是LP不是IP)。
      • 由于缺少 yum、apt、dpkg、deb等包管理工具,折腾内核模块有点过于麻烦,没有继续折腾了。如果有朋友知道如何解决,欢迎留言。
        • 楼主是第一次折腾路由器,对嵌入式设备并不是很了解。根据 https://post.smzdm.com/p/akk9nvv8/ 这个帖子,一些软件的安装貌似是通过 apk 命令来运行的。软件库名称应该是 Alpine。它的仓库源地址估计是 https://dl-cdn.alpinelinux.org/alpine/v3.16/ 这些。

Docker镜像的拉取

这个真的是一把辛酸泪。路由器自带的docker拉取非常不稳定,楼主尝试了几种方式:

  1. 在web管理页面直接输入 docker hub 中的名称拉取 (不带docker pull 命令) ,这种方式在新版本的小米固件中,多次尝试(10次左右),有概率成功。在回退后的 1.0.122 无法成功。
  2. web管理页面有离线导入的选项,楼主通过自己挂代理pull到自己电脑后,通过docker save命令导出到本地,再上传的方式安装。结果同样令人遗憾。不知道什么原因,同样的docker镜像,在线获取成功的一半都正常运行,离线安装的可能会遇到 2 种情况。a). 上传后直接告知异常。 b). 上传后可以运行,但是运行一段时间后自动关闭(大约10秒钟),终端无法连接上。
  3. sinple docker 的终端中,参考 https://post.smzdm.com/p/akk9nvv8/ 替换源,通过修改 /etc/apk/repositories 这个文件后 运行 apk update ,通过 apk add docker-cli 顺利安装上了docker服务。但是 docker pull xxx 依旧失败。报错信息为:

/data # docker pull ydkn/cups
Using default tag: latest
Error response from daemon: Get “https://registry-1.docker.io/v2/”: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

  • 楼主 a).尝试修改/etc/docker/daemon.json 文件替换在其它帖子中看到的24年的源,并且重启容器,依旧无法解决问题。也b). 尝试添加了 /etc/hosts 文件中 registry-1.docker.io 通过dig获取的IP地址。还c). 尝试修改 /etc/resolv.conf 中nameserver为8.8.8.8114.114.114.114。依旧无法解决。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值