Brothers-Legacy-Lasers-Are-Modernizing(2 篇)

  1. 让吃灰的兄弟打印机焕发新生:无线打印
  2. 让吃灰的兄弟打印机焕发新生:无线扫描

更新

May 1, 2025

新增局域网服务发现配置及如何修改打印机纸张规格

起因

从老丈人家拿回来一台已经吃灰的兄弟激光 DCP-7040 一体机. 在 Windows 系统上测试仍然可以正常工作,本来想把它接到 Openwrt 路由器的网络打印机插件上实现无线打印,但我的路由器在弱电箱里面放着周围也没有合适可以摆放的位置,我就把它连用 USB 到了一台 Ubuntu Server 服务器上,计划用 CUPS 实现同样的效果。

这台打印机官方驱动虽然提供 Windows、macOS 甚至还有 Linux,在我安装驱动才注意到官方提供的只有 32 位,想要支持 64 位则需要额外安装兼容库(不安装的话能提交打印请求但不会执行打印任务),本想着能凑合用的心态搞了一圈下来,在 CUPS Web 控制面板测试打印页是可以执行命令,但 macOS 无论使用通用驱动还是官方驱动要么不执行打印,要么只会打印出 12345X@PJL 这样的一行字,只有 Windows 没问题,头疼了好久。

解决方案

在接近绝望时看到了 brlaser 这个项目,这是牛人开发激光打印机的开源驱动,支持绝大多数支持标准打印机协议(PCL/PostScript)的兄弟打印机机型:

  • Brother DCP-1510 series
  • Brother DCP-1600 series
  • Brother DCP-7030
  • Brother DCP-7040
  • Brother DCP-7055
  • Brother DCP-7055W
  • Brother DCP-7060D
  • Brother DCP-7065DN
  • Brother DCP-7080
  • Brother DCP-L2500D series
  • Brother DCP-L2520D series
  • Brother DCP-L2520DW series
  • Brother DCP-L2540DW series
  • Brother HL-1110 series
  • Brother HL-1200 series
  • Brother HL-2030 series
  • Brother HL-2140 series
  • Brother HL-2220 series
  • Brother HL-2270DW series
  • Brother HL-5030 series
  • Brother HL-L2300D series
  • Brother HL-L2320D series
  • Brother HL-L2340D series
  • Brother HL-L2360D series
  • Brother HL-L2375DW series
  • Brother HL-L2390DW
  • Brother MFC-1910W
  • Brother MFC-7240
  • Brother MFC-7360N
  • Brother MFC-7365DN
  • Brother MFC-7420
  • Brother MFC-7460DN
  • Brother MFC-7840W
  • Brother MFC-L2710DW series
  • Lenovo M7605D

驱动也都发布到了主流的 Linux 系统中,比如 Debian、Ubuntu、Arch Linux、NixOS、树莓派的 Raspbian 和 openSUSE。在 Ubuntu Server 上安装 printer-driver-brlaser 后就可以在 CUPS Web 控制面板中选择这个驱动一路下一步搞定。

配置 CUPS

配置前需要安装 CUPS 和驱动,顺便把管理员用户添加到 cups 用户组。

1# 安装
2sudo apt install cups printer-driver-brlaser
3
4# 把用户 icyleaf 加入到 cups 管理组
5sudo usermod -aG lpadmin icyleaf

配置局域网内可以访问 CUPS 的 WEB 管理页面,编辑 /etc/cups/cupd.conf:

 1- Listen 127.0.0.1:631
 2+ Listen 0.0.0.0:631
 3
 4# 限制局域网段 192.168.222.0/24 可访问
 5<Location />
 6  Order allow,deny
 7+  Allow From 192.168.222.0/24
 8</Location>
 9
10<Location /admin>
11  Order allow,deny
12+  Allow 192.168.222.0/24
13</Location>

配置打印机

使用服务器的 IP (比如是 192.168.222.100) https://192.168.222.100:631/admin ,第一次打开需要使用服务器配置的用户和密码授权认证后开始添加打印机,记得先打开打印机等待预热完毕。

添加打印机时已经识别到打印机配置,选择第二个进行下一步。

记得勾选 Share This Printer 允许局域网其他设备可以连接到这台打印机。

打印机的品牌已经正确识别,选择打印机对应的型号,看到 “Printer Brother_DCP-7040 has been added successfully.” 离成功就差最后一步。

因为还要设置好纸张类型、DPI、纸张类型…一切都设置好可以在 Manage Printer 查看打印机信息和相关维护功能。

配置服务发现

如果服务器已经安装 avahi 服务则可以直接看下一章节,没有安装的只需要安装一下即可无需额外的配置。

1sudo apt install avahi-daemon avahi-utils

AirPrint 隔空打印

尝试用 iPhone 隔空打印一张,能够顺利找到打印机。

提交后能够在 CUPS 的任务队列查看详情信息。

修改打印纸张配置

用了一段时间发打印机的时候纸张一直是 US Letter。经过一段时间的研究 AirPrint 无线打印的纸张尺寸的预设是在打印机提供了而不是手机系统本身,因此无论修改系统语言是没有效果的,默认 cups 设置的是 US Letter 需要手动修改 /etc/cups/cupsd.conf 配置如下

DefaultLanguage zh_CN
DefaultPaperSize A4

保存后先清除 cups 的缓存后再重启服务:sudo rm -rf /var/cache/cups/*; sudo systemctl restart cups

意犹未尽

CUPS 能够仅实现打印机的复制功能,刚好这台打印机找到了对应的驱动;还缺少无线扫描的功能正在探索中,据说可以使用 SANE 配合驱动,服务器是 Server 端没有桌面环境,有点头疼,容我再想想怎么解决。

如果你觉得我的文章对你有帮助,欢迎打赏,这对我非常重要,谢谢!

支付宝打赏 微信打赏