Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

error when printing to Samsung C410 series colour laser printer

183 views
Skip to first unread message

Gary Dale

unread,
Jun 11, 2019, 5:00:05 PM6/11/19
to
I can print fine from Stretch but not from Buster. When I try to print
to this printer from Buster, I get a short listing of a text error. For
example, I just tried to print a PDF and got

SPL-C ERROR - Undefined Command

    POSITION : 0x21958 (137560)

    SYSTEM : src/xl_pa

    LINE : 298

    VERSION : SPL-C 5.59.01 06-19-2013

I get different errors when printing LibreOffice documents of various
types. The errors persist whether I print to the printer via its network
interface or USB cable via a Stretch CUPS server. However I can print
from a Stretch computer.

My usual workaround is to create a PDF, then ssh to the CUPS server and
print via lp.

This only seems to affect this one printer. It's been going on for
months now, so I figured I should report it since it isn't going away on
its own. The driver I use is the Samsung C410 Series driver, which is
probably the one from the HP driver download page.

Brian

unread,
Jun 13, 2019, 5:10:04 AM6/13/19
to
Your setup would appear to be:

1. The C410 is connected to a CUPS server via USB (but the connection
can also be via wireless).

2. The server has the Samsung ULD software installed and is advertising
shared queues.

3. The buster client contacts the server over wireless and is running
cups-browsed.

Please post what you get with 'lpstat -l -e' from the client. You should
be able to recognise your print queue from the output, so follow up with
'lpoptions -p <print_queue>'.

--
Brian.

Gary Dale

unread,
Jun 13, 2019, 9:40:04 PM6/13/19
to
Not quite. The network connection is wired. The C410 only connects
wirelessly using WPS, which I have disabled on the router.

$ lpstat -l -e
Samsung_C410_Series permanent
ipp://localhost/printers/Samsung_C410_Series
dnssd://Samsung%20C410%20Series%20(SEC30CDA71CB48A)._printer._tcp.local/
Samsung_C410_Series_SEC30CDA71CB48A_ network none
ipp://Samsung%20C410%20Series%20(SEC30CDA71CB48A)._ipp._tcp.local/
Samsung_C410_Series_TheLibrarian network none
ipps://Samsung%20C410%20Series%20%40%20TheLibrarian._ipps._tcp.local/cups
Samsung_C410_Series_TheLibrarian_3 permanent
ipp://localhost/printers/Samsung_C410_Series_TheLibrarian_3 file:///dev/null

The printer is defined  on the server (TheLibrarian) twice - once as a
network printer and once as a USB printer. It's defined once on my
workstation as a network printer, so I can avoid going through the server.

$ lpoptions -p Samsung_C410_Series
copies=1
device-uri=dnssd://Samsung%20C410%20Series%20(SEC30CDA71CB48A)._printer._tcp.local/
finishings=3 job-cancel-after=10800 job-hold-until=no-hold
job-priority=50 job-sheets=none,none marker-change-time=1560454516
marker-colors=#000000,#00FFFF,#FF00FF,#FFFF00,none,none,none,none,none,none
marker-levels=201,178,74,62,89,60,61,89,50,0 marker-names='Black\ Toner\
S/N\ :CRUM-14031169715,Cyan\ Toner\ S/N\ :CRUM-14031169678,Magenta\
Toner\ S/N\ :CRUM-14031182177,Yellow\ Toner\ S/N\
:CRUM-14031182186,Transfer\ Roller,Transfer\ Belt,Fuser\ Life,Pick-up\
Roller,Imaging\ Unit,Waste\ Toner'
marker-types=toner,toner,toner,toner,other,other,fuser,other,other,other
number-up=1 PageSize=Letter printer-commands=none printer-info='Samsung
C410 Series' printer-is-accepting-jobs=true printer-is-shared=false
printer-is-temporary=false printer-location='family room'
printer-make-and-model='Samsung C410 Series' printer-state=3
printer-state-change-time=1560454516 printer-state-reasons=none
printer-type=2101324
printer-uri-supported=ipp://localhost/printers/Samsung_C410_Series

Brian

unread,
Jun 14, 2019, 7:20:05 AM6/14/19
to
On Thu 13 Jun 2019 at 21:31:49 -0400, Gary Dale wrote:

> On 2019-06-13 5:06 a.m., Brian wrote:

[...]
Very useful. As confirmation (or not) of an idea, let us have what

cupsfilter -p /etc/cups/ppd/<Samsung_C410_Series_ppd> -m printer/foo \
-e --list-filters /etc/nsswitch.conf

gives (as root). The line is broken for readability.

--
Brian.

Gary Dale

unread,
Jun 14, 2019, 7:10:04 PM6/14/19
to
On 2019-06-14 7:15 a.m., Brian wrote:
> On Thu 13 Jun 2019 at 21:31:49 -0400, Gary Dale wrote:
>
>> On 2019-06-13 5:06 a.m., Brian wrote:
> [...]
>
>>> Your setup would appear to be:
>>>
>>> 1. The C410 is connected to a CUPS server via USB (but the connection
>>> can also be via wireless).
>>>
>>> 2. The server has the Samsung ULD software installed and is advertising
>>> shared queues.
>>>
>>> 3. The buster client contacts the server over wireless and is running
>>> cups-browsed.
>>>
>>> Please post what you get with 'lpstat -l -e' from the client. You should
>>> be able to recognise your print queue from the output, so follow up with
>>> 'lpoptions -p <print_queue>'.
>>>
>> Not quite. The network connection is wired. The C410 only connects
>> wirelessly using WPS, which I have disabled on the router.
>>
>> $
Reading over the above output, it struck me that my printer setup wasn't
quite what I thought it was, so I went back to basics, deleted the
queues on both my workstation and the server, downloaded and installed
the Samsung driver on both machines then put the print queues back.

Now I seem to be able to print from the workstation to the server via
the USB connector.

I stopped sharing the network connected printer from the server since
that really made little sense. Unfortunately I still can't print
directly to the network connection. The job gets processed but I just
get an error message again.

I tried switching to the "driverless" driver but CUPS complained about
not being able to copy the PPD file. I noticed an "IPP Anywhere" driver
but that produced the same results as the normal driver.

The error I got on both print attempts (normal and IPP Anywhere) was:

SPL-C ERROR - Disconnected from host. Please check the connection and
try again.

    POSITION : 0x396913 (3762451)

    SYSTEM : src/os_hook

    LINE :   1981

    VERSION : SPL-C 5.59.01 06-19-2013

This was printed by the printer instead of the output I sent.

The lpstat output is now:

Samsung_C410_Series permanent
ipp://localhost/printers/Samsung_C410_Series
ipp://SEC30CDA71CB48A.local:631/ipp/printer
Samsung_C410_Series_SEC30CDA71CB48A_ network none
ipp://Samsung%20C410%20Series%20(SEC30CDA71CB48A)._ipp._tcp.local/
Samsung_C410_Series_TheLibrarian network none
ipps://Samsung%20C410%20Series%20%40%20TheLibrarian._ipps._tcp.local/cups

$ lpoptions -p Samsung_C410_Series is now:
copies=1 device-uri=ipp://SEC30CDA71CB48A.local:631/ipp/printer
finishings=3 job-cancel-after=10800 job-hold-until=no-hold
job-priority=50 job-sheets=none,none marker-change-time=1560552544
marker-colors=#000000,#00FFFF,#FF00FF,#FFFF00,none,none,none,none,none,none
marker-levels=64,55,55,55,98,94,94,98,93,0 marker-message=marker-message
marker-names='Black\ Toner\ S/N\ :CRUM-14031169715,Cyan\ Toner\ S/N\
:CRUM-14031169678,Magenta\ Toner\ S/N\ :CRUM-14031182177,Yellow\ Toner\
S/N\ :CRUM-14031182186,Transfer\ Roller,Transfer\ Belt,Fuser\
Life,Pick-up\ Roller,Imaging\ Unit,Waste\ Toner'
marker-types=toner,toner,toner,toner,other,other,fuser,other,other,other
number-up=1 PageSize=Letter printer-commands=none printer-info='Samsung
C410 Series' printer-is-accepting-jobs=true printer-is-shared=false
printer-is-temporary=false printer-location='family room'
printer-make-and-model='Samsung C410 Series' printer-state=3
printer-state-change-time=1560552569
printer-state-reasons=cups-ipp-conformance-failure-report,cups-ipp-missing-send-document
printer-type=2101324
printer-uri-supported=ipp://localhost/printers/Samsung_C410_Series

Your latest request fails:

cupsfilter -p /etc/cups/ppd/Samsung_C410_Series_ppd -m printer/foo -e
--list-filters /etc/nsswitch.conf
cupsfilter: Unable to open PPD file: Unable to open PPD file on line 0.
Segmentation fault
root@transponder:~# ls -l /etc/cups/ppd
total 512
-rw-r----- 1 root lp 192111 Jun 14 18:39
EPSON_Stylus_Photo_R300_TheLibrarian.ppd
-rw-r----- 1 root lp  78398 Dec  9  2018 EPSON_XP-820_Series.ppd
-rw-r----- 1 root lp  78390 Nov  5  2018 EPSON_XP-820_Series.ppd.O
-rw-r----- 1 root lp  43299 Jun 14 18:39
HP_Color_LaserJet_CP1215_TheLibrarian.ppd
-rw-r----- 1 root lp  21016 Jun 14 18:39 PDF_TheLibrarian.ppd
-rw-r----- 1 root lp  32046 Jun 14 18:40 Samsung_C410_Series.ppd
-rw-r----- 1 root lp  32046 Jun 14 18:40 Samsung_C410_Series.ppd.O
-rw-r----- 1 root lp  32048 Jun 14 18:39
Samsung_C410_Series_TheLibrarian.ppd

Gary Dale

unread,
Jun 14, 2019, 11:40:04 PM6/14/19
to
I thought I'd figured it out - that the network printer shouldn't be
installed locally, because it's automagically discovered. I tested this
by deleting the local install of the network printer and, while it
disappears from the CUPS web interface, it still shows up in the list of
printers when I try to print a PDF from Okular. This seems somewhat
reasonable...

Unfortunately, printing to it does nothing. The output disappears into
the ether(net).

To be clear, the printer network connection is there. CUPs lists it
multiple times with its network address when I use the web interface to
find new printers. And I can ping its IP address.

I then fired up a Stretch VM and tried the same things. Under Stretch,
the printer doesn't show up except as the USB-shared printer from the
server. However, after installing the Samsung driver, it did show up
when I tried to find new printers from the CUPS web interface. I
installed it using the SEC30CDA71CB48A "address" and the normal C410
driver and was able to print successfully.

CUPS is apparently working differently in Buster than in Stretch in its
handling of network-attached printers.

Anyway, here's my current diagnostic output:

$ lpstat -l -e
Samsung_C410_Series_SEC30CDA71CB48A_ network none
ipp://Samsung%20C410%20Series%20(SEC30CDA71CB48A)._ipp._tcp.local/
Samsung_C410_Series_TheLibrarian network none
ipps://Samsung%20C410%20Series%20%40%20TheLibrarian._ipps._tcp.local/cups

$ lpoptions -p Samsung_C410_Series_SEC30CDA71CB48A_
device-uri=ipp://Samsung%20C410%20Series%20(SEC30CDA71CB48A)._ipp._tcp.local/
printer-info='Samsung C410 Series (SEC30CDA71CB48A)' printer-location
printer-make-and-model='Samsung C410 Series' printer-type=16810060

$ lpoptions -p Samsung_C410_Series_TheLibrarian
device-uri=ipps://Samsung%20C410%20Series%20%40%20TheLibrarian._ipps._tcp.local/cups
printer-info='Samsung C410 Series @ TheLibrarian'
printer-location='family room' printer-make-and-model=ColorLaserPrinter
printer-type=16781390

# cupsfilter -p /etc/cups/ppd/Samsung_C410_Series_TheLibrarian_ppd -m
printer/foo -e --list-filters /etc/nsswitch.conf
cupsfilter: Unable to open PPD file: Unable to open PPD file on line 0.
Segmentation fault

# ls -l /etc/cups/ppd/
total 476
-rw-r----- 1 root lp 192111 Jun 14 21:01
EPSON_Stylus_Photo_R300_TheLibrarian.ppd
-rw-r----- 1 root lp  78398 Dec  9  2018 EPSON_XP-820_Series.ppd
-rw-r----- 1 root lp  78390 Nov  5  2018 EPSON_XP-820_Series.ppd.O
-rw-r----- 1 root lp  43299 Jun 14 21:01
HP_Color_LaserJet_CP1215_TheLibrarian.ppd
-rw-r----- 1 root lp  21016 Jun 14 21:01 PDF_TheLibrarian.ppd
-rw-r----- 1 root lp  32048 Jun 14 21:01
Samsung_C410_Series_TheLibrarian.ppd
-rw-r----- 1 root lp  27498 Jun 14 21:07 Samsung_ML_1210_TheLibrarian.ppd

Changing the _ppd to .ppd removes the error messages. Instead I get no
output.

Brian

unread,
Jun 15, 2019, 10:00:04 AM6/15/19
to
On Fri 14 Jun 2019 at 23:32:50 -0400, Gary Dale wrote:

> I thought I'd figured it out - that the network printer shouldn't be
> installed locally, because it's automagically discovered. I tested this by

As we have seen, it is the way you installed the queue on the client
(with a Samsung driver) that is the problem; a local driverless or
everywhere queue is no problem. But, as you say, why bother to do even
that if cups-browsed can do it for you. It's a user's choice.

> deleting the local install of the network printer and, while it disappears
> from the CUPS web interface, it still shows up in the list of printers when
> I try to print a PDF from Okular. This seems somewhat reasonable...

Having this deleted queue show in Okular's dialog doesn't seem at all
reasonable to me.

> Unfortunately, printing to it does nothing. The output disappears into the
> ether(net).

The queue has been deleted. The job has nowhere to go!

> To be clear, the printer network connection is there. CUPs lists it multiple
> times with its network address when I use the web interface to find new
> printers. And I can ping its IP address.
>
> I then fired up a Stretch VM and tried the same things. Under Stretch, the
> printer doesn't show up except as the USB-shared printer from the server.
> However, after installing the Samsung driver, it did show up when I tried to
> find new printers from the CUPS web interface. I installed it using the
> SEC30CDA71CB48A "address" and the normal C410 driver and was able to print
> successfully.
>
> CUPS is apparently working differently in Buster than in Stretch in its
> handling of network-attached printers.

A little differently when the driverless aspect is factored in. But,
basically, the framework is still the same. CUPS/cups-filters has
changed because printers have changed.

> Anyway, here's my current diagnostic output:
>
> $ lpstat -l -e
> Samsung_C410_Series_SEC30CDA71CB48A_ network none
> ipp://Samsung%20C410%20Series%20(SEC30CDA71CB48A)._ipp._tcp.local/

I think that is the printer. We need avahi-browse to tell us more.

> Samsung_C410_Series_TheLibrarian network none
> ipps://Samsung%20C410%20Series%20%40%20TheLibrarian._ipps._tcp.local/cups

That's the queue set up automatically by cups-browsed using its
driverless utility.

> $ lpoptions -p Samsung_C410_Series_SEC30CDA71CB48A_
> device-uri=ipp://Samsung%20C410%20Series%20(SEC30CDA71CB48A)._ipp._tcp.local/
> printer-info='Samsung C410 Series (SEC30CDA71CB48A)' printer-location
> printer-make-and-model='Samsung C410 Series' printer-type=16810060

Ok.

> $ lpoptions -p Samsung_C410_Series_TheLibrarian
> device-uri=ipps://Samsung%20C410%20Series%20%40%20TheLibrarian._ipps._tcp.local/cups
> printer-info='Samsung C410 Series @ TheLibrarian' printer-location='family
> room' printer-make-and-model=ColorLaserPrinter printer-type=16781390

Ok.

