[sisyphus] О неработе принтера Epson L222 в П9 и Сиифе :: Re: извещения, KWorkstation9

Gleb Kulikov glebus на asd.iao.ru
Чт Июл 30 23:30:18 MSK 2020


В письме от четверг, 2 июля 2020 г. 02:28:48 +07 пользователь Andrey 
Cherepanov написал:

> > 
> > PS: не работают драйвера (точнее, падает фильтр) для epson L222. Дата
> > сборки -- 2015 г. это уже сверхпечально...
> 
> Что за пакет?

Ситуация следующая. L222 (как и подобный сверхпопулярный L300) поддерживается 
только проприетарным фильтром epson-inkjet-
printer-20140~-1.0.0-1lsb3.2.x86_64.rpm (исходный текст epson-inkjet-
printer-201401w-1.0.0-1lsb3.2.src.rpm включает загрузку проприетарной 
библиотеки, требующей lsb-base.) Проблем с ней, до П9, не было. С cups 2.3.1, 
печати нет: фильтр падает по SIGSEGV.

Я частично разобрался, что происходит. Фильтр (и проприетарная Эпсоновская 
библиотека) ни при чём!

При ближайшем рассмотрении выяснилось, что падение происходит при попытке 
освободить память, которая должна была быть выделена при чтении заголовка 
растра функцией cupsRasterReadHeader около строки 387 файла raster_to_epson.c 
фильтра.

А возникает падение потому, что неоткуда читать заголовок. Растр фильтру 
попросту не передаётся! Я убедился, что вместо растра, фильтр читает из stdin 
всего 4 байта. Насколько я понимаю, ломается то-ли gstopdf, то ли  pdftopdf, 
то ли gstoraster.

Я так понимаю, присутствует несогласованность gs и версии cups?

Я внёс изменеие в текст фильтра, чтобы в подобных ситуациях падение не 
возникало, естественно, от этого не стало легче.

Сравнение отладки с работающей и неработающей системы показывает, что

1. в *работающем* варианте *не* вызывается фильтр watermark

2. в *работающем* варианте gstopdf *не* получает опций  print-color-mode=color 
и output-bin=face-up

3. в НЕ работающем варианте в логе пишется

PPD: /etc/cups/ppd/L222.ppd
OUTFORMAT=\"PDF\", so output format will be PDF

а в *работающем*:
PPD: /etc/cups/ppd/L222.ppd
OUTFORMAT=\"(null)\", so output format will be CUPS/PWG Raster
OUTFORMAT=\"PDF\", so output format will be PDF

в НЕработающей печати, в протоколе присутствует извещение:
Input is empty, outputting empty file.

4. в работающем варианте в командной строке
Ghostscript command line: /usr/bin/gs -dQUIET -dSAFER -dNOPAUSE -dBATCH -
dNOINTERPOLATE -dNOMEDIAATTRS -sstdout=%stderr -sOutputFile=%stdout -
sDEVICE=pdfwrite -dCompatibilityLevel=1.3 -dAutoRotatePages=/None -
dAutoFilterColorImages=false -dNOPLATFONTS -dColorImageFilter=/FlateEncode -
dPDFSETTINGS=/printer -dColorConversionStrategy=/LeaveColorUnchanged -r360x360 
-dDEVICEWIDTHPOINTS=595 -dDEVICEHEIGHTPOINTS=841 -I/usr/share/cups/fonts -c 
\'<</.HWMargins[8.400000 8.400000 8.399963 8.400024] /Margins[0 
0]>>setpagedevice\' -f -_

также *присутствует* опция  -dPARANOIDSAFER , тогда как в НЕ работающем 
варианте, её нет.

5. Наконец, в НЕ работающей системе присутствует характерное сообщение:

