After my first Ubunutu Server install (Hardy Heron LTS 8.04), I couldn’t get the local printer setup. Here’s how I fixed it.

I’m a linux newbie and was feeling a bit lost without GUI. Several articles I read said gnome on a server was an unnecessary security risk, so I installed Webmin. But I couldn’t add the printer via Webmin Hardware -> Printers Administration. I kept getting the following error:

Failed to save printer: lpadmin failed :
lpadmin: No such file or directory

I have a brother MFC printer, so I first made sure the printer drivers where installed. I found info on the Ubuntu Brother MFC drivers and installed the package via Webmin System -> Software Packages. But trying to add the printer via Webmin still gave the same error.

I decided to try to install the printer another way, and found out that CUPS was likely the way to do it. I checked the package manager to make sure CUPS was installed. It was.

I then tried the CUPS web interface to see if I could install from there. But I couldn’t get to it. I found some CUPS documentation and realized that by default the CUPS server only listens to requests from localhost. So, I edited the etc/cups/cupsd.conf file:

  • comment out:
    #Listen localhost:631
  • add : (my server host name is “alexander”)
    Listen alexander:631
  • turn on browsing:
    Browsing On

I restarted the CUPS server

sudo /etc/init.d/cupsys restart

and and tried to connect to, but I got a 403 Forbidden error.

After some searching, I discovered that I had change the blocks to add access from the local network. I add “Allow @LOCAL” lines to etc/cups/cupsd.conf file. Changed parts of the file noh now looked like this:

# Only listen for connections from the local machine.
# Listen localhost:631
Listen alexander:631  #added by Carl (alexander is the server's host name)
Listen /var/run/cups/cups.sock

# Show shared printers on the local network.
Browsing On  #turned on by Carl
BrowseOrder allow,deny
BrowseAllow all
BrowseAddress @LOCAL

# Default authentication type, when authentication is required...
DefaultAuthType Basic

# Restrict access to the server...
<Location />
 Order allow,deny
 Allow localhost  #added by Carl
 Allow @LOCAL     #added by Carl

# Restrict access to the admin pages...
<Location /admin>
 Order allow,deny
 Allow localhost  #added by Carl
 Allow @LOCAL     #added by Carl

# Restrict access to configuration files...
<Location /admin/conf>
 AuthType Default
 Require user @SYSTEM
 Order allow,deny
 Allow @LOCAL   #added by Carl

Another CUPS server restart and… I was in! What a beautiful sight: the CUPS GUI.

Now life was good. I clicked “Add Printer,” walked through the GUI steps, and in about 60 seconds the printer was installed.


Update for Ubuntu 10.04:

  • needed to add to cupsd.conf file:  ServerAlias *
  • For my Brother MFC 7420, I had to install: sudo apt-get install brother-cups-wrapper-laser

Update for Canon Printers (thanks Jay!)
Per Jay’s comment below, if you have a Canon printer, don’t use the default cups drivers. Download them from Cannon instead and you should be all set.


Please enter your comment!
Please enter your name here

What is 11 + 14 ?
Please leave these two fields as-is:
IMPORTANT! To be able to proceed, you need to solve the following simple math (so we know that you are a human) :-)