> # cupsfilter -p /etc/cups/ppd/Samsung_C410_Series_TheLibrarian_ppd -m
> printer/foo -e --list-filters /etc/nsswitch.conf
> cupsfilter: Unable to open PPD file: Unable to open PPD file on line 0.
> Segmentation fault
>
> # ls -l /etc/cups/ppd/
> total 476
> -rw-r----- 1 root lp 192111 Jun 14 21:01
> EPSON_Stylus_Photo_R300_TheLibrarian.ppd
> -rw-r----- 1 root lp  78398 Dec  9  2018 EPSON_XP-820_Series.ppd
> -rw-r----- 1 root lp  78390 Nov  5  2018 EPSON_XP-820_Series.ppd.O
> -rw-r----- 1 root lp  43299 Jun 14 21:01
> HP_Color_LaserJet_CP1215_TheLibrarian.ppd
> -rw-r----- 1 root lp  21016 Jun 14 21:01 PDF_TheLibrarian.ppd
> -rw-r----- 1 root lp  32048 Jun 14 21:01
> Samsung_C410_Series_TheLibrarian.ppd
> -rw-r----- 1 root lp  27498 Jun 14 21:07 Samsung_ML_1210_TheLibrarian.ppd
>
> Changing the _ppd to .ppd removes the error messages. Instead I get no
> output.

There is no output because no processing through filters takes place on
the client now you are not using the Samsung driver.

Have a go at this:

1. Check that you can print the file /etc/nsswitch.conf from the server:
lp -d Samsung_C410_Series /etc/nsswitch.conf

2. Stop cups-browsed on the client:
systemctl stop cups-browsed

3. Check destinations:
lpstat -l -e

4. Print the same file as before:
lp -d Samsung_C410_Series_TheLibrarian /etc/nsswitch.conf

--
Brian.

Brian

unread,
Jun 15, 2019, 10:00:04 AM6/15/19
to
On Fri 14 Jun 2019 at 19:08:02 -0400, Gary Dale wrote:

> On 2019-06-14 7:15 a.m., Brian wrote:
> > Very useful. As confirmation (or not) of an idea, let us have what
> >
> > cupsfilter -p /etc/cups/ppd/<Samsung_C410_Series_ppd> -m printer/foo \
> > -e --list-filters /etc/nsswitch.conf
> >
> > gives (as root). The line is broken for readability.
> >
> Reading over the above output, it struck me that my printer setup wasn't
> quite what I thought it was, so I went back to basics, deleted the queues on
> both my workstation and the server, downloaded and installed the Samsung
> driver on both machines then put the print queues back.

The Samsung driver should be installed only on the server. Having
filtering done twice is very strongly discouraged and is hell to
debug.

https://wiki.debian.org/PrintQueuesCUPS#Double_Filtering

> Now I seem to be able to print from the workstation to the server via the
> USB connector.

I do not follow this and cannot see how a USB cable between client and
server does anything.

> I stopped sharing the network connected printer from the server since that
> really made little sense. Unfortunately I still can't print directly to the
> network connection. The job gets processed but I just get an error message
> again.

Printing can only take place if the printer is connected by USB to the
client or shared over the network. Not sharing the printer connected to
the server seems counterproductive.

> I tried switching to the "driverless" driver but CUPS complained about not
> being able to copy the PPD file. I noticed an "IPP Anywhere" driver but that
> produced the same results as the normal driver.

A shared server queue provides an AirPrint service and the queue is
suitable for a driverless printing system. CUPS should be able to query
the queue for its IPP attributes and construct a PPD.

https://wiki.debian.org/DriverlessPrinting#The_CUPS_PPD_Generator

> The error I got on both print attempts (normal and IPP Anywhere) was:
>
> SPL-C ERROR - Disconnected from host. Please check the connection and try
> again.
>
>     POSITION : 0x396913 (3762451)
>
>     SYSTEM : src/os_hook
>
>     LINE :   1981
>
>     VERSION : SPL-C 5.59.01 06-19-2013
>
> This was printed by the printer instead of the output I sent.
>
> The lpstat output is now:
>
> Samsung_C410_Series permanent ipp://localhost/printers/Samsung_C410_Series
> ipp://SEC30CDA71CB48A.local:631/ipp/printer

This is a queue that has been set up locally on the client using the
Samsung driver. It is likely to bring havoc to printing. Delete the
queue. If you really want to set up a local queue, use the CUPS web
interface with the driverless or everywhere models, or do

lpadmin -p c410 -v ipp://SEC30CDA71CB48A.local:631/ipp/printer -E -m everywhere

> Samsung_C410_Series_SEC30CDA71CB48A_ network none
> ipp://Samsung%20C410%20Series%20(SEC30CDA71CB48A)._ipp._tcp.local/

This is the printer itself. It would be interesting to see what is given
for 'avahi-browse -rt _ipp._tcp'.

> Samsung_C410_Series_TheLibrarian network none
> ipps://Samsung%20C410%20Series%20%40%20TheLibrarian._ipps._tcp.local/cups

This is the queue you have set up with the Samsung driver on the server.
It is the queue you should be using to print to. A PDF is sent to the
server when printing from LibreOffice. If you have printed a PDF directly
from the server, there should be no problem with the LO one.

