Network Printer URIs

Once you have set the IP address you can access the printer or print server using the ipp, lpd, or socket backends. The following is a list of common network interfaces and printer servers and the settings you should use with CUPS:

Table 1: Common Device URIs
Model/Manufacturer Device URI(s)
Apple LaserWriter lpd://address/PASSTHRU
Axis w/o IPP
Axis OfficeBasic
(see directions)
socket://address:9100
socket://address:9101
socket://address:9102
Axis w/IPP ipp://address/LPT1
ipp://address/LPT2
ipp://address/COM1
Castelle LANpressTM lpd://address/pr1
lpd://address/pr2
lpd://address/pr3
DPI NETPrint lpd://address/pr1
lpd://address/pr2
lpd://address/pr3
DLink DP-301P+ socket://address
EFI® Fiery® RIP lpd://address/print
EPSON® Multiprotocol Ethernet Interface Board socket://address
Extended System ExtendNET lpd://address/pr1
lpd://address/pr2
lpd://address/pr3
Hewlett Packard JetDirect w/o IPP socket://address:9100
socket://address:9101
socket://address:9102
Hewlett Packard JetDirect w/IPP ipp://address/ipp
ipp://address/ipp/port1
ipp://address/ipp/port2
ipp://address/ipp/port3
Intel® NetportExpress XL, PRO/100 lpd://address/LPT1_PASSTHRU
lpd://address/LPT2_PASSTHRU
lpd://address/COM1_PASSTHRU
LexmarkTM MarkNet lpd://address/ps
Linksys EtherFast®
(see directions)
socket://address:4010
socket://address:4020
socket://address:4030
Linksys PSUS4 lpd://address/lp
Kodak® lpd://address/ps
QMS® CrownNetTM lpd://address/ps
Tektronix® PhaserShareTM socket://address:9100
XEROX® 4512 NIC lpd://address/PORT1
XEROX® XNIC lpd://address/PASSTHRU
XEROX® (most others) socket://address:5503

Getting the IP Address

When you first install a network printer or print server on your LAN, you need to set the Internet Protocol ("IP") address. On most higher-end "workgroup" printers, you can set the address through the printer control panel. However, in most cases you will want to assign the addresses remotely from your workstation. This makes administration a bit easier and avoids assigning duplicate addresses accidentally.

To setup your printer or print server for remote address assignment, you'll need the Ethernet Media Access Control ("MAC") address, also sometimes called a node address, and the IP address you want to use for the device. The Ethernet MAC address can often be found on the printer test page or bottom of the print server.

Configuring the IP Address Using ARP

The easiest way to set the IP address of a network device is to use the arp(8) command. The arp sends an Address Resolution Protocol ("ARP") packet to the specified Ethernet MAC address, setting the network device's IP address:

arp -s ip-address ethernet-address
arp -s host.domain.com 08:00:69:00:12:34
arp -s 192.0.2.2 08:00:69:00:12:34

Configuring the IP Address Using RARP

The most flexible way to remotely assign IP addresses under UNIX is through the Reverse Address Resolution Protocol ("RARP"). RARP allows a network device to request an IP address using its Ethernet MAC address, and one or more RARP servers on the network will respond with an ARP packet with the IP address the device can use.

RARP should be used when you have to manage many printers or print servers, or when you have a network device that does not remember its IP address after a power cycle. If you just have a single printer or print server, the arp command is the way to go.

Some UNIX operating systems use a program called rarpd(8) to manage RARP. Others, like Linux, support this protocol in the kernel. For systems that provide the rarpd program you will need to start it before RARP lookups will work:

rarpd

Under IRIX you can enable this functionality by default using:

chkconfig rarpd on

Both the rarpd program and kernel RARP support read a list of Ethernet and IP addresses from the file /etc/ethers. Each line contains the Ethernet address (colon delimited) followed by an IP address or hostname like:

08:00:69:00:12:34 myprinter.mydomain.com
08:00:69:00:12:34 192.0.2.2

Add a line to this file and cycle the power on the printer or print server to set its address.

Configuring the IP Address Using BOOTP

The BOOTP protocol is used when you need to provide additional information such as the location of a configuration file to the network interface. Using the standard bootpd(8) program supplied with UNIX you simply need to add a line to the /etc/bootptab file; for IRIX:

myprinter 08:00:69:00:12:34 192.0.2.2 myprinter.boot

Newer versions of bootpd use a different format:

myprinter:ha=080069001234:ip=192.0.2.2:t144=myprinter.boot

The myprinter.boot file resides in the /usr/local/boot directory by default. If you do not need to provide a boot file you may leave the last part of the line blank.

Note:

Some versions of UNIX do not enable the BOOTP service by default. The /etc/inetd.conf usually contains a line for the BOOTP service that can be uncommented if needed.

Verifying the Printer Connection

To test that the IP address has been successfully assigned and that the printer is properly connected to your LAN, type:

ping ip-address

If the connection is working properly you will see something like:

ping myprinter
PING myprinter (192.0.2.2): 56 data bytes
64 bytes from 192.0.2.2: icmp_seq=0 ttl=15 time=5 ms
64 bytes from 192.0.2.2: icmp_seq=1 ttl=15 time=3 ms
64 bytes from 192.0.2.2: icmp_seq=2 ttl=15 time=3 ms
64 bytes from 192.0.2.2: icmp_seq=3 ttl=15 time=3 ms

If not, verify that the printer or print server is connected to the LAN, it is powered on, the LAN cabling is good, and the IP address is set correctly. You can usually see the current IP address and network status by printing a configuration or test page on the device.

Configuring Axis Print Servers

The Axis print servers can be configured using ARP, RARP, or BOOTP. However, on models that do not provide IPP support an additional step must be performed to configure the TCP/IP portion of the print server for use with CUPS.

Each print server contains a configuration file named config that contains a list of network parameters used by the server. To modify this file you must first download it from the print server using the ftp(1) program:

ftp ip-address
Connected to ip-address.
220 Axis NPS ### FTP Printer Server V#.## MON DD YEAR ready.
ftp> user root
331 User name ok, need password
Password: pass (this is not echoed)
230 User logged in
ftp> get config
local: config remote: config
200 PORT command successful.
150 Opening data connection for config (192,0,2,2),
(mode ascii).
226 Transfer complete.
##### bytes received in #.## seconds (##### Kbytes/s)
ftp> quit
221 Goodbye.

Next, edit the file with your favorite text editor and locate the lines beginning with:

RTN_OPT.     : YES
RTEL_PR1.    : 0
RTEL_PR2.    : 0
RTEL_PR3.    : 0
RTEL_PR4.    : 0
RTEL_PR5.    : 0
RTEL_PR6.    : 0
RTEL_PR7.    : 0
RTEL_PR8.    : 0

Change the RTN_OPT line to read:

RTN_OPT.     : NO

This disables the Reverse TELNET protocol and enables the standard TELNET protocol on the print server. Next, assign a port number for each parallel and serial port on the server as follows:

RTEL_PR1.    : 9100
RTEL_PR2.    : 9101
RTEL_PR3.    : 9102
RTEL_PR4.    : 9103
RTEL_PR5.    : 9104
RTEL_PR6.    : 9105
RTEL_PR7.    : 9106
RTEL_PR8.    : 9107

This essentially makes the Axis print server look like a Hewlett Packard JetDirect EX print server. Save the file and then upload the new config file using the ftp command:

ftp ip-address
Connected to ip-address.
220 Axis NPS ### FTP Printer Server V#.## MON DD YEAR ready.
ftp> user root
331 User name ok, need password
Password: pass (this is not echoed)
230 User logged in
ftp> put config CONFIG
local: config remote: CONFIG
200 PORT command successful.
150 Opening data connection for config (192,0,2,2), (mode ascii).
226 Transfer complete.
##### bytes received in #.## seconds (##### Kbytes/s)
ftp> get hardreset
local: hardreset remote: hardreset
200 PORT command successful.
421 Axis NPS ### hard reset, closing connection.
ftp> quit
221 Goodbye.

Your Axis print server is now ready for use!

Configuring Linksys Print Servers

The Linksys print servers can be configured using ARP, RARP, or BOOTP. Like older Axis print servers, an additional step must be performed to configure the TCP/IP portion of the print server for use with CUPS.

Each print server contains a configuration file named CONFIG that contains a list of network parameters used by the server. To modify this file you must first download it from the print server using the ftp(1) program:

ftp -n ip-address
Connected to ip-address.
220 Print Server Ready.
Remote system type is Print.
ftp> get CONFIG
local: CONFIG remote: CONFIG
200 Command OK.
150 Open ASCII Mode Connection.
WARNING! 68 bare linefeeds received in ASCII mode
File may not have transferred correctly.
226 Transfer complete.
##### bytes received in #.## seconds (##### Kbytes/s)
ftp> quit
221 Goodbye.

Next, edit the file with your favorite text editor and locate the lines beginning with:

0100 L1_PROUT:P1
0120 L2_PROUT:P1
0140 L3_PROUT:P1

Change the port number for each parallel and serial port on the server as follows:

0100 L1_PROUT:P1
0120 L2_PROUT:P2
0140 L3_PROUT:P3

This maps each virtual printer with a physical port. Save the file and then upload the new CONFIG file using the ftp command:

ftp -n ip-address
Connected to ip-address.
220 Print Server Ready.
Remote system type is Print.
ftp> put CONFIG
local: CONFIG remote: CONFIG
200 Command OK.
150 Open ASCII Mode Connection.
226 Transfer complete.
##### bytes received in #.## seconds (##### Kbytes/s)
ftp> quit
221 Goodbye.

Your Linksys print server is now ready for use!