From: <pa...@rc...> - 2001-03-16 08:59:11
|
Hi, Allen. Allen Barnett wrote in response to me: > > If you're interested I can forward > > you some more information provided by HP, with the stipulation that you > > can't re-distribute the documents themselves. > Sure, I'd like to see them. Is a more formal arrangement necessary? No, just keep the already-mentioned rules in mind (which didn't come from me). I'll send the documents out separately. > With respect to PML traps: Is it necessary that the kernel interface > support poll()/select()? I had an e-mail exchange with Tim Waugh a while > ago about the possiblilty of adding this to the line printer (lp) > device. He said it was trivial to add, but most parallel port devices > didn't implement the necessary behavior properly. So, I was wondering if > a poll()/select() interface was necessary (or perhaps I really mean to > say: optimal), are USB devices more likely to work properly? ptal-mlcd drives the parallel port directly, bypassing the kernel, so poll() and select() support is irrelevant. For USB it does use a /dev/usb/lp* device driver and relies on select() in that case. However, there were some bugs in the select support and reverse (peripheral-to-host) data reading functionality. My fixes went into 2.4.2 and will go into 2.2.19, which is why I indicated those were the minimum supported versions. The low-level reverse data support is critical to a much greater extent than just supporting PML traps, which are just data packets going over the PML channel. Multiple channels can be open and transferring data in either or both directions. The command channel is open all the time to allow data channels to be opened or closed and to send credits back and forth. See the MLC and 1284.4 (http://hpoj.sourceforge.net/links.shtml) specs for more information. > FWIW, I recompiled the basic USB driver (usbcore.o) as a module > instead of having it built into the kernel. The printer module is now > loaded automatically (along with the drivers for anything else plugged > in) when hotplug is started. I'm glad it's working for you now. I can see how there could be a problem because some things are compiled in and others are modular. I would expect that it would also work if everything were compiled into the kernel, but all-modular is more flexible, and that's what I usually prefer for myself. David |