> $ lpoptions -p Samsung_C410_Series is now:
> copies=1 device-uri=ipp://SEC30CDA71CB48A.local:631/ipp/printer finishings=3
> job-cancel-after=10800 job-hold-until=no-hold job-priority=50
> job-sheets=none,none marker-change-time=1560552544
> marker-colors=#000000,#00FFFF,#FF00FF,#FFFF00,none,none,none,none,none,none
> marker-levels=64,55,55,55,98,94,94,98,93,0 marker-message=marker-message
> marker-names='Black\ Toner\ S/N\ :CRUM-14031169715,Cyan\ Toner\ S/N\
> :CRUM-14031169678,Magenta\ Toner\ S/N\ :CRUM-14031182177,Yellow\ Toner\ S/N\
> :CRUM-14031182186,Transfer\ Roller,Transfer\ Belt,Fuser\ Life,Pick-up\
> Roller,Imaging\ Unit,Waste\ Toner'
> marker-types=toner,toner,toner,toner,other,other,fuser,other,other,other
> number-up=1 PageSize=Letter printer-commands=none printer-info='Samsung C410
> Series' printer-is-accepting-jobs=true printer-is-shared=false
> printer-is-temporary=false printer-location='family room'
> printer-make-and-model='Samsung C410 Series' printer-state=3
> printer-state-change-time=1560552569 printer-state-reasons=cups-ipp-conformance-failure-report,cups-ipp-missing-send-document
> printer-type=2101324
> printer-uri-supported=ipp://localhost/printers/Samsung_C410_Series

This complexity of output indicates a local queue set up with the
Samsung driver. As has been said - you really, really need to get rid
of it.

> Your latest request fails:
>
> cupsfilter -p /etc/cups/ppd/Samsung_C410_Series_ppd -m printer/foo -e
> --list-filters /etc/nsswitch.conf
> cupsfilter: Unable to open PPD file: Unable to open PPD file on line 0.
> Segmentation fault

The given <Samsung_C410_Series_ppd> is a placeholder for the actual
name of the PPD. I suppose I could have worked out what it actually is.

> root@transponder:~# ls -l /etc/cups/ppd
> total 512
> -rw-r----- 1 root lp 192111 Jun 14 18:39
> EPSON_Stylus_Photo_R300_TheLibrarian.ppd
> -rw-r----- 1 root lp  78398 Dec  9  2018 EPSON_XP-820_Series.ppd
> -rw-r----- 1 root lp  78390 Nov  5  2018 EPSON_XP-820_Series.ppd.O
> -rw-r----- 1 root lp  43299 Jun 14 18:39
> HP_Color_LaserJet_CP1215_TheLibrarian.ppd
> -rw-r----- 1 root lp  21016 Jun 14 18:39 PDF_TheLibrarian.ppd
> -rw-r----- 1 root lp  32046 Jun 14 18:40 Samsung_C410_Series.ppd
> -rw-r----- 1 root lp  32046 Jun 14 18:40 Samsung_C410_Series.ppd.O
> -rw-r----- 1 root lp  32048 Jun 14 18:39
> Samsung_C410_Series_TheLibrarian.ppd

The placeholder is intended to be filled by Samsung_C410_Series.ppd.

--
Brian.

Gary Dale

unread,
Jun 15, 2019, 11:40:04 AM6/15/19
to
On 2019-06-15 9:50 a.m., Brian wrote:
> On Fri 14 Jun 2019 at 23:32:50 -0400, Gary Dale wrote:
>
>> I thought I'd figured it out - that the network printer shouldn't be
>> installed locally, because it's automagically discovered. I tested this by
> As we have seen, it is the way you installed the queue on the client
> (with a Samsung driver) that is the problem; a local driverless or
> everywhere queue is no problem. But, as you say, why bother to do even
> that if cups-browsed can do it for you. It's a user's choice.
Except that didn't work either.
>> deleting the local install of the network printer and, while it disappears
>> from the CUPS web interface, it still shows up in the list of printers when
>> I try to print a PDF from Okular. This seems somewhat reasonable...
> Having this deleted queue show in Okular's dialog doesn't seem at all
> reasonable to me.

It's not the deleted queue. This one showed up in addition to the queue
I deleted. Once I deleted the local queue, this one remains. It's
survived reboots so the only reasonable explanation is that Buster is
detecting it as a network printer. It isn't the ghost of a deleted CUPS
queue.

To verify this, I disconnected the network cable from the printer then
rebooted my workstation. The printer vanished. When I reconnected the
network cable, the printer showed up again. This doesn't seem to be a
CUPS thing, since it doesn't show in the list of printers in the CUPS
web interface but does show up in Okular's print dialogue. It also shows
up in non-KDE apps like LibreOffice Calc.

>
>> Unfortunately, printing to it does nothing. The output disappears into the
>> ether(net).
> The queue has been deleted. The job has nowhere to go!
Which would make sense if the queue actually had been deleted. However
it appears to be auto-detected.
>> To be clear, the printer network connection is there. CUPs lists it multiple
>> times with its network address when I use the web interface to find new
>> printers. And I can ping its IP address.
>>
>> I then fired up a Stretch VM and tried the same things. Under Stretch, the
>> printer doesn't show up except as the USB-shared printer from the server.
>> However, after installing the Samsung driver, it did show up when I tried to
>> find new printers from the CUPS web interface. I installed it using the
>> SEC30CDA71CB48A "address" and the normal C410 driver and was able to print
>> successfully.
>>
>> CUPS is apparently working differently in Buster than in Stretch in its
>> handling of network-attached printers.
> A little differently when the driverless aspect is factored in. But,
> basically, the framework is still the same. CUPS/cups-filters has
> changed because printers have changed.

No. The procedure that worked with Stretch - adding the printer with the
normal C410 driver - doesn't work with Buster. In fact I can't print to
the Samsung_C410_Series_SEC30CDA71CB48A printer from Buster with either
the normal driver or the "driverless" driver.


