Hi, Since this question has come up a lot recently, I thought I should explain exactly what's going on and how to fix it in the short and long terms. Till, I apologize for not addressing this better until now, which is probably too late to do anything for Mandrake 8.2.
The problem: if you connect any of the following HP peripherals via USB when running a "standard" Linux kernel: - OfficeJet G, K, V, D series - PSC 700, 900 series - LaserJet 1200, 1220, 2200, 3200, 3300 series - PhotoSmart 100, 1315 then you cannot print unless you do one of the following things: - Install the hpoj driver (http://hpoj.sourceforge.net) - Use the modified printer.c shipped with RedHat 7.2 (and updated 7.1) kernel builds - Use my modified version of printer.c (http://hpoj.sf.net/download/experimental/linux-usb) The reason for this is that these models advertise the following USB printer-class interfaces in this order: 1. 7/1/3 (IEEE 1284.4, used by the hpoj driver, not suitable for direct printing) 2. 7/1/2 (bidirectional, direct printing) 3. 7/1/1 (unidirectional, direct printing) .. Exception: The OfficeJet G and K series _only_ advertise 7/1/3 and the "standard" Linux printer.c binds to the first bidirectional interface it finds, which happens to be 7/1/3, which was highly advantageous for the hpoj software but very bad if all you wanted to do was print. RedHat's quick fix involved reordering printer.c's interface preferences such that it would bind to 7/1/2 if possible with fallbacks to 7/1/3 and 7/1/1 if not, with a command-line option ("proto_bias") to override the preferred interface. So to make hpoj (0.8 and CVS) work you would have to say something like "insmod printer proto_bias=3". I leveraged RedHat's version and added several ioctls that the hpoj software (CVS version) could use to dynamically switch the printer to the interface it needs (7/1/3 for the above-listed models) with no special user intervention (namely the "proto_bias" fix), and to send down a special vendor-specific command to change a 7/1/2 interface from a printing to an MLC pipe (for the older PhotoSmart printers). As of a few days ago, Greg KH (the Linux USB maintainer) has accepted my changes into his trees, sent them to Linus for inclusion into the next 2.5 kernel, and promised he would send them to Marcelo (for 2.4) in the next few days and to Alan (for 2.2) after the next 2.2 is released. So here are my short- and long-term recommendations for anybody who's interested (especially Till and linuxprinting.org): - If you have a LaserJet 1200 or 2200, or if you have any of the other above-listed MFPs but only want to print (unless you have an OfficeJet G or K series product), then use my "experimental" version of printer.c (unless you're running RedHat 7.2 (or RedHat's updated kernel RPM for 7.1). Printing tends to be faster over USB than the parallel port. - If you have a multi-function peripheral in the list above, then use the hpoj software (0.8 or CVS version). - If you have a PhotoSmart printer and want to print and access the photo-card readers, then use the CVS version of the hpoj software and my experimental version of printer.c (especially for the older PhotoSmart 1000, 11xx, and 12xx models). - Eventually my printer.c changes will find their way into future kernel versions, in which case it won't be necessary to download, compile, and install a non-standard version of that file. Also, I will eventually release a new stable version of the hpoj software which supports the enhanced printer.c API (this functionality is already in the CVS version of hpoj). David _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel