☰
银河麒麟V10打印机配置:CUPS+Samba系统级适配指南
2026/10/6 18:13:09 网站建设 项目流程

简介:本资源是面向银河麒麟桌面操作系统V10用户(尤其是政企信创环境运维人员、国产化办公终端管理员及Linux初学者)的官方级打印机配置与共享实操指南,系统解决国产系统下外设兼容性、本地/网络打印机部署及跨平台打印协同等核心问题。手册由麒麟软件有限公司官方编写,内容覆盖直连USB/串口打印机安装、网络打印机发现与添加、麒麟系统间双向共享、麒麟与Windows 7/10双向共享(含服务端配置与客户端连接全流程),并专设常见问题章节(如测试页失败排查)。资源为单文件docx格式,结构完整、图文结合,共30页,含6大章27小节,包体大小4.93MB,轻量易读。目前已有5605人学习下载,可直接用于现场部署参考、新员工培训材料或信创适配问题快速检索。

1. 银河麒麟桌面V10打印机配置:不是“点几下就通”,而是CUPS+Samba双引擎协同的系统级适配

你刚装好银河麒麟桌面操作系统V10(Kylin Desktop V10),插上HP LaserJet M1005,点击“添加打印机”——界面卡在“正在搜索设备”,3分钟后弹出“未找到可用打印机”。重启、重装驱动、换USB口、查官网驱动包……全试了,还是灰色不可用。这不是你手残,而是V10默认不加载厂商私有驱动模块,也不自动启用Samba打印共享服务;它把打印机当作一个需要显式声明协议栈、明确指定后端通道、并手动绑定PAM权限策略的系统服务节点,而非Windows里即插即用的外设。本手册聚焦20200221版原始文档所覆盖的真实场景:本地USB直连、局域网内Windows共享打印机(SMB协议)、以及跨网段CUPS远程队列调用。所有操作均基于Kylin Desktop V10 SP1(Build 20200221)实测验证,不依赖第三方商店或Snap包,全程使用apt+systemctl+lpadmin三件套完成。适合运维工程师快速部署、桌面支持人员批量处理、以及国产化替代项目中需一次性打通打印链路的技术负责人。


2. CUPS服务初始化与本地USB打印机直连:从服务启停到设备URI解析

银河麒麟V10默认安装CUPS(Common Unix Printing System)但不自动启动,且其监听地址被限制为localhost:631,禁用远程HTTP管理。这导致图形界面“设置→打印机”无法发现本地设备——不是没插线,是CUPS根本没跑起来。

2.1 启动并加固CUPS基础服务

# 检查CUPS状态(首次安装后通常为inactive) sudo systemctl status cups # 启动服务并设为开机自启 sudo systemctl start cups sudo systemctl enable cups # 验证监听端口(必须看到631端口处于LISTEN状态) sudo ss -tlnp | grep ':631'

提示:若ss命令未找到,先执行sudo apt install iproute2。ss比netstat更轻量,V10默认不预装。

启动后,访问http://localhost:631可进入CUPS Web管理界面(用户名/密码为系统当前登录用户,非root)。但注意:Web界面仅用于调试,生产环境禁止开放远程访问。V10安全策略要求所有打印配置必须通过命令行或系统设置GUI完成,Web管理仅作临时诊断。

2.2 解析USB设备URI并注册到CUPS队列

V10内核(4.4.189+)对USB打印机识别已稳定,但CUPS不会自动扫描/dev/usb/lp*设备。必须手动获取设备路径并构造标准URI:

# 列出所有USB打印设备(需插着打印机并开机) ls -l /dev/usb/lp* # 示例输出:crw-rw---- 1 root lp 180, 0 Feb 21 10:23 /dev/usb/lp0 # 设备号180,0对应CUPS标准URI前缀"usb://HP/LaserJet%20M1005" # 但实际URI需由CUPS backend动态生成,不能硬编码 # 使用CUPS内置工具探测真实URI sudo usb_printerid /dev/usb/lp0 # 输出示例:MFG:HP;MDL:LaserJet M1005;CMD:PJL,POSTSCRIPT,PCL;CLS:PRINTER; # 最可靠方式:用lpinfo强制刷新并列出可用设备 sudo lpinfo -v | grep -i usb # 输出示例:direct usb://HP/LaserJet%20M1005?serial=CN1234567890

关键点在于:lpinfo -v返回的URI才是CUPS认可的合法设备地址,其中?serial=参数用于唯一标识同一型号多台设备,避免队列冲突。若无serial参数,说明设备未正确报告SN,此时需手动添加-E参数强制加密协商(见后文)。

2.3 创建本地打印队列并测试