>
>> Anyway, here's my current diagnostic output:
>>
>> $ lpstat -l -e
>> Samsung_C410_Series_SEC30CDA71CB48A_ network none
>> ipp://Samsung%20C410%20Series%20(SEC30CDA71CB48A)._ipp._tcp.local/
> I think that is the printer. We need avahi-browse to tell us more.
?
>
>> Samsung_C410_Series_TheLibrarian network none
>> ipps://Samsung%20C410%20Series%20%40%20TheLibrarian._ipps._tcp.local/cups
> That's the queue set up automatically by cups-browsed using its
> driverless utility.
Agreed. It works.
>
>> $ lpoptions -p Samsung_C410_Series_SEC30CDA71CB48A_
>> device-uri=ipp://Samsung%20C410%20Series%20(SEC30CDA71CB48A)._ipp._tcp.local/
>> printer-info='Samsung C410 Series (SEC30CDA71CB48A)' printer-location
>> printer-make-and-model='Samsung C410 Series' printer-type=16810060
> Ok.
This is the printer that my desktop environment sees that CUPS doesn't
autodetect. It is NOT a deleted queue. Note also the trailing "_" on the
queue name. When I add it through CUPS, there isn't one by default.
Something has tried to not step on CUPS names here.
I do that all the time. Interestingly, this used to be the network
interface queue from my Stretch server. Now it's the USB interface. It
still works.
>
> 2. Stop cups-browsed on the client:
> systemctl stop cups-browsed
>
> 3. Check destinations:
> lpstat -l -e
Samsung_C410_Series_SEC30CDA71CB48A_ network none
ipp://Samsung%20C410%20Series%20(SEC30CDA71CB48A)._ipp._tcp.local/
Samsung_C410_Series_TheLibrarian network none
ipps://Samsung%20C410%20Series%20%40%20TheLibrarian._ipps._tcp.local/cups

>
> 4. Print the same file as before:
> lp -d Samsung_C410_Series_TheLibrarian /etc/nsswitch.conf
Works. As I corrected earlier, the problem is printing to the network
connection from Stretch. Printing to the USB connection works. My
original problem was I mixed up which server queue was the USB one. Now
that I've simplified the connections, I only have the USB connection
shared on the server.

Gary Dale

unread,
Jun 15, 2019, 12:20:04 PM6/15/19
to
On 2019-06-15 9:49 a.m., Brian wrote:
> On Fri 14 Jun 2019 at 19:08:02 -0400, Gary Dale wrote:
>
>> On 2019-06-14 7:15 a.m., Brian wrote:
>>> Very useful. As confirmation (or not) of an idea, let us have what
>>>
>>> cupsfilter -p /etc/cups/ppd/<Samsung_C410_Series_ppd> -m printer/foo \
>>> -e --list-filters /etc/nsswitch.conf
>>>
>>> gives (as root). The line is broken for readability.
>>>
>> Reading over the above output, it struck me that my printer setup wasn't
>> quite what I thought it was, so I went back to basics, deleted the queues on
>> both my workstation and the server, downloaded and installed the Samsung
>> driver on both machines then put the print queues back.
> The Samsung driver should be installed only on the server. Having
> filtering done twice is very strongly discouraged and is hell to
> debug.
>
> https://wiki.debian.org/PrintQueuesCUPS#Double_Filtering
Printing to a network attached printer isn't double-queuing.
>> Now I seem to be able to print from the workstation to the server via the
>> USB connector.
> I do not follow this and cannot see how a USB cable between client and
> server does anything.
>
You missed the part where the printer is attached to the server via the
USB cable. My grammar was a little unclear but the point is that I
always have been able to print through the server via the USB cable. The
server can also print via the printer's network connection. However the
workstation can't print through the server or directly to the printer's
network connection.
>> I stopped sharing the network connected printer from the server since that
>> really made little sense. Unfortunately I still can't print directly to the
>> network connection. The job gets processed but I just get an error message
>> again.
> Printing can only take place if the printer is connected by USB to the
> client or shared over the network. Not sharing the printer connected to
> the server seems counterproductive.
No. The network attached printer is always visible on the network.
Putting a server between the printer and the workstation is adding a
layer of complexity. The problem, which printing through the server
doesn't solve, is printing to the network attached printer from Buster.
>
>> I tried switching to the "driverless" driver but CUPS complained about not
>> being able to copy the PPD file. I noticed an "IPP Anywhere" driver but that
>> produced the same results as the normal driver.
> A shared server queue provides an AirPrint service and the queue is
> suitable for a driverless printing system. CUPS should be able to query
> the queue for its IPP attributes and construct a PPD.
>
> https://wiki.debian.org/DriverlessPrinting#The_CUPS_PPD_Generator
Yes, but the "IPP anywhere" driver produced the same results as the
regular C410 driver.
>
>> The error I got on both print attempts (normal and IPP Anywhere) was:
>>
>> SPL-C ERROR - Disconnected from host. Please check the connection and try
>> again.
>>
>>     POSITION : 0x396913 (3762451)
>>
>>     SYSTEM : src/os_hook
>>
>>     LINE :   1981
>>
>>     VERSION : SPL-C 5.59.01 06-19-2013
>>
>> This was printed by the printer instead of the output I sent.
>>
>> The lpstat output is now:
>>
>> Samsung_C410_Series permanent ipp://localhost/printers/Samsung_C410_Series
>> ipp://SEC30CDA71CB48A.local:631/ipp/printer
> This is a queue that has been set up locally on the client using the
> Samsung driver. It is likely to bring havoc to printing. Delete the
> queue. If you really want to set up a local queue, use the CUPS web
> interface with the driverless or everywhere models, or do
>
> lpadmin -p c410 -v ipp://SEC30CDA71CB48A.local:631/ipp/printer -E -m everywhere
>
>> Samsung_C410_Series_SEC30CDA71CB48A_ network none
>> ipp://Samsung%20C410%20Series%20(SEC30CDA71CB48A)._ipp._tcp.local/
> This is the printer itself. It would be interesting to see what is given
> for 'avahi-browse -rt _ipp._tcp'.
command not found when run as normal use and as root.
>
>> Samsung_C410_Series_TheLibrarian network none
>> ipps://Samsung%20C410%20Series%20%40%20TheLibrarian._ipps._tcp.local/cups
> This is the queue you have set up with the Samsung driver on the server.
> It is the queue you should be using to print to. A PDF is sent to the
> server when printing from LibreOffice. If you have printed a PDF directly
> from the server, there should be no problem with the LO one.
Agreed. This one, which is the shared USB connected printer, works.
>
>> $ lpoptions -p Samsung_C410_Series is now:
>> copies=1 device-uri=ipp://SEC30CDA71CB48A.local:631/ipp/printer finishings=3
>> job-cancel-after=10800 job-hold-until=no-hold job-priority=50
>> job-sheets=none,none marker-change-time=1560552544
>> marker-colors=#000000,#00FFFF,#FF00FF,#FFFF00,none,none,none,none,none,none
>> marker-levels=64,55,55,55,98,94,94,98,93,0 marker-message=marker-message
>> marker-names='Black\ Toner\ S/N\ :CRUM-14031169715,Cyan\ Toner\ S/N\
>> :CRUM-14031169678,Magenta\ Toner\ S/N\ :CRUM-14031182177,Yellow\ Toner\ S/N\
>> :CRUM-14031182186,Transfer\ Roller,Transfer\ Belt,Fuser\ Life,Pick-up\
>> Roller,Imaging\ Unit,Waste\ Toner'
>> marker-types=toner,toner,toner,toner,other,other,fuser,other,other,other
>> number-up=1 PageSize=Letter printer-commands=none printer-info='Samsung C410
>> Series' printer-is-accepting-jobs=true printer-is-shared=false
>> printer-is-temporary=false printer-location='family room'
>> printer-make-and-model='Samsung C410 Series' printer-state=3
>> printer-state-change-time=1560552569 printer-state-reasons=cups-ipp-conformance-failure-report,cups-ipp-missing-send-document
>> printer-type=2101324
>> printer-uri-supported=ipp://localhost/printers/Samsung_C410_Series
> This complexity of output indicates a local queue set up with the
> Samsung driver. As has been said - you really, really need to get rid
> of it.

