简介:这份《银河麒麟桌面V10-打印机使用手册》面向国产操作系统运维人员、信创环境IT支持及日常办公用户,聚焦银河麒麟桌面V10下打印机的安装、配置与跨平台共享问题。手册系统梳理了直连打印机与网络打印机的添加流程,并重点讲解银河麒麟设备之间、以及与Windows 7、Windows 10系统互相共享打印机的服务端设置与客户端连接方法,最后附有打印测试页等常见问题排查思路,适合需要快速上手国产系统外设管理的初中级用户。资源包内共1个docx文档,约4.93MB,内容按章节组织,涵盖连接打印机、共享打印机、跨系统共享及常见问题等模块,目录结构清晰,便于按需查阅。目前已有5603人学习下载,可作为信创办公场景中打印机部署与故障排查的实用参考。
1. 银河麒麟桌面V10打印机手册:从驱动识别到共享打印的落地路径
银河麒麟桌面V10上接打印机,最常见的翻车现场不是硬件坏了,而是系统识别到了USB设备、lsusb也能看到厂商ID,但CUPS里就是不出队列,点“添加”转两圈又回到原点。这份手册要解决的就是这条链路:系统怎么认打印机、CUPS怎么建队列、驱动从哪来、共享出去后Windows端报0x0000011b或0x00000709怎么绕。它适合两类人:一是刚拿到麒麟V10桌面版、手里有台惠普1136或兄弟2560要联机的运维;二是要把这台机器当打印服务器、给同网段Windows和国产终端共用一台打印机的集成人员。下面按“先让本机打出来,再让局域网打进来”的顺序拆,每一步都给出可复现的命令和参数,不依赖图形界面也能走通。
2. 麒麟V10打印栈拆解:CUPS、驱动与USB识别的三层关系
2.1 先搞清楚谁在干活:CUPS是调度,驱动是翻译
麒麟桌面V10的打印服务底座是CUPS,图形化的“打印机设置”只是它的一层壳。真正决定能不能出纸的是三样东西:CUPS守护进程、对应机型的PPD/驱动、以及内核USB或网络后端。很多人一上来就装驱动,结果systemctl status cups是failed,后面全白搭。所以顺序永远是先确认CUPS活着,再谈驱动。
# 确认CUPS服务状态与监听端口 systemctl status cups ss -tlnp | grep 631 # 查看当前已安装队列,空列表说明还没建过 lpstat -p -dsystemctl status cups看的是服务是否active,ss确认631端口在听——CUPS的IPP协议走这个口,共享打印也靠它。lpstat -p列出已有队列,-d显示默认打印机。如果这里报“No destinations added”,说明系统层面干净,可以放心往下建。注意麒麟V10默认可能没装cups完整包,无网环境要提前备好离线deb。
2.2 USB打印机识别不出来,先分层排查再动手
“linux添加本地打印机但识别不出来”是高频问题,根因通常不在CUPS,而在USB层。判断方法很简单:插上打印机后看内核有没有枚举出设备。
# 看USB总线是否枚举到打印机 lsusb # 看内核打印日志里有没有usblp绑定 dmesg | grep -i -E "usb|printer|usblp" # 确认usblp模块是否加载 lsmod | grep usblplsusb能看到厂商ID和产品ID,说明物理连接和供电没问题;dmesg里出现usblp或Printer字样,说明内核认了。如果lsusb有但dmesg没有usblp,多半是usblp模块没加载,modprobe usblp补上。麒麟V10在ARM64(kylin linux v10 arm64)平台上,部分老打印机的闭源驱动只有x86版本,这时候USB能认、驱动装不上,就得换通用PostScript或PCL驱动兜底,别死磕原厂包。
2.3 驱动从哪来:优先系统源,其次厂商PPD
麒麟V10装软件命令和Debian系一致,apt或图形包管理器都行。驱动获取优先级:系统源里的printer-driver-*> 厂商提供的PPD文件 > 通用驱动。惠普系常见做法是装printer-driver-hpcups,兄弟系找brother对应PPD。
# 从系统源安装惠普CUPS驱动(有网环境) sudo apt update sudo apt install printer-driver-hpcups -y # 无网环境用离线包 sudo dpkg -i printer-driver-hpcups_*.deb sudo apt -f install # 补依赖apt install会自动处理依赖,dpkg -i装离线包后必须跟apt -f install补缺,否则CUPS调用驱动时会报缺库。装完用lpinfo -m | grep -i 你的型号确认PPD已注册。如果搜不到型号,说明驱动没覆盖,需要手动把厂商PPD放到/usr/share/cups/model/再重启CUPS。这一步是后面建队列的前提,PPD不在列表里,图形界面选型号时就是空的。
3. 用lpadmin建队列:命令行添加打印机的完整参数
3.1 一条命令建出可用队列
图形界面点不出来的时候,lpadmin是最可靠的后悔药。它把设备URI、PPD、队列名三样一次绑定,参数写对了基本一次成。
# 建一个USB本地队列,队列名HP1136 sudo lpadmin -p HP1136 \ -E \ -v usb://HP/LaserJet%201136?serial=XXXX \ -m drv:///hpcups.drv/hp-laserjet_1136.ppd \ -o printer-is-shared=true # 设为默认并启用 sudo lpadmin -d HP1136 sudo cupsenable HP1136 sudo cupsaccept HP1136-p是队列名,自己起,后面共享和客户端都认这个名字。-E表示立即启用并接受任务。-v是设备URI,USB设备用lpinfo -v查真实地址,别手写猜。-m指定PPD,用lpinfo -m里的准确路径。-o printer-is-shared=true是共享开关,局域网共享必须开。cupsenable和cupsaccept分别管“启用队列”和“接受任务”,少一个都会导致任务卡住不出纸。
3.2 设备URI怎么查:lpinfo -v是唯一可信来源
手写URI是新手最大的坑,序列号错一位就连不上。正确做法是让系统告诉你。
# 列出所有CUPS能识别的后端设备 lpinfo -v # 典型输出: # direct usb://HP/LaserJet%201136?serial=CN12345678 # network socket://192.168.1.50:9100 # network ipp://192.168.1.50/ipp/printdirect开头是本地直连,network开头是网络打印机。USB的URI里%20是空格转义,序列号必须和lsusb -v里一致。网络打印机优先用ipp://,它比socket://多了状态回传,能看墨量和卡纸。如果lpinfo -v里啥都没有,回到2.2查USB层,别在CUPS里瞎试。
3.3 纸张和默认参数:建完队列必须调的三项
队列建好不等于好用,纸张尺寸、默认份数、双面这些不设,每次打印都要手动改。用lpoptions持久化。
# 设置默认纸张A4、单面、彩色 lpoptions -d HP1136 \ -o PageSize=A4 \ -o Duplex=None \ -o ColorModel=RGB # 查看当前队列的全部可调参数 lpoptions -p HP1136 -lPageSize=A4对应国内常用纸,lpoptions -l会列出该PPD支持的所有选项和取值,照着填不会错。Duplex=None关双面,需要双面就改Duplex=DuplexNoTumble。这些参数写进~/.cups/lpoptions,对当前用户生效;要全局生效就写到/etc/cups/lpoptions。CUPS设置打印机纸张这一步做对,后面客户端基本不用再调。
4. 共享打印机:让Windows和国产终端都能连进来
4.1 服务端三处配置,缺一个就连不上
麒麟V10共享打印机,本质是让CUPS对局域网开放IPP。要改三处:监听地址、访问控制、共享开关。
# 备份后编辑CUPS主配置 sudo cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.bak sudo vim /etc/cups/cupsd.conf需要确认的关键行:
Listen 0.0.0.0:631 Browsing On <Location /> Order allow,deny Allow @LOCAL </Location>Listen 0.0.0.0:631让CUPS监听所有网卡,只写localhost外部连不进来。Allow @LOCAL放行同网段。改完sudo systemctl restart cups。注意麒麟V10自带防火墙,631端口要放行,否则配置全对也连不上。
# 放行CUPS端口(firewalld) sudo firewall-cmd --permanent --add-port=631/tcp sudo firewall-cmd --reload4.2 Windows端报0x0000011b / 0x00000709怎么绕
这两个错误码是共享打印的高频拦路虎。0x0000011b多出现在Win10/Win11连共享打印机时,根因是微软某次更新收紧了RPC打印通道的认证;0x00000709是默认打印机设置失败。麒麟作为服务端时,最稳的绕法是不走Windows的SMB共享,直接走IPP。
在Windows端添加打印机时选“按URL添加”,填:
http://麒麟IP:631/printers/HP1136系统会走IPP协议,绕开RPC那套认证,0x0000011b基本不出现。如果必须走SMB,Windows侧要改注册表RpcAuthnLevelPrivacyEnabled=0,但这是客户端的事,服务端控制不了。国产终端之间互连,同样优先IPP URL,比SMB省心。
4.3 客户端验证:先curl再打印
配完别急着打文档,先用命令验证服务端通不通。
# 从客户端测IPP可达性 curl -I http://192.168.1.10:631/printers/HP1136 # 应返回HTTP/1.1 200 OK # 直接提交一个测试任务 lp -h 192.168.1.10:631 -d HP1136 /usr/share/cups/data/testprintcurl -I返回200说明IPP端点活着,返回401是认证问题,返回404是队列名写错。lp -h指定远程CUPS主机,-d指定队列,能提交成功说明整条链路通了。这一步过了再让用户从图形界面连,能省掉大量“到底哪坏了”的扯皮。
5. 避坑与排查:麒麟V10打印最常见的5个翻车点
5.1 现象:任务提交后队列显示“已停止”,不出纸
原因:队列被cupsdisable了,或者PPD和实际机型不匹配导致渲染失败。常见于手动塞了个不对的PPD。
解决:cupsenable HP1136重新启用;看/var/log/cups/error_log里有没有Filter failed,有就是驱动问题,换lpinfo -m里确认匹配的PPD重建队列。
5.2 现象:USB打印机lsusb能看到,CUPS里lpinfo -v却没有
原因:usblp模块没加载,或被其他进程占用。麒麟V10某些版本默认不自动加载。
解决:sudo modprobe usblp,再lpinfo -v。仍不行就dmesg | tail看有没有权限拒绝,把当前用户加入lp组:sudo usermod -aG lp $USER,重新登录。
5.3 现象:Windows连共享报0x0000011b,换IPP URL后仍失败
原因:麒麟防火墙没放行631,或CUPS的Allow没包含客户端网段。
解决:firewall-cmd --list-ports确认631在列;cupsd.conf里Allow改成具体网段如Allow 192.168.1.0/24,重启CUPS。用curl从Windows侧测,能通再添加。
5.4 现象:打印出来是乱码或半页就停
原因:驱动语言不匹配,比如打印机只认PCL但装了PostScript驱动,或反之。
解决:查打印机手册确认支持的语言,lpoptions -p HP1136 -l看ColorModel和PageSize取值,换对应PPD。乱码多半是PCL版本不对,惠普老机型试hpijs而非hpcups。
5.5 现象:ARM64麒麟V10上厂商驱动装不上
原因:厂商只提供x86的二进制驱动,ARM平台无法执行。
解决:放弃原厂包,用CUPS通用驱动。查lpinfo -m | grep -i generic,选Generic PostScript或对应PCL的通用PPD。功能会少一些(如墨量显示),但基本打印能保证。这是arm架构的银河麒麟系统下的现实妥协,别在闭源驱动上耗太久。
6. 进阶:无网环境离线部署与批量队列脚本
无网环境装打印是集成现场的家常便饭,麒麟V10离线装CUPS和驱动,核心是提前在有网机器上把deb包和依赖抓全。用apt-get install --download-only把包下到本地,再拷过去。
# 有网机器上抓包(含依赖) apt-get install --download-only -o Dir::Cache::archives=/tmp/cups-pkgs \ cups cups-client printer-driver-hpcups # 打包拷到目标机 tar czf cups-offline.tar.gz -C /tmp/cups-pkgs .目标机上解包后sudo dpkg -i *.deb,缺依赖再apt -f install(如果本地有源)。这套流程同样适用于麒麟V10无网环境装其他组件,思路是通的。
批量建队列时,把参数抽成变量循环,避免一台台手敲。
#!/bin/bash # 批量建队列:队列名 设备URI PPD while read -r name uri ppd; do sudo lpadmin -p "$name" -E -v "$uri" -m "$ppd" -o printer-is-shared=true sudo cupsenable "$name" sudo cupsaccept "$name" echo "已建队列: $name" done < printers.txtprinters.txt每行三个字段,空格分隔。这个脚本在几十台打印机的场景下能省大量时间,前提是lpinfo -v和lpinfo -m的输出你已经核对过。我自己的习惯是:任何共享打印上线前,先用curl从两个不同网段各测一次IPP端点,再让真实用户打一份,两步都过才算交付。打印这行当,玄学不少,但把URI、PPD、防火墙这三样钉死,九成问题都能提前拦住。希望帮到你。
本文还有配套的精品资源,点击获取