
1. 先想清楚Linux 下接 Epson 打印机到底有哪几条路在 Ubuntu 这类 Linux 发行版上折腾 Epson 打印机最容易踩的坑不是装不上而是一开始就选错了路线。Windows 上你下载一个 exe双击下一步下一步完事。Linux 上同样一台 Epson 一体机可选方案至少三条每条路背后的驱动原理、能实现的功能、后续升级会不会翻车差别非常大。我把常见需求拆一下Ubuntu 用户接 Epson 打印机通常集中在这几种场景——家里一台 Epson L 系列墨仓式一体机比如 L3210、L3250、L4263 这类平时文档打印加偶尔扫描办公室一台 Epson 商用喷墨或激光机走网线或者无线多台机器共享还有一种是在虚拟机里跑 UbuntuVMware 里装的那种需要把宿主机的 USB 打印机转发进去。这三种场景选的技术路线完全不同。先说结论式的判断标准能走无驱打印IPP Everywhere就别装官方驱动官方驱动是给特定型号补功能的不是万能钥匙Gutenprint 是兜底不是首选。为什么这么排因为 Ubuntu 从 17.04 左右开始默认集成 CUPS 2.2 以上版本配合 Avahi 服务发现绝大多数 2015 年之后出厂的网络打印机都能被自动识别直接就是即插即用的体验。官方 .deb 驱动包的价值在于那些无驱协议覆盖不到的功能比如某些型号的墨量读取、双面单元控制、特殊进纸模式。这里有个基础概念必须先讲明白否则后面全是黑话。CUPS 是 Linux 上的打印服务全称 Common Unix Printing System你可以把它理解成 Linux 世界的打印后台程序所有打印任务最后都要交到它手上由它翻译成打印机听得懂的指令再发出去。而驱动在 Linux 里其实就是一段叫 PPD 的描述文件或者在新型号上是 IPP 协议里自带的能力描述。打印机和系统之间约定的语言叫 ESC/P-REpson 自家的喷墨控制指令集、PCL、PostScript 这几类你的任务就是把对的指令集告诉 CUPS。传统做法是装一个型号专属的 PPDCUPS 按这个描述去转换数据。新做法是打印机自己通过 IPP 协议上报我会什么、支持哪些纸张尺寸、能不能双面系统直接采纳连 PPD 都不用装。这就是所谓无驱打印。所以你会看到一个反直觉的现象有些型号在 Ubuntu 上什么都不装就能用装完官方驱动反而变卡了——因为官方 PPD 里的能力声明可能比打印机实际上报的还保守。提示判断你的机器走哪条路最快的方法是打开浏览器输入localhost:631看 CUPS 管理页里有没有已经自动发现的队列。有就说明 Avahi 已经帮你干完活了。1.1 三种方案横向对比先看这张表方案适用场景需要联网功能完整度升级风险推荐度IPP Everywhere无驱2015 年后网络机型、支持 AirPrint 的机器局域网打印完整扫描看型号极低跟着系统走首选官方 ESC/P-R 驱动.deb老旧型号、需要墨量工具、特殊纸张需要下载最全含厂商工具中依赖包容易断按需Gutenprint 通用驱动冷门型号、官方包装不上仓库内打印基本够用低兜底这三条路不是互斥的我实际干活时经常这么配网络打印机一律先试 IPP Everywhere跑不通再退回官方 .debUSB 打印机因为走不了 IPP直接上官方驱动或者 Gutenprint。为什么网络机型优先无驱因为官方 .deb 包大多在 Ubuntu 的版本更替中慢慢失效。Epson 放出来的 Linux 驱动很多是 2016 到 2019 年之间打包的依赖里赫然写着lsbLinux Standard Base。而 Ubuntu 从 22.04 开始完整的lsb包已经被彻底移出仓库只剩一个lsb-release的壳子。你直接把官方 deb 丢进去dpkg -i大概率报依赖错误。这就是后面第四章要重点处理的坑。1.2 先确认三件事别急着动手动手之前有三件事必须先确认清楚不然排查问题时会毫无头绪。第一是型号要精确到系列。Epson 的型号命名很有迷惑性L4260 和 L4263 是同一系列的不同地区版本驱动是通用的但 L3210 和 L3250 虽然只差一位数字支持的协议细节就不一样了。用lsusb命令可以看到 USB 上的真实型号字符串lsusb | grep -i epson输出类似Bus 001 Device 004: ID 04b8:1188 Seiko Epson Corp.04b8是 Epson 的厂商 ID后面那个1188是产品 ID用这个去查驱动最准。第二是连接方式。USB 直连、网线、无线三种决定了你能用哪套方案。USB 走不了 IPP只能靠驱动网络连接两条路都通。第三是系统版本和架构这个用一条命令搞定lsb_release -a uname -mUbuntu 22.04、24.04 和更老的 20.04在依赖处理上差别很大。uname -m显示x86_64是 64 位aarch64是 ARM比如某些国产平台或者树莓派ARM 平台上官方 .deb 基本没用只能走 Gutenprint 或无驱这一点很多人第一次遇到会懵。2. 动手前的环境盘点服务、权限、网络面正式装驱动之前环境检查这一步千万别跳。我见过太多次驱动明明装好了打印机就是不出现最后发现是 CUPS 服务压根没启动或者当前用户不在lpadmin组里权限不够添加队列。这几分钟的检查能省掉后面半小时的抓瞎。2.1 CUPS 服务状态与打印用户组先看 CUPS 活着没systemctl status cups正常应该看到active (running)。如果显示inactive或者压根没有这个服务先装再启用sudo apt update sudo apt install cups cups-client cups-filters printer-driver-gutenprint sudo systemctl enable --now cups顺手把avahi-daemon也确认一下负责局域网里自动发现打印机的就是它systemctl status avahi-daemon然后是权限。默认情况下只有lpadmin组的成员才能通过 CUPS 网页或者命令行添加、删除打印机。普通用户能打印但改不了配置。把自己加进去sudo usermod -aG lpadmin $USER加完必须重新登录注销再登录或者直接重启才生效newgrp lpadmin只在当前终端临时管用容易误导你以为好了其实没好。用groups命令确认一下组里有没有你的用户名groups看到lpadmin就对了。这一步看起来不起眼但 CUPS 网页上点Add Printer报 403 错误的八成都是这里出了问题。2.2 网线党和无线党必做的连通性测试网络打印机在动手前先把 IP 地址抓出来。最简单的办法是在打印机面板上打印一张网络状态页很多 Epson 机型支持长按某个组合键出网络配置页上面直接印着 IP。懒得翻面板的话用 Avahi 扫描avahi-browse -art | grep -i epson或者更直接一点看 CUPS 能发现哪些设备lpinfo -v输出里带network ipp://或network dnssd://开头的行就是局域网里能被发现的目标。direct usb://开头的是本地 USB 设备。这两类设备的 URL 后面添加打印机时要直接抄进去。拿到 IP 之后 ping 一下确认不是防火墙拦了ping -c 4 192.168.1.50能通的话再确认 631 端口IPP 协议走的端口开没开nc -zv 192.168.1.50 631显示succeeded就说明打印机在监听 IPP。如果这一步失败问题不在你的 Linux 上去检查路由器是不是开了AP 隔离或者打印机是不是被分到了另一个网段。注意Ubuntu 自带的 ufw 防火墙默认策略通常是放行出站的但如果之前手动开过严格模式记得给本机开打印相关端口sudo ufw allow 631/tcp和sudo ufw allow 5353/udp后者是 mDNS 服务发现用的不开的话 CUPS 就找不到网络打印机。2.3 把 IP 固定下来这事越早做越好动态 IP 是网络打印的第一大隐患。路由器 DHCP 租约一到期打印机换了个 IP你之前配好的队列就指向空气了症状是打印任务排队但永远不出纸lpstat里显示队列 idle打印机却毫无反应。两个方案选一个一是在路由器后台给打印机的 MAC 地址做 DHCP 静态绑定这是最省事的打印机自己不用改任何设置二是直接在打印机面板上把网络配置改成静态 IP但要注意同时正确填写网关和 DNS填错的后果是打印机彻底掉线还得重置网络。我一般推荐第一种。理由很实在打印机的菜单操作逻辑各家做得都很反人类用方向键一个个输 IP 地址数字输错一位就得重来而路由器后台点几下鼠标就完事了。绑定之后把 IP 记在便签上贴打印机旁边下次重装系统直接填不用再找一遍。3. 方案A官方 ESC/P-R 驱动安装全流程现在进入正题讲官方驱动的安装。这条路适合两类人一是 USB 直连的用户二是网络机型但无驱模式下功能不全比如读不到墨量的用户。先说明一下 Epson 官方 Linux 驱动包的构成。去官方下载中心找 Linux 版本你会看到几个不同的包命名规则大致是这样epson-inkjet-printer-escpr_x.x.x-x_amd64.deb——核心打印驱动ESC/P-R 指令集的实现这个是必装的epson-inkjet-printer-xxxxx_x.x.x-x_amd64.deb——某些型号的专属包型号数字写进文件名里epson-printer-utility_x.x.x-x_amd64.deb——厂商工具用来查墨量、清洗喷头epsonscan2_x.x.x-x_amd64.deb——扫描程序一体机才需要epson-inkjet-printer-escpr_xxx.src.rpm之类的源码包——不用管核心就一个ESC/P-R 驱动。这个词是 Epson 喷墨打印机控制指令集的缩写你可以理解成打印机母语。CUPS 把你要打的内容按这套指令翻译好通过 USB 或者网络发过去打印机照做。3.1 下载与依赖预处理lsb 这个坑必须提前填打开 Epson 官方支持页面按型号搜到 Linux 驱动下载区选择对应的 Ubuntu 版本。这里有个细节如果没有完全对应的 Ubuntu 版本选项选最接近的 LTS 版本就行比如你是 24.04下载页只有 22.04 的包照下不误二进制兼容基本没问题。下载完先别急着dpkg -i。按照老规矩先看看包里声明的依赖有哪些dpkg-deb -I epson-inkjet-printer-escpr_1.7.25-1_amd64.deb | grep Depends你会看到类似这样的输出Depends: lsb ( 3.2), libc6 ( 2.7)lsb就是那颗雷。Ubuntu 22.04 之后官方仓库里没有完整的lsb包了直接装会报epson-inkjet-printer-escpr depends on lsb ( 3.2); however: Package lsb is not installed.处理方式有三条从稳妥到激进排处理方式命令风险适用性装 lsb-compat 兼容包从旧版仓库取lsb-compat安装低22.04 可用手动改依赖后重打包dpkg-deb -R解包改 control 再打包中全版本可用强制安装dpkg -i --force-depends中高应急需手动补步骤我最常用的是第三条的变体因为它最快但必须配合后续手动步骤。完整操作是这样sudo dpkg -i --force-depends epson-inkjet-printer-escpr_1.7.25-1_amd64.deb sudo apt install -f第二条命令是让 apt 自动补齐那些真正缺失的库依赖同时把--force-depends留下的破损状态修回来。为什么先强装再修因为 Epson 的 deb 包在安装时有个 postinst 脚本会尝试注册驱动到 CUPS如果脚本因为 lsb 缺失而失败驱动文件其实已经落盘了只是 CUPS 不知道。这时候后续修依赖能让系统恢复正常状态但注册动作得手动补。手动补的方法很直接把驱动相关的 PPD 文件复制到 CUPS 的模型目录sudo cp /opt/epson-inkjet-printer-escpr/ppds/*.ppd /usr/share/ppd/ sudo systemctl restart cups然后lpinfo -m | grep -i epson应该就能看到一堆 Epson 型号了。这一步我踩过坑第一次装完发现lpinfo -m里啥都没有翻来覆去查了两小时最后发现就是 PPD 没被 CUPS 索引到。3.2 32 位运行库厂商工具跑不起来的元凶epson-printer-utility这个工具在 64 位系统上有个经典问题它是 32 位可执行文件。Ubuntu 默认不装 i386 架构支持所以你装完点开它会毫无反应或者报No such file or directory——明明文件在那儿找不到文件的报错其实是找不到 32 位的动态链接库。解决方法是开启多架构并补齐运行库sudo dpkg --add-architecture i386 sudo apt update sudo apt install libc6:i386 libstdc6:i386 libncurses6:i386 libgtk-3-0:i386这套装完/opt/epson-printer-utility/bin/epson-printer-utility就能启动了。注意libgtk-3-0:i386在部分源里包名可能是libgtk-3-0t64:i38624.04 换了命名apt会给你提示按提示改就行。提示如果你根本不需要看墨量、不需要厂商自带的清洗工具这一整节可以跳过。i386 多架构开启后会略微增加apt update的索引体积追求系统干净的话就别开。装完之后验证一下驱动是否真正可用用 CUPS 自带的测试页lp -d 打印机队列名 /usr/share/cups/data/testprint能打出来就说明链路通了。3.3 添加打印机网页和命令行两种方式装完驱动接下来是把打印机注册到 CUPS 里。两条路选一条。网页方式适合第一次配因为能看到所有可选参数。浏览器打开http://localhost:631进 Administration 标签点 Add Printer会要求输入系统用户名密码这就是为什么前面要加lpadmin组。列表里会出现 CUPS 已经探测到的设备USB 机器显示成EPSON L4260 Series (USB)这种网络机器显示 IP 或者主机名。选中之后下一步给队列起个名字——名字别用中文、别用空格后面命令行引用会省很多事我用EPSON_L4263这种格式。再下一步选型号在 Make 里找 EpsonModel 里找对应型号带ESC/P-R字样的就是官方驱动。命令行方式适合批量或者脚本化。先拿到设备 URIlpinfo -v假设输出里有这么一行network ipp://EPSON123456.local:631/ipp/printUSB 的可能是direct usb://EPSON/L4260%20Series?serial5830303030303030然后一条命令搞定lpadmin -p EPSON_L4263 -E -v network ipp://EPSON123456.local:631/ipp/print -m drv:///epson-inkjet-printer-escpr/EPSON_L4260_Series-epson-escpr-en.ppd参数含义拆一下-p后面是队列名-E表示启用并接受任务-v是设备 URI-m是驱动 PPD 的引用路径。-m里的那一长串不用背用lpinfo -m | grep -i l4260查出来复制。设成默认打印机lpoptions -d EPSON_L4263之后直接lp 文件名就会走这台机器。4. 方案B无驱打印与 Gutenprint 兜底前面说过网络机型应该优先试无驱。这一章把这条路走完整包括怎么判断我的机器支不支持以及不支持时怎么用 Gutenprint 接住。4.1 IPP Everywhere什么都不装的最优解判断标准特别简单看你机器的规格说明里有没有支持 AirPrint或者支持 Mopria。有的话几乎必然支持 IPP Everywhere。这个协议的本质是打印机自己会通过标准协议上报能力CUPS 直接采纳完全跳过 PPD。操作是三条命令的量级。先确认 CUPS 版本够新cups-config --version2.2 以上都行Ubuntu 18.04 之后的版本全部满足。然后找到打印机的 IPP 端点。Epson 网络打印机的标准地址格式是ipp://打印机IP:631/ipp/print有些型号是/ipp/printer两种都试一下。接着添加lpadmin -p EPSON_L4263 -E -v ipp://192.168.1.50:631/ipp/print -m everywhere注意-m everywhere这个魔法参数它的意思就是让打印机自己上报能力别用固定 PPD。加完检查一下lpstat -l -p EPSON_L4263看到printer is idle就是好了。高级选项比如双面、纸张类型CUPS 会根据打印机上报的能力自动生成不用你操心。这条路的优势有多明显我给你算笔账官方 deb 驱动包在 Ubuntu 24.04 上要处理 lsb 缺失、32 位库、PPD 索引三个坑加起来折腾半小时是常事无驱方式三条命令两分钟搞定而且内核升级、CUPS 升级都不影响。我现在的做法是新机器一律先试 everywhere成了就收工。4.2 Gutenprint无驱和官方包都靠不住时的保险有些老机型比如十年前的 Epson Stylus 系列既不支持 IPP Everywhere官方又只提供到 Ubuntu 16.04 的驱动包装在新系统上各种报错。这时候 Gutenprint 就是救命稻草。Gutenprint 是一套开源打印驱动集合社区维护覆盖了海量老旧打印机型号。装它很简单sudo apt install printer-driver-gutenprint sudo systemctl restart cups然后lpinfo -m | grep -i epson会多出几百个型号条目命名格式是gutenprint.5.3://epson-xxx/simple这种。找到最接近你机器的型号——注意是最接近不一定有完全一样的。比如 L 系列的墨仓机Gutenprint 里可能没有 L4263但有 L360 或者 L380这些机型的喷头结构和指令集相近选最接近的那个往往能打出正常效果。用命令行添加lpadmin -p EPSON_L4263 -E -v ipp://192.168.1.50:631/ipp/print -m gutenprint.5.3://epson-l380/expertsimple和expert的区别在于后者暴露完整的参数面板能调色彩模式、墨滴大小、走纸速度这些。新手用simple出图效果不满意再换expert慢慢调。Gutenprint 的打印质量说实话比官方驱动差一截色彩偏淡、灰度处理没那么细腻打文档完全够用打照片就看运气了。但它的可靠性是真的高我这几年的经验是只要型号在列Gutenprint 就没失手过。4.3 虚拟机里怎么把打印机接进去在 VMware 或者 VirtualBox 里跑 Ubuntu 的用户有个额外的坑要说。虚拟机默认拿不到宿主机的 USB 设备你在 Ubuntu 里跑lsusb根本看不到打印机。VMware 的做法是插上打印机虚拟机窗口的菜单里找可移动设备或者USB 设备找到 Epson 那一项点连接虚拟机里才会出现。连接成功之后宿主机自己就用不了这台打印机了USB 设备是独占的。VirtualBox 要装扩展包然后在设置里的 USB 过滤器里加一条规则。厂商 ID 填04b8产品 ID 填打印机实际的那个。网络打印机在虚拟机里反而简单因为走的是虚拟网卡能看到宿主机所在的局域网前面讲的 IPP 方案直接照用。所以我的建议是虚拟机用户优先把打印机接到网络上USB 直通能不折腾就别折腾那个设备连接的过程时不时会抽风尤其是虚拟机挂起恢复之后。5. 扫描功能一体机的另一半打印搞定了扫描还没弄。Epson 的 L 系列一体机扫描功能在 Linux 下主要有两个实现路径一个是官方的epsonscan2一个是开源的 SANE 后端。这两者的区别挺大值得单独说一章。5.1 SANE 与 epsonscan2 的选择SANE 是 Linux 上的扫描仪标准接口相当于扫描界的 CUPS。系统里装了sane-utils之后可以用scanimage命令行扫描。它自带的后端里epson2覆盖老的 Epson 扫描仪epsonds覆盖较新的网络机型。先看能不能直接识别到sudo apt install sane-utils scanimage -L有输出比如device epson2:net:192.168.1.50 is a Epson PID 0881 flatbed scanner就说明后端认出来了直接扫scanimage --formatpng --resolution 300 --mode Color -o /tmp/scan.png分辨率、色彩模式这些参数按需调300dpi 打文档足够扫照片上 600dpi。如果scanimage -L啥都不显示或者显示了但扫描报错就得上官方包。epsonscan2分两部分主程序和一个网络插件epsonscan2-non-free-plugin网络机型必须两个都装只装主程序的话 USB 能用网络连不上。装法还是老一套注意依赖sudo dpkg -i epsonscan2_x.x.x-x_amd64.deb sudo dpkg -i epsonscan2-non-free-plugin_x.x.x-x_amd64.deb sudo apt install -f装完在应用列表里能找到 EPSON Scan 2或者命令行epsonscan2直接启动。它的界面做得比 SANE 友好太多支持多页进纸器、自动裁剪、PDF 多页输出这些实用功能。5.2 权限问题为什么扫描仪找到了但打不开这是最典型的一个坑。scanimage -L明明列出了设备一执行扫描就报scanimage: open of device epson2:net:192.168.1.50 failed: Invalid argument或者 USB 机型报Access denied。原因通常有两个一是 USB 机型的 udev 权限不对普通用户没权限访问/dev/bus/usb/下面那个设备节点二是网络机型被别的客户端占用了连接。USB 权限的解决方法是把自己加进scanner组再补一条 udev 规则sudo usermod -aG scanner $USER sudo tee /etc/udev/rules.d/99-epson-scanner.rules EOF SUBSYSTEMusb, ATTRS{idVendor}04b8, MODE0666, GROUPscanner EOF sudo udevadm control --reload-rules sudo udevadm trigger改完重新登录生效。MODE0666看起来有点宽松但在个人机器上是最省事的做法非要收紧的话改成0660配合GROUPscanner也可以。网络机型被占用的情况比较隐蔽尤其是打印机面板上还停在扫描到电脑的选择界面时它会一直独占那个连接。解决办法是在打印机面板上退出这个界面或者干脆重启一下打印机。注意网络扫描依赖 mDNS 发现如果扫描程序列表里看不到你的打印机先确认avahi-daemon在跑并且路由器的组播没有关掉。企业网络里经常禁组播这种情况只能手动填 IP。5.3 关于喷墨机的维护提示与耗材提醒聊到一体机绕不开一个话题喷墨打印机用久了面板上会跳出一个提示说需要执行某些维护操作才能继续使用。这类提示本质上是打印机内部的维护计数器触发了属于正常的设备保护机制。我个人的处理原则很明确这类需要进入设备内部维护模式的操作一律走官方渠道解决。原因很实际——网上流传的那些所谓维护工具来源不明有的是从各种论坛打包的运行之前你没法确认里面有没有别的东西。而且这类操作一旦执行不当可能会影响设备固件的正常状态后续再找官方服务会更麻烦。有些工具还会覆盖机器内部的配置文件出问题之后连恢复都做不到。从成本角度看也不划算。Epson 官方的服务网点处理这类维护是按标准流程走的费用透明做完还给保修。相比之下为了省这点事去赌一个来路不明的程序风险收益比实在太低。我的建议就一句话遇到提示联系官方售后或者授权服务点这是最省心的做法。日常使用上能做的是尽量延缓计数器积累。闲置超过一周的话建议每周打一张测试页让喷头保持湿润状态减少每次开机时的自动清洗次数。清洗次数少了废墨积累自然慢。另外打印时选普通质量而不是最佳墨滴更小浪费也少。这些习惯坚持下来能明显拉长维护周期。6. 常见问题与排查技巧实录这一章把我和身边人踩过的坑集中整理一下。为了便于查阅先上一张速查表后面再挑几个典型场景展开。症状最常见的三个原因快速验证命令添加打印机后任务排队但不出纸IP 变了 / 队列暂停 / 防火墙lpstat -t、ping 打印机IP打印出乱码、半页、字符错位驱动型号选错 / 数据线质量差lpinfo -m | grep -i 型号CUPS 网页提示 403 无权限用户不在 lpadmin 组groups | grep lpadmin驱动装完 lpinfo 里查不到PPD 没被索引ls /usr/share/ppd/官方 deb 安装报依赖错误lsb 缺失dpkg-deb -I 包名 | grep Depends厂商工具点了没反应缺 32 位运行库ldd 可执行文件 | grep not found扫描仪能找到但打不开udev 权限 / 设备被占用scanimage -L、ls -l /dev/bus/usb/*无线打印机时有时无IP 不固定 / 信号弱avahi-browse -rt _ipp._tcp6.1 任务排队不出纸从队列状态倒查最常见的现象是点了打印CUPS 里任务显示 processing打印机一点动静没有。这时候按顺序查三层。第一层查队列本身lpstat -t看你的队列是不是disabled状态。CUPS 在遇到错误之后会自动暂停队列前一任务失败之后后面所有任务都会卡住症状就是明明重试了就是不出纸。手动恢复cupsenable EPSON_L4263 cupsaccept EPSON_L4263第二条是确保队列接受新任务有时候队列是启用状态但不接受任务也会卡。第二层查网络通不通ping一下打印机 IP。不通的话去路由器后台看打印机还在不在线很可能 IP 变了。第三层看日志。CUPS 的错误日志在sudo tail -f /var/log/cups/error_log这个文件是排查所有打印问题的终极武器。tail -f挂着然后发起一次打印看实时输出里报什么错。常见的关键字有Unable to open device设备连不上、Filter failed数据处理失败通常是驱动或过滤器的问题、Job canceled任务被取消可能是队列暂停或者用户取消。还有一个命令值得记住列出所有发过打印任务的设备包括没了的历史记录配错队列之后可以清理lpstat -v把不要的队列删掉lpadmin -x 队列名。6.2 驱动选了但打印乱码大概率是型号选得太随意乱码或者打印出半页就停这两种现象我都遇到过。乱码的根源基本是驱动和实际机型不匹配——你选了 L380 的驱动去打 L4263指令集对不上打印机接收到一堆它不认识的数据就会开始吐乱码。验证方式是看任务能不能正常完成lpq -P EPSON_L4263任务状态一直是processing不消失多半就是这个原因。解决很简单删掉队列重建这次从lpinfo -m里精确挑对应型号。Epson 的命名里同一系列不同销区会用不同后缀比如-en.ppd、-zh.ppd这些只是界面语言不同功能完全一样随便选。半页停纸这个问题比较邪门我遇到过两次一次是 USB 线太长信号衰减换了根短的就好了另一次是纸张尺寸声明错了CUPS 按 A4 发数据打印机里装的是 Letter尺寸不匹配导致中途卡住。检查纸张设置lpoptions -p EPSON_L4263 -l | grep -i pagesize改一下默认尺寸lpoptions -p EPSON_L4263 -o PageSizeA46.3 重装系统之后怎么最省事地恢复重装 Ubuntu 是很常见的事恢复打印环境千万别再从头走一遍安装流程。有个技巧CUPS 的队列配置都在/etc/cups/printers.conf里重装前把它备份出去重装后放回原位重启 CUPS 就恢复了。具体操作重装前sudo cp /etc/cups/printers.conf /home/你的用户名/printers.conf.bak重装后sudo cp /home/你的用户名/printers.conf.bak /etc/cups/printers.conf sudo systemctl restart cups如果重装前后是同一个 Ubuntu 大版本这么做基本无损恢复。跨大版本的话PPD 路径可能变化恢复后检查一下lpstat -t有没有报错个别队列可能要重新指定驱动。同理/etc/cups/cupsd.conf如果你改过比如开放了局域网访问也可以一起备份。这两个文件加起来才几十 KB备份一次管一辈子比每次重装重新配省事得多。6.4 一份可以照着敲的安装脚本折腾多了之后我把常用流程写成了脚本新机器上跑一遍省事。这里贴出来供参考注意把型号和 IP 换成你自己的#!/bin/bash set -e PRINTER_NAMEEPSON_L4263 PRINTER_IP192.168.1.50 IPP_URIipp://${PRINTER_IP}:631/ipp/print echo 安装基础组件 sudo apt update sudo apt install -y cups cups-client cups-filters printer-driver-gutenprint sane-utils avahi-utils echo 启用服务 sudo systemctl enable --now cups sudo systemctl enable --now avahi-daemon echo 加入打印管理组 sudo usermod -aG lpadmin $USER echo 探测可用设备 lpinfo -v | grep -i epson || echo 未发现 Epson 设备检查网络或 USB 连接 echo 优先尝试无驱添加 if lpadmin -p $PRINTER_NAME -E -v $IPP_URI -m everywhere 2/dev/null; then echo 无驱模式添加成功 else echo 无驱失败请手动检查型号后使用官方驱动 exit 1 fi lpoptions -d $PRINTER_NAME echo 完成发送测试页 lp -d $PRINTER_NAME /usr/share/cups/data/testprint这个脚本里做了两件我觉得挺重要的判断一是先检测再添加lpinfo -v没发现设备就直接提示不往下走避免添加一个指向空气的队列二是优先 everywhere成功就收工失败才提示手动介入。用set -e让脚本遇到错误就停避免中间步骤失败还继续跑出一堆误导性输出。脚本跑完记得重新登录一次lpadmin组的权限才生效。7. 几个用久了才明白的经验有些东西文档里不会写踩过才知道。关于操作系统的选择。Ubuntu 的 LTS 版本22.04、24.04 这类在打印相关的包上稳定得多非 LTS 的版本经常遇到驱动包跟不上系统库版本的情况。我给客户装机一律选 LTS图的不是新功能就是省心。关于官方包的时效性。Epson 的 Linux 驱动更新频率说实话不高很多包停留在几年前。这不代表不能用但要有个心理预期每次大版本升级系统前先想一下打印机还能不能用。我的做法是先在一台不重要的机器上升级试试水确认打印正常再动主力机。因为降级回来比重新配打印机麻烦多了。关于双面打印。很多 Epson 机型硬件支持双面但走无驱模式时CUPS 能不能识别出这个能力要看打印机上报得全不全。如果选项里找不到双面可以在添加队列的时候强制指定lpadmin -p EPSON_L4263 -o DuplexDuplexNoTumbleDuplexNoTumble是长边翻转像翻书一样DuplexTumble是短边翻转像翻日历。这两个参数用反了打出来的反面是倒着的装订的时候就难受了。关于打印速度。默认设置在高质量模式下喷墨打印机会慢得让你怀疑人生尤其是彩页。lp命令可以临时指定质量lp -d EPSON_L4263 -o PrintQualityNormal 文件.pdfNormal 和 Draft 模式的差别很大Draft 打草稿飞快但墨点明显。日常文档 Normal 够用只有出图才需要 High。最后提一个容易被忽略的细节。Ubuntu 上的打印队列名尽量别用空格我见过有人起名叫Epson L4263结果在命令行里每一次引用都要加引号转义脚本里更是灾难。用下划线连起来EPSON_L4263简单又省事。这个小习惯能帮你省掉后面无数次的引号输入。我自己这几年在 Linux 上折腾打印机的体会是能用标准协议解决的问题就别引入厂商私有的那一套。IPP Everywhere 和 SANE 这类开放标准在 Ubuntu 生态里跟着系统升级一起走几乎不需要维护官方驱动包虽然功能全但每换一个系统版本就要重新趟一遍依赖的雷。所以我的建议是先用标准方案确认功能真的不够用了再去装官方包补缺。这个顺序反过来事情只会越做越多。