Linux Network Printing with JetDirect

Linux Network Printing with JetDirect
Hentzenwerke Whitepaper Series
Linux Network Printing
with JetDirect
By Whil Hentzen
Hewlett Packard's JetDirect print server allows you to make a printer
available to an entire network simply by plugging an Ethernet cable into the
JetDirect device which then connects to the printer. All that's left is a little
configuration. Or so the marketing literature says. It's a little more
complicated than that in the real world, where you have to know all of the
steps, and follow them in order. That said, once the entire process is laid
out line by line, hooking up a JetDirect print server is fairly straightforward.
Hentzenwerke Publishing, Inc. • •
Linux Network Printing with JetDirect
Page 2
1. Preface
1.1 Copyright
Copyright 2004 Whil Hentzen. Some rights reserved. This work is licensed under the Creative Commons AttributionNonCommercial-NoDerivs License, which basically means that you can copy, distribute, and display only unaltered copies of
this work, but in return, you must give the original author credit, you may not distribute the work for commercial gain, nor
create derivative works based on it without first licensing those rights from the author. To view a copy of this license, visit
1.2 Revisions
1.2.1 History
1.2.2 New version
The newest version of this document will be found at
1.2.3 Feedback and corrections
If you have questions, comments, or corrections about this document, please feel free to email me at
''. I also welcome suggestions for passages you find unclear.
1.3 References and acknowledgments
Thanks to MLUG members P. Scott DeVos, Andrew J. Hoyos, Roger Jensen, Mark Litscher, George Moulton and probably
others I missed, and folks on the ProLinux list, including Bob Edgar, Paul McNett, Randy Roberts and Gene Vital. The HP
website has several documents that provided some useful information, including this one:
1.4 Disclaimer
No warranty! This material is provided as is, with no warranty of fitness for any particular purpose. Use the concepts, examples
and other content at your own risk. There may be errors and inaccuracies that in some configurations may be damaging to your
system. The author(s) disavows all liability for the contents of this document.
Before making any changes to your system, ensure that you have backups and other resources to restore the system to its
state before making those changes.
All copyrights are held by their respective owners, unless specifically noted otherwise. Use of a term in this document
should not be regarded as affecting the validity of any trademark or service mark. Naming of particular products or brands
should not be seen as endorsements.
1.5 Prerequisites
This document was written using Fedora Core 1.0 and assumes a beginner's familiarity with use of Linux via the GUI and the
Command Window.
2. Introduction
Hentzenwerke Publishing, Inc. • •
Linux Network Printing with JetDirect
Page 3
Just about everyone has a network these days – it's becoming more and more common to even find them in homes so that files
and devices can be shared between users. Most times, a printer will be attached to a specific computer on the network, set up as
shared, and everyone will be able to print to it. However, this configuration requires that the computer always been running,
and that may not always be practical.
A better solution is to set up a printer as its own device on a network. In order for that to work, the printer needs an
intermediary to capture Ethernet traffic and prepare it for printing. This device is called a print server. One common print server
is the Hewlett-Packard JetDirect print server.
3. The Big Picture
A JetDirect print server is a device that connects HP LaserJets directly to a network. There are three general steps involved in
setting up a JetDirect print server on your network so that a Linux workstation can print to it.
First, you plug an Ethernet cable into one end of the JetDirect device and then hook the printer and the JetDirect together
via a USB cable. Once the hardware is connected, you assign an IP address to the JetDirect device. Finally, you create a print
queue on your Linux workstation using the IP address as the device address (as opposed to, say, a parallel or serial port.)
4. The Details - Step by Step
Our goal is to connect an HP LaserJet printer to an Ethernet network and be able to print to it from any Linux workstation on
the network.
4.1 What you'll need
This whitepaper was written with the following equipment. If your equipment is different, you'll have to make the necessary
adjustments yourself.
Hewlett-Packard multifunction LaserJet 3200
Hewlett-Packard JetDirect 175X print server device
USB cable that came with the JetDirect
Ethernet cable that connects to a local LAN
I'm using Fedora Core 1 while writing this; if you're using a different distribution, some of the instructions for setting up
the print queue on your Linux workstation will vary.
By the way, there are also manuals for the JetDirect device on the Hewlett-Packard Web site. Go to, search
on “JetDirect 175X” (or whatever your model is), look for a link entitled 'Support', and then on the Support page, a link for
There is also administration software called HP Jetadmin for Linux. If you're having trouble locating it on the HP site,
here's a recent URL that may help:
The top of the JetDirect is shown in Figure 1.
Hentzenwerke Publishing, Inc. • •
Linux Network Printing with JetDirect
Page 4
Figure 1. The top of the Hewlett-Packard JetDirect print server.
The USB cable that connects the JetDirect and the printer plugs in 'front' (to the left), as shown in Figure 2.
Figure 2. The front of the Hewlett-Packard JetDirect has a USB plug.
The slot for USB cable was a very snug fit for me – to pull the cable out in order to take this picture took both hands and a
great deal of, er, encouragement. The back has two connections and a reset button, as shown in Figure 3.
Hentzenwerke Publishing, Inc. • •
Linux Network Printing with JetDirect
Page 5
Figure 3. The back of the Hewlett-Packard JetDirect has two connections and a button.
On the left side is a button that does dual duty; it performs both reset and test print functions. The center port is for an
Ethernet cable, and the right orifice is for the power cable.
4.2 Physical hookup
First, turn on or plug in your printer. A lot of HP printers nowadays don't have a power switch – they are on as soon as you plug
them in.
Next, plug the short (18") black USB-printer cable, the power cord, and the Ethernet cable into the JetDirect as shown in
Figure 4.
Figure 4. The Hewlett-Packard JetDirect print server in action.
Hentzenwerke Publishing, Inc. • •
Linux Network Printing with JetDirect
Page 6
This photo shows the USB cable plugged into the back side, while the Ethernet cable and the power cable are plugged into
the front side. The JetDirect fits into a blue bracket that can be stuck onto a handy surface, such as the side of the printer.
Then plug the black USB cable into the printer, as shown in Figure 5.
Figure 5. The back of the Hewlett-Packard LaserJet 3200 shows the connection of the USB cable.
The other end of the (black) USB cable plugs into a port on the back of the printer. The grey cable above is the printer's
power cord and the thin grey cable to the left of the black USB cable is a phone line, as this printer doubles as a fax machine.
This machine acts as a network printer and a fax machine at the same time - and seems to coexist very nicely.
Finally, plug the JetDirect's power cable into a handy electrical outlet, and you're ready to deal with IP addresses.
4.3 Assigning an IP address
After the JetDirect is connected to the printer, the network, and electricity, it's time to print a configuration page.
Press the configuration page button – it's the button on the left side of Figure 3. A page will be printed on your printer that
looks, in part, like Figure 6.
Figure 6. The top half of a typical JetDirect Configuration page.
You have to be firm with the button - hold it down for a couple of seconds. A light touch is ignored. Once the printer has
heard the JetDirect's command, the printer light will start flashing and eventually a page will emerge from the printer. This
process took several seconds with my configuration.
The configuration page will tell you what the JetDirect thinks its IP address is. There are two possibilities.
Hentzenwerke Publishing, Inc. • •
Linux Network Printing with JetDirect
Page 7
4.3.1 Self-assigned IP addresses
The first possibility is that the JetDirect has self-assigned an IP address that is reachable from another machine on your LAN.
The normal default is, but it might also be an IP in the 169.254.x.x range. These values mean that the JetDirect is
waiting for a DHCP server to tell it what actual IP address to use. As soon as you turn on your DHCP server and restart your
JetDirect, the JetDirect will get an IP address from the DHCP server.
Alternatively, if you can get to the JetDirect from another machine (you'd need to be on the same subnet as your LAN),
you can telnet into the machine and set the IP address manually. Even if you're on the same subnet, you'll want to make sure
you can reach the JetDirect. How can you tell? Try the 'ping' command in a Command Window. The following code sample
shows a ping against a JetDirect with an IP address of
[whil@freedom ~] Dude? Ping
PING ( 56(84) bytes of data.
64 bytes from icmp_seq=0 ttl=64 time=1.69 ms
64 bytes from icmp_seq=1 ttl=64 time=0.961 ms
64 bytes from icmp_seq=2 ttl=64 time=0.951 ms
64 bytes from icmp_seq=3 ttl=64 time=0.944 ms
64 bytes from icmp_seq=4 ttl=64 time=0.945 ms
64 bytes from icmp_seq=5 ttl=64 time=0.956 ms
--- ping statistics --6 packets transmitted, 6 received, 0% packet loss, time 5057ms
rtt min/avg/max/mdev = 0.944/1.075/1.698/0.281 ms, pipe 2
[whil@freedom ~] Dude?
Telnetting into the JetDirect and changing the IP address manually will be covered shortly.
4.3.2 A IP address
The other case is that the IP address is not reachable, such as if it's (See the advanced section later on details here.)
Note: If you've plugged your JetDirect in, tried things and its all messed up, you can use the reset button to reset to factory
defaults. Unplug the JetDirect for 30 seconds. Hold down the reset button, and then plug it back in. Continue holding the reset
button in for ten seconds after you've plugged it in, and then release it.
4.3.3 Changing the IP address via telnet
Now, assuming that you've got a working Ethernet connection and a reachable IP address, it's time to change the IP address to
something that fits your network's numbering scheme. Open a Command Window and enter the telnet command and the IP
address of the JetDirect, as shown in the following code.
[whil@freedom ~] Dude? telnet
Connected to (
HP JetDirect
There is no password set.
Please type "menu" for the MENU system,
or "?" for help, or "/" for current settings.
> /
At this point, you should enter a password, or else anyone who can telnet into your JetDirect could take control of it. Type
“menu” at the “>” prompt, select General Settings, and then enter an administrator's password.
Save your settings and from now on, you'll be prompted for the username (which can be “Admin”, “root” or a couple of
other predefined choices) and password when trying to access the device, as shown in the following code snippet.
[whil@freedom ~] Dude? telnet
Connected to (
Escape character is '^]'.
HP JetDirect
Enter username: root
Enter password:
Please type "menu" for the MENU system,
or "?" for help, or "/" for current settings.
To see the current settings for the device, enter a '/' and press Enter. You'll see a response similar to the following code
Hentzenwerke Publishing, Inc. • •
Linux Network Printing with JetDirect
Page 8
> /
===JetDirect Telnet Configuration===
HP JetDirect
: J6035A
Firmware Version : M.21.07
Manufacturing ID : 21074114902107
Hardware Address : 00:41:E0:45:0B:80
System Up Time
: 597:13:50
Admin Password
: Specified
System Location : where it belongs
System Contact
: no one in particular
TCP/IP MAIN________________________________
Host Name
: NPI450E8C
IP Address
Subnet Mask
Default Gateway :
Config Server
: Not Specified
TFTP Server
: Not Specified
TFTP Filename
: Not Specified
Domain Name
: Not Specified
Press RETURN to continue:
Pressing the Enter key several more times will display the rest of the settings. If you want to make changes, type “menu”
and press Enter. You'll get the main menu, as displayed in the next code listing.
> menu
===JetDirect Telnet Configuration===
HP JetDirect
: J6035A
Firmware Version : M.21.07
Manufacturing ID : 21074114902107
Hardware Address : 00:41:E0:45:0B:80
System Up Time
: 597:14:44
---------------------------------------1. General Settings
2. TCP/IP Menu
3. SNMP Menu
4. IPX/SPX Settings
5. AppleTalk Settings
6. Other Settings
7. Support Settings
8. Help
0. Exit
Enter Selection => 0
Connection closed by foreign host.
[whil@freedom ~] Dude?
Select 2 for the TCP/IP Menu, then enter 1 to get into the TCP/IP Main Settings menu . You'll be prompted whether you
want to change the settings, including the IP Address, much like when you entered a password in the General Settings menu
Entering '0' and pressing Enter will disconnect the telnet session and you're returned to your Command Prompt.
4.3.4 Changing the IP address via DHCP
If you don't want to telnet into your print server, you can use DHCP to have an IP address automatically assigned to the
JetDirect. Here's how.
First, get DHCP running on a machine. If you want to use your Linux workstation, open the Services dialog via the Main
Menu | System Settings | Server Settings | Services menu option as shown in Figure 7.
Hentzenwerke Publishing, Inc. • •
Linux Network Printing with JetDirect
Page 9
Figure 7. The Service Configuration dialog allows you to start the DHCP daemon.
Make sure that the DHCPD service is checked and start it (if it's not already running) by clicking the Start button in
toolbar at the top of the dialog.
Second, edit your /etc/dhcpd.conf file. You'll need to be root to do so. Your dhcpd.conf file should look something like the
following listing. You may need to change some values as appropriate for your network. Note that the key entry is near the end,
where the JetDirect host is defined with the MAC address and IP address.
ddns-update-style interim;
ignore client-updates;
subnet netmask {
# --- default gateway
option routers
option subnet-mask
option domain-name-servers
option time-offset;;;
range dynamic-bootp;
default-lease-time 21600;
max-lease-time 43200;
# we want the nameserver to appear at a fixed address
host jetdirect {
hardware ethernet 00:41:E0:45:0B:80;
Your dhcpd.conf file may also have additional entries; I deleted some of the unimportant ones for this example.
4.3.5 So what do I change my IP address to?
DHCP will automatically assign addresses to devices. You can block out a certain range for devices so that they don't overlap
static addresses that you may have already assigned manually. For example, if your workstations all have static IP addresses
between and, you might choose to limit DHCP to use addresses from to In the code listing just presented, I limited the addresses from .200 to .201.
Note that accidentally assigning a range that already has static addresses in it (say, you had a workstation with an IP of, the DHCP server would, when searching for a valid IP address, ping the .210 address, find that it was used,
and automatically skip over it.
Hentzenwerke Publishing, Inc. • •
Linux Network Printing with JetDirect
4.4 Configuring a print queue
The third and final step is to configure a print queue on your Linux workstation. Up to this point, all we were doing was
configuring the hardware, and it just took longer since it wasn't as straightforward as plugging a local device into a port. But
now that the device is hooked up, it'll be smooth sailing.
Open the Printer Configuration dialog as shown in Figure 8 by selecting the Main Menu | System Settings | Printing menu
option and entering the root password (since you're messing with the whole system.)
Figure 8. The Printer Configuration dialog.
Click the New button in the Printer Configuration dialog to bring forward the Add a new print queue wizard, as shown in
Figure 9.
Figure 9. The Add a new print queue wizard starts with an informational page.
Click Forward to bring forward the Queue name dialog as shown in Figure 10.
Hentzenwerke Publishing, Inc. • •
Linux Network Printing with JetDirect
Figure 10. The queue name dialog asks for a queue name and description.
Enter a queue name. This is the name that you'll be selecting in other applications when you want to print to the JetDirect
printer. Note the instructions in the dialog that tell you to enter a short name with no spaces. As you can see in Figure 10, I
entered 'jet'. Add a short description if you want. Then click Forward again to bring forward the Queue type dialog. Select the
Network JetDirect Queue Type as shown in Figure 11.
Figure 11. Selecting the Networked JetDirect queue type.
Once you select the queue type, tab out fo the Queue Type drop down combo boxes shown in Figure 12.
Hentzenwerke Publishing, Inc. • •
Linux Network Printing with JetDirect
Figure 12. Once a queue type has been selected, you can identify the printer.
Enter the IP address of the JetDirect device that you set in the previous section, as shown in Figure 13.
Figure 13. Entering the IP address of your networked JetDirect printer.
Then click Forward to go to the Printer model screen, as shown in Figure 14.
Figure 14. Identifying the printer manufacturer and model.
Hentzenwerke Publishing, Inc. • •
Linux Network Printing with JetDirect
Select the manufacturer of the printer you've got in the drop down combo box. Once you do so, the available models for
that manufacturer will display in the list below. Scroll through and select your model. Note that the so-called alphabetical list
isn't quite in alphabetical list (A LaserJet 3 does not appear between LaserJet 2300 and LaserJet 3200m, for example.) Note
also that you can expand this dialog vertically; doing so will make choosing an item in the list box much easier if the
manufacturer has more than a dozen or so models. Click Forward to get to the Finish dialog as shown in Figure 15.
Figure 15. The confirmation dialog in the Add a new print queue wizard.
The Finish dialog displays the parameters you've selected and gives you a chance to back up and make changes. When
you're satisfied, select the Finish button and the new queue will be set up and displayed in the Printer configuration dialog as
shown in Figure 16.
Figure 16. The Printer Configuration dialog with a new JetDirect print queue.
You can highlight a printer in the Printer Configuration dialog, and then click on the Default button in the toolbar in order
to make that the default printer.
You now have a new network printer in addition to any local printers. You can manage print queues via the Print Manager,
via the Main Menu | System Tools | Print Manager menu option. All available queues will be displayed, as shown in Figure
Hentzenwerke Publishing, Inc. • •
Linux Network Printing with JetDirect
Figure 17. The GNOME Print Manager
The default print queue is marked with a checkmark. To change the default print queue, you can right-click on a different
queue's icon and select the Set As Default option in the context menu, or just highlight the queue's icon and then select the
Printer | Set As Default menu option.
Once jobs are printing, you can open the list of pending jobs with the Printer | Open menu option, or just double-click on
the queue's icon.
5. Advanced Topics
Now that you've got the basics down, it's time to look at some advanced alternatives.
5.1 Setting the IP address via ARP
In the case that you don't have a DHCP server, and also have no client software to give the JetDirect an IP address, you can try
to set an IP via the arp command. You'll use arp to map an IP address to a MAC address, and then you can use that otherwise
external IP address to gain access to the JetDirect's internal system. Here are the details.
To use arp, all you need is the hardware (MAC) address for the JetDirect print server. You can get this from the print
configuration page. It's a 12 character value, separated into six two character strings. The format of the arp command differs
according to whether you're connecting to the JetDirect from a Windows box or a Linux box.
If you're using Windows, you can use the following commands to set the IP address and then test the new address via ping:
arp -a 00-41-E0-45-0B-80
For Linux, the separate is a colon (:) instead of a hyphen:
arp -a 00:41:E0:45:0B:80
For more information on arp, remember that the man page (type “man arp” in a Command Window) is your friend.
5.2 How JetDirect IP addresses are assigned
A JetDirect print server comes without an IP address assigned. The address may be assigned either through internal software or
by getting it from an external DHCP server, or manually by a user. Which of these cases occurs depends on (1) when it's turned
on in sequence with being connected to the network, and (2) whether or not there's a DHCP server available on the network.
If there is a DHCP server available when the JD is attached to the network and then turned on, the DHCP server will
assign an IP address.
If there is not a DHCP server available when the JD is attached to the network and then turned on, the JD will try to find a
unique address to assign to itself. The address will be in the range 169.254.x.x. *or* it will be
If the unit is disconnected from the network when you turn it on (for the first time), and then attached to a network, it will
look for a DHCP server. If one is not found, will be assigned as the address.
Also, if TCP/IP has been turned off, a common occurrence in Windows installation where the system is using DLC or
Netware protocols, the IP address is set to Note that TCP/IP is turned on as a factory default.
Hentzenwerke Publishing, Inc. • •
Linux Network Printing with JetDirect
6. Where to go for more information
This free whitepaper is published and distributed by Hentzenwerke Publishing, Inc. We have the largest lists of “Moving to
Linux”,, and Visual FoxPro books on the planet.
We also have oodles of free whitepapers on our website and more are being added regularly. Our Preferred Customer
mailing list gets bi-monthly announcements of new whitepapers (and gets discounts on our books, first crack at special deals,
and other stuff as we think of it.)
Click on “Your Account” at to get on our Preferred Customer list.
If you found this whitepaper helpful, check out these Hentzenwerke Publishing books as well:
Linux Transfer for Windows® Network Admins:
A roadmap for building a Linux file and print server
Michael Jang
Linux Transfer for Windows® Power Users:
Getting started with Linux for the desktop
Whil Hentzen
Hentzenwerke Publishing, Inc. • •
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF