Hello,
On Sep 14 20:58 Suffield, David wrote (shortened):
> Yes having all the HPLIP supported product-ids available is a good idea.
>
> We are entering all HPLIP product-ids into the data/models/models.dat
> file. Should be in the next HPLIP release. The 55-hpmud.rules file will
> be generated from the data file. The default udev privileges will be
> MODE=0666 for tar ball installs, but the distros can create there own
> rules file(s) and policy.
>
> In order to help distros set their own user policies, we are including
> the script file for generating the 55-hpmud.rules file in the tar ball.
Fine!
Obviously such a fixed list of USB IDs makes it impossible that
it works out-of-the-box for new but compatible models.
Therefore I thought I could improve /etc/udev/rules.d/55-hpmud.rules
by testing for the USB device class but it seems to be really tricky
(or impossible) because different devices result very different
USB device class values:
"lsusb -v" shows e.g. for my DeskJet 3320c:
-------------------------------------------------------------------
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x03f0 Hewlett-Packard
idProduct 0x7004 DeskJet 3320c
...
bInterfaceClass 7 Printer
bInterfaceSubClass 1 Printer
bInterfaceProtocol 2 Bidirectional
-------------------------------------------------------------------
so that one needs to find out the device class at interface level.
But how should this work for a device with several interfaces
like e.g. my LaserJet 1220:
-------------------------------------------------------------------
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x03f0 Hewlett-Packard
idProduct 0x0417
...
bInterfaceClass 7 Printer
bInterfaceSubClass 1 Printer
bInterfaceProtocol 3 IEEE 1284.4 compatible bidirectional
...
bInterfaceClass 7 Printer
bInterfaceSubClass 1 Printer
bInterfaceProtocol 2 Bidirectional
...
bInterfaceClass 7 Printer
bInterfaceSubClass 1 Printer
bInterfaceProtocol 1 Unidirectional
-------------------------------------------------------------------
here all interfaces belong to the same class "printer" (but the
LaserJet 1220 is in fact a printer+scanner all-in-one-device).
In contrast an OfficeJet 7210 printer+scanner+cardreader+fax
all-in-one-device shows up as
-------------------------------------------------------------------
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x03f0 Hewlett-Packard
idProduct 0x4111
...
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 204
bInterfaceProtocol 0
...
bInterfaceClass 7 Printer
bInterfaceSubClass 1 Printer
bInterfaceProtocol 2 Bidirectional
...
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
...
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 212
bInterfaceProtocol 0
...
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 80 Bulk (Zip)
-------------------------------------------------------------------
I cannot imagine how generic udev rules could be found
so that HPLIP supported devices match but no other devices.
Therefore it seems all one can do is to use a fixed list
of the currently known USB device IDs.
But this will force unexperienced users to update HPLIP
(and request the newest HPLIP from the distributors)
for each new model :-(
Kind Regards
Johannes Meixner
--
SUSE LINUX Products GmbH, Maxfeldstrasse 5, 90409 Nuernberg, Germany
AG Nuernberg, HRB 16746, GF: Markus Rex
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
HPLIP-Help mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/hplip-help