I've found a problem with the cups usb backend on sparc64 systems. The
ioctl32 code isn't translating LPIOC_GET_DEVICE_ID ioctl calls
properly. This means that backend/usb cannot identify which printer is
actually registered as a particular usb device.
The giveaway message from the kernel is
Sep 7 13:22:12 shirehall kernel: ioctl32(usb:1729): Unknown cmd fd(0)
cmd(44005001){04} arg(efffec48) on /dev/usb/lp0
snip
Now ideally I would say that the way to fix this would be to correct
the ioctl32 code in the kernel but it seems that the
LPIOC_GET_DEVICE_ID ioctl number is dependent upon the structure
passed in.
snip
I'm not sure what the correct way to fix this is. Anyone have any
suggestions.
I ran into a similar problem trying to get a USB ADSL modem working.
The driver used usbdevfs and ioctl's to submit URBs to the modem. It
appears that a section of the code for translating ioctl's from 32 bit
code into 64 bit are unfinished, with some of the USB ioctls not being
translated. As I understand it the `correct' way to fix it is to
implement these translations. It shouldn't be too difficult as there
are a number of similar functions already written and all of the data
structures are quite clearly defined - als I haven't had time to attempt
it myself. If you do think of attempting this I'll see if I can find
the notes on it saying exactly where the code needed to go.
HTH
Cheers,
- Martin
--
Martin
[EMAIL PROTECTED]
Seasons change, things come to pass