引言:Xubuntu打印系统概述
Xubuntu作为基于Ubuntu的轻量级Linux发行版,使用Xfce桌面环境,为用户提供了简洁高效的计算体验。然而,打印机安装对于许多Linux新手来说仍然是一个挑战。本文将全面介绍在Xubuntu系统下安装和配置打印机的完整流程,从基础概念到实际操作,再到故障排除,帮助您轻松搞定打印任务。
Linux打印系统主要依赖CUPS(Common Unix Printing System)作为后台服务,配合各种打印机驱动程序。与Windows系统不同,Linux下的打印机驱动通常以开源形式提供,支持范围广泛但配置方式略有不同。理解这些基础概念将帮助您更好地完成打印机安装工作。
第一部分:安装前的准备工作
1.1 确认打印机硬件信息
在开始安装前,需要收集以下关键信息:
打印机品牌和型号
:通常在打印机外壳上有明显标识
连接方式
:USB直连还是网络打印(Wi-Fi/Ethernet)
打印机支持的协议
:查看打印机手册确认是否支持IPP、LPD/LPR、Socket等协议
操作示例
:
# 检查已连接的USB设备
lsusb
# 输出示例:Bus 001 Device 004: ID 04f8:000a Fujitsu Limited, Japan fi-4010C Scanner
# 检查网络设备(用于网络打印机)
ping <打印机IP地址>
1.2 系统更新与依赖检查
确保系统处于最新状态并安装必要的软件包:
# 更新软件包列表
sudo apt update
# 升级已安装的软件包
sudo apt upgrade
# 宣安装CUPS打印系统(通常已预装)
sudo apt install cups cups-client cups-filters
# 安装打印机驱动程序通用包
sudo apt install printer-driver-gutenprint printer-driver-foo2zjs
# 安装网络发现工具(用于网络打印机)
sudo apt install avahi-daemon avahi-utils
1.3 检查CUPS服务状态
验证CUPS服务是否正常运行:
# 检查CUPS服务状态
systemctl status cups
# 如果服务未运行,启动并设置开机自启
sudo systemctl start cups
sudo systemctl enable cups
# 检查CUPS是否监听端口
netstat -tlnp | grep 631
第二部分:通过图形界面安装打印机
2.1 使用Xubuntu的打印机设置工具
Xubuntu提供了直观的图形界面工具:
打开
应用程序菜单
→
设置
→
打印机
点击
添加打印机
按钮
系统会自动搜索可用的打印机(USB和网络)
详细步骤
:
对于USB打印机:确保打印机已开机并连接,系统通常会自动检测
对于网络打印机:点击
网络打印机
→ 等待自动发现或手动输入IP地址
2.2 驱动程序选择策略
当系统检测到打印机后,会要求选择驱动程序:
推荐选择顺序
:
制造商官方驱动
:如果可用,优先选择(如HP的HPLIP)
通用PCL驱动
:适用于大多数激光打印机
PostScript驱动
:适用于支持PS语言的打印机
Gutenprint驱动
:高质量的开源驱动集合
具体示例
:
HP LaserJet 1020
:选择
HP LaserJet 1020 – CUPS+Gutenprint
Brother HL-2270DW
:选择
Brother HL-2270DW BR-Script3
Canon PIXMA MG5700
:选择
Canon PIXMA MG5700 – CUPS+Gutenprint
2.3 测试打印配置
完成安装后立即测试:
在打印机列表中右键点击新安装的打印机
选择
打印测试页
检查输出是否正常
第三部分:通过命令行安装打印机(高级方法)
3.1 使用lpadmin命令配置打印机
lpadmin是CUPS的核心命令行工具,功能强大:
# 基本语法
sudo lpadmin -p <打印机名称> -v <设备URI> -m
# 示例1:添加USB打印机
sudo lpadmin -p HP_LaserJet_1020 -v usb://HP/LaserJet%201020?serial=00000000 -m drv:///sample.drv/hp1020.ppd -E
# 示例2:添加网络打印机(IPP协议)
sudo lpadmin -p Network_Printer -v ipp://192.168.1.100/ipp/print -m everywhere -E
# 示例3:添加网络打印机(LPD协议)
sudo lpadmin -p Brother_Printer -v lpd://192.168.1.101/lpt1 -m drv:///sample.drv/generic.ppd -E
# 示例4:添加网络打印机(Socket协议)
sudo lpadmin -p Canon_Printer -v socket://192.168.1.102:9100 -m drv:///sample.drv/generic.ppd -E
参数详解
:
-p
:指定打印机名称(不能有空格)
-v
:指定设备URI(统一资源标识符)
-m
:指定PPD(PostScript Printer Description)文件
-E
:启用打印机并接受任务
3.2 查找和安装特定PPD文件
PPD文件是打印机驱动的核心,包含打印机特性描述:
# 搜索可用的PPD文件
lpinfo -m | grep -i “打印机品牌型号”
# 示例:搜索HP打印机驱动
lpinfo -m | grep -i “hp 1020”
# 安装额外的PPD文件包
sudo apt install printer-driver-hpcups
# 从厂商网站下载PPD文件(以Brother为例)
wget https://support.brother.com/g/b/producttop.aspx?c=cn&lang=zh&prod=hl2270dw_all
# 解压并复制PPD文件到/usr/share/cups/model/
sudo cp brhl2270dw.ppd /usr/share/cups/model/
3.3 管理打印队列
# 查看所有打印机状态
lpstat -p -d
# 查看特定打印机的详细信息
lpstat -p HP_LaserJet_1020 -l
# 启用/禁用打印机
sudo cupsenable HP_LaserJet_1020
sudo cupsdisable HP_Laserjet_1020
# 接受/拒绝打印任务
sudo cupsaccept HP_LaserJet_1020
sudo cupsreject HP_LaserJet_1020
# 清空打印队列
cancel -a HP_LaserJet_1020
# 查看打印队列
lpq -P HP_LaserJet_1020
3.4 打印测试页和文档
# 打印测试页
lp -d HP_LaserJet_1020 /usr/share/cups/data/testprint
# 打印文本文件
lp -d HP_LaserJet_1020 document.txt
# 打印PDF文件
lp -d HP_LaserJet_1020 document.pdf
# 打印多个副本
lp -d HP_LaserJet_1020 -n 5 document.pdf
# 设置打印优先级(1-100,默认50)
lp -d HP_LaserJet_1020 -q 10 document.pdf
第四部分:常见打印机品牌驱动安装详解
4.1 HP打印机(HPLIP驱动)
HP提供官方的Linux驱动支持:
# 安装HPLIP驱动
sudo apt install hplip hplip-gui
# 运行HP设备管理工具
hp-setup
# 或者使用命令行安装
sudo hp-plugin -i
# 检查HP打印机状态
hp-check -r
# 更新HP固件(如果需要)
hp-firmware -i
详细示例
:安装HP LaserJet 1020
安装HPLIP:
sudo apt install hplip
连接打印机USB线缆
运行:
hp-setup -i
按照提示选择USB连接,输入打印机型号
完成后测试打印
4.2 Brother打印机
Brother提供Linux驱动下载:
# 下载Brother驱动(以HL-2270DW为例)
wget https://download.brother.com/welcome/dlf100424/brgenml1cupswrapper-2.0.4-1.i386.deb
wget https://download.brother.com/welcome/dlf100422/brgenml1lpr-2.0.4-1.i386.deb
# 安装下载的deb包
sudo dpkg -i brgenml1lpr-2.0.4-1.i386.deb
sudo dpkg -i brgenml1cupswrapper-2.0.4-1.i386.deb
# 修复依赖关系
sudo apt-get -f install
# 重启CUPS服务
sudo systemctl restart cups
4.3 Canon打印机
Canon打印机通常需要额外的驱动包:
# 安装Canon驱动
sudo apt install cnijfilter2
# 对于较新的Canon打印机,可能需要从官网下载
# 访问Canon支持网站,搜索你的型号,下载Linux驱动包
# 解压后运行安装脚本
./install.sh
4.4 Epson打印机
Epson提供Linux驱动支持:
# 安装Epson通用驱动
sudo apt install printer-driver-escpr
# 对于特定型号,可能需要安装额外包
sudo apt install epson-inkjet-printer-escpr
第五部分:网络打印机配置详解
5.1 自动发现网络打印机
使用Avahi服务发现网络打印机:
# 检查Avahi服务状态
systemctl status avahi-daemon
# 搜索网络打印机
avahi-browse -a -t -r
# 或者使用cups-browsed
sudo apt install cups-browsed
sudo systemctl enable cups-browsed
sudo systemctl start cups-browsed
5.2 手动添加网络打印机
当自动发现失败时,手动添加:
# 1. 确定打印机IP地址
# 在打印机控制面板查看或使用nmap扫描
sudo nmap -p 9100,631,515 192.168.1.0/24
# 2. 使用lpadmin添加
sudo lpadmin -p NetPrinter -v ipp://192.168.1.100/ipp/print -m everywhere -E
# 3. 验证连接
lpstat -t NetPrinter
5.3 Wi-Fi直连打印机配置
对于支持Wi-Fi Direct的打印机:
# 1. 在打印机控制面板启用Wi-Fi Direct
# 2. 在Xubuntu连接到打印机的Wi-Fi网络
# 3. 添加打印机
sudo lpadmin -p WiFi_Printer -v ipp://192.168.49.1/ipp/print -m everywhere -E
第六部分:解决打印服务配置常见错误
6.1 CUPS服务无法启动
症状
:
systemctl status cups
显示 failed 或 inactive
解决方案
:
# 检查端口占用
sudo netstat -tlnp | grep 631
# 如果端口被占用,停止冲突服务
sudo systemctl stop <冲突服务名>
# 检查CUPS配置文件权限
sudo chmod 644 /etc/cups/cupsd.conf
sudo chown root:root /etc/cups/cupsd.conf
# 重启CUPS
sudo systemctl restart cups
# 查看详细日志
sudo journalctl -u cups -f
6.2 找不到打印机驱动
症状
:lpinfo -m 显示找不到特定型号
解决方案
:
# 1. 安装更多驱动包
sudo apt install printer-driver-*
sudo apt install hplip
# 2. 手动下载PPD文件
# 访问厂商官网下载PPD
# 复制到系统目录
sudo cp downloaded.ppd /usr/share/cups/model/
sudo chmod 644 /usr/share/cups/model/downloaded.ppd
# 3. 重新扫描可用驱动
lpinfo -m | grep -i “你的打印机型号”
6.3 打印任务卡在队列中
症状
:lpq 显示任务状态为 “processing” 但长时间无输出
解决方案
:
# 1. 取消所有任务
cancel -a
# 2. 重启CUPS服务
sudo systemctl restart cups
# 3. 检查打印机状态
lpstat -p -d
# 4. 如果打印机离线,强制设为在线
sudo cupsenable <打印机名>
sudo cupsaccept <打印机名>
# 6. 检查物理连接
# USB:重新插拔线缆
# 网络:ping打印机IP,检查网络连通性
6.4 权限问题导致无法打印
症状
:普通用户无法打印,但root可以
解决方案
:
# 1. 检查用户组
groups $USER
# 2. 将用户加入lpadmin组
sudo usermod -a -G lpadmin $USER
# 2. 检查CUPS配置文件
sudo nano /etc/cups/cupsd.conf
# 确保以下行存在:
# Allow @LOCAL
# Allow @lpadmin
# 3. 重启CUPS服务
sudo systemctl restart cups
# 4. 重新登录使组权限生效
6.5 网络打印机连接超时
症状
:lpstat -v 显示URI错误或连接超时
解决方案
:
# 1. 检查网络连通性
ping <打印机IP>
# 2. 检查打印机端口
nmap -p 9100,631,515 <打印机IP>
# 3. 尝试不同的协议
# 如果IPP失败,尝试LPD
sudo lpadmin -p Printer -v lpd://192.168.1.100/lpt1 -m everywhere -E
# 4. 检查防火墙
sudo ufw status
# 如果需要,允许CUPS端口
sudo ufw allow 631/tcp
6.6 打印输出乱码或格式错误
症状
:打印内容为乱码或格式错乱
解决方案
:
# 1. 检查PPD文件是否正确
lpinfo -m | grep -i “你的型号”
# 2. 尝试通用驱动
sudo lpadmin -p Printer -v
# 1. 检查文件编码
file document.txt
# 如果是UTF-8,尝试转换为Latin1
iconv -f UTF-8 -t ISO-8859-1 document.txt > document_latin1.txt
lp -d Printer document_latin1.txt
# 2. 对于PDF打印,确保使用正确的过滤器
sudo apt install poppler-utils
lp -d Printer document.pdf
6.7 USB打印机无法识别
症状
:lsusb能看到设备,但CUPS无法识别
解决方案
:
# 1. 检查USB权限
ls -l /dev/bus/usb/*/*
# 2. 添加USB规则(如果权限不足)
sudo nano /etc/udev/rules.d/99-printer.rules
# 添加以下内容:
SUBSYSTEM==”usb”, ATTR{idVendor}==”04f8″, ATTR{idProduct}==”000a”, MODE=”0666″
# 3. 重新加载规则
sudo udevadm control –reload-rules
sudo udevadm trigger
# 4. 重启CUPS
sudo systemctl restart cups
# 5. 手动添加USB打印机
lpadmin -p USBPrinter -v usb://HP/LaserJet%201020?serial=00000000 -m drv:///sample.drv/hp1020.ppd -E
6.8 打印速度慢或内存不足
症状
:打印大文件时速度极慢或失败
解决方案
:
# 1. 检查CUPS错误日志
sudo tail -f /var/log/cups/error_log
# 2. 增加CUPS内存限制
sudo nano /etc/cups/cupsd.conf
# 添加或修改:
MaxJobs 100
MaxClients 100
MaxClientsPerUser 10
# 3. 优化打印过滤器
sudo nano /etc/cups/cupsd.conf
# 添加:
FilterLimit 0
# 4. 重启CUPS
sudo systemctl restart cups
6.9 打印机固件问题
症状
:打印机显示错误代码或无法初始化
解决方案
:
# 1. 检查打印机状态页
lpstat -p <打印机名> -l
# 2. 对于HP打印机,使用hp工具检查固件
hp-check -r
# 3. 更新固件(如果需要)
# 从厂商官网下载固件更新工具
# 通常需要在Windows环境下更新,但部分支持Linux
6.10 CUPS Web界面无法访问
症状
:
http://localhost:631
无法打开
解决方案
:
# 1. 检查CUPS是否监听
sudo netstat -tlnp | grep 631
# 2. 检查CUPS配置
sudo nano /etc/cups/cupsd.conf
# 确保监听本地:
Listen localhost:631
# 或监听所有接口:
Listen *:631
# 3. 检查防火墙
sudo ufw allow 631/tcp
# 4. 重启CUPS
sudo systemctl restart cups
# 5. 如果仍然无法访问,检查SELinux/AppArmor
sudo aa-status
# 临时禁用AppArmor测试
sudo aa-disable /etc/apparmor.d/usr.sbin.cupsd
第七部分:高级配置与优化
7.1 打印机共享配置
让网络中的其他计算机使用您的打印机:
# 1. 启用打印机共享
sudo nano /etc/cups/cupsd.conf
# 修改以下部分:
# Listen *:631
# Browsing On
# BrowseLocalProtocols dnssd
# 在
Order allow,deny
Allow @LOCAL
# 2. 重启CUPS
sudo systemctl restart cups
# 3. 在其他计算机上添加网络打印机
# 使用URI: ipp://
7.2 双面打印配置
启用自动双面打印:
# 1. 检查打印机是否支持双面打印
lpinfo -m | grep -i “duplex”
# 2. 在PPD文件中启用双面选项
sudo nano /etc/cups/ppd/<打印机名>.ppd
# 查找并修改:
*DefaultDuplex: DuplexNoTumble
# 改为:
*DefaultDuplex: DuplexTumble
# 3. 或者通过lpadmin重新配置
sudo lpadmin -p <打印机名> -o Duplex=DuplexTumble
# 4. 测试双面打印
lp -d <打印机名> -o Duplex=DuplexTumble document.pdf
7.3 打印质量优化
调整打印分辨率和质量:
# 1. 查看可用选项
lpoptions -p <打印机名> -l
# 2. 设置默认选项
lpoptions -p <打印机名> -o Resolution=600dpi -o Media=Letter
# 1. 临时设置打印质量
lp -d <打印机名> -o Resolution=1200dpi document.pdf
# 2. 永久修改默认设置
sudo lpadmin -p <打印机名> -o Resolution=1200dpi
7.4 打印机状态监控
设置打印机状态监控和通知:
# 1. 安装监控工具
sudo apt install cups-client
# 2. 监控打印队列
watch -n 2 ‘lpstat -t’
# 3. 设置邮件通知(需要配置邮件系统)
sudo nano /etc/cups/cupsd.conf
# 添加:
# ErrorLog /var/log/cups/error_log
# PageLog /var/log/cups/page_log
# AccessLog /var/log/cups/access_log
# 4. 使用脚本监控
#!/bin/bash
# printer_monitor.sh
while true; do
STATUS=$(lpstat -p <打印机名> | grep “disabled”)
if [ -n “$STATUS” ]; then
notify-send “打印机状态异常” “打印机已禁用”
fi
sleep 60
done
7.5 批量打印脚本
创建批量打印脚本:
#!/bin/bash
# batch_print.sh
PRINTER=”$1″
shift
for file in “$@”; do
echo “正在打印: $file”
lp -d “$PRINTER” “$file”
sleep 2
done
echo “批量打印完成”
使用方法:
./batch_print.sh HP_LaserJet_1020 *.pdf
第八部分:故障排除流程图
当遇到打印问题时,按照以下流程排查:
检查物理连接
:USB线缆是否松动,网络是否连通
检查CUPS服务
:
systemctl status cups
检查打印机状态
:
lpstat -p -d
检查打印队列
:
lpq -P <打印机名>
查看错误日志
:
sudo tail -f /var/log/cups/error_log
测试简单打印
:
lp -d <打印机名> /usr/share/cups/data/testprint
检查权限
:
groups $USER
和
ls -l /dev/bus/usb/*/*
尝试不同协议
:IPP → LPD → Socket
重新安装驱动
:删除打印机后重新添加
寻求社区帮助
:提供完整错误日志
第九部分:实用工具与资源
9.1 推荐安装的工具
# 打印机管理图形界面
sudo apt install system-config-printer
# HP专用工具
sudo apt install hplip-gui
# 网络打印机发现工具
sudo apt install cups-browsed
# PDF打印测试工具
sudo apt install cups-pdf
# 打印机诊断工具
sudo apt install cups-bsd
9.2 有用的命令汇总
# 快速诊断脚本
#!/bin/bash
echo “=== 打印机诊断报告 ===”
echo “CUPS状态:”
systemctl status cups –no-pager -l
echo -e “\n打印机列表:”
lpstat -p -d
echo -e “\n打印队列:”
lpstat -o
echo -e “\n可用驱动:”
lpinfo -m | head -20
echo -e “\nUSB设备:”
lsusb
echo -e “\n网络连通性:”
ping -c 1 192.168.1.100 2>&1 | grep “time=”
9.3 在线资源
CUPS官方文档
:
https://www.cups.org/documentation.html
OpenPrinting数据库
:
https://www.openprinting.org/printers
厂商Linux支持
:
HP:
https://developers.hp.com/hp-linux-imaging-and-printing
Brother:
https://support.brother.com/g/b/producttop.aspx?c=cn&lang=zh
Canon:
https://www.canon.com.cn/supports/download/index.html
结论
Xubuntu下的打印机安装虽然与Windows有所不同,但通过CUPS系统提供了强大而灵活的打印解决方案。关键在于:
准备工作充分
:确认硬件信息,更新系统,安装必要软件包
选择合适的驱动
:优先使用厂商官方驱动或高质量的开源驱动
正确配置URI
:根据连接方式选择合适的协议和URI格式
系统化故障排除
:按照流程图逐步排查问题
记住,大多数打印问题都可以通过检查CUPS日志、验证连接和重新配置驱动来解决。当遇到困难时,不要犹豫使用命令行工具进行诊断,它们通常能提供比图形界面更详细的错误信息。
通过本文的指导,您应该能够在Xubuntu系统上成功安装和配置任何类型的打印机,并解决常见的打印服务问题。如果遇到本文未涵盖的特殊情况,建议查阅厂商文档或在Linux社区寻求帮助。
# Xubuntu系统下打印机安装全攻略 从零基础到轻松搞定驱动问题 解决打印服务配置常见错误
引言:Xubuntu打印系统概述
Xubuntu作为基于Ubuntu的轻量级Linux发行版,使用Xfce桌面环境,为用户提供了简洁高效的计算体验。然而,打印机安装对于许多Linux新手来说仍然是一个挑战。本文将全面介绍在Xubuntu系统下安装和配置打印机的完整流程,从基础概念到实际操作,再到故障排除,帮助您轻松搞定打印任务。
Linux打印系统主要依赖CUPS(Common Unix Printing System)作为后台服务,配合各种打印机驱动程序。与Windows系统不同,Linux下的打印机驱动通常以开源形式提供,支持范围广泛但配置方式略有不同。理解这些基础概念将帮助您更好地完成打印机安装工作。
第一部分:安装前的准备工作
1.1 确认打印机硬件信息
在开始安装前,需要收集以下关键信息:
打印机品牌和型号
:通常在打印机外壳上有明显标识
连接方式
:USB直连还是网络打印(Wi-Fi/Ethernet)
打印机支持的协议
:查看打印机手册确认是否支持IPP、LPD/LPR、Socket等协议
操作示例
:
# 检查已连接的USB设备
lsusb
# 输出示例:Bus 001 Device 004: ID 04f8:000a Fujitsu Limited, Japan fi-4010C Scanner
# 检查网络设备(用于网络打印机)
ping <打印机IP地址>
1.2 系统更新与依赖检查
确保系统处于最新状态并安装必要的软件包:
# 更新软件包列表
sudo apt update
# 升级已安装的软件包
sudo apt upgrade
# 宣安装CUPS打印系统(通常已预装)
sudo apt install cups cups-client cups-filters
# 安装打印机驱动程序通用包
sudo apt install printer-driver-gutenprint printer-driver-foo2zjs
# 安装网络发现工具(用于网络打印机)
sudo apt install avahi-daemon avahi-utils
1.3 检查CUPS服务状态
验证CUPS服务是否正常运行:
# 检查CUPS服务状态
systemctl status cups
# 如果服务未运行,启动并设置开机自启
sudo systemctl start cups
sudo systemctl enable cups
# 检查CUPS是否监听端口
netstat -tlnp | grep 631
第二部分:通过图形界面安装打印机
2.1 使用Xubuntu的打印机设置工具
Xubuntu提供了直观的图形界面工具:
打开
应用程序菜单
→
设置
→
打印机
点击
添加打印机
按钮
系统会自动搜索可用的打印机(USB和网络)
详细步骤
:
对于USB打印机:确保打印机已开机并连接,系统通常会自动检测
对于网络打印机:点击
网络打印机
→ 等待自动发现或手动输入IP地址
2.2 驱动程序选择策略
当系统检测到打印机后,会要求选择驱动程序:
推荐选择顺序
:
制造商官方驱动
:如果可用,优先选择(如HP的HPLIP)
通用PCL驱动
:适用于大多数激光打印机
PostScript驱动
:适用于支持PS语言的打印机
Gutenprint驱动
:高质量的开源驱动集合
具体示例
:
HP LaserJet 1020
:选择
HP LaserJet 1020 – CUPS+Gutenprint
Brother HL-2270DW
:选择
Brother HL-2270DW BR-Script3
Canon PIXMA MG5700
:选择
Canon PIXMA MG5700 – CUPS+Gutenprint
2.3 测试打印配置
完成安装后立即测试:
在打印机列表中右键点击新安装的打印机
选择
打印测试页
检查输出是否正常
第三部分:通过命令行安装打印机(高级方法)
3.1 使用lpadmin命令配置打印机
lpadmin是CUPS的核心命令行工具,功能强大:
# 基本语法
sudo lpadmin -p <打印机名称> -v <设备URI> -m
# 示例1:添加USB打印机
sudo lpadmin -p HP_LaserJet_1020 -v usb://HP/LaserJet%201020?serial=00000000 -m drv:///sample.drv/hp1020.ppd -E
# 示例2:添加网络打印机(IPP协议)
sudo lpadmin -p Network_Printer -v ipp://192.168.1.100/ipp/print -m everywhere -E
# 示例3:添加网络打印机(LPD协议)
sudo lpadmin -p Brother_Printer -v lpd://192.168.1.101/lpt1 -m drv:///sample.drv/generic.ppd -E
# 示例4:添加网络打印机(Socket协议)
sudo lpadmin -p Canon_Printer -v socket://192.168.1.102:9100 -m drv:///sample.drv/generic.ppd -E
参数详解
:
-p
:指定打印机名称(不能有空格)
-v
:指定设备URI(统一资源标识符)
-m
:指定PPD(PostScript Printer Description)文件
-E
:启用打印机并接受任务
3.2 查找和安装特定PPD文件
PPD文件是打印机驱动的核心,包含打印机特性描述:
# 搜索可用的PPD文件
lpinfo -m | grep -i “打印机品牌型号”
# 示例:搜索HP打印机驱动
lpinfo -m | grep -i “hp 1020”
# 安装额外的PPD文件包
sudo apt install printer-driver-hpcups
# 从厂商网站下载PPD文件(以Brother为例)
wget https://support.brother.com/g/b/producttop.aspx?c=cn&lang=zh&prod=hl2270dw_all
# 解压并复制PPD文件到/usr/share/cups/model/
sudo cp brhl2270dw.ppd /usr/share/cups/model/
3.3 管理打印队列
# 查看所有打印机状态
lpstat -p -d
# 查看特定打印机的详细信息
lpstat -p HP_LaserJet_1020 -l
# 启用/禁用打印机
sudo cupsenable HP_LaserJet_1020
sudo cupsdisable HP_Laserjet_1020
# 接受/拒绝打印任务
sudo cupsaccept HP_LaserJet_1020
sudo cupsreject HP_LaserJet_1020
# 清空打印队列
cancel -a HP_LaserJet_1020
# 查看打印队列
lpq -P HP_LaserJet_1020
3.4 打印测试页和文档
# 打印测试页
lp -d HP_LaserJet_1020 /usr/share/cups/data/testprint
# 打印文本文件
lp -d HP_LaserJet_1020 document.txt
# 打印PDF文件
lp -d HP_LaserJet_1020 document.pdf
# 打印多个副本
lp -d HP_LaserJet_1020 -n 5 document.pdf
# 设置打印优先级(1-100,默认50)
lp -d HP_LaserJet_1020 -q 10 document.pdf
第四部分:常见打印机品牌驱动安装详解
4.1 HP打印机(HPLIP驱动)
HP提供官方的Linux驱动支持:
# 安装HPLIP驱动
sudo apt install hplip hplip-gui
# 运行HP设备管理工具
hp-setup
# 或者使用命令行安装
sudo hp-plugin -i
# 检查HP打印机状态
hp-check -r
# 更新HP固件(如果需要)
hp-firmware -i
详细示例
:安装HP LaserJet 1020
安装HPLIP:
sudo apt install hplip
连接打印机USB线缆
运行:
hp-setup -i
按照提示选择USB连接,输入打印机型号
完成后测试打印
4.2 Brother打印机
Brother提供Linux驱动下载:
# 下载Brother驱动(以HL-2270DW为例)
wget https://download.brother.com/welcome/dlf100424/brgenml1cupswrapper-2.0.4-1.i386.deb
wget https://download.brother.com/welcome/dlf100422/brgenml1lpr-2.0.4-1.i386.deb
# 安装下载的deb包
sudo dpkg -i brgenml1lpr-2.0.4-1.i386.deb
sudo dpkg -i brgenml1cupswrapper-2.0.4-1.i386.deb
# 修复依赖关系
sudo apt-get -f install
# 重启CUPS服务
sudo systemctl restart cups
4.3 Canon打印机
Canon打印机通常需要额外的驱动包:
# 安装Canon驱动
sudo apt install cnijfilter2
# 对于较新的Canon打印机,可能需要从官网下载
# 访问Canon支持网站,搜索你的型号,下载Linux驱动包
# 解压后运行安装脚本
./install.sh
4.4 Epson打印机
Epson提供Linux驱动支持:
# 安装Epson通用驱动
sudo apt install printer-driver-escpr
# 对于特定型号,可能需要安装额外包
sudo apt install epson-inkjet-printer-escpr
第五部分:网络打印机配置详解
5.1 自动发现网络打印机
使用Avahi服务发现网络打印机:
# 检查Avahi服务状态
systemctl status avahi-daemon
# 搜索网络打印机
avahi-browse -a -t -r
# 或者使用cups-browsed
sudo apt install cups-browsed
sudo systemctl enable cups-browsed
sudo systemctl start cups-browsed
5.2 手动添加网络打印机
当自动发现失败时,手动添加:
# 1. 确定打印机IP地址
# 在打印机控制面板查看或使用nmap扫描
sudo nmap -p 9100,631,515 192.168.1.0/24
# 2. 使用lpadmin添加
sudo lpadmin -p NetPrinter -v ipp://192.168.1.100/ipp/print -m everywhere -E
# 3. 验证连接
lpstat -t NetPrinter
5.3 Wi-Fi直连打印机配置
对于支持Wi-Fi Direct的打印机:
# 1. 在打印机控制面板启用Wi-Fi Direct
# 2. 在Xubuntu连接到打印机的Wi-Fi网络
# 3. 添加打印机
sudo lpadmin -p WiFi_Printer -v ipp://192.168.49.1/ipp/print -m everywhere -E
第六部分:解决打印服务配置常见错误
6.1 CUPS服务无法启动
症状
:
systemctl status cups
显示 failed 或 inactive
解决方案
:
# 检查端口占用
sudo netstat -tlnp | grep 631
# 如果端口被占用,停止冲突服务
sudo systemctl stop <冲突服务名>
# 检查CUPS配置文件权限
sudo chmod 644 /etc/cups/cupsd.conf
sudo chown root:root /etc/cups/cupsd.conf
# 重启CUPS
sudo systemctl restart cups
# 查看详细日志
sudo journalctl -u cups -f
6.2 找不到打印机驱动
症状
:lpinfo -m 显示找不到特定型号
解决方案
:
# 1. 安装更多驱动包
sudo apt install printer-driver-*
sudo apt install hplip
# 2. 手动下载PPD文件
# 访问厂商官网下载PPD
# 复制到系统目录
sudo cp downloaded.ppd /usr/share/cups/model/
sudo chmod 644 /usr/share/cups/model/downloaded.ppd
# 3. 重新扫描可用驱动
lpinfo -m | grep -i “你的打印机型号”
6.3 打印任务卡在队列中
症状
:lpq 显示任务状态为 “processing” 但长时间无输出
解决方案
:
# 1. 取消所有任务
cancel -a
# 2. 重启CUPS服务
sudo systemctl restart cups
# 3. 检查打印机状态
lpstat -p -d
# 4. 如果打印机离线,强制设为在线
sudo cupsenable <打印机名>
sudo cupsaccept <打印机名>
# 6. 检查物理连接
# USB:重新插拔线缆
# 网络:ping打印机IP,检查网络连通性
6.4 权限问题导致无法打印
症状
:普通用户无法打印,但root可以
解决方案
:
# 1. 检查用户组
groups $USER
# 2. 将用户加入lpadmin组
sudo usermod -a -G lpadmin $USER
# 2. 检查CUPS配置文件
sudo nano /etc/cups/cupsd.conf
# 确保以下行存在:
# Allow @LOCAL
# Allow @lpadmin
# 3. 重启CUPS服务
sudo systemctl restart cups
# 4. 重新登录使组权限生效
6.5 网络打印机连接超时
症状
:lpstat -v 显示URI错误或连接超时
解决方案
:
# 1. 检查网络连通性
ping <打印机IP>
# 2. 检查打印机端口
nmap -p 9100,631,515 <打印机IP>
# 3. 尝试不同的协议
# 如果IPP失败,尝试LPD
sudo lpadmin -p Printer -v lpd://192.168.1.100/lpt1 -m everywhere -E
# 4. 检查防火墙
sudo ufw status
# 如果需要,允许CUPS端口
sudo ufw allow 631/tcp
6.6 打印输出乱码或格式错误
症状
:打印内容为乱码或格式错乱
解决方案
:
# 1. 检查PPD文件是否正确
lpinfo -m | grep -i “你的型号”
# 2. 尝试通用驱动
sudo lpadmin -p Printer -v
# 1. 检查文件编码
file document.txt
# 如果是UTF-8,尝试转换为Latin1
iconv -f UTF-8 -t ISO-8859-1 document.txt > document_latin1.txt
lp -d Printer document_latin1.txt
# 2. 对于PDF打印,确保使用正确的过滤器
sudo apt install poppler-utils
lp -d Printer document.pdf
6.7 USB打印机无法识别
症状
:lsusb能看到设备,但CUPS无法识别
解决方案
:
# 1. 检查USB权限
ls -l /dev/bus/usb/*/*
# 2. 添加USB规则(如果权限不足)
sudo nano /etc/udev/rules.d/99-printer.rules
# 添加以下内容:
SUBSYSTEM==”usb”, ATTR{idVendor}==”04f8″, ATTR{idProduct}==”000a”, MODE=”0666″
# 3. 重新加载规则
sudo udevadm control –reload-rules
sudo udevadm trigger
# 4. 重启CUPS
sudo systemctl restart cups
# 5. 手动添加USB打印机
lpadmin -p USBPrinter -v usb://HP/LaserJet%201020?serial=00000000 -m drv:///sample.drv/hp1020.ppd -E
6.8 打印速度慢或内存不足
症状
:打印大文件时速度极慢或失败
解决方案
:
# 1. 检查CUPS错误日志
sudo tail -f /var/log/cups/error_log
# 2. 增加CUPS内存限制
sudo nano /etc/cups/cupsd.conf
# 添加或修改:
MaxJobs 100
MaxClients 100
MaxClientsPerUser 10
# 3. 优化打印过滤器
sudo nano /etc/cups/cupsd.conf
# 添加:
FilterLimit 0
# 4. 重启CUPS
sudo systemctl restart cups
6.9 打印机固件问题
症状
:打印机显示错误代码或无法初始化
解决方案
:
# 1. 检查打印机状态页
lpstat -p <打印机名> -l
# 2. 对于HP打印机,使用hp工具检查固件
hp-check -r
# 3. 更新固件(如果需要)
# 从厂商官网下载固件更新工具
# 通常需要在Windows环境下更新,但部分支持Linux
6.10 CUPS Web界面无法访问
症状
:
http://localhost:631
无法打开
解决方案
:
# 1. 检查CUPS是否监听
sudo netstat -tlnp | grep 631
# 2. 检查CUPS配置
sudo nano /etc/cups/cupsd.conf
# 确保监听本地:
Listen localhost:631
# 或监听所有接口:
Listen *:631
# 3. 检查防火墙
sudo ufw allow 631/tcp
# 4. 重启CUPS
sudo systemctl restart cups
# 5. 如果仍然无法访问,检查SELinux/AppArmor
sudo aa-status
# 临时禁用AppArmor测试
sudo aa-disable /etc/apparmor.d/usr.sbin.cupsd
第七部分:高级配置与优化
7.1 打印机共享配置
让网络中的其他计算机使用您的打印机:
# 1. 启用打印机共享
sudo nano /etc/cups/cupsd.conf
# 修改以下部分:
# Listen *:631
# Browsing On
# BrowseLocalProtocols dnssd
# 在
Order allow,deny
Allow @LOCAL
# 2. 重启CUPS
sudo systemctl restart cups
# 3. 在其他计算机上添加网络打印机
# 使用URI: ipp://
7.2 双面打印配置
启用自动双面打印:
# 1. 检查打印机是否支持双面打印
lpinfo -m | grep -i “duplex”
# 2. 在PPD文件中启用双面选项
sudo nano /etc/cups/ppd/<打印机名>.ppd
# 查找并修改:
*DefaultDuplex: DuplexNoTumble
# 改为:
*DefaultDuplex: DuplexTumble
# 3. 或者通过lpadmin重新配置
sudo lpadmin -p <打印机名> -o Duplex=DuplexTumble
# 4. 测试双面打印
lp -d <打印机名> -o Duplex=DuplexTumble document.pdf
7.3 打印质量优化
调整打印分辨率和质量:
# 1. 查看可用选项
lpoptions -p <打印机名> -l
# 2. 设置默认选项
lpoptions -p <打印机名> -o Resolution=600dpi -o Media=Letter
# 1. 临时设置打印质量
lp -d <打印机名> -o Resolution=1200dpi document.pdf
# 2. 永久修改默认设置
sudo lpadmin -p <打印机名> -o Resolution=1200dpi
7.4 打印机状态监控
设置打印机状态监控和通知:
# 1. 安装监控工具
sudo apt install cups-client
# 2. 监控打印队列
watch -n 2 ‘lpstat -t’
# 3. 设置邮件通知(需要配置邮件系统)
sudo nano /etc/cups/cupsd.conf
# 添加:
# ErrorLog /var/log/cups/error_log
# PageLog /var/log/cups/page_log
# AccessLog /var/log/cups/access_log
# 4. 使用脚本监控
#!/bin/bash
# printer_monitor.sh
while true; do
STATUS=$(lpstat -p <打印机名> | grep “disabled”)
if [ -n “$STATUS” ]; then
notify-send “打印机状态异常” “打印机已禁用”
fi
sleep 60
done
7.5 批量打印脚本
创建批量打印脚本:
#!/bin/bash
# batch_print.sh
PRINTER=”$1″
shift
for file in “$@”; do
echo “正在打印: $file”
lp -d “$PRINTER” “$file”
sleep 2
done
echo “批量打印完成”
使用方法:
./batch_print.sh HP_LaserJet_1020 *.pdf
第八部分:故障排除流程图
当遇到打印问题时,按照以下流程排查:
检查物理连接
:USB线缆是否松动,网络是否连通
检查CUPS服务
:
systemctl status cups
检查打印机状态
:
lpstat -p -d
检查打印队列
:
lpq -P <打印机名>
查看错误日志
:
sudo tail -f /var/log/cups/error_log
测试简单打印
:
lp -d <打印机名> /usr/share/cups/data/testprint
检查权限
:
groups $USER
和
ls -l /dev/bus/usb/*/*
尝试不同协议
:IPP → LPD → Socket
重新安装驱动
:删除打印机后重新添加
寻求社区帮助
:提供完整错误日志
第九部分:实用工具与资源
9.1 推荐安装的工具
# 打印机管理图形界面
sudo apt install system-config-printer
# HP专用工具
sudo apt install hplip-gui
# 网络打印机发现工具
sudo apt install cups-browsed
# PDF打印测试工具
sudo apt install cups-pdf
# 打印机诊断工具
sudo apt install cups-bsd
9.2 有用的命令汇总
# 快速诊断脚本
#!/bin/bash
echo “=== 打印机诊断报告 ===”
echo “CUPS状态:”
systemctl status cups –no-pager -l
echo -e “\n打印机列表:”
lpstat -p -d
echo -e “\n打印队列:”
lpstat -o
echo -e “\n可用驱动:”
lpinfo -m | head -20
echo -e “\nUSB设备:”
lsusb
echo -e “\n网络连通性:”
ping -c 1 192.168.1.100 2>&1 | grep “time=”
9.3 在线资源
CUPS官方文档
:
https://www.cups.org/documentation.html
OpenPrinting数据库
:
https://www.openprinting.org/printers
厂商Linux支持
:
HP:
https://developers.hp.com/hp-linux-imaging-and-printing
Brother:
https://support.brother.com/g/b/producttop.aspx?c=cn&lang=zh
Canon:
https://www.canon.com.cn/supports/download/index.html
结论
Xubuntu下的打印机安装虽然与Windows有所不同,但通过CUPS系统提供了强大而灵活的打印解决方案。关键在于:
准备工作充分
:确认硬件信息,更新系统,安装必要软件包
选择合适的驱动
:优先使用厂商官方驱动或高质量的开源驱动
正确配置URI
:根据连接方式选择合适的协议和URI格式
系统化故障排除
:按照流程图逐步排查问题
记住,大多数打印问题都可以通过检查CUPS日志、验证连接和重新配置驱动来解决。当遇到困难时,不要犹豫使用命令行工具进行诊断,它们通常能提供比图形界面更详细的错误信息。
通过本文的指导,您应该能够在Xubuntu系统上成功安装和配置任何类型的打印机,并解决常见的打印服务配置问题。如果遇到本文未涵盖的特殊情况,建议查阅厂商文档或在Linux社区寻求帮助。