Solved Cannot make Epson L1210 printer working

Hello,
I'm trying to make my new printer Epson L1210 working under FreeBSD (TrueNAS). It works fine under Linux (Fedora 35). I was following this guide https://www.freshports.org/print/epson-inkjet-printer-escpr but `lpinfo -v` returns list without my printer. Printer is connected via USB. I have installed the driver for Epson Inkjet Printer Driver (ESC/P-R) for Linux by `pkg install epson-inkjet-printer-escpr-1.7.17`. Is there anything else I'm missing? Please help.

Code:
# usbconfig -d 0.2 dump_all_desc
ugen0.2: <EPSON L1210 Series> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (2mA)

  bLength = 0x0012
  bDescriptorType = 0x0001
  bcdUSB = 0x0110
  bDeviceClass = 0x0000  <Probed by interface class>
  bDeviceSubClass = 0x0000
  bDeviceProtocol = 0x0000
  bMaxPacketSize0 = 0x0008
  idVendor = 0x04b8
  idProduct = 0x130b
  bcdDevice = 0x0100
  iManufacturer = 0x0001  <EPSON>
  iProduct = 0x0002  <L1210 Series>
  iSerialNumber = 0x0003  <58384C423030313114>
  bNumConfigurations = 0x0001

 Configuration index 0

    bLength = 0x0009
    bDescriptorType = 0x0002
    wTotalLength = 0x0020
    bNumInterfaces = 0x0001
    bConfigurationValue = 0x0001
    iConfiguration = 0x0000  <no string>
    bmAttributes = 0x00c0
    bMaxPower = 0x0001

    Interface 0
      bLength = 0x0009
      bDescriptorType = 0x0004
      bInterfaceNumber = 0x0000
      bAlternateSetting = 0x0000
      bNumEndpoints = 0x0002
      bInterfaceClass = 0x0007  <Printer device>
      bInterfaceSubClass = 0x0001
      bInterfaceProtocol = 0x0002
      iInterface = 0x0000  <no string>

     Endpoint 0
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0083  <IN>
        bmAttributes = 0x0002  <BULK>
        wMaxPacketSize = 0x0040
        bInterval = 0x0000
        bRefresh = 0x0000
        bSynchAddress = 0x0000

     Endpoint 1
        bLength = 0x0007
        bDescriptorType = 0x0005
        bEndpointAddress = 0x0004  <OUT>
        bmAttributes = 0x0002  <BULK>
        wMaxPacketSize = 0x0040
        bInterval = 0x0000
        bRefresh = 0x0000
        bSynchAddress = 0x0000

Rich (BB code):
# ls -l /dev/ugen0.2
lrwxr-xr-x  1 root  wheel  9 Jan  2 17:35 /dev/ugen0.2 -> usb/0.2.0

# ls -l /dev/usb/0.2.0
crw-rw----  1 root  cups  0xc0 Jan  2 17:35 /dev/usb/0.2.0

Code:
# lpinfo -v
network ipp
network beh
network socket
network http
network ipps
network lpd
network https

On linux I get this from `lpinfo`
Code:
# lpinfo -v
network socket
network lpd
network http
direct hp
file cups-brf:/
network beh
network https
network ipp
network ipps
network smb
direct usb://EPSON/L1210%20Series?serial=58384C423030313114
 
You are using CUPS, which provides an administrative interface listening on port 631.

Check your basic installation:
Code:
[strand.307] $ pkg query -a '%R %o' | grep -i cups      
FreeBSD print/cups
FreeBSD print/cups-filters
FreeBSD print/cups-pdf
[strand.308] $ grep cups /etc/rc.conf   
cupsd_enable="YES"

Reboot if CUPS was not enabled.

Point a (local) browser at http://localhost:631/ on both the Linux host and the FreeBSD host.

Work your way through the configuration setup to see where FreeBSD differs from Linux.

[It looks to me like you have failed to configure the printer interface as a directly connected USB device.]
 
I recently got an Epson L3150 which I have got working both USB and wireless. it was automatically discovered by cups, using the quarterly version on Freebsd 13.0.

