Frugalware uses the Common Unix Printing System (CUPS) for handling printers and to manage printing.

1. Before you start

Here comes a few advice depending on what manufacturer made your printer.

1.1. Hewlett-Packard

You need hpijs at least, but you can also install hplip for advanced HP support. Also if you have got some priter&scanner machine it’s a good idea to use hplip.

1.2. Canon

Most likely you need one of the bjfilter packages. The following list tell you which package you should use.

  • bjfilter-2.2: Canon Pixus 550i / 850i / 950i (i550 / i850 / i950) and iP90 Driver

  • bjfilter-2.4: Canon Pixus 560i / 860i / 960i (i560 / i860 / i960) Driver

  • bjfilter-2.5: Canon Pixus iP3100 / iP4100 / iP8600 (and Pixma iP1000 / iP1500) Driver

  • bjfilter: Canon Pixus iP2200 / iP4200 / iP6600D / iP7500 / MP500 Driver

Please report us if your printer does not listed or listed, but in the wrong line!

1.3. Epson

If you own an Epson Color InkJet Printer you need the pipslite package. After installing the package do not forget to restart cups and start the ekp daemon!

sudo service cups restart
sudo service ekpd start
sudo service ekpd add
Note
Till now nobody confirmed that this package actually works.

1.4. Samsung

The Samsung printer driver for cups is called splix. After installing it and restarting cups you will find your printer when you add it in cups.

2. Configuring the printer

  1. Open your favorite Internet browser and go to http://localhost:631. This is the Web interface of CUPS.

  2. Select Administration from the top menu. If a username is required, type root, and give your root password.

  3. You can do almost everything here in connection with printing. In our example, we will add a new local printer.

  4. Click Add Printer, type in a name and optionally fill the Location and Description lines, then click on continue.

  5. Select Device, in most cases it is Parallel Port #1 for older models and one of the USB ports for newer ones. I you have got a USB printer cups will write the printer name next to the proper port.

  6. On the next page, select your vendor and your printer type (the driver/filter).

To set up a remote Windows share with password, give a string like this for location (the share name is the printer’s assigned name on the remote system): smb://user:passwd@Netbios_Name_or_ip_address/Share_name

Notice that, when you view the printer configuration, the credentials will not be shown but will be used.

3. My printer is not listed

If your vendor or printer type isn’t listed in the wizard, you have to check the OpenPrinting site whether if is supported under Linux or not. Usually it’s enough to install the proper printer driver (see above) or gutenprint. After installing do not forget to restart cups:

# service cups restart

If it’s not on the page mentioned above, then try to Google after. If listed but said to be "paperweight", then there is nothing to do. If it is supported and said to be working on the site, then please file a bug report with your printer details. While we fix the bug, you can install the driver (the ppd) by yourself.

On the left side, select Printer Listings. Then select your device’s vendor and proper type. On the results page, select download PPD. After download, there will be a file named someting_that_ends_with.ppd.

Save the PPD file in the directory /usr/share/cups/model/. The PPD file doesn’t have to be executable, but it should be world-readable and should have the file extension ".ppd".

If you do not want to search ppd, try to install foomatic-filters-ppds package. It has a bunch of ppd files for various printers.

Then restart the CUPS service: su -c \'service cups restart\'. The driver installation is now completed, now you can add your printer via the web interface. A good howto can be found at http://www.linux-foundation.org/en/OpenPrinting/Database/CUPSDocumentation.

4. Multiple pages on a single sheet

This is also known as n-up printing. If an application doesn’t support it natively, print the document to a file as PostScript and use psnup:

$ psnup -2 print.ps > print2page.ps

The first option specifies the number of pages stacked on one physical sheet, the second is the filename of the original one-sided document, and the last is the n-up (two-sided) document. You can then print it with

$ cupsdoprint -P nameofprinter foo.ps

or open it in your favourite PS viewer.

5. Troubleshooting

If something goes wrong, check out CUPS log at /var/log/cups. There is a verbose error log and an access log, too.