# CUPS no local printer



## getopt (Oct 9, 2017)

https://www.freebsd.org/doc/en/articles/cups/article.html#printing-cups-configuring-printers said:
			
		

> Adding a printer is generally as easy as clicking “Add Printer” at the Administration screen of the CUPS web interface, or clicking one of the “New Printers Found” buttons also at the Administration screen.


Well, here it is not. CUPS web interface is nice, but no locally-attached printer is offered: 

```
Local Printers: 	
Discovered Network Printers: 	
Other Network Printers: 	AppSocket/HP JetDirect
                                LPD/LPR Host or Printer
                                Internet Printing Protocol (http)
                                Backend Error Handler
                                Internet Printing Protocol (ipp)
```


```
# dmesg | grep -i MP780
ugen0.3: <Canon MP780> at usbus0
[22] ulpt0: <Canon MP780, class 0/0, rev 2.00/1.01, addr 3> on usbus0
[22] ulpt1: <Canon MP780, class 0/0, rev 2.00/1.01, addr 3> on usbus0
ugen0.3: <Canon MP780> at usbus0
[20] ulpt0: <Canon MP780, class 0/0, rev 2.00/1.01, addr 3> on usbus0
[20] ulpt1: <Canon MP780, class 0/0, rev 2.00/1.01, addr 3> on usbus0
```


```
# cat /etc/devfs.rules 
# See Handbook 18.4
[localrules=5]
add path 'mdctl' mode 0660
add path 'md\*' mode 0660
add path 'da\*' mode 0660
add path 'cd[0-9]\*' mode 0660
add path 'pass[0-9]\*' mode 0660
add path 'ugen[0-9]\*' mode 0660
add path 'usbctl' mode 0660
add path 'usb/\*' mode 0660
add path 'unlpt\*' mode 0660 group cups
add path 'ulpt\*' mode 0660 group cups
add path 'lpt\*' mode 0660 group cups
add path 'usb/0.3.\*' mode 0660 group cups
```



> add path 'usb/X.Y.Z' mode 0660 group cups
> Note that X, Y, and Z should be replaced with the target USB device listed in the /dev/usb directory that corresponds to the printer. To find the correct device, examine the output of dmesg(8), where ugenX.Y lists the printer device, which is a symbolic link to a USB device in /dev/usb.


Not sure if I got that "Z" right.

```
# ls -l /dev/usb/0.3*
crw-rw----  1 root  cups  0x88  9 Okt. 00:53 /dev/usb/0.3.0
crw-rw----  1 root  cups  0x8a  9 Okt. 00:53 /dev/usb/0.3.1
crw-rw----  1 root  cups  0x8b  9 Okt. 00:53 /dev/usb/0.3.2
crw-rw----  1 root  cups  0x8c  9 Okt. 00:53 /dev/usb/0.3.3
crw-rw----  1 root  cups  0x8d  9 Okt. 00:53 /dev/usb/0.3.4
crw-rw----  1 root  cups  0x8e  9 Okt. 00:53 /dev/usb/0.3.5
crw-rw----  1 root  cups  0x8f  9 Okt. 00:53 /dev/usb/0.3.8
crw-rw----  1 root  cups  0x90  9 Okt. 00:53 /dev/usb/0.3.9
# ls -l /dev/ulpt*
crw-rw----  1 root  cups  0xa4  9 Okt. 00:54 /dev/ulpt0
crw-rw----  1 root  cups  0xa6  9 Okt. 00:54 /dev/ulpt1
# ls -l /dev/unlpt*
crw-rw----  1 root  cups  0xa5  9 Okt. 00:54 /dev/unlpt0
crw-rw----  1 root  cups  0xa7  9 Okt. 00:54 /dev/unlpt1
```

What now, dear friends?


----------



## getopt (Oct 9, 2017)

I'm in desperate need to get this problem fixed. 

Is there a manual way to configurate CUPS, as the CUPS web interface does not show the local device?

Where can  USB device like /dev/ulpt0 (which is member of group :cups) be configured in the CUPS configuration files?


----------



## rigoletto@ (Oct 9, 2017)

Hi.

I do not use a printer since long time (and the last was in Linux), but you may need to configure `lpd`, at least to `lpr` work - and if it will work.

Also, I could not find drivers for that specific model at OpenPrinting (aka foomatic) or in the Canon website, but for Windows and Apple.

Anyway, IIRC print/cups should find the printer even if there is no drivers, but due to the lack of drivers, if the printer is new and you can still return that you could look idealistically for one what speak PostScript (usually expensive), or a Brother one with BR_Script3 support - I think most of their printers do support, you should look at the Apple driver if there is no information about that in the specifications. Or at very least something with proven cups support.

EDIT: apparently, print/cups-bjnp is the what do support Canon printers on print/cups, you should install that to find if you model is supported, if it is not installed already.

EDIT2: had you tried different USB ports? Often some stuff just work on some ports due to some BIOS bugs, the most common one should be keyboards what just work after the boot.

Alternatively, booting the system with the printer already connected and ON help in some cases.


----------



## Oko (Oct 9, 2017)

getopt said:


> I'm in desperate need to get this problem fixed.
> 
> Is there a manual way to configurate CUPS, as the CUPS web interface does not show the local device?
> 
> Where can  USB device like /dev/ulpt0 (which is member of group :cups) be configured in the CUPS configuration files?