As you are using Truenas which is derived from Freebsd, you may not get the full benefits and ease of Freebsd.
 
You are using CUPS, which provides an administrative interface listening on port 631.

Check your basic installation:
Code:
[strand.307] $ pkg query -a '%R %o' | grep -i cups     
FreeBSD print/cups
FreeBSD print/cups-filters
FreeBSD print/cups-pdf
[strand.308] $ grep cups /etc/rc.conf  
cupsd_enable="YES"

Reboot if CUPS was not enabled.

Point a (local) browser at http://localhost:631/ on both the Linux host and the FreeBSD host.

Work your way through the configuration setup to see where FreeBSD differs from Linux.

[It looks to me like you have failed to configure the printer interface as a directly connected USB device.]
Yes, I tried CUPS web interface to add a printer, but it didn't find any printer. That's why I tried to add the printer via CLI.
 
Please review the CUPS on FreeBSD docs.

Follow the trail: http://localhost:631-> Administration -> Add Printer -> Login as root at prompt

I don't have any USB printers, so I can't guess what you might see. So please follow the menus and tell us what you see...
 
Please review the CUPS on FreeBSD docs.

Follow the trail: http://localhost:631-> Administration -> Add Printer -> Login as root at prompt

I don't have any USB printers, so I can't guess what you might see. So please follow the menus and tell us what you see...
CUPS web admin interface is just different interface to CUPS daemon. When I try to add a printer, I don't see the printer in `lpinfo -v`.
1641281110953.png
 
Yes, I tried CUPS web interface to add a printer, but it didn't find any printer. That's why I tried to add the printer via CLI.
You are using CUPS, which provides an administrative interface listening on port 631.

Check your basic installation:
Code:
[strand.307] $ pkg query -a '%R %o' | grep -i cups     
FreeBSD print/cups
FreeBSD print/cups-filters
FreeBSD print/cups-pdf
[strand.308] $ grep cups /etc/rc.conf  
cupsd_enable="YES"

Reboot if CUPS was not enabled.

Point a (local) browser at http://localhost:631/ on both the Linux host and the FreeBSD host.

Work your way through the configuration setup to see where FreeBSD differs from Linux.

[It looks to me like you have failed to configure the printer interface as a directly connected USB device.]
Cups is enabled, I used my old HP printer which worked fine, so the problem is probably with the Epson driver.

Code:
# pkg query -a '%R %o' | grep -i cups
FreeBSD print/cups
FreeBSD print/cups-filters
FreeBSD print/linux-c7-cups-libs
FreeBSD print/py-pycups1
FreeBSD print/py-pycups
Code:
# grep cups /etc/rc.conf
cupsd_enable="YES"
 
Have you reviewed the CUPS on FreeBSD docs? Please address the /etc/devfs.rules mentioned in section 3.
It's strange. As I wrote, it was working with HP printer. The Epson is connected with the same USB cabel to the same USB port as HP was.
But now I did listed `/dev/usb*` and I see that the group is `uucp` instead of `cups`. I don't understand why, this is what I have in `rc.conf` and `devfs.rules`. When I changed the group by hand by `chgrg cups /dev/usbctl /dev/usb/*`, I can see the printer in `lpinfo -v`. I'm able to add the printer via CUPS web iface and it prints.

So thank you all for your help!

Code:
# ls -l /dev/usb/0.2.0
crw-rw----  1 root  uucp  0xc7 Jan  4 10:52 0.2.0

# cat /etc/rc.conf
cupsd_enable="YES"
devfs_system_ruleset="system"

# cat /etc/devfs.rules
[system=10]
add path 'usbctl' mode 660 group cups
add path 'usb/*' mode 660 group cups
add path 'ugen*' mode 0660 group cups
add path 'usbctl' unhide
add path 'usb/*' unhide

# chgrp cups /dev/usb/*
# ls -l /dev/usb/0.2.0
crw-rw----  1 root  cups  0xc7 Jan  4 10:52 /dev/usb/0.2.0

# lpinfo -v
...
direct usb://EPSON/L1210%20Series?serial=58384C423030313114
 
Back
Top