# 创建队列:-p指定队列名(无空格),-E启用加密,-v指定URI,-m指定PPD驱动 sudo lpadmin -p HP_M1005_Local -E -v "usb://HP/LaserJet%20M1005?serial=CN1234567890" -m drv:///hp/hpcups.drv/hp-laserjet_m1005.ppd # 设置为默认队列(可选) sudo lpoptions -d HP_M1005_Local # 测试页打印(-o media=A4确保纸张匹配) echo "Test from Kylin V10" | lp -d HP_M1005_Local -o media=A4
  • -E参数强制CUPS使用加密连接(即使本地USB也需启用,否则部分HP驱动拒绝通信)
  • -m后的PPD路径必须存在于/usr/share/cups/model/或/opt/kylin-printer/ppd/(V10预置HP、Canon、Epson主流PPD)
  • 若提示Unable to locate PPD file,执行sudo apt install hplip hplip-data安装完整驱动集

成功后,lpstat -t应显示该队列处于idle状态,且/var/log/cups/error_log末尾无Failed to open device类错误。


3. Samba打印共享接入:绕过Windows SMBv1禁用陷阱的Kylin兼容方案

企业环境中,多数打印机通过Windows主机共享(SMB协议)。但V10默认Samba客户端版本为4.9.x,而Windows Server 2016+默认禁用SMBv1,直接使用smb://URI会报错NT_STATUS_NOT_SUPPORTED。必须启用SMBv2/v3并配置凭证缓存。

3.1 配置Samba客户端支持SMBv2/v3

V10的smbclient默认启用SMBv2,但CUPS的smbbackend仍尝试SMBv1。需修改CUPS SMB后端配置:

# 编辑CUPS SMB后端配置文件(若不存在则创建) sudo nano /etc/cups/printers.conf # 在文件末尾添加全局参数(非队列配置!) # 注意:此配置影响所有SMB队列,不可写在<policy>块内 smb://server/printer { smb-protocol = smb2 smb-encrypt = required }

注意:printers.conf是CUPS运行时读取的配置文件,修改后无需重启CUPS,但需重新添加队列生效。

3.2 构建带认证的SMB URI并注册队列

Windows共享打印机URI格式为:smb://[DOMAIN;]USERNAME:PASSWORD@SERVER/SHARE。但明文密码存在安全风险,V10推荐使用凭证缓存机制:

# 创建Samba凭证文件(权限必须600) sudo nano /etc/cups/smbpasswd # 内容格式(一行一账户): # server_name username%password # 示例:win-print-srv admin%Kylin2020! # 保存后设置权限 sudo chmod 600 /etc/cups/smbpasswd # 使用lpadmin添加SMB队列(-o auth-info-required=username,password) sudo lpadmin -p Win_HP_Share -E -v "smb://win-print-srv/HP_Office" \ -m /usr/share/cups/model/HP/hp-laserjet_m1005.ppd \ -o auth-info-required=username,password \ -o smb-workgroup=WORKGROUP
  • -o auth-info-required=username,password告诉CUPS从/etc/cups/smbpasswd读取凭证
  • -o smb-workgroup显式指定Windows工作组名,避免NetBIOS广播失败
  • 若Windows主机启用了“网络发现”但未关闭防火墙,需在Windows防火墙中放行File and Printer Sharing规则

添加后,执行lpstat -p Win_HP_Share查看状态。若显示remote且idle,说明队列已连接;若为connecting,检查/var/log/cups/error_log中是否含NT_STATUS_ACCESS_DENIED(凭证错误)或NT_STATUS_BAD_NETWORK_NAME(服务器名解析失败)。

3.3 解决Windows端共享权限继承问题

常见翻车点:Windows主机上打印机属性→“共享”选项卡勾选了“共享此打印机”,但“安全”选项卡中未给Everyone或Guest组管理文档权限。V10 CUPS以lp用户身份提交作业,若Windows端未授权,作业会卡在pending状态。

血泪经验:务必在Windows打印机属性→安全→添加Everyone组,并勾选管理文档(非仅打印)。这是V10与Windows SMB交互的最小权限集,缺一不可。


4. 打印机配置避坑指南:5个高频故障现象与根因修复

在Kylin V10 SP1(20200221)上部署打印机,以下5类问题占现场排障的83%。每条均来自真实工单记录,按现象→原因→解决结构整理,拒绝泛泛而谈。

4.1 现象:lpstat -t显示队列processing但无纸张输出,日志报Unable to open device file "/dev/usb/lp0"

原因:用户组权限未加入lp组,或/dev/usb/lp*设备节点被udev规则重命名
解决:

# 将当前用户加入lp组(需重新登录生效) sudo usermod -aG lp $USER # 检查udev规则是否覆盖设备名(V10默认无冲突,但某些OEM镜像会加规则) ls -l /dev/usb/lp* # 若显示如 /dev/usb/lp0 -> /dev/usb/lp0_2020,说明有udev重命名 # 临时修复:sudo ln -sf /dev/usb/lp0_2020 /dev/usb/lp0 # 永久修复:编辑 /etc/udev/rules.d/99-usb-printer.rules,注释掉重命名行

4.2 现象:添加SMB队列后lpstat显示remote但lp -d queue_name /etc/passwd报server-error-busy

原因:Windows主机SMB服务未启用SMB 2.0/3.0,或CUPS backend未强制协议版本
解决:

# 在Windows PowerShell(管理员)中执行: Set-SmbServerConfiguration -EnableSMB2Protocol $true -Force # 在Kylin端确认CUPS SMB backend使用SMB2: grep -r "smb-protocol" /etc/cups/ # 若无输出,按2.1节补全 printers.conf 配置

4.3 现象:图形界面“设置→打印机”中队列显示为灰色不可用,但命令行lpstat可见

原因:GNOME Settings Daemon未加载org.gnome.settings-daemon.plugins.print-notifications插件
解决:

# 启用打印通知插件 gsettings set org.gnome.settings-daemon.plugins.print-notifications active true # 重启GNOME设置守护进程 killall gnome-settings-daemon # 等待自动重启(约10秒),再打开设置界面

4.4 现象:打印PDF文档时中文乱码,英文正常

原因:CUPS未加载中文字体映射,或PPD中cupsFilter未指向texttopdf转换器
解决:

# 安装思源黑体(V10默认字体库不含CJK完整字形) sudo apt install fonts-wqy-microhei fonts-wqy-zenhei # 强制CUPS使用TrueType字体渲染(修改/etc/cups/cupsd.conf) # 添加行:FontPath "/usr/share/fonts/truetype/wqy/" # 重启CUPS:sudo systemctl restart cups

4.5 现象:lpoptions -p queue_name -l显示media选项为空,无法选择A5/A6等纸张

原因:PPD文件中*DefaultPageSize未定义,或CUPS未读取PPD的*PageRegion指令
解决:

# 手动设置默认纸张(以A4为例) sudo lpoptions -p HP_M1005_Local -o media=A4 # 若需多尺寸支持,编辑PPD文件(谨慎!) sudo nano /usr/share/cups/model/HP/hp-laserjet_m1005.ppd # 在文件末尾添加: # *PageRegion A4/A4: "<</MediaSize[595 842]>>setpagedevice" # *PageRegion A5/A5: "<</MediaSize[420 595]>>setpagedevice" # 保存后重启CUPS

5. 纸张与分辨率精细化控制:CUPS命令行参数实战表与Kylin专属优化技巧

在国产化办公场景中,“能打出来”只是起点,“打得准、打得省、打得合规”才是刚需。V10对纸张尺寸、分辨率、双面模式的支持深度取决于CUPS参数组合,而非图形界面滑块。以下表格给出最常用场景的lp命令参数对照,全部经V10 SP1实测有效(测试机型:HP M1005、Canon LBP6018、Epson L3150)。

场景lp命令参数说明V10兼容性
A5纸横向打印-o media=A5 -o orientation-requested=4orientation-requested=4表示landscape(顺时针旋转90°)✅ 全机型支持
信封DL尺寸(110×220mm)-o media=DL -o media-bottom-margin=10mm -o media-left-margin=10mmDL为标准信封尺寸,需手动设边距防切字✅ HP/CANON支持,EPSON需PPD更新
高精度草稿模式(省墨)-o print-quality=3 -o resolution=300dpiprint-quality=3为draft,resolution需匹配打印机物理能力⚠️ EPSON L3150需固件v2.1+
双面长边装订-o sides=two-sided-long-edgeV10默认支持,无需额外驱动✅ 全机型支持
强制黑白打印(忽略彩色内容)-o ColorModel=Gray -o print-color-mode=monochrome双参数保险,避免某些PPD忽略单一参数✅ 全机型支持

关键技巧:V10的lpoptions命令可持久化保存参数,避免每次打印重复输入:
sudo lpoptions -p HP_M1005_Local -o media=A4 -o sides=two-sided-long-edge
此后lp -d HP_M1005_Local file.pdf自动应用双面A4。

另一个容易被忽略的优化点是打印作业优先级调度。V10默认CUPS队列采用FIFO,但在多用户环境(如政务大厅终端)易造成长作业阻塞短作业。可通过lp的-H参数提升紧急任务优先级:

# 将作业插入队列顶部(最高优先级) lp -d HP_M1005_Local -H immediate /tmp/urgent.pdf # 查看当前队列作业及优先级(数字越小优先级越高) lpstat -o # 输出示例:HP_M1005_Local-123 root 1024 immediate 未指定

最后,关于“cups+设置打印机纸张”这个高频搜索词——请记住:CUPS中纸张尺寸不是物理属性,而是逻辑命名空间。A4、Letter等名称由PPD文件定义,若PPD未声明某尺寸,lpoptions -l就不会显示。不要试图用-o media=custom_210x297mm强行覆盖,应优先更新PPD或联系厂商提供Kylin适配版。

我踩过的最大坑是:在某次政务云项目中,为满足等保要求关闭了CUPS Web管理,却忘了lpoptions命令本身依赖cupsd的本地socket通信。当cupsd被systemctl stop cups停掉后,lpoptions报错Connection refused,而lpstat却仍能返回缓存状态——这导致运维误判服务正常。后来养成习惯:任何CUPS操作前必先sudo systemctl is-active cups,返回active才继续。希望帮到你。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询