TL866II+ throwing IO error: bulk_transfer: LIBUSB_ERROR_TIMEOUT
Hi, new TL866 user here. I am using Fedora 31 on x86_64.
I have updated to the latest firmware:
Found TL866II+ 04.2.110 (0x26e)
Not sure if it was done okay, because it has ended with SIGSEGV and then minipro complained something about boot mode. After the restart, I have tried to read some data as root with:
./minipro -p ATMEGA328P@DIP28 -r test4
It has ended with error message IO error: bulk_transfer: LIBUSB_ERROR_TIMEOUT:
close(6) = 0
openat(AT_FDCWD, "/sys/bus/usb/devices/1-8/descriptors", O_RDONLY|O_CLOEXEC) = 6
read(6, "\22\1\0\2\0\0\0@\332\v\21\1\"\21\1\2\3\1\t\2 \0\1\1\4\200\372\t\4\0\0\2"..., 1024) = 50
close(6) = 0
pipe2([6, 7], O_CLOEXEC) = 0
fcntl(7, F_GETFL) = 0x1 (flags O_WRONLY)
fcntl(7, F_SETFL, O_WRONLY|O_NONBLOCK) = 0
write(7, "\1", 1) = 1
timerfd_create(CLOCK_MONOTONIC, TFD_CLOEXEC|TFD_NONBLOCK) = 8
recvmsg(3, {msg_namelen=128}, 0) = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(3, {msg_namelen=128}, 0) = -1 EAGAIN (Resource temporarily unavailable)
openat(AT_FDCWD, "/dev/bus/usb/002/010", O_RDWR|O_CLOEXEC) = 9
ioctl(9, USBDEVFS_GET_CAPABILITIES, 0xb9e0d8) = 0
ioctl(9, USBDEVFS_CLAIMINTERFACE, 0x7fff60ecdbbc) = 0
clock_gettime(CLOCK_MONOTONIC, {tv_sec=425406, tv_nsec=578306327}) = 0
timerfd_settime(8, TFD_TIMER_ABSTIME, {it_interval={tv_sec=0, tv_nsec=0}, it_value={tv_sec=425411, tv_nsec=578306000}}, NULL) = 0
ioctl(9, USBDEVFS_SUBMITURB, 0xb8da40) = 0
read(6, "\1", 1) = 1
poll([{fd=6, events=POLLIN}, {fd=8, events=POLLIN}, {fd=9, events=POLLOUT}], 3, 60000) = 1 ([{fd=8, revents=POLLIN}])
clock_gettime(CLOCK_MONOTONIC, {tv_sec=425411, tv_nsec=579203360}) = 0
ioctl(9, USBDEVFS_DISCARDURB, 0xb8da40) = 0
timerfd_settime(8, 0, {it_interval={tv_sec=0, tv_nsec=0}, it_value={tv_sec=0, tv_nsec=0}}, NULL) = 0
poll([{fd=6, events=POLLIN}, {fd=8, events=POLLIN}, {fd=9, events=POLLOUT}], 3, 60000) = 1 ([{fd=9, revents=POLLOUT}])
ioctl(9, USBDEVFS_REAPURBNDELAY, 0x7fff60ecd8d0) = 0
timerfd_settime(8, 0, {it_interval={tv_sec=0, tv_nsec=0}, it_value={tv_sec=0, tv_nsec=0}}, NULL) = 0
ioctl(9, USBDEVFS_REAPURBNDELAY, 0x7fff60ecd8d0) = -1 EAGAIN (Resource temporarily unavailable)
write(2, "\nIO error: bulk_transfer: LIBUSB"..., 47
IO error: bulk_transfer: LIBUSB_ERROR_TIMEOUT
) = 47
write(2, "IO error: expected 5 bytes but 0"..., 51IO error: expected 5 bytes but 0 bytes transferred
) = 51
exit_group(1) = ?
I have tried the programmer in a different port on the first PC, then on the second PC via USB3 HUB and then directly in USB2 port (during the writing of this bug report). It looks like a direct connection to USB2 works.
On the first PC, I have also tried to increase MP_USBTIMEOUT in usb_nix.c from 5000 to 50000. It gets stalled in syscall:
poll([{fd=6, events=POLLIN}, {fd=8, events=POLLIN}, {fd=9, events=POLLOUT}], 3, 60000
I am curious about what to check next. The first PC is quite old AMD Athlon with 2GB RAM.