Open RossPLloyd opened 5 years ago
About invalid device symbol
I found this thread https://devtalk.nvidia.com/default/topic/410188/invalid-device-symbol-when-copying-to-constant-memory/. It seems to suggest adding __device__
to constant GPU memory variables, i.e. these: https://github.com/OpenKinect/libfreenect2/blob/master/src/cuda_depth_packet_processor.cu#L34-L78. You can try that. This is probably some compatibility issue with older gfx card in CUDA.
Running LIBUSB_DEBUG=3 ./bin/Protonect
prints libusb logs to the console. I don't know if it worked in your case.
bulk transfer failed: LIBUSB_ERROR_IO Input/Output Error
is pretty bad, meaning the error happened for regular usb transfers like any usb drives do. For this you need to look into dmesg
to anything unusual. Kernel driver/hardware issues. NEC Corporation uPD720200 USB 3.0 Host Controller is alright but does your laptop have enough PCIe bandwidth? That's also a question.
Hi
I have installed CUDA 9.0 on my old gaming laptop which has a GTX460M cuda capable GPU. I am running ubuntu 18.04 (kernel data below).
I had been running libfreenect2 built with opengl and it worked ok, however I needed to rebuild with CUDA in the hopes of getting some better performance in order to use with kinect2_bridge and rtabmap (the author of the latter advised I should use CUDA and OpenCL for depth processing and depth registration).
The build seemed to succeed, but now I cannot run protonect. Initially I get a stream of PACKET BUFFER IS NULL errors, then it settles into the following after three or so attempts:
robot@robot-X681X:~/libfreenect2/build$ ./bin/Protonect Version: 0.2.0 Environment variables: LOGFILE=
Usage: ./bin/Protonect [-gpu=] [gl | cl | clkde | cuda | cudakde | cpu] []
[-noviewer] [-norgb | -nodepth] [-help] [-version]
[-frames ]
To pause and unpause: pkill -USR1 Protonect
[Info] [Freenect2Impl] enumerating devices...
[Info] [Freenect2Impl] 9 usb devices connected
[Info] [Freenect2Impl] found valid Kinect v2 @4:2 with serial 223950740347
[Info] [Freenect2Impl] found 1 devices
[Info] [CudaDepthPacketProcessorImpl] device 0: GeForce GTX 460M @ 1417MHz Memory 1473MB
[Info] [CudaDepthPacketProcessorImpl] selected device 0
[Error] [CudaDepthPacketProcessorImpl] cudaGetLastError(): invalid device symbol
[Info] [Freenect2DeviceImpl] opening...
[Info] [Freenect2DeviceImpl] transfer pool sizes rgb: 2016384 ir: 608*33792
[Info] [Freenect2DeviceImpl] opened
[Info] [Freenect2DeviceImpl] starting...
[Error] [protocol::CommandTransaction] bulk transfer failed: LIBUSB_ERROR_IO Input/Output Error
[Info] [Freenect2DeviceImpl] closing...
[Error] [protocol::CommandTransaction] bulk transfer failed: LIBUSB_ERROR_TIMEOUT Operation timed out
[Error] [protocol::CommandTransaction] bulk transfer failed: LIBUSB_ERROR_TIMEOUT Operation timed out
[Info] [Freenect2DeviceImpl] releasing usb interfaces...
[Info] [Freenect2DeviceImpl] deallocating usb transfer pools...
[Info] [Freenect2DeviceImpl] closing usb device...
[Info] [Freenect2DeviceImpl] closed
I have seen some of the other posts abut USB issues, which do indeed give some of the above errors, however this was not a problem until the new CUDA build so the USB port itself has shown to be ok before.
Required information:
Version, Platform, and Hardware Bug Found:
git log -1 --oneline
c67e3b0 (HEAD -> master, origin/master, origin/HEAD) Add setting of LEDs (#1052)
uname -a
Linux robot-X681X 4.15.0-46-generic #49-Ubuntu SMP Wed Feb 6 09:33:07 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
lsusb -t
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M | Port 2: Dev 4, If 0, Class=Vendor Specific Class, Driver=, 5000M | Port 2: Dev 4, If 1, Class=Vendor Specific Class, Driver=, 5000M | Port 2: Dev 4, If 2, Class=Audio, Driver=snd-usb-audio, 5000M | Port 2: Dev 4, If 3, Class=Audio, Driver=snd-usb-audio, 5000M /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M | Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M | Port 2: Dev 3, If 0, Class=Vendor Specific Class, Driver=rtsx_usb, 480M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M | Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M | Port 2: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 12M
lspci -nn
00:00.0 Host bridge [0600]: Intel Corporation 2nd Generation Core Processor Family DRAM Controller [8086:0104] (rev 09) 00:01.0 PCI bridge [0604]: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port [8086:0101] (rev 09) 00:16.0 Communication controller [0780]: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 [8086:1c3a] (rev 04) 00:1a.0 USB controller [0c03]: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 [8086:1c2d] (rev 04) 00:1b.0 Audio device [0403]: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller [8086:1c20] (rev 04) 00:1c.0 PCI bridge [0604]: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 [8086:1c10] (rev b4) 00:1c.2 PCI bridge [0604]: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 3 [8086:1c14] (rev b4) 00:1c.3 PCI bridge [0604]: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 4 [8086:1c16] (rev b4) 00:1d.0 USB controller [0c03]: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 [8086:1c26] (rev 04) 00:1f.0 ISA bridge [0601]: Intel Corporation HM67 Express Chipset LPC Controller [8086:1c4b] (rev 04) 00:1f.2 SATA controller [0106]: Intel Corporation 6 Series/C200 Series Chipset Family 6 port Mobile SATA AHCI Controller [8086:1c03] (rev 04) 00:1f.3 SMBus [0c05]: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller [8086:1c22] (rev 04) 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GF106M [GeForce GTX 460M] [10de:0dd1] (rev a1) 01:00.1 Audio device [0403]: NVIDIA Corporation GF106 High Definition Audio Controller [10de:0be9] (rev a1) 02:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 06) 03:00.0 Network controller [0280]: Intel Corporation Centrino Wireless-N 1030 [Rainbow Peak] [8086:008a] (rev 34) 04:00.0 USB controller [0c03]: NEC Corporation uPD720200 USB 3.0 Host Controller [1033:0194] (rev 04)
I was not able to figure out how to get the USB logs by running LIBUSB_DEBUG=3 ./bin/Protonect. If needed please can you advise where / how to locate?
Any other logs you require please ask and I will provide.