Using HP Printer Driver on ReadyNAS from MacOS X: part 2/3

Part two of my saga of trying to get my HP DeskJet 940C to print nicely from MacOS X despite it being attached to my ReadyNAS. Bonjour Browser, we can see that the Airport Express is advertising:

  • _pdl-datastream._tcp., a “Printer PDL Data Stream”, and
  • _riousbprint._tcp., a “Remote I/O USB Printer”

So, not IPP at all.

What we need to do, then, is get the ReadyNAS to advertise itself as a remotely controllable USB device, instead of (as well as?) an IPP printer. But do we need _pdl-datastream, or _riousbprint, or both?

Specifically, this is how it appears over Bonjour from the AirportExpress:

_pdl-datastream._tcp.
192.168.0.6:9100
txtvers=1
qtotal=1
note=Living Room
product=(HEWLETT-PACKARD DESKJET 940C)
pdl=application/vnd.hp-PCL
priority=5
usb_MFG=HEWLETT-PACKARD
usb_MDL=DESKJET 940C
usb_C
ty=HEWLETT_PACKARD DESKJET 940C

_riousbprint._tcp.
192.168.0.6:10000
txtvers=1
qtotal=1
note=Living Room
product=(HEWLETT-PACKARD DESKJET 940C)
rp=HEWLETT-PACKARD DESKJET 940C HU1B96N1ZZBH
pdl=application/MLC,application/PCL,application/PML
priority=1
usb_MFG=HE

Well, looking at a Wireshark dump of the transaction, we’re talking to port 10000: the remote USB service. Unsurprising, really. To be honest it’s more surprising that the Airport Express provides the other service (which makes it look like an HP JetDirect to PCs, I suppose).

So, we “just” need a package we can install on the ReadyNAS using apt, which exposes the USB device using this protocol. Sadly I can’t find such a Linux project, and nor can I find documentation on the protocol so I can’t have a go at writing one myself. Which is probably a good thing, as I have more important things I should be doing!

Summary: it’s not impossible after all, somebody just needs to write some software!

Comments are closed.