CUPS + Ubuntu server: Help
December 31, 2007 1:46 PM   Subscribe

CUPS server config issues. Why can't I see or use installed printers on my Ubuntu server?

I have an Ubuntu server (Gutsy) running LAMP, CUPS and DHCP, acting as a router for my local network. I have CUPS up and running. Printer is an HP LaserJet 6MP on the parallel port. CUPS found and installed this printer with no issues. I can print test pages from the server or remotely from the CUPS config page at server.address:631. I cannot for the life of me figure out why the hell my laptop is not allowed to print to the server. Every attempt to set up the printer fails (http backend fail, usually). My Mac refuses to see the printer, even though my net access is provided through this server.

I need this printer to be visible on the local subnet (running off of eth1). If I could also access it from home (over eth0, the external NIC) I would be even happier.

Bits from the CUPS config file below:

LogLevel warning
SystemGroup lpadmin
# Allow remote access
Port 631
Listen /var/run/cups/cups.sock
# Share local printers on the local network.
Browsing On
BrowseOrder allow,deny
BrowseAddress @LOCAL
DefaultAuthType Basic
DefaultEncryption Never

Access and admin are set to Allow all; valid user required for admin access. What am I missing here? I've been searching for help on this for three days. Getting kind of pissed that all of what I am finding assumes I either have a GUI rather than command line, and that I'm trying to configure a client rather than a server.

(For those trying to helpfully suggest that a networked printer would be easier: Yeah, it sure would, but I'm not in charge of the IT budget in my workplace. IT funding is locked down. If I can't get this to work, I can't print at all.)
posted by caution live frogs to Computers & Internet (5 answers total)
Hmmm. If your laptop is under windows, have you considered trying SAMBA(Which is IME, a giant PITA, but I got it working, on Win/OSX, unlike raw unix sockets. - Lots of tutorials available online.) or ZeroConfig(Called Bonjour on OSX and windows, and Avahi on Linux (I haven't tried this.)
posted by Orb2069 at 10:00 AM on January 1, 2008

Response by poster: Laptop is OSX. I have Parallels installed but that isn't really an option for everyday printing.

I managed to make the machine work by simply changing every authentication option to Allow from All. I didn't really want to do this, and am really kind of frustrated that using the CUPS configuration page on the server did not do this for me, even though I specifically set the option to allow anyone to access the printer.

Thanks for trying to help, though. I appreciate it.
posted by caution live frogs at 9:28 PM on January 1, 2008

Best answer: Oh: Almost forgot. Also specifically added Listen ip.address.of.server:631 (for each NIC) and Listen *:631, because apparently Port 631 wasn't enough.
posted by caution live frogs at 9:30 PM on January 1, 2008

I just fixed this last week for myself (Mac printing to CUPS printer hosted on Ubuntu over the local network), but I'm at work right now. I'll reply again when I'm home tonight with my settings if you haven't figured it out by then.
posted by jpeacock at 12:35 PM on January 2, 2008

OK, here's what I did to get everything working - this is an HP LaserJet 1000 connected to the USB port on an Ubuntu 7.10 linux box, accessed across the local LAN via my OSX 10.4 iMac:

I was not able to get the Mac to see the printer until I added the 'BrowseAllow all' section, then it appeared. That's the secret - CUPS ships by default in stealth mode.

These are the sections that I edited. Basically I made the listen to be generic - port 631 on all interfaces, then enabled browsing (No -> Yes) and allowed everyone to browse (all). I also allowed everyone to access the root, admin, and config pages. Because this is on the local network I wasn't too concerned about random internet people sending print jobs ;)
# allow external connections on all interfaces
# WAS: Listen localhost:631
Listen 631
# local socket connections
Listen /var/run/cups/cups.sock

# show shared printers on the local network
# WAS: Browsing No
Browsing Yes                                        
BrowseOrder allow,deny
BrowseAllow all                                     
BrowseAddress @LOCAL

# restrict access to the server
<Location />
  Order allow,deny 
  # NEW
  Allow all                                              
  Allow localhost
  Allow @LOCAL

# Restrict access to the admin pages...
<Location /admin>
  Order allow,deny
  # NEW
  Allow all                                             
  Allow localhost
# Restrict access to configuration files...
<Location /admin/conf>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
  # NEW
  Allow all     
  Allow localhost

Don't forget to restart the cupds daemons after making the changes:
sudo /etc/init.d/cupsys restart
(on preview, this is some horrible formatting - pretend all the extra blank lines don't exist!)
posted by jpeacock at 10:43 PM on January 2, 2008

« Older How should I release and distribute my album?   |   Games with Random Flash Action? Newer »
This thread is closed to new comments.