I've tried running sudo ./a.out, and I still get LIBUSB_ERROR_IO every time a bulk transfer is attempted, and whatever data I do get back is all garbage data that is inconsistent between runs of the program. I noticed that the 99-sx.rules file didn't have a line with the PID for an ultrastar so I created a line for that matching the VID and PID to an ultrastar. Still no luck there. I navigated there and unplugged and re-plugged in the camera and identified the new file, and viewed the file properties and under the permissions tab is says Owner: root and Access: read and write. The read and write part is part of a drop down box that cannot be edited. So, assuming that's a proper check for read/write access, does that mean that the device is write-able and that the issue lies elsewhere?

Read More...