大家好,我是冯哥的缓存。今天这篇讲 Linux 下打印机和扫描仪的安装。
打印机是 Linux 新手最头疼的硬件之一。Windows 下插上打印机,驱动自动装好,打印没问题;到了 Linux,同一台打印机,有人装好了没问题,有人折腾一天也用不了。
差别在哪?就在于有没有驱动支持、有没有用对工具。这篇把常见情况拿出来聊聊。
Linux 打印机的工作原理——先懂原理再动手
Linux 的打印系统叫 CUPS(Common Unix Printing System),几乎所有 Linux 发行版都预装了它。
打印机驱动的安装过程是这样的:
💡 提示: PPD(PostScript Printer Description)是打印机的"说明书文件",CUPS 通过它知道打印机支持哪些功能(纸张大小、分辨率等)。
打印机安装成功率预判——先查支持情况
装驱动之前,先查一下自己的打印机是否有 Linux 驱动。这一步能省很多时间。
查询方式
方法一:用 OpenPrinting 数据库(最全的 Linux 打印机兼容性数据库)
在浏览器里搜索:openprinting.org 你的打印机型号
或者直接访问:https://www.openprinting.org/printers
方法二:搜索发行版 + 型号
搜索关键词:Ubuntu + 你的打印机品牌 + 型号,看看有没有人成功的案例。
支持等级参考
⚠️ 注意: 部分品牌打印机(某些低价激光打印机)在 Linux 下完全没有驱动,购买前建议先查清楚。
第一步:安装并启动 CUPS
大多数 Ubuntu/Debian 系统已预装 CUPS,先确认状态:
# 检查 CUPS 是否已安装
which cupsd
cups --version
# 检查 CUPS 服务是否在运行
systemctl status cups
# 如果没安装,执行安装
sudo apt install cups
# 启动 CUPS 并设置开机自启
sudo systemctl enable cups
sudo systemctl start cups
CUPS 自带一个 Web 管理界面,可以在浏览器里管理打印机:
# 打开 CUPS 管理界面(在浏览器里输入)
# http://localhost:631
第二步:USB 打印机安装
方案 A:自动识别(推荐先试)
直接插上 USB 打印机,系统通常会自动识别并安装基础驱动:
# 插上打印机后,查看是否被识别
lsusb | grep -i print
# 查看 CUPS 是否已自动添加
lpstat -p -d
如果 lpstat -p 能看到打印机名称,说明已自动识别成功,可以直接测试打印:
# 测试打印一个文件
lp 文件名.pdf
# 或者用图形界面:打开文件 → 打印
方案 B:通过 GNOME/KDE 系统设置添加
方案 C:通过 CUPS Web 界面添加
- 浏览器打开
http://localhost:631 - 点击"Administration" → "Add Printer"
第三步:HP 打印机——用 hplip 搞定
HP(惠普)是 Linux 下兼容性最好的打印机品牌,因为 HP 官方维护了 hplip(HP Linux Imaging and Printing)工具。
# 安装 hplip
sudo apt install hplip
# 安装图形界面工具(可选,方便管理)
sudo apt install hplip-gui
# 运行 HP 设备管理器(图形界面)
hp-toolbox
如果系统自带的 hplip 版本较旧,可以从 HP 官网下载最新版:
# 查看当前 hplip 版本
dpkg -l hplip
# 运行 HP 设备安装向导
sudo hp-setup
hp-setup 会引导你选择连接方式(USB / 网络)并自动配置,大多数 HP 打印机按这个流程都能成功。
第四步:网络打印机(Wi-Fi/有线)
方案 A:自动发现(支持 AirPrint / IPP 的打印机)
现代网络打印机大多支持 IPP(Internet Printing Protocol),Linux 可以自动发现并添加:
# 安装 avahi(网络设备自动发现服务)
sudo apt install avahi-daemon
# 安装 IPP 支持
sudo apt install ipp-usb printer-driver-gutenprint
# 查看网络上发现的打印机
sudo avahi-browse -a | grep printer
自动发现后,在"设置" → "打印机"里会直接看到网络打印机。
方案 B:手动添加 IP 地址
如果自动发现失败,可以手动填写打印机 IP:
- 浏览器打开
http://localhost:631 - "Administration" → "Add Printer"
- 选择"AppSocket/HP JetDirect"(大多数网络打印机)
- 输入
socket://打印机IP:9100(9100 是标准打印端口)
# 先 ping 一下确认打印机 IP 是否可达
ping 192.168.1.100 # 替换为你的打印机 IP
第五步:兄弟(Brother)/ 佳能(Canon)/ 爱普生(Epson)
这三个品牌在 Linux 下有官方支持,但需要手动下载驱动:
Brother(兄弟)
Brother 提供了 Linux deb 安装包:
- 访问 Brother 官网:https://support.brother.com
- 选择 Linux → Debian/Ubuntu → 下载 LPR driver 和 CUPS wrapper driver
# 安装两个包(先装 LPR,再装 CUPS wrapper)
sudo dpkg -i brother-XXX-lpr-X.X.X-X.i386.deb
sudo dpkg -i brother-XXX-cupswrapper-X.X.X-X.i386.deb
# 如果提示依赖问题
sudo apt install -f
Brother 还提供了一键安装脚本(linux-brprinter-installer),在官网下载后直接运行:
sudo bash linux-brprinter-installer-X.X.X-X 你的型号
Canon(佳能)
- 访问 Canon 官网 → 找到 Linux 驱动(通常是
cnijfilter2 包)
sudo dpkg -i cnijfilter2-X.XX-X-debian.tar.gz # 解压后安装
# 或者
sudo apt install cnijfilter2_5.90-1_amd64.deb
Epson(爱普生)
Epson 提供了 epson-inkjet-printer-escpr 驱动,很多型号已在 Ubuntu 软件源里:
# 先试软件源
sudo apt install epson-inkjet-printer-escpr
# 或访问爱普生官网下载 deb 包
# https://download.ebz.epson.net/dsc/search/01/search/?OSC=LX
第六步:扫描仪安装——SANE 框架
Linux 的扫描仪支持由 SANE(Scanner Access Now Easy)框架提供。
# 安装 SANE 核心工具
sudo apt install sane sane-utils
# 安装图形界面扫描工具
sudo apt install simple-scan # GNOME 推荐,简洁好用
# 或者
sudo apt install skanlite # KDE 推荐
# 检测扫描仪是否被识别
sudo sane-find-scanner
# 测试扫描
scanimage --list-devices
如果 scanimage --list-devices 能列出你的扫描仪,说明已识别成功,打开 simple-scan 就能直接扫描了。
HP 多功能一体机扫描
HP 一体机的扫描功能也在 hplip 里:
# HP 扫描工具
hp-scan
# 或者直接用 simple-scan,hp 设备通常自动支持
Brother 多功能一体机扫描
Brother 扫描驱动需要额外下载(brscan4 或 brscan5):
- Brother 官网搜索你的型号 → 下载 Linux 扫描驱动(Scanner Driver)
# 安装扫描驱动
sudo dpkg -i brscan4-X.X.X-X.amd64.deb
# 添加打印机到 SANE(替换为你的型号和 IP)
sudo brsaneconfig4 -a name=Brother model=MFC-L2750DW ip=192.168.1.100
打印机常见问题速查
| | |
|---|
| | |
| | sudo cancel -a |
| | |
| | |
| | 安装 fonts-wqy-zenhei 等中文字体 |
| | sudo apt install libsane-extras |
| | |
# 重启 CUPS 服务(出问题先试这个)
sudo systemctl restart cups
# 清空打印队列
sudo cancel -a
# 查看打印错误日志
sudotail -f /var/log/cups/error_log
测试打印是否成功
安装完驱动后,做一次完整测试:
# 1. 查看已安装的打印机列表
lpstat -p -d
# 2. 设置默认打印机(替换为你的打印机名称)
lpoptions -d 打印机名称
# 3. 打印测试页(CUPS Web界面也可以)
sudo lp -d 打印机名称 /usr/share/cups/data/testprint
# 4. 查看打印任务状态
lpq
实战练习
# 1. 检查 CUPS 状态
systemctl status cups
# 2. 查看本机已识别的打印机
lpstat -p -d 2>/dev/null || echo"暂无打印机"
# 3. 扫描仪检测
sudo sane-find-scanner 2>/dev/null || echo"未检测到扫描仪"
# 4. 查看已安装的打印相关软件
dpkg -l | grep -E "cups|hplip|sane|printer"
# 5. 检查 USB 设备(确认打印机是否被系统识别)
lsusb
# 6. 查看 CUPS 错误日志(如遇打印问题)
sudotail -20 /var/log/cups/error_log
总结:打印机安装路线选择
| | |
|---|
| | |
| 软件源安装 epson-inkjet-printer-escpr | |
| 官网下载 LPR + CUPS wrapper 驱动 | |
| | |
| | |
| | |
💡 提示: 如果你在公司用的是网络打印机,先问一下 IT 打印机品牌型号,提前查好 Linux 支持情况,能省不少麻烦。
下一篇预告:《Linux游戏安装攻略(上)——Steam与Proton基础》,聊聊在 Linux 下玩游戏这件事,有多少 Windows 游戏其实可以直接跑。