View Single Post
Old 08-11-2016, 12:31 AM   #5
Jim2220
Junior Member
 
Join Date: Nov 2015
Posts: 11
Default Displaylink as CD reappears after error, might not be cause of error

I believe that the Displaylink CD Drive reconnection occurs AFTER my program
- successfully connects to the 700TSU / Displaylink
- successfully outputs 3 (of 6) small rectangles to the screen
- but then, for no reason I can find, disconnects

my code...
cout << i << " at " << seconds_since_boot() << " -> ";
dlo_retcode_t ret = dlo_fill_rect(display.uid, &view, &rec, DLO_RGB(0xFF, 0xFF, i*32));
cout << ret << ' ' << dlo_strerror(ret) << endl;

from lsusb...
Bus 001 Device 006: ID 17e9:0199 DisplayLink

Timestamp at the start of my program
Time since boot is 151.03

then a little later the Displaylink is found after searching the USB connections...
The USB open (for RDWR) of /dev/bus/usb/001/006 returned 3
at 151.029999 usb: open: uhand &1161490 at /home/fred/ProgrammingFiles/from_libdlo/dlo_usb.cpp 334
There are 1 interfaces. Try to get a name.
usb: interface 0: driver (usb-storage) already attached to device
****** Attempt to detach interface 0 --> success
at 151.039993 usb_detach_kernel_driver_np for interface 0 returned 0
Attempting to set configuration of 1161490 at /home/fred/ProgrammingFiles/from_libdlo/dlo_usb.cpp 380 --> configuration setting succeeded.
at 151.059998 usb: open: claiming iface 0 at line 0 --> usb claim succeeded
usb: open: the timeout for the device will be 10000 ms
dlo_usb_open returned 0 at /home/fred/ProgrammingFiles/from_libdlo/libdlo.cpp 434
dlo_mode_set_default for dev 1161280
at /home/fred/ProgrammingFiles/from_libdlo/libdlo.cpp 463Claimed 1161280
the uid is 0x1161280
Attempting dlo_get_mode with uid 0x1161280
- screen dimensions are 800x480
- virtual screens are numbered 0 to 13
Attempting dlo_fill_rect to clear screen... returns 0: Successful

(at this point I enter a slow loop - sleep (1); - putting some small rectangles on the screen. I can see them flash all at once on the screen, but then it turns blue, and shortly thereafter, the hotplug indication sounds)

0 at 151.09 -> 0 Successful
1 at 152.09 -> 0 Successful
2 at 153.09 -> 0 Successful
3 at 154.09 -> error submitting URB: on 3 No such device at /home/fred/ProgrammingFiles/from_libusb/linux.cpp 219

from dmesg...
[ 30.451797] input: eGalaxTouch Virtual Device for Single as /devices/virtual/input/input15
[ 30.642360] init: plymouth-stop pre-start process (1911) terminated with status 1
[ 151.340623] usbcore: registered new interface driver udl
[ 153.586097] usb 1-8: USB disconnect, device number 5
[ 153.586109] usb 1-8.2: USB disconnect, device number 6
[ 153.587955] usb 1-8.3: USB disconnect, device number 7
[ 153.683214] usb 1-8.4: USB disconnect, device number 8
[ 154.010692] usb 1-8: new high-speed USB device number 9 using ehci-pci
[ 154.143060] usb 1-8: New USB device found, idVendor=058f, idProduct=6254
[ 154.143072] usb 1-8: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 154.143535] hub 1-8:1.0: USB hub found
[ 154.143674] hub 1-8:1.0: 4 ports detected
[ 154.431005] usb 1-8.2: new high-speed USB device number 10 using ehci-pci
[ 154.544580] usb 1-8.2: New USB device found, idVendor=17e9, idProduct=0199
[ 154.544592] usb 1-8.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 154.544599] usb 1-8.2: Product: Mini USB Monitor
[ 154.544605] usb 1-8.2: Manufacturer: DisplayLink

This is the libusb code which discovers the error...

ret = ioctl(dev->fd, IOCTL_USB_SUBMITURB, &urb);
if (ret < 0) {
// USB_ERROR_STR(-errno, "error submitting URB: %s", strerror(errno));
printf ("error submitting URB: on %d %s at %s %d\n", dev->fd, strerror(errno), __FILE__, __LINE__);

Why is this disconnecting 3 seconds after a successful connection?
Jim2220 is offline   Reply With Quote