For one user you don't need CUPS print spooler and scheduler. Just edit /etc/printcap for example mine


```
# Remote printer must use jetdirect since foomatic-rip doesn't speak LPD
rp|HL-5250DN:\
        :lp=9100@192.168.3.15:\
        :if=/etc/foomatic-rip/script_brother.sh:\
        :sh:sd=/var/spool/output/brother:\
        :lf=/var/log/lpd-errs:
```
and start LPD daemon. 


CUPS does have very nice documentation. 

https://www.cups.org/documentation.html

You are welcome to start by studying 300 pages of Administration Manual


----------



## ralphbsz (Oct 10, 2017)

I agree with Oko: With lpd, this is easy.  I'm currently using a parallel port printer, and have in the past used USB-port printers:

```
# The LaserJet 5MP, currently in the basement, connected via
# parallel port.  Because it is a direct connection, we need to
# manually supress form feeds (the print job is assumed to have it):
lp|slow|lj5mp:\
        :lp=/dev/lpt0:\
        :sd=/var/spool/output/lj5mp:\
        :lf=/var/log/lpd-errs:\
        :ff=:\
        :sh:
# The Dell 1710, currently in the basement, connected direcly via USB:
# dell1710:\
#       :lp=/dev/ulpt0:ff=: ...
```
But I agree that CUPS would be nice for local printing; I've never bothered to set it up though: since I don't use the FreeBSD machine as a desktop, all printing comes from client machines, and they can all handle lpr/lpd protocol.


----------



## shepper (Oct 10, 2017)

lebarondemerde said:


> Also, I could not find drivers for that specific model at OpenPrinting (aka foomatic) or in the Canon website, but for Windows and Apple.



There was "experimental" support for the PIXMA MP780 in Gutenprint.  The print/gimp-gutenprint port also indicates that cups is now the only supported backend:


> The -ijs and -foomatic backends have been removed by upstream,
> leaving -cups as the sole choice of backend. Therefore, the -base
> and -cups ports have been merged into the main gutenprint port
> and the obsolete components have been removed.


----------



## getopt (Oct 10, 2017)

Thank you all for trying to help me.

What I found out is, that CUPS backend "sees" the printer:

```
# /usr/local/libexec/cups/backend/usb
DEBUG: Loading USB quirks from "/usr/local/share/cups/usb".
DEBUG: Loaded 151 quirks.
DEBUG: list_devices
DEBUG: libusb_get_device_list=10
DEBUG2: Printer found with device ID: MFG:Canon;CMD:BJL,BJRaster3,BSCCe;SOJ:TXT01;MDL:MP780;CLS:PRINTER;DES:Canon MP780;VER:1.20;STA:10;FSI:03; Device URI: usb://Canon/MP780?serial=208AC3&interface=1
direct usb://Canon/MP780?serial=208AC3&interface=1 "Canon MP780" "Canon MP780" "MFG:Canon;CMD:BJL,BJRaster3,BSCCe;SOJ:TXT01;MDL:MP780;CLS:PRINTER;DES:Canon MP780;VER:1.20;STA:10;FSI:03;" ""
DEBUG2: Printer found with device ID: MFG:Canon;CMD:MultiPASS 2.1;MDL:MP780 FAX;CLS:PRINTER;DES:Canon MP780 FAX; Device URI: usb://Canon/MP780%20FAX?serial=208AC3&interface=2
direct usb://Canon/MP780%20FAX?serial=208AC3&interface=2 "Canon MP780 FAX" "Canon MP780 FAX" "MFG:Canon;CMD:MultiPASS 2.1;MDL:MP780 FAX;CLS:PRINTER;DES:Canon MP780 FAX;" ""
```
So the big question is why does it not appear in the CUPS "Add Printer" administration?


----------



## Datapanic (Oct 10, 2017)

After installing print/cups, I then install print/cups-filters and finally, the drivers, in my case, print/epson-inkjet-printer-escpr.  A while back, I had a problem with cups not finding a local printer after it had worked before and someone pointed out that cups-filters was needed after some cups update.

So, I ask, did you install print/cups-filters?


----------



## getopt (Oct 10, 2017)

Datapanic said:


> So, I ask, did you install print/cups-filters?


That is what I have so far:

```
# pkg info -x print cups
gutenprint-5.2.13_1
cups-2.2.3
cups-filters-1.16.0_2
cups-pk-helper-0.2.5_1
```


----------



## shepper (Oct 11, 2017)

The drivers were left in the print/gimp-gutenprint port.  If you install it, the MP780 driver should show up in the web interface.


----------



## getopt (Oct 11, 2017)

shepper said:


> If you install it, the MP780 driver should show up in the web interface.


It is not about the MP780 driver. That I can already setup as "LPD/LPR Host or Printer" in the CUPS admin. The problem I have is that the UBS printer does not show up as a local printer that can be added there.


----------



## v-man (Feb 26, 2021)

I had the same problem (no local printer in the admin page, but could see the printer through /usr/local/libexec/cups/backend/usb) and stumbled upon this page through Google. I have a different printer, though. But what fixed it was installing the driver, the hplip package in my case (HP Laserjet 1022). I'd definitely recommend installing that and gutenprint (as suggested in FreeBSD's CUPS documentation) if your printer does not show up.


----------

