Find attached a patch to make my printer working with the usb printer driver. The printer is a HP Laserjet 1200.
The problem fixed with the patch is that the printer offers a IEEE 1284.4 compatible protocol, which is picked by the driver because of the sorting order of the descriptors. The printer supports the bi- and the uni-directional protocol also, but the driver picks the only one not working, as this one comes first. IEEE 1284.4 is a channel encapsulation used for multi functional devices like scanner/printer combinations. Now despite the fact that multi channel encapsulation over USB make pretty few sense, this option crept into the usb-printer specs. There is some Linux support for IEEE 1284.4 underway, but until this is working and integrated, i think one should better disable accepting these protocols, as it would never work in the moment. Lars
--- linux-2.4.6/drivers/usb/printer.c Tue May 22 00:02:06 2001 +++ linux-2.4.6/drivers/usb/printer.c Sat Jul 14 13:07:22 2001 @@ -495,7 +496,7 @@ interface = &dev->actconfig->interface[ifnum].altsetting[i]; if (interface->bInterfaceClass != 7 || interface->bInterfaceSubClass != 1 || - interface->bInterfaceProtocol < 1 || interface->bInterfaceProtocol > 3 || + interface->bInterfaceProtocol < 1 || interface->bInterfaceProtocol > 2 || (interface->bInterfaceProtocol > 1 && interface->bNumEndpoints < 2)) continue;