我尝试通过 USB 将我的 Epson M1100 打印机连接到 RaspberryPi,然后在我的网络中创建一个打印服务器。
- 我安装了驱动程序
wget https://download3.ebz.epson.net/dsc/f/03/00/15/68/87/02d1b47f60d5010bbd44ace4eccee78ac4017b61/epson-inkjet-printer-escpr_1.8.5_armhf.deb && sudo dpkg -i epson-inkjet-printer-escpr_1.8.5_armhf.deb
- 然后用杯子和
sudo apt install cups -y
启用并打开服务 - 接下来,我使用 将用户添加到 lpadmin
lpadmin sudo usermod -a -G lpadmin $USER
,然后使用 设置对 cups 的远程访问cupsctl --remote-admin --remote-any --share-printers
。
https://192.168.0.103:631/printers/
然后,我通过浏览器 UI从内部网络添加了具有共享选项和适当驱动程序的打印机(我的 Macbook 可以轻松连接到 RPI )。
但是当我在 MacOS 中添加打印机EPSON M1100 Series @ raspberrypi
并对任何文档进行测试打印时,我得到了“打印机队列...”中的状态"Printing on server, <my name>, Rendering Complete"
(并且它卡在那里)。当我打开错误日志时/var/log/cups/error_log
,我得到了这个打印作业的[Job 1] Unable to open raster stream - : Broken pipe
两次错误。
当我取消作业并尝试在echo "Nice" | lp -d EPSON_M1100_Series
RPI 上打印简单文本时,我得到了响应request id is EPSON_M1100_Series-5 (0 file(s))
,但打印机再次不打印,并且在日志中,我得到了巨大的日志
E [11/Aug/2024:10:02:38 +0200] [Job 2] Unable to open raster stream - : Broken pipe
E [11/Aug/2024:10:02:38 +0200] [Job 2] Job stopped due to filter errors; please consult the /var/log/cups/error_log file for details.
D [11/Aug/2024:10:02:38 +0200] [Job 2] The following messages were recorded from 10:02:38 to 10:02:38
D [11/Aug/2024:10:02:38 +0200] [Job 2] Applying default options...
D [11/Aug/2024:10:02:38 +0200] [Job 2] Adding start banner page "none".
D [11/Aug/2024:10:02:38 +0200] [Job 2] Queued on "EPSON_M1100_Series" by "ether".
D [11/Aug/2024:10:02:38 +0200] [Job 2] Auto-typing file...
D [11/Aug/2024:10:02:38 +0200] [Job 2] Request file type is text/plain.
D [11/Aug/2024:10:02:38 +0200] [Job 2] File of type text/plain queued by "ether".
D [11/Aug/2024:10:02:38 +0200] [Job 2] Adding end banner page "none".
D [11/Aug/2024:10:02:38 +0200] [Job 2] time-at-processing=1723363358
D [11/Aug/2024:10:02:38 +0200] [Job 2] 4 filters for job:
D [11/Aug/2024:10:02:38 +0200] [Job 2] texttopdf (text/plain to application/pdf, cost 32)
D [11/Aug/2024:10:02:38 +0200] [Job 2] pdftopdf (application/pdf to application/vnd.cups-pdf, cost 66)
D [11/Aug/2024:10:02:38 +0200] [Job 2] gstoraster (application/vnd.cups-pdf to application/vnd.cups-raster, cost 99)
D [11/Aug/2024:10:02:38 +0200] [Job 2] /opt/epson-inkjet-printer-escpr/lib/cups/filter/epson-escpr-wrapper (application/vnd.cups-raster to printer/EPSON_M1100_Series, cost 0)
D [11/Aug/2024:10:02:38 +0200] [Job 2] job-sheets=none,none
D [11/Aug/2024:10:02:38 +0200] [Job 2] argv[0]="EPSON_M1100_Series"
D [11/Aug/2024:10:02:38 +0200] [Job 2] argv[1]="5"
D [11/Aug/2024:10:02:38 +0200] [Job 2] argv[2]="ether"
D [11/Aug/2024:10:02:38 +0200] [Job 2] argv[3]="(stdin)"
D [11/Aug/2024:10:02:38 +0200] [Job 2] argv[4]="1"
D [11/Aug/2024:10:02:38 +0200] [Job 2] argv[5]="finishings=3 number-up=1 print-color-mode=color job-uuid=urn:uuid:46eeb3eb-aef6-3875-767a-01ad94bd61b5 job-originating-host-name=localhost date-time-at-creation= date-time-at-processing= time-at-creation=1723363358 time-at-processing=1723363358"
D [11/Aug/2024:10:02:38 +0200] [Job 2] argv[6]="/var/spool/cups/d00005-001"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[0]="CUPS_CACHEDIR=/var/cache/cups"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[1]="CUPS_DATADIR=/usr/share/cups"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[2]="CUPS_DOCROOT=/usr/share/cups/doc-root"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[3]="CUPS_REQUESTROOT=/var/spool/cups"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[4]="CUPS_SERVERBIN=/usr/lib/cups"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[5]="CUPS_SERVERROOT=/etc/cups"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[6]="CUPS_STATEDIR=/run/cups"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[7]="HOME=/var/spool/cups/tmp"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[8]="PATH=/usr/lib/cups/filter:/usr/bin:/usr/sbin:/bin:/usr/bin"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[9]="SERVER_ADMIN=root@raspberrypi"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[10]="SOFTWARE=CUPS/2.4.2"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[11]="TMPDIR=/var/spool/cups/tmp"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[12]="USER=root"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[13]="CUPS_MAX_MESSAGE=2047"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[14]="CUPS_SERVER=/run/cups/cups.sock"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[15]="CUPS_ENCRYPTION=IfRequested"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[16]="IPP_PORT=631"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[17]="CHARSET=utf-8"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[18]="LANG=en_GB.UTF-8"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[19]="PPD=/etc/cups/ppd/EPSON_M1100_Series.ppd"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[20]="CONTENT_TYPE=text/plain"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[21]="DEVICE_URI=usb://EPSON/M1100%20Series?serial=5835484B3030353876"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[22]="PRINTER_INFO=EPSON M1100 Series"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[23]="PRINTER_LOCATION="
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[24]="PRINTER=EPSON_M1100_Series"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[25]="PRINTER_STATE_REASONS=none"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[26]="CUPS_FILETYPE=document"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[27]="FINAL_CONTENT_TYPE=application/vnd.cups-raster"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[28]="AUTH_I****"
D [11/Aug/2024:10:02:38 +0200] [Job 2] Started filter /usr/lib/cups/filter/texttopdf (PID 22427)
D [11/Aug/2024:10:02:38 +0200] [Job 2] Started filter /usr/lib/cups/filter/pdftopdf (PID 22428)
D [11/Aug/2024:10:02:38 +0200] [Job 2] Started filter /usr/lib/cups/filter/gstoraster (PID 22429)
D [11/Aug/2024:10:02:38 +0200] [Job 2] Started filter /opt/epson-inkjet-printer-escpr/lib/cups/filter/epson-escpr-wrapper (PID 22430)
D [11/Aug/2024:10:02:38 +0200] [Job 2] Started backend /usr/lib/cups/backend/usb (PID 22431)
D [11/Aug/2024:10:02:38 +0200] [Job 2] PID 22430 (/opt/epson-inkjet-printer-escpr/lib/cups/filter/epson-escpr-wrapper) stopped with status 102 (No such file or directory)
D [11/Aug/2024:10:02:38 +0200] [Job 2] Hint: Try setting the LogLevel to "debug" to find out more.
D [11/Aug/2024:10:02:38 +0200] [Job 2] execv failed: No such file or directory
D [11/Aug/2024:10:02:38 +0200] [Job 2] Loading USB quirks from \"/usr/share/cups/usb\".
D [11/Aug/2024:10:02:38 +0200] [Job 2] Loaded 118 quirks.
D [11/Aug/2024:10:02:38 +0200] [Job 2] Printing on printer with URI: usb://EPSON/M1100%20Series?serial=5835484B3030353876
D [11/Aug/2024:10:02:38 +0200] [Job 2] pdftopdf: Last filter determined by the PPD: epson-escpr-wrapper; FINAL_CONTENT_TYPE: application/vnd.cups-raster => pdftopdf will not log pages in page_log.
D [11/Aug/2024:10:02:38 +0200] [Job 2] OUTFORMAT=\"<none>\", so output format will be CUPS/PWG Raster
D [11/Aug/2024:10:02:38 +0200] [Job 2] Page = 595x842; 8,8 to 587,833
D [11/Aug/2024:10:02:38 +0200] [Job 2] libusb_get_device_list=5
D [11/Aug/2024:10:02:38 +0200] [Job 2] STATE: +connecting-to-device
D [11/Aug/2024:10:02:38 +0200] [Job 2] STATE: -connecting-to-device
D [11/Aug/2024:10:02:38 +0200] [Job 2] iSerialNumber=\"5835484B3030353876\"
D [11/Aug/2024:10:02:38 +0200] [Job 2] Printer found with device ID: MFG:EPSON;CMD:ESCPL2,BDC,D4,D4PX,ESCPR1,END4;MDL:M1100 Series;CLS:PRINTER;DES:EPSON M1100 Series;CID:EpsonRGB;FID:FXN,DPN,WFN,ETN,AFN,DAN,WRN;RID:41;DDS:022180;ELG:1260; Device URI: usb://EPSON/M1100%20Series?serial=5835484B3030353876
D [11/Aug/2024:10:02:38 +0200] [Job 2] Device protocol: 2
D [11/Aug/2024:10:02:38 +0200] [Job 2] Read 182 bytes of back-channel data...
D [11/Aug/2024:10:02:38 +0200] [Job 2] PID 22427 (/usr/lib/cups/filter/texttopdf) exited with no errors.
D [11/Aug/2024:10:02:38 +0200] [Job 2] Sending data to printer.
D [11/Aug/2024:10:02:38 +0200] [Job 2] Sent 0 bytes...
D [11/Aug/2024:10:02:38 +0200] [Job 2] PDF interactive form and annotation flattening done via QPDF
D [11/Aug/2024:10:02:38 +0200] [Job 2] pdftopdf: \"print-scaling\" IPP attribute: auto
D [11/Aug/2024:10:02:38 +0200] [Job 2] pdftopdf: Print scaling mode: Do not scale, center, crop if needed
D [11/Aug/2024:10:02:38 +0200] [Job 2] After Cropping: 595.000000 842.000000 595.200012 841.799988
D [11/Aug/2024:10:02:38 +0200] [Job 2] PID 22428 (/usr/lib/cups/filter/pdftopdf) exited with no errors.
D [11/Aug/2024:10:02:38 +0200] [Job 2] Color Manager: Calibration Mode/Off
D [11/Aug/2024:10:02:38 +0200] [Job 2] Calling FindDeviceById(cups-EPSON_M1100_Series)
D [11/Aug/2024:10:02:38 +0200] [Job 2] Found device /org/freedesktop/ColorManager/devices/cups_EPSON_M1100_Series
D [11/Aug/2024:10:02:38 +0200] [Job 2] Calling org.freedesktop.ColorManager.Device.Get(ProfilingInhibitors)
D [11/Aug/2024:10:02:38 +0200] [Job 2] Calling FindDeviceById(cups-EPSON_M1100_Series)
D [11/Aug/2024:10:02:38 +0200] [Job 2] Found device /org/freedesktop/ColorManager/devices/cups_EPSON_M1100_Series
D [11/Aug/2024:10:02:38 +0200] [Job 2] Calling GetProfileForQualifiers(RGB.PLAIN_NORMAL....)
D [11/Aug/2024:10:02:38 +0200] [Job 2] Found profile /org/freedesktop/ColorManager/profiles/EPSON_M1100_Series_RGB__
D [11/Aug/2024:10:02:38 +0200] [Job 2] Calling org.freedesktop.ColorManager.Profile.Get(Filename)
D [11/Aug/2024:10:02:38 +0200] [Job 2] Failed to get profile filename for cups-EPSON_M1100_Series
D [11/Aug/2024:10:02:38 +0200] [Job 2] Color Manager: ICC Profile:
D [11/Aug/2024:10:02:38 +0200] [Job 2] Ghostscript using Any-Part-of-Pixel method to fill paths.
D [11/Aug/2024:10:02:38 +0200] [Job 2] Ghostscript command line: gs -dQUIET -dSAFER -dNOPAUSE -dBATCH -dNOINTERPOLATE -dNOMEDIAATTRS -dShowAcroForm -sstdout=%stderr -sOutputFile=%stdout -sDEVICE=cups -r360x360 -dDEVICEWIDTHPOINTS=595 -dDEVICEHEIGHTPOINTS=841 -dcupsBitsPerColor=8 -dcupsColorOrder=0 -dcupsColorSpace=0 -dcupsCompression=1 -scupsPageSizeName=A4 -I/usr/share/cups/fonts -c \'<</.HWMargins[8.400000 8.400000 8.400024 8.399963] /Margins[0 0]>>setpagedevice\' -f -_
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[0]=\"CUPS_CACHEDIR=/var/cache/cups\"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[1]=\"CUPS_DATADIR=/usr/share/cups\"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[2]=\"CUPS_DOCROOT=/usr/share/cups/doc-root\"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[3]=\"CUPS_REQUESTROOT=/var/spool/cups\"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[4]=\"CUPS_SERVERBIN=/usr/lib/cups\"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[5]=\"CUPS_SERVERROOT=/etc/cups\"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[6]=\"CUPS_STATEDIR=/run/cups\"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[7]=\"HOME=/var/spool/cups/tmp\"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[8]=\"PATH=/usr/lib/cups/filter:/usr/bin:/usr/sbin:/bin:/usr/bin\"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[9]=\"SERVER_ADMIN=root@raspberrypi\"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[10]=\"SOFTWARE=CUPS/2.4.2\"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[11]=\"TMPDIR=/var/spool/cups/tmp\"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[12]=\"USER=root\"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[13]=\"CUPS_MAX_MESSAGE=2047\"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[14]=\"CUPS_SERVER=/run/cups/cups.sock\"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[15]=\"CUPS_ENCRYPTION=IfRequested\"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[16]=\"IPP_PORT=631\"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[17]=\"CHARSET=utf-8\"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[18]=\"LANG=en_GB.UTF-8\"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[19]=\"PPD=/etc/cups/ppd/EPSON_M1100_Series.ppd\"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[20]=\"CONTENT_TYPE=text/plain\"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[21]=\"DEVICE_URI=usb://EPSON/M1100%20Series?serial=5835484B3030353876\"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[22]=\"PRINTER_INFO=EPSON M1100 Series\"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[23]=\"PRINTER_LOCATION=\"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[24]=\"PRINTER=EPSON_M1100_Series\"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[25]=\"PRINTER_STATE_REASONS=none\"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[26]=\"CUPS_FILETYPE=document\"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[27]=\"FINAL_CONTENT_TYPE=application/vnd.cups-raster\"
D [11/Aug/2024:10:02:38 +0200] [Job 2] envp[28]=\"AUTH_INFO_REQUIRED=none\"
D [11/Aug/2024:10:02:38 +0200] [Job 2] Start rendering...
D [11/Aug/2024:10:02:38 +0200] [Job 2] Processing page 1...
D [11/Aug/2024:10:02:38 +0200] [Job 2] **** Error: Page drawing error occurred.
D [11/Aug/2024:10:02:38 +0200] [Job 2] Could not draw this page at all, page will be missing in the output.
D [11/Aug/2024:10:02:38 +0200] [Job 2] Rendering completed
D [11/Aug/2024:10:02:38 +0200] [Job 2] Waiting for read thread to exit...
D [11/Aug/2024:10:02:38 +0200] [Job 2] PID 22429 (/usr/lib/cups/filter/gstoraster) exited with no errors.
D [11/Aug/2024:10:02:38 +0200] [Job 2] PID 22431 (/usr/lib/cups/backend/usb) exited with no errors.
D [11/Aug/2024:10:02:38 +0200] [Job 2] End of messages
D [11/Aug/2024:10:02:38 +0200] [Job 2] printer-state=3(idle)
D [11/Aug/2024:10:02:38 +0200] [Job 2] printer-state-message="Rendering completed"
D [11/Aug/2024:10:02:38 +0200] [Job 2] printer-state-reasons=none
我在这里错过了什么?
我找到了问题所在,并找到了解决方法。主要有两个问题:缺少 32 位 ARM 解释器(驱动程序仅与它兼容,但 Raspberry Pi 有 64 位操作系统)和缺少一些库。因此,我决定自己编译驱动程序。
首先,我卸载了之前安装的驱动程序。然后,我从这里下载了源代码(在底部
Or if you want to use the source package for arm CPU, please click here.
),并导航到 Epson 喷墨打印机驱动程序 (ESC/PR) 源代码所在的目录。为了编译驱动程序,我运行了以下命令:在编译过程中,我遇到了与缺少头文件相关的错误
cups/cups.h
。我通过使用命令安装 CUPS 开发包解决了这个问题sudo apt-get install libcups2-dev
。安装缺失的软件包后,我再次运行了编译和安装命令。这一次,安装成功完成,并且
epson-escpr
和epson-escpr-wrapper
文件已安装在/usr/local/lib/cups/filter
目录中。为了仔细检查,我使用了命令ls /usr/local/lib/cups/filter | grep epson
。然后,我复制了所有 ppd 文件,这样就可以使用命令在 CUPS Web 界面中使用正确的模型
sudo cp ppd/*.ppd /usr/share/cups/model/
接下来,我重新启动了 CUPS 服务,并
epson-escpr
使用 检查了 CUPS 配置文件中是否有对该驱动程序的引用sudo grep -r "epson-escpr" /etc/cups/
。没有找到任何引用,这意味着 CUPS 尚未配置为使用该驱动程序。然后我通过 Web 浏览器访问 CUPS Web 界面,并尝试使用已安装的驱动程序添加 Epson 打印机。但是,我收到一条错误消息,提示文件
/usr/lib/cups/filter/epson-escpr-wrapper
不可用。为了解决这个问题,我使用命令创建了一个从
/usr/local/lib/cups/filter/epson-escpr-wrapper
到的符号链接。/usr/lib/cups/filter/epson-escpr-wrapper
sudo ln -s /usr/local/lib/cups/filter/epson-escpr-wrapper /usr/lib/cups/filter/epson-escpr-wrapper
创建符号链接后,我再次重启了 CUPS 服务。最后,我能够通过 CUPS Web 界面成功添加打印机并打印测试页。