[Job 11] Error: /ioerror in --showpage--
[Job 11] Operand stack:
[Job 11] true   1   true
[Job 11] Execution stack:
[Job 11] %interp_exit   .runexec2   --nostringval--   showpage   --
nostringval--   2   %stopped_push   --nostringval--   showpage   showpage   
false   1   %stopped_push   1974   2   3   %oparray_pop   1973   2   3   
%oparray_pop   1961   2   3   %oparray_pop   1817   2   3   %oparray_pop   --
nostringval--   %errorexec_pop   .runexec2   --nostringval--   showpage   --
nostringval--   2   %stopped_push   --nostringval--   1824   1   5   
%oparray_pop   showpage   showpage
[Job 11] Dictionary stack:
[Job 11] --dict:738/1123(ro)(G)--   --dict:0/20(G)--   --dict:76/200(L)--   --
dict:68/75(L)--   --dict:19/25(L)--
[Job 11] Current allocation mode is local
[Job 11] Last OS error: Broken pipe
[Job 11] GPL Ghostscript RELEASE CANDIDATE 1 9.28: Unrecoverable error, exit 
code 1
[Job 11] GPL Ghostscript RELEASE CANDIDATE 1 9.28: ERROR: ioerror (-12) on 
closing pdfwrite device.
[Job 11] PID 459094 (/usr/lib/cups/filter/gstopdf) stopped with status 1.
[Job 11] PID 459101 (/usr/lib/cups/backend/usb) exited with no errors.

