SDB:Installing a Printer
tagline: From openSUSE
Contents |
[edit] Situation
You like to install your printer.
First, check that the prerequisites below are fulfilled.
For information about printing basics see Concepts printing.
[edit] Prerequisites
[edit] The printer must be supported by openSUSE
Information about printers supported by openSUSE:
- PostScript printers are supported, see Concepts printing
- HCL:Printers
- Run the YaST printer module and check the list of models therein, You do not need to have a printer connected to do this. Click "Add" and set up a print queue for an imaginary printer. Use the "Search" functionality to find out if there are drivers (i.e. printer description files) available for a particular model in your currently installed openSUSE version. Read the help texts in YaST when you set up an imaginary printer.
- Run as root the command "lpinfo -l -m | less" (type 'q' to quit) which also shows information about the installed printer description files (PPD files) of your currently used openSUSE version.
Information about printers supported by Linux (not necessarily supported by openSUSE):
- OpenPrinting at the Linux Foundation
- Supported Printers of the Gutenprint (formerly called Gimp-Print) project
- Supported Printers of the HP Linux Imaging and Printing project
- Printer Compatibility list of the Ghostscript project
The accuracy of the above sources cannot be guaranteed, as the Linux support information is usually based on customer and user statements. Moreover, "supported" usually means "average quality and performance", see SDB:Purchasing a Printer and Compatibility.
If you own a so called "GDI printer" (a printer that does not understand a standard printer language), it is probably not supported by Linux, see SDB:GDI Printers.
[edit] The printer must be accessible
[edit] USB printers
When the printer is connected to the USB, and when it is the only printer which is connected to the USB, reload the kernel module for direct USB printer access (as root):
rmmod usblp modprobe usblp
You can test if the printer is accessible as first USB printer via /dev/usb/lp0 using the following command (as root):
echo -en "\rHello\r\f" >/dev/usb/lp0
If the above "rmmod usblp" command did show an error message like "Module usblp does not exist in /proc/modules" the usblp kernel module was not loaded before so that you may unload the usblp kernel module with "rmmod usblp" after the test to go back to the state before the test.
[edit] Parallel port printers
When the printer is connected to the first parallel port, the BIOS settings for the first parallel interface should be set as follows:
- IO address 378 (hexadecimal)
- Interrupt 7
- Mode "Normal" or "SPP" or "Output-Only" (other modes may not work)
- DMA is disabled (should be automatically switched off using the modes above)
You can test if the printer is accessible via the first parallel port /dev/lp0 using the following command (as root):
echo -en "\rHello\r\f" >/dev/lp0
If this does not work, you may try to unload the kernel modules for the parallel port (as root):
rmmod lp rmmod ppdev rmmod parport_pc rmmod parport
When there is parallel port hardware in your computer, at least the kernel modules parport, parport_pc, and lp should be loaded by default, otherwise you cannot access a parallel port printer. If you get error message like "Module ... does not exist in /proc/modules", the particular kernel module was not loaded which indicates why it failed to access your parallel port printer.
Afterwards load them anew (as root):
modprobe parport modprobe parport_pc modprobe ppdev modprobe lp
Finally retry the "echo ..." command above.
[edit] Network printers
To test if a network printer is accessible, see "Testing those connections" at SDB:Printing via TCP/IP network.
[edit] GDI printers are usually not supported
The above "echo ..." tests should result one sheet with the word Hello printed on it. The printer must be able to print plain ASCII text directly without any additional printer driver software (in this case, the word Hello surrounded by the ASCII character \r, which initiates a carriage return, and followed by the ASCII character \f, which initiates a form feed).
Printers unable to print ASCII text are most likely GDI printers, but there are some printers that cannot print ASCII text but work with Linux nevertheless.
[edit] Printer Installation and Configuration
Run the YaST printer module for the printer installation and configuration. The YaST Printer module can be found in the YaST Control Center under Hardware -> Printer.


