hacker emblem
Search | Tags | Photos | Flights | Gas Mileage | Log in

Lasers in the living room

Started: 2007-01-08 20:14:05

Submitted: 2007-01-08 20:27:40

Visibility: World-readable

After discovering my printer's troubles in the cold, damp basement, I moved the aging LaserJet 4M upstairs, where it worked perfectly. The only problem was I didn't have any good way to connect it to my network, so there was only one obvious solution: a JetDirect card on eBay. I found a J2550 for US$5, plus US$7 for shipping. It arrived today; I plugged it in, replacing the AppleTalk card the printer already had. (Don't ask; my father-in-law apparently picked the printer up, used, sometime in the nineties.)

Getting the printer to work with CUPS took a bit longer than I hoped it would. I was able to reuse my existing print queue, but pointing it to the network rather than the parallel port required some research. The printer accepts TCP connections on port 9100 and behaves as if the connection were a parallel or serial connection.

I quickly figured out the device uri to use to point CUPS to my printer's port 9100:


The CUPS manual even gave me a helpful incantation to set the printer uri without editing the configuration file:

# lpadmin -p lj4 -v socket://lj4:9100

Instead of working, that complained with an unhelpful:

lpadmin: Bad device-uri "socket://lj4:9100"!

Ok, I can handle editing config files myself. No problem; just change the uri in printers.conf and restart CUPS. Then I headed back to the web interface and printed a test page... which complained with the cryptic (and entirely unGooglable) error:

Backend /usr/lib/cups/backend/socket does not exist!

That led me to discover that Debian's CUPS doesn't install all of the available backends by default; in some cases, certain backends may cause problems. I needed to reconfigure the package to select the backend I needed:

# dpkg-reconfigure cupsys

With the socket backend installed, I restarted the print queue and my test page printed flawlessly. Now all I have to do is figure out how to explain the printer sitting next to my television.