I have a Dell 1355 all-in-one printer that I purchased more than 10 years ago, and wanted to be able to use it from my Linux computers. I assumed it would be easy to do, but oh boy! was I ever wrong.

The problem, of course, is that Dell does not provide Linux drivers for its printers. So I had to do some digging. A web search turned up some promising leads, which all led to a Linux app called ghostscript-printer-app. This appeared to have a driver that might, or might not, work with the Dell 1355. But this really wasn’t helpful: I didn’t want to have to invoke some special application for printing - I wanted to be able to print from the Print menu from other applications. And the drivers were only available by installing that app.

Eventually I found a project on github that has a large number of drivers, including one for the Dell 1355.

So … problem solved? Not quite! I really don’t understand how printing works on Linux, and the documentation related to CUPS, the printing subsystem, seems mostly to be written with an intended audience of people who do understand how printing works. Eventually, I just had to wing it. Fortunately, there weren’t many steps required to get to a mostly working printer setup.

$ wget 'https://raw.githubusercontent.com/koenkooi/foo2zjs/master/PPD/Dell-1355.ppd'
$ sudo cp Dell-1355.ppd /usr/share/ppd/cupsfilters/
$ lpinfo -m | grep 1355
$ sudo lpadmin -p 'Dell-1355' -D 'Dell Color Laser Printer' \
    -v 'socket://' -m 'Dell 1355 Foomatic/foo2hbpl2' \
    -P '/usr/share/ppd/cupsfilters/Dell-1355.ppd' -E

And that worked! Mostly.

I obtained the mystery value for the -m option above from the value reported by the lpinfo command. Don’t ask!

I worked out the right arguments for lpadmin from an informative page by Stephen Ostermiller.

Those 4 commands shown above took several hours of web search and reading man pages and background material on CUPS and its command-line tools. I went down a few fruitless paths along the way. One thing I thought would be useful was to run nmap on the printer, which produced the following information:

80/tcp   open  http
515/tcp  open  printer
9100/tcp open  jetdirect
MAC Address: xx:xx:xx:xx:xx:xx (Liteon Technology)
Device type: printer
Running: Canon embedded
OS details: Canon MF4360-4390 or 4370dn printer

So the Dell printer is very likely a Canon printer! So I can just find a driver for one of the Canon models listed!

Sadly, no. Canon seems no more interested in providing Linux drivers than Dell does.