<div dir="ltr">Hi,<br><br>I couldn't get openusb to make successfully but the good news is that Solaris seems to include openusb in the package repository and I have now installed it:  <span style="line-height:1.5;font-size:13.1999998092651px">./usr/lib/libopenusb.so.0.0.1</span><div><div><br></div><div>Any idea how i can get NUT to build against this libopenusb which has been installed by Solaris?</div><div><br></div><div>Regards,</div><div>Richard</div></div></div><br><div class="gmail_quote">On Sun, Apr 5, 2015 at 4:20 AM Charles Lepple <<a href="mailto:clepple@gmail.com">clepple@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">On Apr 4, 2015, at 10:45 PM, Richard Flint <<a href="mailto:richard.flint@gmail.com" target="_blank">richard.flint@gmail.com</a>> wrote:<br></div><div style="word-wrap:break-word"><div><br><blockquote type="cite"><div dir="ltr">Hi,<br><br>Apologies for the many replies. I have found this documentation:<br><div><a href="http://www.lehman.cuny.edu/cgi-bin/man-cgi?ugen+7" target="_blank">http://www.lehman.cuny.edu/cgi-bin/man-cgi?ugen+7</a><br></div><div><br></div><div>(I am using the ugen driver).</div></div></blockquote></div></div><div style="word-wrap:break-word"><div><div dir="ltr"><div><br></div><div>Right, AFAIK ugen is the kernel driver that libusb and openusb talk to (/dev/usb/*). Updated diagram:</div><div><br></div><div><div>upsc --- upsd --- nutdrv_qx --- libusb -+- ugen driver --- Solaris kernel --- UPS</div></div><div><br></div></div></div></div><div style="word-wrap:break-word"><div><blockquote type="cite"><div dir="ltr"><div>Richard</div></div><br><div class="gmail_quote">On Sun, Apr 5, 2015 at 3:34 AM Richard Flint <<a href="mailto:richard.flint@gmail.com" target="_blank">richard.flint@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">Hi,<br><br>I have to admit this sounds like it could screw up the system if not done right - particularly because the solaris packaging system is unlikely to allow me to remove the libusb package if many things are dependent on it.<div><br></div><div>Are there any other options - e.g. doing something with the libusb that ships with solaris - are we sure it doesn't support timeouts?</div></div></blockquote></div></blockquote><div><br></div></div></div><div style="word-wrap:break-word"><div><div>Not entirely certain that we can't do more with the system libusb. NUT passes timeouts in milliseconds. If the NUT driver blocks for more than 5 seconds on the read (I see both 1000 and 5000 ms in various places in the code), then libusb isn't honoring that timeout. Without documentation or the source code, I wouldn't know what else is needed to make the timeouts work.</div><div><br></div><div>It might be possible to do the following:</div><div><br></div><div>• install openusb into an alternate directory (e.g. $HOME/local)</div><div>• set PKG_CONFIG_PATH to anything that doesn't contain the system libusb.pc</div><div>• put $HOME/local/bin (or wherever openusb-config gets installed) at the front of the $PATH, and symlink openusb-config to libusb-config</div><div>• reconfigure NUT</div><div><br></div><div>By installing into $HOME/local (not as root), you can be certain you are not overwriting the system libusb.</div><div><br></div><div>Unfortunately, openusb doesn't have a *.pc file, otherwise the installation process would be a lot simpler.</div></div></div><div style="word-wrap:break-word"><div><br><div class="gmail_quote"></div><blockquote type="cite"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div>I think I found some code relating to it here: </div><div><a href="https://java.net/projects/solaris-userland/sources/gate/show/components/libusb/wrapper/src" target="_blank">https://java.net/projects/solaris-userland/sources/gate/show/components/libusb/wrapper/src</a><br></div></div></blockquote></div></blockquote><div><br></div></div></div><div style="word-wrap:break-word"><div><div>Unfortunately, that wrapper code is calling into a platform-specific library which doesn't seem to be posted there. (The purpose seems to be abstracting away the differences between Solaris and Sun Ray systems.) Timeouts are passed straight through, but that just moves the question down a layer into that Solaris-specific libusb plugin.</div></div></div><div style="word-wrap:break-word"><div><br><blockquote type="cite"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div><br></div><div>Regards,</div><div>Richard</div></div><div dir="ltr"><div><br></div><br><div class="gmail_quote">On Sun, Apr 5, 2015 at 3:10 AM Charles Lepple <<a href="mailto:clepple@gmail.com" target="_blank">clepple@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">On Apr 4, 2015, at 9:48 PM, Richard Flint <<a href="mailto:richard.flint@gmail.com" target="_blank">richard.flint@gmail.com</a>> wrote:<br></div><div style="word-wrap:break-word"><br><blockquote type="cite"><span style="font-family:Helvetica;font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;float:none;display:inline!important">Again, apologies for my ignorance - are you suggesting that if the NUT application was built against openusb this would probably be fixed?</span><br style="font-family:Helvetica;font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"></blockquote><div style="font-family:Helvetica;font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><br></div></div><div style="word-wrap:break-word"><div style="font-family:Helvetica;font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">Yes, that is my current theory. It's a little complicated in practice - openusb has a different API than libusb-0.1.x, but it supposedly includes a compatibility layer.</div><div style="font-family:Helvetica;font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><br></div><div style="font-family:Helvetica;font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">If openusb works, I would not expect it to wait for more than 1 or 5 seconds when reading the reply.</div></div><div style="word-wrap:break-word"><div style="font-family:Helvetica;font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><br></div><blockquote type="cite"><div style="font-family:Helvetica;font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">If so I'm happy to give this a try - any idea how can I tell NUT to build against openusb instead of libusb?</div></blockquote><div><br></div></div><div style="word-wrap:break-word"><div>Not sure exactly, but to be safe, I'd make an extra backup of wherever libusb is installed - my concern is that other things might be using libusb, and openusb could interfere. Ideally, openusb is a strict superset of libusb, but I haven't used it myself.</div><div><br></div><div>openusb does seem to use the same library name as libusb, so if libusb was installed by a package, you might want to uninstall libusb first to avoid conflicts.</div><div><br></div><div>NUT uses either the generic pkg-config tool or a libusb-config binary to find the USB library. openusb seems to install an openusb-config file which could be symlinked to libusb-config in /usr/local/bin (once the original libusb package is out of the way). At that point, you can re-run the NUT ./configure script, and it should list the openusb version number (1.1.11?) instead of 0.1.7.</div></div><div style="word-wrap:break-word"><br><div>
<span style="border-collapse:separate;border-spacing:0px"><div>-- </div><div>Charles Lepple</div><div>clepple@gmail</div><div><br></div></span><br>

</div>
<br></div></blockquote></div></div></blockquote></div>
</blockquote></div></div></blockquote></div>