We help IT Professionals succeed at work.

Setup Jetdirect printer using IPX

aperdon
aperdon asked
on
1,015 Views
Last Modified: 2013-12-15
Hi,

How to setup my printer. It is a HP Deskjet 840c connected to the network via a JetDirect interface. On XP I used the "Install Network Printer Wizard". But there is no Linux-variant of that wizard...
The JetDirect uses IPX/SPX as comminication protocol.

Thanx,
Alexander
Comment
Watch Question

CERTIFIED EXPERT

Commented:
Actually, JetDirect uses a straight socket connection to port 9100. I would use CUPS as a print serrver, which allows you to just select the JetDirect protocol from a dropdown list when you install  your printer.

I have to admint however that I have not seen  a JetDirect printer in more then five years, and never used one with CUPS.

CUPS comes with pretty much any of the modern Linux distributions. If you don't have it, you can download it from http://www.cups.org

Author

Commented:
The printer is very easy installed under XP. The wizard is available from HP (Install network printer wizard). HP seems to be very active on the linux-front, so I guess there is some installer-program somewhere availble at HP which is the linux-variant of the wizard. I was just wondering if someone else here at EE had similar problems.

Author

Commented:
I got this link from a colleague.

http://h20000.www2.hp.com/bizsupport/TechSupport/DriverDownload.jsp?pnameOID=13039&locale=en_US&taskId=135&prodTypeId=18972&prodSeriesId=27905

Anyone experiences with JetAdmin on Linux?
Gns

Commented:
What is the exact JetDirect model? Real "oldies" only speak novell, unless you do a HW upgrade... Unless it's one of those, you should be able to configure it for both ipx/spx and tcp/ip... and configure it as a JetDirect (will use the straightforward socket mentioned by khkremer) in CUPS... Works like a charm (for me:-). The tcp/ip "method" actually is a bit better for us, so we've disabled ipx/spx;-).

-- Glenn
CERTIFIED EXPERT

Commented:
I heard about JetAdmin, but never had a need to use it. The printers I'm dealing with all use standard interfaces (maybe because they have a Sun system built in :-).

Author

Commented:
It is IPX only for sure. The JetDirect box makes my Deskjet840C available on the network. When I bought the device, the shop clearly told me that IPX is needed for operation.

For XP I successfully configured IPX and "HP Install Network Printer Wizard". See my link. For RedHat JetAdmin is available.
Without IPX configured I cannot see the network-printer from within XP. So it is definitely IPX only.

I will try CUPS again, but yesterday I could not find the network-printer.
Gns

Commented:
Newer printers with JetDirect cards (or external JetDirect boxes) have the webified JetAdmin, most older have a telnet command interface... but you might need JetAdmin to configure an initial IP address on older equipment.
I personally detest the app.

-- Glenn
Gns

Commented:
.... And CUPS will not work until you've turned on tcp/ip (by configuring an IP address/netmask). When you've done that, you should be able either to surf into it, or telnet into it.

Is it perhaps a JetDirect <something or another> EX? I distinctly remember throwing dussins of these in the trash. Needs a memory card upgrade (not on the market anymore, since it was more expensive than buying a cheap tcp/ip printserver).
I like Axis, but for some strange reason is saddled with hordes of JetDirect printers:-).

-- Glenn

Author

Commented:
It is an HP JetDirect 150X
CERTIFIED EXPERT

Commented:
That seems to be the only JetDirect adapter without TCP/IP ...
Unfortunately I have zero experience with printing via IPX/SPX from Linux. Maybe the mars-nwe package can help. It does provide Novell compatible file sharing  and print services.
Gns

Commented:
CC khkremer, that's the model I've been dreading this to be:-).
Mars-nwe is to turn your linux machine into a NetWare server (version 2.11/3.1x) from the clients point of view, so mars would "translate" a novell printqueue into you "locally defined" printer printqueue (which would still use some form of "linux" printing).

You could try to use the NCP protocol (CUPS supports this) and try to configure the JetDirect as the print server... perhaps with mars-nwe acting as queue manager... What server address and queue to configure should be something that JetAdmin could show/set, or that you could make it print it (don't remember exactly how you triggered that... It's been a while:-).