Я так понимаю, присутствует несогласованность gs и версии cups?
И что с этим делать? :( :(

Вот результат сравнение протоколов с НЕ работьающей ситсемы (cups 2/3/1) и 
работающей (cups 2.2.12):

5 filters for job:
[Job 11] gstopdf (application/postscript to application/pdf, cost 0)

[Job 11] watermark (application/pdf to application/vnd.alt-pdf-water, cost 0)
!!!! фильтра watermark нет в печатающем варианте

[Job 11] pdftopdf (application/vnd.alt-pdf-water to application/vnd.cups-pdf, 
cost 2)
[Job 11] gstoraster (application/vnd.cups-pdf to application/vnd.cups-raster, 
cost 99)
[Job 11] /opt/epson-inkjet-printer-201401w/cups/lib/filter/
epson_inkjet_printer_filter (application/vnd.cups-raster to printer/L222, cost 
0)

argv[5]="Collate finishings=3 fit-to-page job-billing media=A4 number-up=1 
number-up-layout=lrtb output-bin=face-up outputorder=normal page-bottom=10 
page-left=10 page-right=10 page-top=10 portrait print-color-mode=color 
sides=one-sided job-uuid=urn:uuid:1c9a3e50-94d8-3a2a-509e-6ac126cc06d4 job-
originating-host-name=localhost date-time-at-creation= date-time-at-
processing= time-at-creation=1594883467 time-at-processing=1594883468 
document-name-supplied=okular_nFnNPv.ps PageSize=A4"
!!! в работающем варианте нет output-bin=face-up

envp[11]="SOFTWARE=CUPS/2.3.1" !!! --- НЕ РАБОТАЕТ !!!

envp[11]="SOFTWARE=CUPS/2.2.12" !!! --- РАБОТАЕТ !!!

[Job 11] Started filter /usr/lib/cups/filter/gstopdf (PID 459094)

[Job 11] Started filter /usr/lib/cups/filter/watermark (PID 459096)
!!! в работающем варианте нет фильтра watermark!

[Job 11] Started filter /usr/lib/cups/filter/pdftopdf (PID 459097)
[Job 11] Started filter /usr/lib/cups/filter/gstoraster (PID 459098)
[Job 11] Started filter /opt/epson-inkjet-printer-201401w/cups/lib/filter/
epson_inkjet_printer_filter (PID 459099)
[Job 11] Started backend /usr/lib/cups/backend/usb (PID 459101)

[Job 11] gstopdf argv[6] = 11 gleb dddTips.pdf 1 Collate finishings=3 fit-to-
page job-billing media=A4 number-up=1 number-up-layout=lrtb output-bin=face-up 
outputorder=normal page-bottom=10 page-left=10 page-right=10 page-top=10 
portrait print-color-mode=color sides=one-sided job-uuid=urn:uuid:
1c9a3e50-94d8-3a2a-509e-6ac126cc06d4 job-originating-host-name=localhost date-
time-at-creation= date-time-at-processing= time-at-creation=1594883467 time-
at-processing=1594883468 document-name-supplied=okular_nFnNPv.ps PageSize=A4 /
var/spool/cups/d00011-001
!!! print-color-mode=color !!! --- НЕТ В РАБОТАЮЩЕМ ВАРИАНТЕ !!!
!!! output-bin=face-up !!! --- НЕТ В РАБОТАЮЩЕМ ВАРИАНТЕ !!!

[Job 11] PPD: /etc/cups/ppd/L222.ppd
[Job 11] OUTFORMAT=\"PDF\", so output format will be PDF
!!!
!!! в работающем варианте:
[Job 11] PPD: /etc/cups/ppd/L222.ppd
[Job 11] OUTFORMAT=\"(null)\", so output format will be CUPS/PWG Raster
[Job 11] OUTFORMAT=\"PDF\", so output format will be PDF

[Job 11] Printing on printer with URI: usb://EPSON/L222%20Series?
serial=574E33503135313512&interface=1

[Job 11] pdftopdf: Last filter determined by the PPD: 
epson_inkjet_printer_filter; FINAL_CONTENT_TYPE: application/vnd.cups-raster 
=> pdftopdf will not log pages in page_log.

[Job 11] Input is empty, outputting empty file.
!!! --- ????? В работающей системе такого НЕТ !!!

[Job 11] PID 459097 (/usr/lib/cups/filter/pdftopdf) exited with no errors.
[Job 11] libusb_get_device_list=9
[Job 11] Input is empty, outputting empty file.
[Job 11] PID 459098 (/usr/lib/cups/filter/gstoraster) exited with no errors.

[Job 11] Ghostscript using Any-Part-of-Pixel method to fill paths.

[Job 11] Ghostscript command line: /usr/bin/gs -dQUIET -dSAFER -dNOPAUSE -
dBATCH -dNOINTERPOLATE -dNOMEDIAATTRS -sstdout=%stderr -sOutputFile=%stdout -
sDEVICE=pdfwrite -dCompatibilityLevel=1.3 -dAutoRotatePages=/None -
dAutoFilterColorImages=false -dNOPLATFONTS -dColorImageFilter=/FlateEncode -
dPDFSETTINGS=/printer -dColorConversionStrategy=/LeaveColorUnchanged -r360x360 
-dDEVICEWIDTHPOINTS=595 -dDEVICEHEIGHTPOINTS=841 -I/usr/share/cups/fonts -c 
\'<</.HWMargins[8.400000 8.400000 8.399963 8.400024] /Margins[0 
0]>>setpagedevice\' -f -_
!!! --- в работающем варианте также присутствует опция -dPARANOIDSAFER  !!!


[Job 11] envp[0]=\"OUTFORMAT=PDF\"
[Job 11] envp[1]=\"CUPS_DOCROOT=/usr/share/doc/cups\"
[Job 11] envp[2]=\"CUPS_CACHEDIR=/var/cache/cups\"
[Job 11] envp[3]=\"LANG=ru_RU.UTF-8\"
[Job 11] envp[4]=\"CUPS_ENCRYPTION=IfRequested\"
[Job 11] envp[5]=\"PRINTER_INFO=Epson MFU\"
[Job 11] envp[6]=\"CUPS_FILETYPE=document\"
[Job 11] envp[7]=\"CUPS_REQUESTROOT=/var/spool/cups\"
[Job 11] envp[8]=\"SERVER_ADMIN=root на hypatia.athena.gtsk\"
[Job 11] envp[9]=\"CUPS_SERVERBIN=/usr/lib/cups\"
[Job 11] envp[10]=\"CUPS_MAX_MESSAGE=2047\"
[Job 11] envp[11]=\"USER=root\"
[Job 11] envp[12]=\"CUPS_DATADIR=/usr/share/cups\"
[Job 11] envp[13]=\"PWD=/\"
[Job 11] envp[14]=\"HOME=/var/spool/cups/tmp\"
[Job 11] envp[15]=\"PRINTER_LOCATION=H77.01\"
[Job 11] envp[16]=\"RIP_MAX_CACHE=128m\"
[Job 11] envp[17]=\"CONTENT_TYPE=application/postscript\"
[Job 11] envp[18]=\"CHARSET=utf-8\"
[Job 11] envp[19]=\"IPP_PORT=631\"
[Job 11] envp[20]=\"TMPDIR=/var/spool/cups/tmp\"
[Job 11] envp[21]=\"CUPS_STATEDIR=/var/run/cups\"
[Job 11] envp[22]=\"CUPS_FONTPATH=/usr/share/cups/fonts\"
[Job 11] envp[23]=\"CUPS_SERVERROOT=/etc/cups\"
[Job 11] envp[24]=\"PPD=/etc/cups/ppd/L222.ppd\"
[Job 11] envp[25]=\"SOFTWARE=CUPS/2.3.1\"
[Job 11] envp[26]=\"CUPS_SERVER=/var/run/cups/cups.sock\"
[Job 11] envp[27]=\"SHLVL=1\"
[Job 11] envp[28]=\"PRINTER=L222\"
[Job 11] envp[29]=\"FINAL_CONTENT_TYPE=application/vnd.cups-raster\"
[Job 11] envp[30]=\"DEVICE_URI=usb://EPSON/L222%20Series?
serial=574E33503135313512&interface=1\"
[Job 11] envp[31]=\"PATH=/usr/lib/cups/filter:/usr/bin:/usr/sbin:/bin:/usr/
bin\"
[Job 11] envp[32]=\"AUTH_INFO_REQUIRED=none\"
[Job 11] envp[33]=\"PRINTER_STATE_REASONS=none\"
[Job 11] envp[34]=\"_=/usr/lib/cups/filter/gstoraster\"

[Job 11] Sent 0 bytes...
!!! В работающем варианте просто отправка !!!

[Job 11] PID 459099 (/opt/epson-inkjet-printer-201401w/cups/lib/filter/
epson_inkjet_printer_filter) crashed on signal 5.
!!! краш: даже ещё не вызывается проприетарная библиотека. Краш вызван 
попыткой освободиь выделенную под
растр память, кототрая не была по факту выделена, так как РАСТР НЕ БЫЛ ПЕРЕДАН 
ФИЛЬТРУ !!!

[Job 11] Error: /ioerror in --showpage--
[Job 11] Operand stack:
[Job 11] true   1   true
[Job 11] Execution stack:
[Job 11] %interp_exit   .runexec2   --nostringval--   showpage   --
nostringval--   2   %stopped_push   --nostringval--   showpage   showpage   
false   1   %stopped_push   1974   2   3   %oparray_pop   1973   2   3   
%oparray_pop   1961   2   3   %oparray_pop   1817   2   3   %oparray_pop   --
nostringval--   %errorexec_pop   .runexec2   --nostringval--   showpage   --
nostringval--   2   %stopped_push   --nostringval--   1824   1   5   
%oparray_pop   showpage   showpage
[Job 11] Dictionary stack:
[Job 11] --dict:738/1123(ro)(G)--   --dict:0/20(G)--   --dict:76/200(L)--   --
dict:68/75(L)--   --dict:19/25(L)--
[Job 11] Current allocation mode is local
[Job 11] Last OS error: Broken pipe
[Job 11] GPL Ghostscript RELEASE CANDIDATE 1 9.28: Unrecoverable error, exit 
code 1
[Job 11] GPL Ghostscript RELEASE CANDIDATE 1 9.28: ERROR: ioerror (-12) on 
closing pdfwrite device.
[Job 11] PID 459094 (/usr/lib/cups/filter/gstopdf) stopped with status 1.
[Job 11] PID 459101 (/usr/lib/cups/backend/usb) exited with no errors.
[Job 11] Job stopped due to filter errors; please consult the /var/log/cups/
error_log file for details.
[Job 11] The following messages were recorded from 14:11:08 to 14:11:09
[Job 11] Mapping media to Pagesize=A4
[Job 11] After mapping finishings PageSize=A4
[Job 11] Printer found with device ID: 
MFG:EPSON;CMD:ESCPL2,BDC,D4,D4PX,END4;MDL:L222 Series;CLS:PRINTER;DES:EPSON 
L222 Series;CID:EpsonStd10;FID:FXN,DPN,WFN,ETN,AFN,DAN,WRN;RID:00;DDS:
011180;ELG:0E64; Device URI: usb://EPSON/L222%20Series?
serial=574E33503135313512&interface=1
[Job 11] End of messages
[Job 11] printer-state=3(idle)
[Job 11] printer-state-message="Отправка данных на принтер."
[Job 11] printer-state-reasons=none
[Job 11] Unloading...

Надеюсь на помощь...



-- 
С уважением, /GL


Подробная информация о списке рассылки Sisyphus