L4T R28.3.2 doesn't use 4.4.38 kernel

Hello. We have USB cameras, which driver support max linux kernel 4.4.38. We planned to use L4T R28.3.2 (https://developer.nvidia.com/embedded/linux-tegra-r2832). As we saw on this page, it uses kernel 4.4.38, but when i installed to dev kit, i see, that the kernel version is 4.4.159. And i can’t connect my cameras. Why is it so? And can anybody give advice, how i can install interested for me version of kernel?

Hi,
4.4.159 is newer than 4.4.38. If it works on 4.4.38, it should work on 4.4.159.

Kerner source is public and you can download it and check if any commit is missing. Please check Kernel Customization in document.

When i install driver, it says that maximum supported version is 4.4.38.

Where are you getting the driver? Sometimes, when a third party driver is becoming obsolete and has not been maintained, it is because the kernel now has the driver without requiring third party code. This does not mean that the driver has been configured/added, in which case you would have to build the driver from the kernel source code (fairly trivial effort once you’ve done it before). The question becomes one of finding out which driver is used for your camera.

FYI, you can always list USB devices even if they don’t have a driver, and possibly get more information that way. “lsusb” lists all visible USB devices. A given device will have a device ID, which looks something like “0955:7c18” (this is a contrived example, it happens to be what you would see from a TX2 in recovery mode). If you run “lsusb” to find the ID, and then perform a verbose listing, then this may say more. An example (you’ll need to adjust the ID for your camera) is:
sudo lsusb -d 0955:7c18 -vvv

Either this, or a web search for drivers may provide a bit more detail on what is needed.

HI,
You may try r28.2.1, which is K4.4.38

Ok. I will try this way.

We have camera from this series - http://www.contrastech.com/content/?875.html. There - http://contrastech.com/content/?906.html, they provide drivers for this camera on TX2. Generally, thet write, that this camera fully compatible with USB3Vision standard, but i tried to compile open source project, called Aravis (GitHub - AravisProject/aravis: A vision library for genicam based cameras) and i can’t find camera on usb bus.
What concerns about lsusb:
image
lsusb -d 2e03:0001 -vvv
https://ctxt.io/2/AABAv7FOFA

Bus 002 Device 007: ID 2e03:0001
Couldn’t open device, some information will be missing
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 3.00
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 2 ?
bDeviceProtocol 1 Interface Association
bMaxPacketSize0 9
idVendor 0x2e03
idProduct 0x0001
bcdDevice 11.06
iManufacturer 1
iProduct 2
iSerial 3
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 116
bNumInterfaces 3
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 224mA
Interface Association:
bLength 8
bDescriptorType 11
bFirstInterface 0
bInterfaceCount 3
bFunctionClass 239 Miscellaneous Device
bFunctionSubClass 5 USB3 Vision
bFunctionProtocol 0
iFunction 4
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 239 Miscellaneous Device
bInterfaceSubClass 5 USB3 Vision
bInterfaceProtocol 0
iInterface 5
** UNRECOGNIZED: 14 24 01 00 00 01 00 00 00 01 00 06 01 02 07 08 09 0b 0a 0c
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 239 Miscellaneous Device
bInterfaceSubClass 5 USB3 Vision
bInterfaceProtocol 1
iInterface 11
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 239 Miscellaneous Device
bInterfaceSubClass 5 USB3 Vision
bInterfaceProtocol 2
iInterface 12
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0400 1x 1024 bytes
bInterval 0
bMaxBurst 15

I see a lot of this device class:

In the case of a “standardized” USB camera, this would instead be “USB Video Class” (which is what the acronym “UVC” is from). So this camera does require more specific drivers and will not be able to use the standard UVC drivers.

Looks like that web page “download” is for binary driver files tied to 4.4.38 (I did not verify this, but the run script appears to be for installing binary content), and what I’ll suggest is that you ask them to either provide in source form (it is quite possible they won’t allow this), or else ask them to also provide a binary driver for 4.4.159. They might agree to the latter, but I see the more recent L4T R32.4.2 is still only at 4.9.140. They can easily use the NVIDIA-provided 4.9.140 kernel and release a binary driver compiled against this which results in supporting a number of newer Jetson releases without much effort, but you would probably have to provide a 4.4.159 kernel config to compile against if you stick to that release (don’t know if they are willing to do that).