Again, I can't seem to print to the network attached printer with or
without a local queue. However in Stretch printing to the network
attached printer requires the local queue. This makes sense because the
printer doesn't know what OS is printing to it. It just knows what
commands it should be responding to (e.g. the driver).

When I print to the network attached printer via the local queue, or via
a shared queue on the server, I get error messages. When I print to it
without a local queue (i.e. the automagically detected printer), the
output vanishes with no messages of any kind.


>
>> Your latest request fails:
>>
>> cupsfilter -p /etc/cups/ppd/Samsung_C410_Series_ppd -m printer/foo -e
>> --list-filters /etc/nsswitch.conf
>> cupsfilter: Unable to open PPD file: Unable to open PPD file on line 0.
>> Segmentation fault
> The given <Samsung_C410_Series_ppd> is a placeholder for the actual
> name of the PPD. I suppose I could have worked out what it actually is.
>
>> root@transponder:~# ls -l /etc/cups/ppd
>> total 512
>> -rw-r----- 1 root lp 192111 Jun 14 18:39
>> EPSON_Stylus_Photo_R300_TheLibrarian.ppd
>> -rw-r----- 1 root lp  78398 Dec  9  2018 EPSON_XP-820_Series.ppd
>> -rw-r----- 1 root lp  78390 Nov  5  2018 EPSON_XP-820_Series.ppd.O
>> -rw-r----- 1 root lp  43299 Jun 14 18:39
>> HP_Color_LaserJet_CP1215_TheLibrarian.ppd
>> -rw-r----- 1 root lp  21016 Jun 14 18:39 PDF_TheLibrarian.ppd
>> -rw-r----- 1 root lp  32046 Jun 14 18:40 Samsung_C410_Series.ppd
>> -rw-r----- 1 root lp  32046 Jun 14 18:40 Samsung_C410_Series.ppd.O
>> -rw-r----- 1 root lp  32048 Jun 14 18:39
>> Samsung_C410_Series_TheLibrarian.ppd
> The placeholder is intended to be filled by Samsung_C410_Series.ppd.
>
And again, that produces no output.

Brian

unread,
Jun 15, 2019, 2:10:04 PM6/15/19
to
On Sat 15 Jun 2019 at 12:09:51 -0400, Gary Dale wrote:

> On 2019-06-15 9:49 a.m., Brian wrote:
> > On Fri 14 Jun 2019 at 19:08:02 -0400, Gary Dale wrote:
> >
> > > On 2019-06-14 7:15 a.m., Brian wrote:
> > > > Very useful. As confirmation (or not) of an idea, let us have what
> > > >
> > > > cupsfilter -p /etc/cups/ppd/<Samsung_C410_Series_ppd> -m printer/foo \
> > > > -e --list-filters /etc/nsswitch.conf
> > > >
> > > > gives (as root). The line is broken for readability.
> > > >
> > > Reading over the above output, it struck me that my printer setup wasn't
> > > quite what I thought it was, so I went back to basics, deleted the queues on
> > > both my workstation and the server, downloaded and installed the Samsung
> > > driver on both machines then put the print queues back.
> > The Samsung driver should be installed only on the server. Having
> > filtering done twice is very strongly discouraged and is hell to
> > debug.
> >
> > https://wiki.debian.org/PrintQueuesCUPS#Double_Filtering
> Printing to a network attached printer isn't double-queuing.

No, it is not. It was what you were doing when going through the server
but, as I realise now, the server has no importance in what you want to
do.

> > > Now I seem to be able to print from the workstation to the server via the
> > > USB connector.
> > I do not follow this and cannot see how a USB cable between client and
> > server does anything.
> You missed the part where the printer is attached to the server via the USB
> cable. My grammar was a little unclear but the point is that I always have
> been able to print through the server via the USB cable. The server can also
> print via the printer's network connection. However the workstation can't
> print through the server or directly to the printer's network connection.

I didn't miss it; I was just being a bit slow. I realise now that you
are not interested in using the server.
https://www.debian.org/distrib/packages#search_packages

For you want do you need (as we both know) the Samsung driver on the
client. When setting up the queue, I suggest you use

socket://<IP_address_of_printer>

--
Brian.

Gary Dale

unread,
Jun 15, 2019, 3:40:04 PM6/15/19
to
#avahi-browse -a returns (in relation to the C410)

+ enp8s0 IPv6 Samsung C410 Series @ TheLibrarian Internet Printer     local
+ enp8s0 IPv4 Samsung C410 Series (SEC30CDA71CB48A) Internet Printer    
local
+ enp8s0 IPv4 Samsung C410 Series @ TheLibrarian Internet Printer     local
+ enp8s0 IPv6 Samsung C410 Series @ TheLibrarian            Secure
Internet Printer local
+ enp8s0 IPv4 Samsung C410 Series @ TheLibrarian            Secure
Internet Printer local
+ enp8s0 IPv6 Samsung C410 Series @ TheLibrarian            UNIX
Printer         local
+ enp8s0 IPv4 Samsung C410 Series @ TheLibrarian            UNIX
Printer         local
+ enp8s0 IPv4 Samsung C410 Series (SEC30CDA71CB48A)         Web
Site             local
+ enp8s0 IPv4 Samsung C410 Series (SEC30CDA71CB48A)         PDL
Printer          local
+ enp8s0 IPv4 Samsung C410 Series (SEC30CDA71CB48A)         UNIX
Printer         local

While CUPS only shows the Samsung_C410_Series_TheLibrarian in the
printers list while the Print dialogue also shows
Samsung_C410_Series_SEC30CDA71CB48A_.


When I use the Find New Printers feature on the CUPS web interface, I get
Samsung C410 Series (Samsung C410 Series on 192.168.1.24)
Samsung C410 Series (Samsung C410 Series on 192.168.1.24)
Samsung C410 Series (Samsung C410 Series (SEC30CDA71CB48A))
ColorLaserPrinter (Samsung C410 Series @ TheLibrarian)
Samsung C410 Series (Samsung C410 Series)
Samsung C410 Series (Samsung C410 Series (driverless))

When I install the (driverless) printer using the Samsung C410 Series -
IPP Everywhere (tm) driver, the output simply disappears. When I use the
Samsung C410 Series (en) driver, I get the "disconnected from host"
error message printed on the printer. When I try the Samsung C410
Series, driverless, cups-filters 1.21.6 (en) driver, I get an "Unable to
copy PPD file." error on the CUPS web interface.

When I install the first printer in the list, it follows your advice and
shows the connection as socket://<local ip address>. However when I
print to it, it prints the same "disconnected from host" error as
before. The second New Printer seems to be identical to the first.

The SEC30CDA71CB48A and driverless printers are the only
non-TheLibrarian printers that don't use the socket and they both fail
with an error message printed on the C410 when using the normal driver.

In short, printing to the network attached printer fails in Buster but
works in Stretch.

Brian

unread,
Jun 16, 2019, 6:20:04 AM6/16/19
to
On Sat 15 Jun 2019 at 15:36:58 -0400, Gary Dale wrote:

> #avahi-browse -a returns (in relation to the C410)

'avahi-browse -ar' is a more useful command; it gives more detail about
the services found.
The C410 is not an Everywhere device.

> When I install the first printer in the list, it follows your advice and
> shows the connection as socket://<local ip address>. However when I print to
> it, it prints the same "disconnected from host" error as before. The second
> New Printer seems to be identical to the first.
>
> The SEC30CDA71CB48A and driverless printers are the only non-TheLibrarian
> printers that don't use the socket and they both fail with an error message
> printed on the C410 when using the normal driver.
>
> In short, printing to the network attached printer fails in Buster but works
> in Stretch.

Remove the USB connection of the printer to the server. It is not
needed. Simply the network by disconnecting the server from it or
switching it off. Only the C410 should be on the network now.

Obtain the URI of the C410 with

lpinfo -v

Check the socket connection by executing

/usr/lib/cups/backend/snmp

Obtain the PPD with

lpinfo -m | grep 410

Set up queue:

lpadmin -p 410 -v <URI> -E -m <PPD>

--
Brian.
0 new messages