If you have the printer running on windoze, it might be easier to install LPD printing on that (at least w2k has the "Printer services for Unix" (add/remove programs->add/remove wodows components->other file and print services->details->print services for unix)), and configure an lpd printer through the windoze machine.
Might be a lot easier... and possibly the only viable option.

As I said, I discarded these... Since most any printserver is better (and really not that expensive:-).

-- Glenn

Author

Commented:
The JetDirect-box works perfect. No need to buy a new one. On XP all goes ok, so why not on Linux.

What I need is the IPX-protocol to be active on my Linux. JetAdmin doesn't work without IPX, since to find the device I have to enter a 12-digit hex hardware address.

So how to start IPX on Linux?

Meanwhile I have a differenent problem to solve coz JetAdmin uses applets and the Java-plugin in Mozilla isn't working...
Gns

Commented:
"modprobe ipx" to load the ipx protocol, and perhaps this will happen automagically (although I doubt it). You also nee the ipxutils package (so you can run ipx_configure)... What distro is this? On redhatish systems you can set everything in the network startup scripts. If you are lucky, you can run with "ipx_configure --auto_interface=on --auto_primary=on"...

But what do you want JetAdmin for? It's just a rather quirky administerative tool. And since you have it on your XP machine, you'll be able to do any changes from that.

-- Glenn
Gns

Commented:
Looking at an old RH (6.2 or slightly older... I was surprised it was still "humming along" in an out-of-the-way part of the lab... This is a real survivor from our days of NetWare use), one can for example set this in /etc/sysconfig/network:
IPX="yes"
IPXINTERNALNETNUM="0"
IPXINTERNALNODENUM="0"
IPXAUTOPRIMARY="on"
IPXAUTOFRAME="on"
to have ipx brought up along with the ethernet interface(s).
If you need be more specific, you can set addresses, frametype etc in the relevant (etc/sysconfig/network-scripts/ifcfg-eth# (where #=0,1,2...) like this:
IPXNETNUM_802_2=""
IPXPRIMARY_802_2="yes"
IPXACTIVE_802_2="yes"
IPXNETNUM_802_3=""
IPXPRIMARY_802_3="no"
IPXACTIVE_802_3="no"
IPXNETNUM_ETHERII=""
IPXPRIMARY_ETHERII="no"
IPXACTIVE_ETHERII="no"
IPXNETNUM_SNAP=""
IPXPRIMARY_SNAP="no"
IPXACTIVE_SNAP="no"
... But you'd need set some likely values (of course).
There used to be some "novell utilities" for interacting with novell queues too ..... nprint? plist? Been a while...:-)

-- Glenn
Gns

Commented:
Looks to be pretty much the same on a RH9 system...

-- Glenn

Author

Commented:
Ok, I will give it a try again.

Author

Commented:
I can see the printer now in JetAdmin!!!

But cannot create Queue. JetAdmin complains about "rexec".
I installed the rpm from redhat site. (rpm -ivh ....)
But JetAdmin still fails to do an rexec... Should I start some daemon?
CERTIFIED EXPERT

Commented:
What exactly is the error message? You are very likely not running the rexecd daemon on the remote machine. You can start this (usually) by enabling the service in /etc/xinetd.d/rexec or /etc/inetd.conf.
If this does not work, you may need to install it first.

Author

Commented:
Ok thanx. Let me try that.

Author

Commented:
[root@alexander-linux init.d]# rexec localhost ls
Password:
localhost.localdomain: Connection refused
rexec: Error in rexec system call,
rexec: (The following system error may itself be in error)
rexec: Illegal seek
[root@alexander-linux init.d]# ./xinetd -status
Usage: ./xinetd {start|stop|status|restart|condrestart|reload}
[root@alexander-linux init.d]# ./xinetd status
xinetd (pid 3824) is running...


still no success...

i have installed the rsh...rpm
[root@alexander-linux init.d]# ls /download/rsh-0.17-14.src.rpm
/download/rsh-0.17-14.src.rpm
CERTIFIED EXPERT

Commented:
You only verified that xinetd is running, but not that it starts rexecd on demand. Look into the directory /etc/xinetd.d/ for a file named rexec. Open this file and enable the service (which means, turn disable off). Then restart xinetd

Author

Commented:
Oke. I have installed rsh-server
Changed disabled no into yes
restarted xinitd

[root@alexander-linux init.d]# ./xinetd restart
Stopping xinetd:                                           [  OK  ]
Starting xinetd:                                           [  OK  ]
[root@alexander-linux init.d]# rexec localhost ls
Password:
localhost.localdomain: No such file or directory
rexec: Error in rexec system call,
rexec: (The following system error may itself be in error)
rexec: Illegal seek


almost working or working?

Author

Commented:
ofcourse i meant changed yes into no for disabled...
CERTIFIED EXPERT

Commented:
Try to specify the full path: /bin/ls

Author

Commented:
still not working...

[root@alexander-linux init.d]# rexec -d localhost /bin/ls
rexec: Host = localhost
rexec: Command to execute = /bin/ls
Password:
localhost.localdomain: No such file or directory
rexec: Error in rexec system call,
rexec: (The following system error may itself be in error)
rexec: No such file or directory

Author

Commented:
hmmm for some reason rexecd looks into the /etc/hosts files

whatever i place after 127.0.0.1 it will say no such file or directory for what type there
CERTIFIED EXPERT

Commented:
I have to read up on rexec again... have not used this in years. Just give me some time.

Author

Commented:
got the queue in jetadmin!!

 Device: 0060B0C0BDD2,1
Print Server: alexander-linux
Queue: hp840c
Result: Success
Details: Success: Queue Installation Successful

Next problem: create printer for queue

queue is in /var/spool/lpd/hp840c

i guess it is an lpd-printer. have to start lpd?

Author

Commented:
probably this info can help me to install lpd and change config to use lpd instead of cups...

http://www.linuxquestions.org/questions/archive/31/2003/11/1/111639
CERTIFIED EXPERT

Commented:
How did you get around the rexecd problem?

Did the document about lpd help?

Author

Commented:
i dont know how i got around the rexecd problem. i tried to use jetadmin and from there is works.
i dont care anymore whether or not the rexec works from command-line. jetadmin likes it...

i did not try the documen about lpd yet. was already late and i was already happy with the achieved work.....

sofar working:
* jetadmin can detect IPX printer
* jetadmin can create queue via rexec
* i can create an LPD-printer on /var/spool/lpd/<queue>

next:
* start LPD-server

the document is saying i need lprng-package...  any experience with that one? btw. i increased the points now coz the problem was more than excpected..
CERTIFIED EXPERT

Commented:
I've used lprng (and plain old lpr) in the past. Please remind me, which distribution are you using?

Author

Commented:
I am using RedHat 9

I just downloaded LPRng-3.8.19-3.1.i386.rpm
When I arrive at home tonight I will test it... At work now. (Or I will ask my wife to start linux and hack from work... like yesterday...)

Author

Commented:
Almost ....

[root@alexander-linux cups]# cat /etc/printcap
# This file was automatically generated by cupsd(8) from the
# /etc/cups/printers.conf file.  All changes to this file
# will be lost.
hp840c:\
:sd=/var/spool/lpd:\
:rm=localhost:
[root@alexander-linux cups]# cat /etc/printcap | lpr
Status Information, attempt 1 of 3:
sending job 'root@alexander-linux+870' to hp840c@localhost
 connecting to 'localhost', attempt 1
 connected to 'localhost'
 requesting printer hp840c@localhost
 job 'root@alexander-linux+870' transfer to hp840c@localhost failed
  error 'NONZERO RFC1179 ERROR CODE FROM SERVER' with ack 'ACK_FAIL'
  sending str '^Bhp840c' to hp840c@localhost
 error msg: 'spool queue for 'hp840c' does not exist on server alexander-linux'
 error msg: '   non-existent printer or you need to run 'checkpc -f''
Waiting 10 seconds before retry
Status Information, attempt 2 of 3:
sending job 'root@alexander-linux+870' to hp840c@localhost
 connecting to 'localhost', attempt 1
 connected to 'localhost'
 requesting printer hp840c@localhost
 job 'root@alexander-linux+870' transfer to hp840c@localhost failed
  error 'NONZERO RFC1179 ERROR CODE FROM SERVER' with ack 'ACK_FAIL'
  sending str '^Bhp840c' to hp840c@localhost
 error msg: 'spool queue for 'hp840c' does not exist on server alexander-linux'
 error msg: '   non-existent printer or you need to run 'checkpc -f''
Waiting 10 seconds before retry

Author

Commented:
I guess have to create queue again with lpd installed and set as printer-system
CERTIFIED EXPERT

Commented:
It looks like you have cups installed. Can you please run the following command to see if it's installed:

rpm -q cups

And then try this /etc/init.d/cups status

Author

Commented:
[root@alexander-linux /]# rpm -q cups
cups-1.1.17-13.3.0.3
[root@alexander-linux /]# /etc/init.d/cups status
cupsd (pid 4096) is running...
CERTIFIED EXPERT

Commented:
Yes, you have cups installed and running. So follow the steps in the document to replace it with lprng.
Gns

Commented:
Um, on a RH9 you should be able to replace CUPS with LPRng via the
redhat-switch-printer
command (run as root)... agfter installing the lprng package... Then recreate the printer in JetAdmin and see what gives...

What document is that khkremer? I seem to have missed any such.

-- Glenn (Just sobered up/back from holiday:-)

Author

Commented:
i have installed lprng
did: alternatives --config print
selected lprng as printer daemon (option 2 in my case)
ran jetadmin again and created a new queue
all went ok until printing
then lpr says something like "there is no queue called raw1"
in /etc/printcap there is a lp=raw1
how to solve?
Gns

Commented:
Um, I think we might be moving in the wrong direction here... What you want to do is define a "printer handle" that can print to a network queue on the JetDirect printserver, but so far you've (seemingly) managed so far is to turn your machine (that is "localhost") into a netware print server for it's locally defined printqueues... Which doesn't seem to be right.
With the commandline tools pqlist and nprint (or via CUPS NCP print capabilities) you should've been able to attach to any such server capabilities (if present) in the JetDirect, but IIRC this device does not act as both a print manager and a queue manager... meaning you minght need a netware server to act as a queue manager (this is where mars-nwe might come in, or JetAdmin might step in and "save" you the trouble)... As said, it's been a while since last I did battle with this... so I might be wrong:-).

-- Glenn

Author

Commented:
The problem is that my printer is attached to a print-server which only can 'talk' IPX. Cups doesn't support configuration of jetDirect-Ipx. JetAdmin does.
So I need JetAdmin to create a queue for me to communicate to the printserver using IPX. But I guess JetAdmin failed in this.

Schematic something like this should happen during print job. Correct me please if i am wrong..

lpr --> /var/spool/lpd/queue --> lpd --> IPX queue/driver --> print server

The IPX-part is missing now. lpd seems not to know where to send the print-job to. According to /etc/printcap it should be /dev/raw1, as configured by JetAdmin. But his is ofcoz wrong. Somewhere JetAdmin should have installed a daemon listening to a certain device which should send print-jobs to the print-server via IPX.
Gns

Commented:
NCP is "netware printing protocol"... over IPX. CUPS supports this... The only "but" is that you need a "server" to talk to... And I'm unsure if the printserver will act as such (It usually means "a netware file/print server":).

LPD is the old (some might say timetested:-) TCP/IP "BSD unix printing protocol".
So using the program lpr/lpd to print to a "novell only" printer would mean that you'd need have a filter (input or output) "spirit the printjob away" to a command (probably nprint) that actually can... print;-). JetAdmin could also employ the old fifo trick to have all printjobs written to a named pipe (into a command that likewise can print), in which case /dev/raw1 wouldn't be such a bad idea:-)... Probably not what is going on though... Or it might just be a slight bug in JetAdmin:-).

Oh bother. Seems like I need download a fresh copy of JetAdmin, revive one of the ol' baddies and check for myself what's going on... This might take some time...

-- Glenn

Author

Commented:
Ok. Thanks.

JetAdmin says something about print-filters.... I was unable to find print-filters for RH9.
But indeed the etc/printcap refers to a filter.
Gns

Commented:
Could you quote the complete printcap entry?

-- Glenn

Author

Commented:
I am at work now. Will do it in the evening. If you need now I can make sure u get it.
Gns

Commented:
Tonight will be soon enough;).

-- Glenn

Author

Commented:
##PRINTTOOL3## REMOTE uniprint 600x600 letter {} U_HPDeskjet840  {}
hp840c:\
        :sd=/var/spool/lpd/hp840c:\
        :mx#0:\
        :sh:\
        :rm=:\
        :rp=raw1:\
        :if=/var/spool/lpd/hp840c/filter:
CERTIFIED EXPERT
Commented:
This one is on us!
(Get your first solution completely free - no credit card required)
UNLOCK SOLUTION
Gns
Commented:
This one is on us!
(Get your first solution completely free - no credit card required)
UNLOCK SOLUTION

Author

Commented:
Indeed the doc is a little misleading coz of the smb-stuff..

What I used from the document is to install lprng and with alternatives --config print changed the print-daemon from cups to lpd.

Everything what is this in lpd is what JetAdmin added itself. Indeed i guess JetAdmin failed to create the raw1 printer.
Do you know about print-filters for RH9 and where to get them. The JetAdmin requires print-filters according to the manual

Linux print filters
For Linux systems, HP Web Jetadmin makes entries in the /etc/printcap file and
adds the correct directories to the Linux print system. HP Web Jetadmin for
Linux uses the Red Hat print filters. Most default Red Hat installations already
contain the print filters. If your installation does not, install them using the rhsprintfilters
RPM. For SuSE Linux systems, HP Web Jetadmin installs these print
filters automatically.

Check here for the RH9 downloads
http://h20000.www2.hp.com/bizsupport/TechSupport/DriverDownload.jsp?prodSeriesId=27905&prodTypeId=18972&taskId=135&refresh=true&locale=en_US&pnameOID=13039&lang=English%20%28US%29&swEnvOID=1063
manual
http://h200005.www2.hp.com/bc/docs/support/SupportManual/c00045058/c00045058.pdf
Gns

Commented:
From your first link...
"HP Web Jetadmin provides the ability to install, configure, manage, and troubleshoot TCP/IP connected devices on an intranet."
Not that promising:-):-).

From the manuals troubleshooting section, page 256, you have a blurb on what perhaps might be biting you in regard to the rexec problem (pam.securetty preventing access?-).
Re the printfilters.... Do you have that package installed (this manual seems to be a bit ... dated. So thats doubtful:-)? Use rpmfind to get it...
I'm leaning towards the "Success" of the queue creation to be a false positive;). BTW, alexander-linux as print server? I might be wrong, but aren't you telling the JetDirect to ask "alexander-linux" for NDS/Bindery authentication?
Oh well. First try fixing the rexec and printfilter issues, then perhaps JetAdmin will do what it should.

-- Glenn

Author

Commented:
Ok. Thanks.

I found a print-filters but was for RH5 or RH6. Will that one work?

So first
* make rexec work from command-line
* install print-filters

Try again...
Gns

Commented:
As far as I can remember, rh6.2 was the last rh distro to have the rhsprintfilter rpm... they switched to lprng after that (which should have nice filters of it's own). So perhaps we should concentrate on rexec (removing the auth line from /etc/pam.d/rexec perhaps?) and see what happens next:-).

-- Glenn

Author

Commented:
will try it tonight at home.... if my wife let me to ;-)

as far as i understand know is that rexecd is running and available now doesn't mean jetadmin is able to use it (like what i discovered on command-line myself) and that jetadmin correctly reports this (like u say about the false positive..)
Gns

Commented:
Yup... "The engine is humming, but the door is locked" sort of:-).

-- Glenn

Author

Commented:
I did not go further so far... Too busy. Sorry....
Thans for ur comments until now. I will go into it again this week and accept 1 or more comments as answer. I guess some split for khkremer and gns will be fair.

Author

Commented:
Fine with me the split.

Gain unlimited access to on-demand training courses with an Experts Exchange subscription.

Get Access
Why Experts Exchange?

Experts Exchange always has the answer, or at the least points me in the correct direction! It is like having another employee that is extremely experienced.

Jim Murphy
Programmer at Smart IT Solutions

When asked, what has been your best career decision?

Deciding to stick with EE.

Mohamed Asif
Technical Department Head

Being involved with EE helped me to grow personally and professionally.

Carl Webster
CTP, Sr Infrastructure Consultant
Empower Your Career
Did You Know?

We've partnered with two important charities to provide clean water and computer science education to those who need it most. READ MORE

Ask ANY Question

Connect with Certified Experts to gain insight and support on specific technology challenges including:

  • Troubleshooting
  • Research
  • Professional Opinions
Unlock the solution to this question.
Join our community and discover your potential

Experts Exchange is the only place where you can interact directly with leading experts in the technology field. Become a member today and access the collective knowledge of thousands of technology experts.

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.