Site Map - skip to main content

Hacker Public Radio

Your ideas, projects, opinions - podcasted.

New episodes every weekday Monday through Friday.
This page was generated by The HPR Robot at

hpr1194 :: Copying a Printer Definition File Between Systems

Copying a Postscript Printer Definition (PPD) file between systems for use with CUPS

<< First, < Previous, , Latest >>

Thumbnail of FiftyOneFifty (R.I.P.)
Hosted by FiftyOneFifty (R.I.P.) on 2013-02-28 is flagged as Explicit and is released under a CC-BY-SA license.
CUPS, PPD, Postscript Printer Definition. (Be the first).
The show is available on the Internet Archive at:

Listen in ogg, spx, or mp3 format. Play now:

Duration: 00:18:55


I recently learned where Linux stores the PPD created when you set up a printer and how to copy it between PCs.  I'd like to briefly share that information with you.

This is how to copy a printer definition file (equivalent of a printer driver) from a system where the printer is already configured to another system that you want to be able to access the same printer.  Reasons you might need to do this:

a.  The normal CUPS (Common Unified Printing System) set up doesn't have the right definition file for your printer.  In rare instances, you might have to download a ppd from the manufacturer or another source.  If so, copying the ppd may be easier than downloading it again.

b.  You configure CUPS and find there are no pre-provided printer drivers.  I thought this was the case when I first tried to configure CUPS under Linaro on my ODroidX.   For all intents and purposes, Linaro is an Arm port of mainline Ubuntu (Unity included).  I installed CUPS via Aptitude and tried to configure a printer as I would on any Linux system.  When I got to printer selection, the dropdown to select a manufacturer (the next step would be to choose a model) was greyed out, as was the field to enter a path to a ppd file.  I closed the browser and tried again, and the same thing happened.  This is what prompted me to find out where to find a PPD file on another system and copy it.  I never got to see how it would work, because when I had the ppd file copied over and ready to install, the manufactures and models in CUPS were already populated.  There had bee an update between my first and second attempts to configure CUPS on the ODroidX, but I'd rather say it was a glitch the first time, instead of the ppd's suddenly showing up in the repo.

c.  When I installed Arch on another system, I found there was far less options for choosing models, in my instance, there was only one selection for HP Deskjets.  I suspect borrowing the model specific ppd from another distro will increase the functionality of the printer.

Copying the ppd

1.  On the computer where the printer is already configured, find the .ppd (Postscript Printer Definition) file you generated (filename will be the same as the printer name) in /etc/cups/ppd/model (or possibly just /etc/cups/ppd, neither my ODroidX or my Fedora laptop have the "model" folder).
2. Copy to your home folder on the new system (You can't place the file in it's final destination yet, unless you are remoted in as root)
3. According to the post I found on, CUPS looks for a GZipped file [ gzip -c myprinter.ppd > myprinter.ppd.gz ; the '-c' arguement creates a new file, rather than gzipping the old one, and you use redirection to generate the new file.]  Recall that I never got to try this, because when I re-ran CUPS, the printer selections were already populated. 
4. Copy the archived file to /etc/cups/ppd/model on the machine that needs the printer driver

Configure CUPS (IP Printer)
1. Open localhost:631 in a browser
2. Click Administration tab
3. Click "Add a Printer" button
4. Log in as an account with root priviledges
5. For Ethernet printers, select "AppSocket/HP JetDirect" button and click "Continue"
6. From the examples presented, " socket://PRINT_SERVER_IP_ADDRESS:9100  " works for me, click continue
7. On the next page, fill in a printer name, this will be the file name for the PPD generated as well as how the printer is labled in the printer select dialog.  The other fields are optional.  Click continue.
8. (I am assuming if the LinuxQuestions post was right, CUPS will find the gz file and show the manuafacturer and model as options) From the list, select a manufacturer, or input the path to your PPD file
9. Select the printer model
9a.I think you could copy over the ppd as is and type the path to it in the field where it asks for a ppd file. 
10.Modify or accept the default printer settings

Or just copy the ppd and compare the settings in /etc/cups/printers.conf


Subscribe to the comments RSS feed.

Leave Comment

Note to Verbose Commenters
If you can't fit everything you want to say in the comment below then you really should record a response show instead.

Note to Spammers
All comments are moderated. All links are checked by humans. We strip out all html. Feel free to record a show about yourself, or your industry, or any other topic we may find interesting. We also check shows for spam :).

Provide feedback
Your Name/Handle:
Anti Spam Question: What does the letter P in HPR stand for?
Are you a spammer?
What is the HOST_ID for the host of this show?
What does HPR mean to you?