• Linux系统使用EPSON的L3255型号打印机遇到的问题解决方法


    Linux下使用打印机通常遇到的问题就是打印机驱动安装问题,而Linux系统下多数硬件无法使用也都是因为驱动缺少导致。今天来详细介绍打印机驱动安装及使用过程中遇到的问题及解决方法。通过分享这个过程,在遇到类似问题时就可以举一反三解决问题。

    在这里插入图片描述

    今天家里买了一台EPSON的L3255型号打印机,由于摆放位置距离较远的缘故,打印机与Linux主机通过局域网连接访问(无直连),因此Linux系统里配置打印机选择的是局域网TCP连接9100端口进行通信。

    安装打印机驱动

    官网获取Linux系统的驱动程序

    以openSUSE 为例,我们需要下载.rpm后缀的安装包,比如我下载的是epson-inkjet-printer-escpr-1.7.21-1lsb3.2.i486.rpm 包。

    根据提示,我们需要提前安装lsb依赖包:

    Ubuntu: # apt install lsb
    Fedora: # yum install lsb
    openSUSE: # yast --install lsb
    
    • 1
    • 2
    • 3

    最后我们安装下载好的驱动安装包,正常情况下这样就可以使用打印机了。

    但,实际情况是我的打印机并没有工作,系统打印机显示打印机状态正常,但渲染失败了,这说明打印驱动并没有正确工作。

    遇到问题现象及解决方案

    接下里,根据错误日志来分析驱动不工作的原因。

    现象描述

    测试打印机时查看/var/log/cups/error_log错误日志文件,看到如下内容:

    D [08/Sep/2022:11:28:05 +0800] [Job 27] Started filter /opt/epson-inkjet-printer-escpr/cups/lib/filter/epson-escpr-wrapper (PID 8327)
    D [08/Sep/2022:11:28:05 +0800] [Job 27] Started backend /usr/lib/cups/backend/lpd (PID 8328)
    D [08/Sep/2022:11:28:05 +0800] [Job 27] epson: error while loading shared libraries: libcupsimage.so.2: cannot open shared object file: No such file or directory
    D [08/Sep/2022:11:28:05 +0800] [Job 27] PID 8327 (/opt/epson-inkjet-printer-escpr/cups/lib/filter/epson-escpr-wrapper) stopped with status 127 (File too large)
    
    • 1
    • 2
    • 3
    • 4

    分析原因及解决方法

    错误日志提示的很明显:

    D [08/Sep/2022:11:28:05 +0800] [Job 27] epson: error while loading shared libraries: libcupsimage.so.2: cannot open shared object file: No such file or directory
    
    • 1

    少了libcupsimage.so.2动态库文件,那按照正常逻辑只需要安装这个库文件就能解决问题。

    接下来,我们来搜索一下这个安装包:

    $ zypper se cupsimage
    
    S  | Name                | Summary                                    | Type
    ---+---------------------+--------------------------------------------+-------
    i  | libcupsimage2       | CUPS library for working with large images | 软件包
       | libcupsimage2-32bit | CUPS library for working with large images | 软件包
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    找到原因了,/opt/epson-inkjet-printer-escpr/cups/lib/filter/epson-escpr-wrapper 是32位可执行程序,所以确实了32位的libcupsimage2-32bit依赖包,安装完毕后,问题解决了。

    打印机正确打印了文件。

    总结

    本例通过分析日志,找到了打印机无法工作、报错原因是缺少32位依赖库,这种缺少依赖库导致问题非常常见,若缺少依赖库较多可以通过ldd命令找出缺失的所有动态库:

    $ ldd  /opt/epson-inkjet-printer-escpr/cups/lib/filter/epson-escpr-wrapper | grep not
    
            libcupsimage.so.2 => not found
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    按照这个方法,缺少什么库就安装什么库就可以了。 若很难找到依赖库的安装包,那就一个途径了:

    • 源码编译。

    本文仅用于描述如何解决驱动问题,而往往Linux系统里很多问题都是依赖库确实、库版本不兼容等问题导致。希望看到这里的你可以举一反三,在遇到类似问题就可以自己解决了。

  • 相关阅读:
    Linux应急响应
    Python异步编程原理篇之协程的IO
    鸿鹄工程项目管理系统 Spring Cloud+Spring Boot+Mybatis+Vue+ElementUI+前后端分离构建工程项目管理系统
    C语言典范编程
    Makefile相关操作
    无涯教程-JavaScript - ERFC.PRECISE函数
    第16节——ref
    Arm 全面计算解决方案重新定义视觉体验强力赋能移动游戏
    【HDFS】处理状态为RECEIVING_BLOCK的增量块汇报
    【C++ 学习 ㊴】- 详解 C++ 的 I/O 流
  • 原文地址:https://blog.csdn.net/dragonballs/article/details/126774056