说实话,我在Linux下装打印机的经历,最早是被一台老款Brother DCP-7055折磨出来的。当时插上USB线,系统完全没反应,网上搜了一堆教程,不是讲Windows的就是装到一半报错,最后还是摸透了Brother官方驱动包的结构才解决。后来陆续给朋友配过DCP-L2550DW、MFC-7895DW,从Debian、Ubuntu到Fedora都折腾过,踩过的坑基本能写一本小册子了。这篇就把Linux下安装Brother打印机驱动的完整思路、命令和排错流程整理出来,照着走一遍,比去官网翻英文文档效率高得多。
1. 安装前先搞清楚这三件事,能省两小时
1.1 查准打印机完整型号:少个字母都可能没驱动
很多新手第一步就栽在型号上。Brother打印机型号有个习惯,喜欢在后面加一堆后缀字母,比如DCP-L2550DW、DCP-B7500D、MFC-7895DW。D代表双面、W代表无线、F代表传真,这些后缀不只是配置差异,它们在官网驱动列表里是独立的条目。
我见过有人在论坛求驱动,说自己的打印机是"DCP-7080",结果机器侧面铭牌写的是"DCP-7080D"。这两个型号虽然外观几乎一样,但驱动包不通用,DCP-7080D必须选带D的驱动包。安装驱动之前,先到打印机正面铭牌或机身后部标签上看清楚完整型号,记下来,后面下载、搜索、设置队列都要用这个型号,一个字都不能错。
1.2 分清发行版和处理器架构:别拿rpm包在Debian上装
Brother官网的Linux驱动按发行版分了两大类:一类是deb包,给Debian、Ubuntu、Mint以及基于Debian的其他发行版用;另一类是rpm包,给Fedora、CentOS、RHEL、openSUSE这类发行版用。这个分类非常死板,拿到rpm包在Ubuntu上强行用dpkg安装,系统会直接回怼一句话:
dpkg: error: cannot access archive 'xxx.rpm': not a Debian format archive同理,把deb包拿到Fedora上用rpm命令装,也会报错。下载之前先在终端确认自己的发行版和架构:
uname -mx86_64的结果对应amd64架构,aarch64对应ARM64架构。Brother驱动包后缀里会有i386、amd64、aarch64这样的标识,选错了会报"package architecture (i386) does not match system (amd64)"。这个细节很多人忽略,但恰恰是安装失败的重灾区。
1.3 确认连接方式:USB和网络打印机的处理完全不一样
Brother打印机在Linux下的驱动安装逻辑分为两种情况:
- USB直连:插上打印机,系统识别后配置设备URI,驱动安装相对简单。
- 网络连接:打印机通过网线或WiFi接入局域网,安装驱动时要把打印机的IP地址作为设备URI写进CUPS队列。这一步没有图形化引导,很多人到了这里就卡住。
有一个观察:很多人的打印机用的是有线连接,但电脑走的是WiFi,两台设备明明在同一个局域网里,系统自动搜索却找不到打印机。这不是驱动问题,是CUPS的自动发现机制对Brother设备支持不完整。后面第三章会讲到,网络打印机最好手动指定IP,不要依赖自动发现。
2. 驱动从哪来:Brother官方下载流程与驱动包拆解
2.1 在Brother支持页面找到正确驱动
打开Brother官方支持站(support.brother.com),在搜索框输入完整型号,进入产品页面后找到"Downloads"标签,选择操作系统为Linux。这时页面会列出该型号在Linux下的全部驱动包,通常分三类:
- LPR Printer Driver(打印机LPR驱动)
- CUPSwrapper Printer Driver(CUPS包装驱动)
- Scanner Driver(扫描驱动,仅多功能一体机有)
下载页面还会让你选发行版类型,常见的是Debian/Ubuntu和RedHat/Fedora两个分支。按自己系统类型选,然后下载对应的deb或rpm包。
有一点要提醒:有些人觉得官网下载太麻烦,直接用发行版软件源里搜brother,或者用CUPS自带的通用驱动。如果打印机只是应急凑合用,这办法能应付;但Brother打印机的双面打印、灰度模式、墨粉余量查看这些功能,通用驱动经常支持不全。我的建议是,正式使用还是乖乖装官方驱动。
2.2 官方驱动包的结构:lpr驱动和cupswrapper分别是什么
Brother官方Linux驱动分成两个包,不是故意折腾用户,而是有历史原因的。
LPR驱动是底层通信程序,负责把打印数据转换为Brother打印机认识的格式,并负责通过网络端口515或USB设备发送数据。安装后它主要工作在后台,没有它,后面cupswrapper包装了也白装。
CUPSwrapper驱动是包装层,它的作用是生成CUPS打印队列、PPD文件(PostScript Printer Description)以及过滤器脚本。CUPS靠PPD文件知道打印机支持什么纸张尺寸、是否支持双面、默认分辨率是多少。没有cupswrapper,系统不知道这台打印机是什么型号、有什么能力。
两个包的安装顺序不能乱,必须先装lpr,再装cupswrapper。因为cupswrapper安装脚本会调用lpr驱动里已经安装好的后端程序。如果只装了cupswrapper,安装过程会报找不到相关文件,队列建不出来。
另外,别拿其他打印机品牌的驱动安装教程往Brother上套。惠普打印机在Linux下用的是hplip,佳能有自己的cnijfilter系列,架构完全不同。搜教程时如果看到不是Brother相关的内容,直接跳过,避免被带偏。
2.3 三种安装方式的对比:官方deb包、CUPS通用驱动、installer脚本
很多人问,除了官网手动下载,还有没有别的办法。整理一下目前常见的安装方式:
| 安装方式 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 官网deb/rpm包手动安装 | 功能完整,双面/灰度/扫描都能用 | 下载和依赖处理对新手不友好 | 正式使用、生产环境,最推荐 |
| CUPS自带通用驱动 | 不用下载,系统自带 | 功能受限,双面等特性可能失效 | 临时应急、测试打印机是否通信正常 |
| Brother官网installer脚本 | 一键在线获取,自动匹配型号 | 网络要求高,交互提示不清晰 | 官网明确提供该型号脚本时可用 |
官方installer脚本是个shell脚本,可以联网从Brother服务器拉驱动,但实际用下来交互提示并不友好,很多选项默认值并不适合国内用户。我通常还是用手动下载deb/rpm包的方式,后面第三、四章也以这种方式演示。
3. 命令行安装实操:从零到打印出测试页
3.1 装依赖:i386架构与32位运行库
这里以Debian/Ubuntu系为例,Fedora/RHEL系大致类似,只是所有apt命令换成dnf或yum。
全新系统先确认CUPS服务已经安装并启动:
sudo apt update sudo apt install cups cups-client sudo systemctl start cups sudo systemctl enable cupsCUPS是Linux打印系统的核心服务,驱动只是给CUPS提供打印机描述和通信后端,CUPS本身不运行的话,驱动装了也是空转。
接下来是Brother驱动特有的依赖问题。Brother的LPR驱动包虽然也提供amd64版本,但有相当一部分型号的lpr包还是i386架构的。在64位系统上安装这类包,必须先启用i386多架构支持,并安装32位兼容库:
sudo dpkg --add-architecture i386 sudo apt update sudo apt install lib32stdc++6这个lib32stdc++6是很多教程里不会提到的隐性依赖。如果不装,dpkg安装lpr驱动时会报依赖错误;装了之后,后续安装通常一路顺畅。
顺手检查一下当前用户是否在相关权限组里,避免后面没权限管理打印队列:
groups $USER如果输出里没有lpadmin和scanner,执行:
sudo usermod -aG lpadmin,scanner $USER改完组后注销重新登录,或者重启一下,组权限才生效。
3.2 安装lpr驱动和cupswrapper
下载好的驱动包放到Downloads目录,然后按顺序安装:
cd ~/Downloads sudo dpkg -i brother-dcp-l2550dw-lpr-en-*.deb sudo dpkg -i brother-dcp-l2550dw-cupswrapper-en-*.deb如果dpkg报依赖错误,不要硬着头皮加--force-all强行安装,先用apt自动修复:
sudo apt --fix-broken install修复后重新执行dpkg命令。依赖问题通常出在缺少lib32stdc++6或cups相关组件,补齐后重装即可。
安装完成后,检查驱动文件是否就位:
dpkg -l | grep brother ls /opt/brother/Printers/看到类似DCP-L2550DW的文件目录,说明核心驱动已经装好了。
3.3 USB打印机与网络打印机的分头配置
USB直连的情况下,把打印机用USB线连到电脑,插电开机。这时系统通常会自动创建一个名为DCP-L2550DW的打印队列。可以用以下命令确认:
lpstat -p如果列出的队列状态是idle,说明已就绪;如果是disabled或stopped,需要先启用:
sudo cupsenable DCP-L2550DW网络打印机的情况稍微麻烦一些。cupswrapper安装脚本在创建队列时,默认按USB设备处理。如果打印机走的是网络,需要手动修改队列的设备URI,或者删除旧队列重新添加。
我给网络打印机配置队列时,习惯用CUPS的Web管理界面,路径是:
http://localhost:631用root账号登录,进入Administration标签,点击Add Printer,选择连接类型为"LPD/LPR Host or Printer",设备URI填写:
lpd://192.168.1.100/binary_p1注意,192.168.1.100要换成打印机实际的IP地址。binary_p1是Brother网络打印机的标准LPR队列名,填错会导致打印任务一直挂起。后面跟着选择Brother型号对应的PPD文件,系统会自动在已安装的驱动里匹配。
这里有一个很常见的坑:很多人喜欢在网络打印机的IP地址后面加/ipp/print,用IPP协议连接Brother。实际上,部分Brother老型号对IPP支持并不稳定,反而是LPR协议最稳。建议优先用lpd://IP/binary_p1,实测下来兼容性最好。
3.4 打印测试页并把打印机设为默认
队列配好后,先打印一个测试文件验证通信是否正常:
lp -d DCP-L2550DW /etc/nsswitch.conf这条命令会把系统的nsswitch.conf文件内容发送给打印机。如果打印机正常出纸,说明整个链路已经通了。
然后把这台打印机设为系统默认打印机:
sudo lpoptions -d DCP-L2550DW lpstat -dlpstat -d输出的结果里,system default destination后面跟着型号名,说明设置成功。
到这里,打印功能已经可以正常使用了。图形界面里打开任意文档,Ctrl+P选择打印机,应该能看到DCP-L2550DW,纸张类型、双面打印等选项也都能正常显示。
4. 多功能一体机的扫描功能配置
4.1 扫描驱动brscan的选择
很多用户打印驱动装好了就觉得完事,结果用扫描仪时系统提示找不到设备。原因很简单:Brother的打印驱动和扫描驱动是两个完全独立的包,必须分别安装。
Brother扫描驱动按产品系列分为brscan2、brscan3、brscan4三套。判断方法是去官网该型号的Scanner Driver下载区,看提供的是哪个版本。现在市面上的主流型号,比如DCP-L2550DW、MFC-7895DW,用的基本都是brscan4;早期一些老型号可能是brscan3或brscan2。下载时注意后缀是amd64还是aarch64,架构选错一样装不上。
下载到对应deb包后安装:
sudo dpkg -i brscan4-0.4.11-1.amd64.deb版本号和架构以自己的下载文件为准,不要照抄。
4.2 网络扫描仪的添加与验证
扫描驱动装好后,USB直连的扫描仪一般插上就能被识别。网络扫描仪则需要手动注册,把打印机的IP地址告知扫描后端:
sudo brsaneconfig4 -a name=SCAN model=DCP-L2550DW ip=192.168.1.100这条命令的参数含义:name是你给扫描仪起的名字,model必须是驱动支持的Brother型号,ip是打印机在局域网中的实际地址。执行后查询确认:
sudo brsaneconfig4 -q输出里能看到类似Scanner[SCAN]的条目,说明扫描仪已经注册成功。
接下来用SANE后端检测一下能否真正访问设备:
apt install sane-utils scanimage -L正常情况会输出类似:
device "brother4:net1;dev0" is a Brother DCP-L2550DW看到这个输出,扫描驱动就已经完全打通了。
4.3 图形化扫描工具的配置与权限
Ubuntu系统自带扫描软件simple-scan,如果没装:
sudo apt install simple-scan打开simple-scan,默认会尝试自动检测扫描仪。如果识别不到,点击右上角菜单手动选择扫描源,里面会出现之前用brsaneconfig4添加的SCAN设备。
权限问题是扫描功能最常见的一个故障点。如果扫描时报Permission denied或open of device brother4:... failed,多半是用户不在scanner组。检查一下:
groups $USER没有scanner就添加上:
sudo usermod -aG scanner $USER注销重新登录后再试。
还有一个细节,Brother扫描驱动安装时会往/etc/udev/rules.d/写入设备规则,如果设备规则没有正确加载,USB扫描仪也会报权限问题。遇到这种情况,插拔一次USB线让udev重新加载规则,通常就能解决。
5. 常见问题速查与实操避坑
5.1 打印任务显示completed但打印机不下纸
这是被问得最多的一个问题,现象是发送打印任务后,电脑端显示任务已完成,但打印机毫无反应。
排查顺序是这样的:
先看队列状态:
lpstat -t如果打印机状态不是idle而是disabled或stopped,先启用:
sudo cupsenable 型号名再看设备URI是否还正确。网络打印机的IP如果变了,之前配置的lpd://192.168.1.100/binary_p1就完全失效了,但CUPS不会主动报错,任务会直接丢在队列里然后标记成completed。用lpstat -v查看当前URI,然后用ping验证打印机IP是否在线。
如果是无线连接的打印机,建议在路由器后台给打印机绑定DHCP固定IP,防止重启后IP变动导致打印突然失灵。
5.2 dpkg报错i386架构与依赖不满足
安装lpr驱动时报package architecture (i386) does not match system (amd64),原因前文已经讲过,解决方式是:
sudo dpkg --add-architecture i386 sudo apt update sudo apt install lib32stdc++6然后重新执行安装。
如果是依赖不满足的报错,比如类似depends on lib32stdc++6 but it is not installable,先跑:
sudo apt --fix-broken install再回头装驱动。
这些报错都和驱动包本身无关,不要试图用dpkg --force-all绕过校验,那是饮鸩止渴,装上了也是残废状态。
5.3 添加打印队列时找不到Brother型号
在CUPS Web界面添加打印机时,PPD型号列表里找不到自己型号的Brother,这种情况几乎都是cupswrapper包没有安装成功。
检查一下PPD文件是否存在:
ls /usr/share/cups/model/brother/如果目录为空或不存在,重新执行cupswrapper包的安装命令:
sudo dpkg -i brother-*-cupswrapper-en-*.deb装完重启CUPS服务:
sudo systemctl restart cups刷新CUPS Web界面,型号列表就会出现对应的Brother条目。
5.4 中文乱码和扫描Permission denied
打印中文文档出现方框或乱码,这其实是字体缺失问题,不是驱动问题。安装中文字体即可:
sudo apt install fonts-noto-cjk安装后重启cups服务,再重新打印。如果打印的是PDF文件,部分PDF对字体内嵌处理不规范,也会导致乱码,建议打印首选项里把分辨率调低,或者选择以图像方式打印。
扫描报Permission denied的具体处理办法在4.3节已经讲过了,核心就一句话:加入scanner组,重新登录。如果还想更彻底一点,可以补装brother官网提供的udev规则包(在Scanner Driver下载区通常叫brother-udev-rule-type1),它能处理不少USB扫描设备的权限问题。
5.5 系统更新后驱动失效的快速恢复
很多用户升级系统或更新CUPS后,突然发现打印机不能用了。这通常不是驱动被卸载,而是CUPS服务状态变了,或者队列配置被重置。
快速恢复步骤:
lpstat -t sudo systemctl restart cups如果队列还在但打印无反应,删掉旧队列重新添加一次。删除命令:
sudo lpadmin -x 型号名然后在CUPS Web界面重新添加打印机。整个过程几分钟就能完成,没必要重装驱动。
从实际使用看,只要把官方驱动包和CUPS这套机制搞懂,Brother打印机在Linux下的体验并不比Windows差太多。打印和扫描都是基础功能,官方驱动对双面打印、灰度模式的支持也很完整。
最后分享一个实操心得:凡是在Linux下遇到打印机故障,我的第一反应不是重装驱动,而是先把队列删掉重新建一次。CUPS的队列状态有时候坏得很隐蔽,新建队列比反复重装驱动快得多。另外,给Brother打印机配置网络连接时,每次都用lpd://IP/binary_p1这个URI,避开IPP协议的兼容性问题,能少踩很多坑。希望这篇能帮你把Brother打印机在Linux下顺利跑起来。