====== Printing FAQ ======
===== General Questions =====
==== In which **forum** should I ask general questions? ====
Forum: [[http://forums.openprinting.org/list.php?19|General Discussion]]
==== Is there a checklist of things I need to look for? ====
* Loopback address (127.0.0.1) must be set.
* Loopback has been brought up.
The loopback is standard on all computers, but it must be defined or
many applications will break. It is defined in **''/etc/hosts''**.
If you take a look at **''/etc/hosts''**, you should see that
localhost is defined with the machine name and the loopback address.
cat /etc/hosts | grep 127.0.0.1
Should output something similar to
127.0.0.1 localhost toshy inetw.net
\\
You should also check that the loopback network device has been brought
up. The command **''ifconfig''** should yield an entry similar to
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:30 errors:0 dropped:0 overruns:0 frame:0
TX packets:30 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2076 (2.0 Kb) TX bytes:2076 (2.0 Kb)
==== How do I print from OpenOffice? ====
You need to add the printer to OpenOffice separately. You can do
this by running the**''spadmin''** or **''oopadmin''** program. The **''oopadmin''**
is found in newer versions of OpenOffice. There are two ways to
setup OpenOffice.
First Method: Many newer distributions have the printer setup as a separate
menu choice. For example, in RedHat 9, the
printer setup utility is on the OO menu -- click on the red hat in the lower
left, click on OpenOffice, and there printer setup is right along side
writer, calc, impress, and the rest.
Second Method: Just start OpenOffice. Make a new printer, and when
presented with the **''Choose a Driver''** screen, click on **''import''** and
browse to the location of your printer's PPD.
Use the default print commands, name the printer, set it as default,
and you are ready to go! Start OpenOffice.org1.0 and go to the print
screen, and select your printer. Print a test page, and you are done.
==== Why is the first page blank when I print from OpenOffice? ====
OpenOffice.org (and also other PPD-aware applications or print filters)
inserts printer-specific PostScript code into the PostScript output file
according to the definitions of the options in the PPD file, so that the
printer prints the document in the way the user has configured it by the
options in the "Properties" dialog. These inserted PostScript commands
are **not** generally understood by every PostScript interpreter (every
printer has its own PPD file), so GhostScript does not need to
understand them.
==== How do I know if USB printing is setup on my machine? ====
If you are using any recent distribution, USB is probably already
setup on your machine. You can still check it yourself.
Please note that you may need root privelages for many
of the commands.
Here are the steps to find out if you have USB setup and
enabled for printing.
1. Check your loaded **''Modules''**.
2. See if the USB **''Printer Driver''** is listed.
3. Look at the **''Kernel Log''** for usb traffic.
4. Look at the list of **''Attached Devices''**.
**Modules**
You can search the currently loaded modules.
This method is the quickest, but won't work if your USB drivers are
compiled into the kernel, the printer driver has been renamed, or
the modules simply are not loaded.
lsmod | grep printer # printer
If you see **''printer''** as the output, then you probably
have USB printing setup and working. If not, don't worry. This
command will fail on many systems.
**Printer Driver**
You can search the list of USB drivers available on your system,
and look for the **''usblp''** driver. If
the USB driver has been renamed, this method may fail.
cat /proc/bus/usb/drivers | grep usblp # 0- 15: usblp
If the **''usblp''** device is there, then you have a USB printer
driver. If not, try loading the printer driver manually
modprobe printer
cat /proc/bus/usb/drivers | grep usblp # 0- 15: usblp
If you see an error message like
cat: /proc/bus/usb/drivers: No such file or directory
then you need to make sure that you have[[http://www.linux-usb.org/USB-guide/x173.html|usbfs]]
mounted and enabled. See[[http://www.linux-usb.org/USB-guide/x173.html|http://www.linux-usb.org/USB-guide/x173.html]]
**Kernel Log**
We will use the **''tail''** command to look at the kernel
log messags. If you don't know what a UNIX tail does, then
man tail
Run the **''tail''** command on your kernel or
system log files, and then disconnect and reconnect the printer.
You will see the kernel print messages about the event.
I can't tell you where your system log is, or what it is called,
because it varies between distributions. Log files are usually
located in **''/var/log/''**. Some common names are **''sys.log''**
and **''system.log''**.
tail -f /var/log/sys.log
Now, disconnect and reconnect the printer to see it register. Example Output
Mar 19 04:32:06 localhost kernel: hub.c: USB new device
connect on bus1/1/4/4, assigned device number 12
Mar 19 04:32:07 localhost kernel: printer.c: usblp0: USB Bidirectional printer
dev 12 if 0 alt 1 proto 2 vid 0x050D pid 0x0002
If there is no activity, you probably don't have USB enabled
at all. There is one last thing to try.
**Attached Devices**
You can check the list of all USB devices that are installed and
recognized on your system. This method will tell you if your
printer is being recognized or not, even if the printer modules
is not loaded.
cat /proc/bus/usb/devices | grep usblp
Outputs something like
I: If#= 0 Alt= 0 #EPs= 1 Cls=07(print) Sub=01 Prot=01 Driver=usblp
I: If#= 0 Alt= 1 #EPs= 2 Cls=07(print) Sub=01 Prot=02 Driver=usblp
I: If#= 0 Alt= 2 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=ff Driver=usblp
if you see an error
cat: /proc/bus/usb/drivers: No such file or directory
then you don't have[[http://www.linux-usb.org/USB-guide/x173.html|usbfs]] mounted
or enabled. See[[http://www.linux-usb.org/USB-guide/x173.html|http://www.linux-usb.org/USB-guide/x173.html]]
If you have USB enabled, but the USB
printer driver is not working, then you can get around this by
comparing the USB devices list before and after your printer has
been plugged in.
cat /proc/bus/usb/devices > log1
Now (dis)connect the printer.
cat /proc/bus/usb/devices > log2
Compare the two logs, they should be different.
diff log1 log2
The output will vary, an example output is
< T: Bus=01 Lev=03 Prnt=08 Port=03 Cnt=02 Dev#= 10 Spd=12 MxCh= 0
< D: Ver= 1.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
< P: Vendor=050d ProdID=0002 Rev= 1.04
< C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr= 98mA
< I: If#= 0 Alt= 0 #EPs= 1 Cls=07(print) Sub=01 Prot=01 Driver=usblp
< E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
< I: If#= 0 Alt= 1 #EPs= 2 Cls=07(print) Sub=01 Prot=02 Driver=usblp
< E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
< E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
< I: If#= 0 Alt= 2 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=ff Driver=usblp
< E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
< E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
< E: Ad=83(I) Atr=03(Int.) MxPS= 4 Ivl=1ms
If you see something like **''Driver=''** then the USB
printer driver is not loaded on your machine. Try
modprobe printer
Disconnect and reconnect the printer, and check the devices
list again.**''cat /proc/bus/usb/devices | grep usblp''**
It should now say **''Driver=usblp''**.
If nothing up to this point worked, you can try to load all
the USB modules by hand, and start over.
modprobe usbcore.o usb-uhci.o usb-ohci.o printer.o
Most systems don't need both **''uhci''** and **''ohci''**
drivers.
==== How do I find out where my USB printer is connected? ====
If you have USB printing working, then you will need a
node so that programs can communicate with the device.
To see if a node has already been created
cd /dev
find | grep usb
You should have an **''lp''** entry, similar to one of these.
/dev/usblp
/dev/usblp0
/dev/usb/lp0
These **''lp''** entries indicate a parallel port, not a
USB printer.
lp0
lp1
lp2
lp3
If the USB printer node is not there, then you will need to
create it.[[http://www.linux-usb.org/USB-guide/x342.html|http://www.linux-usb.org/USB-guide/x342.html]]
If the printer still won't print to the device, try deleting
it and recreating node. Old versions of the USB manual contained
a different **''mknod''** command, and your system may have the incorrect
device numbering. Use the **''rm''** command to delete
the node, and **''mknod''** to recreate the node according to
the [[http://www.linux-usb.org/USB-guide/x342.html|USB manual]]
at [[http://www.linux-usb.org/USB-guide/x342.html|http://www.linux-usb.org/USB-guide/x342.html]]
==== How do I determine which print spooler I am using? ====
**CUPS**
Browse your local machine at port 631, and if a printer web interface comes
up, you have CUPS installed and running on that machine.
[[http://localhost:631|http://localhost:631]][[http://127.0.0.1:631|http://127.0.0.1:631]]
As root, you can find out if you have CUPS installed.
which cupsd # /usr/sbin/cupsd
If you look at the file **''/etc/printcap''** and the printer names do not
have any lines following them, you are most likely using CUPS. The top of
the file may also say it was generated by cupsd.
cat /etc/printcap
If you are using any other spooler, the **''/etc/printcap''** file
will contain many more lines for each printer entry.
p2raw|wmakerp2-raw|wannamaker_p2_raw_postscript_files|[Apple_Laserwriter16/600PS]:\
:lp=:mx#0:rm=wmakerp1.oit.duke.edu:\
:rp=text:\
:sd=your_spool_directory_path_name_for_p2raw:\
:sd=/usr/spool/lpd/p2raw
:lf=p2_raw_printer_log_file_pathname
:lf=/usr/spool/lpd/p2rawlog
==== Why does my Panasonic laser printer says **''Call Service E31''**? ====
The fuser is not able to maintain temperature.
See:[[http://groups.yahoo.com/group/printerrepair/message/1310|http://groups.yahoo.com/group/printerrepair/message/1310]][[http://www.mail-archive.com/filmscanners@halftone.co.uk/msg18698.html|http://www.mail-archive.com/filmscanners@halftone.co.uk/msg18698.html]][[http://www.driverguide.com/forums/printer/pana/messages/1427.html|http://www.driverguide.com/forums/printer/pana/messages/1427.html]]
==== Why do I get the error **''No valid software licence was found''**? ====
This can be caused by running the program **''/usr/sbin/printers''**
which is a proprietary application. Please obtain a license from
easy software. See [[http://www.easysw.com/printpro/faq0002.html|http://www.easysw.com/printpro/faq0002.html]]
==== How do I print to a ZOT wireless print server? ====
The Zero One Technology print server is an arm processor running
Linux. They are available with both centronics and usb connectors,
and they work well with Linux. They are also very stable, and do not
require reboots.
The models known to be working are:
* PU100W (usb)
* PA100W (centronics parallel port)
If you have tftp, the print server supports tftp'ing the MAC address
to upload and download a configuration file. In this case, the
MAC address is simply the "Node ID" printed on the print server.
Refer to the manual on the included CD-ROM for directions.
To use a web browser, you will need the print server's IP address.
The print server comes with a fixed IP address. To discover what it
is, you can do the following steps.
1. Download and install [[http://freshmeat.net/projects/arpmonitor/?topic_id=152%2C156|arpmonitor]]
which is locate at [[http://planeta.terra.com.br/informatica/gleicon/code/index.html|http://planeta.terra.com.br/informatica/gleicon/code/index.html]]
2. Start arpmonitor, so that it will monitor the wireless network, and
report activity to STDERR. This program must be run as root.
arpmonitor -i eth0 -e
\\
3. Power cycle (turn off, then back on) the print server.
4. Monitor the arpmonitor output for new IP addresses. IIIRC, the print
server announced itself as 192.168.4.1.
5. Change your wireless network settings so you are on the same subnet.
I would recommend, as root, to bring your primary network interface down.
ifconfig eth0 down
Now bring up the interface on the same subnet as the router.
ifconfig eth0 192.168.4.2 up
\\
6. Start a web browser, and in the URL bar, type the IP address of the
printer.
[[http://192.168.4.1|http://192.168.4.1]]
\\
7. Now you can configure the printer. I would recommend keeping a static
IP address, but change the IP address so the printer is on the same
subnet that you normally use with wireless printing.
8. **CUPS Configuration:** To configure CUPS is simple. All the steps
except the URI entry should be self explanatory. Configure CUPS using
the local interface [[http://localhost:631|http://localhost:631]] click on "Printers" and then
"Add Printer".
9. **CUPS URI:** While several backends work, I only tested the LPD
backend. For **Device** select LPD/LPR Host or Printer,
and click continue. The URI you want to type in is
lpd://printerip/lp1
For example, since I configure my print server to be on 192.168.254.1
lpd://192.168.254.1/lp1
===== Printing to and from Windows =====
==== How do I serve Windows clients from GNU/Linux? ====
Set up [[http://samba.org/|samba]] on GNU/Linux to handle the Windows clients.
==== How do I print to a non-postscript printer attached to a Windows server? ====
Setup Postscript emulation by install[[ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/gnu/current/|GhostScript/GSview]]
for windows.
These pages will give you a general idea of how to setup postscript emulation.
* [[http://mywebpages.comcast.net/heretrythis/hp3100/|Networking the HP LaserJet 3100, Making the Bastard Work]]
* [[http://mywebpages.comcast.net/heretrythis/hp3100/psemu9x.html|Win 9X]] page
* [[http://mywebpages.comcast.net/heretrythis/hp3100/psemunt.html|Win NT/2K/XP]] page.
==== How do I find a printer driver for an unlisted PostScript printer? ====
If you have a PostScript version 2 or 3 compatible printer, and
the printer is not listed on //openprinting.org//, then most likely
the printer manufacturer offers a driver on their installation disk.
Locating the driver is not easy. What you are looking for is a
text file with an extension **''.PPD''** or **''.ppd''** or similar. The
file may be "hidden" in a zip archive, which can have an extension**''.zip''** or **''.exe''**. You can use the program **''unzip''** to unzip
both of these types of archives, and search the files for a PPD.
You can also try contacting the manufacturer technical support, and
searching their website for a downloadable driver.
If you are unable to find a PPD file from the manufacturer, try
using a PPD file from a printer with similar features to yours. It
is important to match resolution.
Finally, a Adobe provides a number of PPD files.[[http://www.adobe.com/support/downloads/product.jsp?product=44&platform=Windows|http://www.adobe.com/support/downloads/product.jsp?product=44&platform=Windows]]
==== Why are printers suddenly unable to print? ====
It's possible that the Samba **''*.tdb''** files, used by Samba to
store print queue info which a native NT print server would store in
the "Registry", got corrupted when the power failed.
The **''tdbtool''** may be able to verify that. **''tdbtool''** is a Samba developer
tool and not compiled or installed by default.
Either you have a *.tdb backup, created with **''tdbbackup''**, or you need to
re-install all queues...
===== SAMBA =====
==== How come SAMBA 2.9999 doesn't work? ====
Version 2.9999 is alpha software. If you want to assist SAMBA
development, [[http://lists.samba.org/mailman/|report bugs to them]].
Otherwise, downgrade to a [[http://www.samba.org/|stable version]].
==== Can I auto-download a driver to a Windows client from CUPS? ====
Yes. See
[kpfeifle/LinuxKongress2002/Tutorial/IX.CUPS-Samba/IX.Samba-HOWTO-Collection-Chapter-7.html CUPS and SAMBA Howto]
Tip: If you use Foomatic or Gimp-Print PPDs, check the **''*NickName''** lines
in the PPDs and if they contain a comma, remove the comma (will be fixed
later in Foomatic).
==== What should the URI look like? ====
It is easy to use the incorrect URI. They are case-sensitive.
The URI should look like this:
smb://username:password@workgroup/computername/printername/
==== Why do I get **''Access denied''** printing from Windows to GNU/Linux? ====
Probably your samba configuration **''smb.conf''** is not allowing
access. If you do not enable a guest account, then only clients with an
account on your GNU/Linux machine will be able to connect and share
files/services. You should also check your hosts deny and hosts allow
statements in your samba configuration, to verify that other machines on
your local network are permitted to connect. Finally, I believe your
printer entries must specify **''public = yes''** and **''printable = yes''**.
If all this appears to be in order, there is still the issue of password
encryption. You must make sure that both the clients and your GNU/Linux
machine are treating passwords the same (encrypted or unencrypted).
==== Why does SMB PostScript show the wrong DPI choices? ====
Anything that parses a PPD expects two formats for
the internal naming of resolutions: either **''###dpi''** or **''###x###dpi''**.
The Gimp-Print PPDs use a sensible but non-offical internal naming format,
like 360sw, 720x360sw and 360swuni.
CUPS, being more flexible than offical Postscript, parses these internal
names without trouble, so the web interface works without problems.
However, the PostScript Generic driver for Windows does not recognize the
resolution format, fails to parse it and puts up **''300dpi''** as default in
the resolution combo box because it doesn't know what else to do.
Modify the Epson Stylus Color 900 PPD so that the internal names
follow the standard format. I.E.:
360x360dpi instead of 360sw
720x720dpi instead of 720sw
In the special options:
365x365dpi instead of 360swuni (the unidirectional option)
Because the 365x365dpi is an internal name only, the combo box in the
Windows and CUPS setup still shows **''360dpi Unidirectional''** as the choice.
And ultimately it does not matter, because it adds the proper HWResolution
command to the PS file.
==== How do I configure **''Gimp''** for printing? ====
1. Click the **''Printer Setup''** button in the printing dialog of the GIMP
2. In the upcoming dialog choose **''PostScript Level 2''** as printer model
3. Very Imported: Remove the **''-oraw''** from the printing command
4. Choose the PPD file of your print queue **''/etc/cups/ppd/.ppd''** as
the printer´s PPD file.
5. After clicking **''OK''** you will be able to choose the most important options for
your printer
6. Print.
===== Invoking Summary =====
==== How do I find out what options my printer supports? ====
Print the Invoking Summary.**''lpr -o docs /proc/cpuinfo''**
==== What is an Invoking Summary? ====
It is a list of **''-o''** options you can
pass to the **''lpr''** command. You can tell your printer to print
it out.
==== How do I get the Invoking Summary? ====
Do **''lpr -o docs /proc/cpuinfo''** or
lpr -o docs LaTeXConfig.lyx
where **''LaTeXConfig.lyx''** can be any file.
Here is the template for this command:
lp -P -o docs
===== LAN =====
==== Which file controls LAN printing permissions? ====
Edit **''/etc/lpd.perms''**.
==== How do I find the port number of my networked printer? ====
If you do not know the port number or the protocol of
the printer's network interface, do
nmap
This lists all open ports of the box.
* Port 515 is the LPD port
* 139 is the SMB (Samba, Windows) port.
* Numbers bigger than 1023 are most probably TCP/Socket ports.
We recommend you use the TCP/Socket protocol, because it requires only the
* hostname
* IP address
* Port Number
For the LPD protocol you would need the printer's internal queue name,
and there is no known way to auto-detect it.
For the TCP/Socket protocol simply use a CUPS URI like
socket://:
The most frequently used port for that is **''port 9100''**.
===== Hardware =====
====**''cannot open /dev/lp0 - No such device or address''**? ====
Many people have found that GNU/Linux will not detect their parallel port
unless they disable "Plug and Play" in their PC BIOS. See
[howto/kernel.html Chapter 4] of
[howto/kernel.html [[http://www.openprinting.org/howto/kernel.html|http://www.openprinting.org/howto/kernel.html]]]
==== What receipt printers works with GNU/Linux? ====
Probably the
* Epson TM-88II
* Samsung SRP350
is what you are looking for. Some driver modifications may be required.
==== Which printers have a straight printer path? ====
Inkjets (which with free operating systems)
* Epson Stylus Photo 900
* Epson Stylus Photo 950
* Epson Stylus Pro 7xxx
* Epson Stylus Pro 9xxx
* Epson Sytlus Pro 10xxx
==== Which printers can print on a CD-ROM? ====
The
* Stylus Photo 900 (1 black, 1 5-color cartridge)
* Stylus Photo 950 (6 separate cartridges)
Both come with a tray for printing CDs. This tray is a more or less
Letter-sized plastic board with a hole for a CD in it. You can print
on the CD the same as you would paper.
==== How do I print thick (1mm) paper/cardboard? ====
You must put the paper thickness lever into the envelope or
CD position depending on the thickness of the material.
On the Epson Stylus Pro large-format printers you simply proceed as with
single paper sheets.
==== Why does printing **''align.ps''** outputs text? ====
The GhostScript version of align.ps is missing a necessary header,
and the spooler fails to correctly recognize it as PostScript.
Try [[http://www.openprinting.org/download/printing/align.ps|http://www.openprinting.org/download/printing/align.ps]].
==== Why does the computer freeze when I connect a USB cable? ====
This is not a printing problem. It is either a hardware
problem, or a kernel (software) problem.
==== How do I print to a firewire printer? ====
Check whether the printer appears as a SCSI device.
cat /proc/scsi/scsi
If so, you need a CUPS version with SCSI backend (the current 1.1.x has it):
Check for the existence of
/usr/lib/cups/filter/scsi
When you have this file (with or without update of CUPS), restart the
CUPS daemon and do
lpinfo -v
If there is a SCSI entry, this is the entry for your printer. Use this
URI when setting up your print queue.
If this does not help, please post on a Forum of CUPS:[[http://www.cups.org/newsgroups.php|http://www.cups.org/newsgroups.php]]
==== I don't have USB, how do I print to a USB printer? ====
The only solution is that you buy a USB controller PCI card.
==== Is it possible to print throught the PS/2 Port? ====
There are no known USB adapters for the PS/2 mouse port. There
are also no low level driver in the Linux kernel which allow printing
through the PS/2 port.