Linux下Brother打印机驱动安装全指南:从CUPS到brlaser的实践排错

发布时间:2026/10/1 9:20:25
Linux下Brother打印机驱动安装全指南:从CUPS到brlaser的实践排错 1. 为什么Linux下装Brother打印机驱动特别容易翻车先聊点真实的。我自己在Ubuntu和Debian上装Brother打印机驱动踩过的坑比任何其他品牌的打印机加起来都多。不是Brother故意难为人而是它家的驱动分发方式和HP、Canon这些品牌完全不是一个路子加上Linux的发行版碎片化导致网上教程大多过时或者只针对特定版本。大多数人在Linux下装Brother驱动失败根源通常出在三件事上。第一从官网下载驱动的时候选错了架构包32位和64位搞混第二安装了驱动却不知道Brother的驱动体系是分层的——负责通信的后台服务、负责CUPS接口的wrapper、负责扫描的brscan这三层必须各自就位才能正常工作第三USB连接和网络连接两种模式下驱动的工作方式和对系统的要求完全不同很多人照着USB的教程去配网络打印机自然会卡住。所以这篇我不打算只给你一条命令敲到底的速通版而是把Brother驱动在Linux下的工作逻辑、安装细节、常见故障的排查路径都拆开讲清楚。不管你是Ubuntu、Debian、Fedora还是国产Linux发行版理解这套逻辑之后遇到问题都能自己定位而不是换一个教程再踩一遍坑。Linux下打印机驱动的基础协议是CUPSCommon UNIX Printing System几乎所有发行版都内置了。CUPS本身不认Brother的私有协议它需要一套翻译层来把标准的打印作业转换成Brother打印机听得懂的指令。Brother官方提供的驱动就是这个翻译层但它不是单一文件而是由几个组件拼起来的。先搞清楚这层逻辑后面安装才不会含糊。2. 动手之前必须确认的三件事型号、系统架构、连接方式2.1 精确到具体型号别用系列名乱猜Brother的驱动下载页面是按照型号操作系统来匹配文件的而且它家很多型号的名称非常接近比如HL-1218W和HL-1218WB、DCP-L2550DW和MFC-L2710DW差几个字母驱动就完全不同。去官网之前一定先把机器背面铭牌上的完整型号记下来或者用打印机的操作面板打印一张设置页上面有完整型号和固件版本。连上机器之后还可以用lsusb命令看一眼USB设备ID确认系统层面能否识别到打印机lsusb正常会输出类似Bus 001 Device 004: ID 04f9:0030 Brother Industries, Ltd这样的信息04f9就是Brother的厂商ID后面四位是产品ID。如果lsusb里压根看不到Brother设备那说明USB线、接口或者打印机本身没进入正常待机状态这时候先别折腾驱动把硬件连接问题解决了再说。2.2 确认系统架构是amd64还是arm64还是i386这是翻车率最高的一个环节。很多老型号的Brother打印机为了兼容性驱动同时提供32位和64位两个版本但有些型号只提供32位版。如果只看文件名带不带i386就下载容易装错。判断系统架构用一条命令dpkg --print-architecture uname -m输出amd64就下载64位包输出i386就下载32位包输出arm64说明你是ARM平台的机器树莓派、部分国产Linux终端等需要确认Brother官网有没有对应的ARM驱动很多老型号没有只能通过CUPS的通用驱动或者第三方的brlaser开源驱动来支持这个后面再细说。另外还有一个容易忽略的点如果是64位系统去装32位驱动包需要确保dpkg支持i386体系架构装之前要加一下sudo dpkg --add-architecture i386 sudo apt update否则你会看到dpkg: error: package architecture (i386) does not match system (amd64)之类的报错。这个错误不是驱动坏了是系统架构不匹配。2.3 明确打印机的连接方式USB还是网络Brother打印机在Linux下的驱动配置USB和网络两条路的流程、命令、调试方式都不同。USB连接适合单机使用驱动安装后需要确保打印机的USB设备权限正确如果权限不对即使驱动装好了打印作业也会卡在队列里显示Unable to open device path之类的错误。另外USB连接要求打印机不能自动进入休眠太深的状态否则某些Brother型号在休眠后无法被唤醒。网络连接有线网口或者Wi-Fi适合办公室多台电脑共用一台打印机配置的核心在于确保Linux主机和打印机的IP网络互通Brother的驱动使用LPD协议Line Printer Daemon或者专用的二进制端口来收发数据。如果你的打印机走Wi-Fi还要注意Brother的Wi-Fi直连Infrastructure模式和无线局域网Station模式的区别驱动里填的IP地址必须是打印机当前获取到的IP而不是机器铭牌上的默认地址。3. 从官网下载驱动rpm和deb的系统对应关系3.1 Brother官网的下载页面结构从Brother的支持页面选择打印机型号后切到Downloads标签页会看到一组Linux相关的驱动列表。不同型号略有差异但常见的包大致是这几个Linux Printer DriverLPRLinux Cupswrapper DriverLinux Scanner Driverbrscan4或brscan5Linux Scan-key-tool部分机型用于面板按键触发扫描每个包下面通常有rpm和deb两个分支。rpm给Fedora、RHEL、openSUSE这类用RPM包管理器的发行版deb给Debian、Ubuntu、Linux Mint这类用Debian包管理器的发行版。国产Linux里统信UOS和麒麟系统基于Debian体系一般选deb包如果用的是Fedora或者欧拉这类RPM体系就选rpm包。下载之前认真看一眼文件名的结尾amd64.deb是64位Debian包i386.deb是32位x86_64.rpm是64位RPM包i386.rpm是32位。3.2 为什么Brother要分成LPR和cupswrapper两个包这个问题是理解Brother驱动结构的关键。LPR驱动包提供的是底层打印协议的后台程序和Brother专用过滤器它直接把打印数据转成Brother打印机可以识别的PCL或者BR-Script格式。cupswrapper包则是把LPR这一套封装成CUPS认识的打印队列让Linux图形界面的打印设置里能直接选择这台打印机。简单类比LPR驱动是发动机cupswrapper是方向盘和仪表盘。没有LPRcupswrapper装上了也没有意义因为它调用的底层程序不存在只装LPR不装cupswrapperCUPS界面里找不到打印机队列无法直接打印。所以这两个包必须配套安装。实际安装顺序一般是先LPR后cupswrapper官方脚本里也会做依赖检查。如果你用dpkg直接安装建议把两个文件都下载好放在同一个目录然后逐条安装避免官网的脚本因为找不到依赖中断。4. deb系发行版的完整安装流程以Ubuntu/Debian/统信UOS为例4.1 安装依赖包现代Brother驱动主要是给64位系统准备的依赖项包括libc6、libcups2、libcupsimage2、libstdc6等。Ubuntu 22.04以上版本基本都自带但Debian的最小化安装或者一些服务器版系统可能需要手动装一下sudo apt update sudo apt install libcups2 libcupsimage2 libstdc6如果你用的是纯64位系统但下载了i386的驱动还需要先把i386架构加进来再装对应的32位依赖库sudo dpkg --add-architecture i386 sudo apt update sudo apt install libcups2:i386 libcupsimage2:i386 libstdc6:i386这一步很多人跳过直到安装时报出dependency is not satisfiable: libcupsimage2才意识到漏了。事先把依赖装好后面就顺很多。4.2 安装LPR和cupswrapper包打开终端cd到驱动文件所在目录先装LPR包sudo dpkg -i brother-lpr-driver-xxx-0.i386.deb注意这里我写的文件名是示意实际以你下载的文件名为准。如果你的系统是64位而驱动只有i386版本装完之后系统里会运行32位的后台程序这是正常的因为Brother部分老型号只发布了32位驱动。然后装cupswrapper包sudo dpkg -i brother-cupswrapper-xxx-0.i386.deb如果dpkg报依赖错误用sudo apt --fix-broken install修复一下再继续。假如这个命令把依赖装好了但Brother的包还是显示未配置状态可以强制重新配置sudo dpkg --configure -a4.3 验证打印机队列是否生成安装成功后CUPS会自动创建一个打印机队列名字通常是Brother_XXX_series的形式。验证一下lpstat -p -d能看到类似printer Brother_HL-L2350DW_series is idle. enabled since ...的输出就说明队列已经创建好了。接着向队列发送一个测试页lp -d Brother_HL-L2350DW_series /etc/nsswitch.conf这条命令会把/etc/nsswitch.conf文件当作文本打印出去。如果打印机吐出一页内容说明驱动链路已经通了可以进入图形界面的打印设置里把默认打印机调整成这台设备。如果lpstat看不到队列可以使用Brother自带的配置脚本重新配置sudo /usr/local/Brother/info/brsetup这个脚本会交互式地让你选择连接方式USB或网络然后重新生成队列配置文件在cupswrapper安装失败或者队列丢失时很管用。4.4 把用户加入lp组解决USB权限问题USB连接场景下安装完驱动队列也建好了但打印时可能提示Permission denied。这是因为/dev/usb/lp0这个设备节点的访问权限只对lp组的用户开放。解决办法是把当前用户加进lp组sudo usermod -aG lp $USER注意修改组之后需要重新登录一次终端会话才生效或者直接注销再登录图形界面。别急着打印先重新登录再测试。另外有的发行版还会用到lpadmin组来管理打印队列顺手一起加进去也不亏sudo usermod -aG lpadmin $USER5. 网络打印机的驱动配置从USB到无线/有线网络5.1 先确认打印机IP可达办公室场景通常是网络打印机。用Brother操作面板打印网络配置页或者在路由器管理后台找到打印机分配的IP地址。然后在终端里测试连通性ping 192.168.1.100能通就进行下一步。如果有防火墙要确保Linux主机的outgoing方向对打印机的515端口LPD或9100端口RAW打印是放行的。Ubuntu默认防火墙不拦截出站连接一般问题不大但公司内网有统一防火墙策略的话需要在防火墙上放行到打印机IP的这几个端口。5.2 用brsetup脚本配置网络接口刚才提到的brsetup脚本同样适用于网络模式。运行sudo /usr/local/Brother/info/brsetup选择网络连接对应的选项输入打印机的IP地址脚本会自动在CUPS里创建基于LPD协议的队列。Brother的LPD队列名通常是binary_p1这个值不是随便填的它是Brother打印机固件里写死的LPD队列名。如果配置时填错了队列名比如填成text_p1或者自定义名称打印作业会一直卡在队列里。配置完成后再次用lpstat -p -d确认队列状态然后打印测试页。如果测试页出不来先检查打印机面板有没有报错再查看CUPS的日志sudo tail -f /var/log/cups/error_log重点看日志里有没有Unable to connect to 192.168.1.100:515或者Connection refused之类的内容这两种报错说明网络路径不通问题大概率不在驱动而在网络。5.3 双机共享打印机时驱动与CUPS的配合如果办公室是一台打印机一台常开的Linux主机做打印服务器其他电脑通过网络访问那打印服务器上要开CUPS的远程访问功能。编辑/etc/cups/cupsd.conf确保Listen配置允许局域网访问并正确设置Allow规则。这个场景下其他客户机不需要安装Brother官方驱动只要在系统打印设置里添加一个IPP网络打印机填http://打印服务器IP:631/printers/队列名即可。当然如果你用的是Windows客户机连接Linux打印服务器Windows自带的通用驱动通常也能兼容因为它走的是IPP或者LPD协议Brother专有指令在服务器端已经被翻译成了打印机认识的格式。6. 扫描功能brscan4/brscan5驱动和常见问题6.1 扫描和打印驱动是独立安装的很多人在Linux下装完Brother打印机驱动发现只能打印不能扫描这不是系统问题而是扫描驱动没有单独安装。Brother的扫描驱动包叫brscan4较新的机型是brscan5同样在官网下载页面里。安装方式也是dpkgsudo dpkg -i brother-brscan4-xxx-0.amd64.deb装完以后扫描驱动不会像打印驱动那样自动创建队列它需要手动把扫描仪设备注册到驱动里。官方提供的命令是brsaneconfig4sudo brsaneconfig4 -a nameBrother_MFC modelMFC-L2710DW ip192.168.1.100参数解释name是你在扫描软件里看到的名字可以自己起model必须是Brother官网对应型号支持的名称一般与驱动页面上的型号完全一致ip是打印机的IP地址。如果型号名填错此后任何扫描软件都发现不了这台设备。6.2 用SANE和simple-scan验证扫描链路装完brscan4并添加设备后用scanimage命令直接验证scanimage -L输出里如果能看到类似device \brother4:net1;dev0 is a Brother MFC-L2710DW这样的条目说明扫描仪已经被SANEScanner Access Now Easy框架识别到了。之后打开simple-scan或者XSane就能直接扫描。常见的USB连接扫描问题是当前用户没有访问扫描设备节点的权限。SANE框架默认只允许scanner组访问把用户加进去sudo usermod -aG scanner $USER如果是网络扫描SANE本身通过brscan4的socket与打印机通信不需要扫描器设备节点权限问题基本不存在。但要注意主机的出站防火墙要放行打印机IP的54925端口brscan4默认使用。6.3 面板按键扫描Scan-key-tool要不要装Brother部分一体机支持按打印机面板上的扫描键直接扫描到电脑这需要额外安装brscan-skey包。安装方法与brscan4类似装完后运行brscan-skey在后台监听打印机发来的扫描请求设置接收目录brscan-skey -l默认接收目录是/home/用户名/Brother也可以在配置文件里修改。这个功能对办公室场景确实方便但对单机用户来说意义不大不装不影响SANE扫描。7. 排查实录从驱动安装到出纸的完整排错链路下面这条链路是我自己在实际环境中用过的按顺序一步步排查能覆盖绝大多数Brother驱动安装后的能识别但不能打印的问题。第一步确定队列状态。运行lpstat -t观察每个打印队列的状态是idle、disabled还是stopped。如果disabled用cupsenable 队列名重新启用如果stopped多半是之前有报错任务卡住用cupsreject 队列名然后cupsenable 队列名重置。第二步看CUPS日志。/var/log/cups/error_log是排查一切的钥匙把它打开把日志级别调到debug会给出更多细节编辑/etc/cups/cupsd.conf把LogLevel改成debug重启cups服务sudo systemctl restart cups sudo tail -f /var/log/cups/error_log第三步根据日志内容判断问题类型。日志如果出现Unable to open device path /dev/usb/lp0基本就是USB设备节点权限问题重新确认ls -la /dev/usb/lp0的属主和用户组确保当前用户属于lp组。日志如果出现Connection refused或者Host is down那就是网络路径不通。检查打印机IP是否变了Brother打印机默认开启DHCPIP地址可能因为路由器重启而变化需要重新用brsaneconfig4或brsetup更新IP。第四步留意Brother后台服务进程。LPR驱动安装后会注册一个brother_lpd服务用systemctl status brother_lpd查看。如果服务没有运行网络打印必然失败sudo systemctl enable --now brother_lpd有些老型号的Brother LPR驱动在systemd下不能自动创建服务文件需要手动写一个或者用service brother_lpd start来临时启动。这个问题在Ubuntu 22.04之后特别常见因为老驱动包里的init脚本已经不兼容纯systemd环境了。第五步检查打印作业祥细信息。lpstat -W not-completed能列出所有未完成的作业cancel -a 队列名清除全部排队作业。很多时候作业卡在队列里不是驱动坏了只是之前的失败任务一直占着队列不释放清空之后就好了。8. 直接换内核打印驱动的备选方案如果你的Brother打印机型号很老官网驱动已经不维护了在64位新系统上装32位老驱动各种报错还可以用开源的brlaser驱动替代。它直接在CUPS里提供Brother激光打印机的支持安装方式比官方驱动简单得多sudo apt install brlaser装完之后CUPS里会自动出现Brother分类下的对应型号手动添加打印机时选择这个驱动创建队列就行。brlaser的效率对大多数家庭和办公打印场景完全够用但它不支持扫描功能扫描还是得靠官方brscan驱动。另外还有一个通用方案是先把打印机配置成IPP Everywhere模式。部分新一代Brother机型支持AirPrint/IPP Everywhere直接用CUPS的driverless功能自动发现和配置打印机sudo apt install cups-filters driverless driverless listdriverless list会列出局域网内支持IPP协议的打印机显示类似i//192.168.1.100/ipp/print的地址用这个地址在CUPS里添加打印机完全不用安装任何厂商驱动。这个方案我实测对2018年后发布的Brother机型兼容性非常好而且打印质量、双面打印等高级功能都能正常识别。9. 我在多台机器上实测后的几点经验总结先说一下我自己的环境背景一台Ubuntu 24.04台式机USB连接老款Brother HL-1208一台Debian 12的小主机局域网连接MFC-L2710DW还有一台统信UOS的机器装了DCP-L2550DW的扫描驱动。三种场景的坑我都踩过一遍印象最深的是HL-1208这个老家伙官网只提供i386驱动在64位Ubuntu上装完打印十个文件大概有一次会丢字后来换了brlaser驱动问题直接消失。所以我的建议是如果你机器型号在2020年之后发布的直接用driverless或者官方deb包都行如果是老机型优先折腾brlaser再考虑官方老年驱动。扫描则无论新旧都建议用官方brscan包开源方案对扫描的支持远没有打印那么成熟。另外两个单独想提醒的点。第一装驱动之前先把系统里自带的、之前手动装过的其他打印机驱动清理干净。CUPS里如果同时残留多个同型号的过期队列添加新队列时容易踩到端口占用或者PPD冲突。用lpadmin -x 队列名删除旧队列再装新驱动。第二Brother打印机的省电模式有时候会坑Linux驱动。部分机器在深度睡眠状态下会关闭LPD端口或者USB响应导致Linux主机的打印任务一直尝试连接直到超时。如果打印机不是经常使用建议在打印机设置里把省电模式调到不自动关闭端口或者关闭深度睡眠必要时直接改用USB连接USB连接不存在端口沉睡的问题。驱动安装这件事说到底就是理解发行版、理解驱动包的层级结构、理解打印机的工作方式这三件事。思路理顺了任何一台Brother机器在Linux下都能搞定无非是走官方包还是走开源驱动的问题。希望这篇能把你在安装时遇到的差一步给补上。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询