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;
 

Reply via email to