Can2usb converter on TX1

I’m trying to connect my TX1 (mounted on the developer kit) to a CAN device. As there is no CAN on TX1, I’m using a can2usb converter based on candleLight. The first command for bringing up this converter is:
$ sudo modprobe gs_usb
But there is no gs_usb on my TX1.

I opened the JetPack kernel configuration tool. There I found ‘CAN bus subsystem support - CAN Device Drivers’. My first question is: does this option include gs_usb or is it gs_usb somewhere else in the kernel configuration?

My second question is: do you know if candleLight-based or other can2usb converters can be supported on TX1?

Thank you!

This is a kernel feature. Attempting to load it via modprobe implies module format (you can also build a feature directly into a kernel…not all features can be a module, and not all features can be integrated, but the majority work either way). Kernel features are usually drivers, and even if the kernel does not have that feature configured it does not mean the kernel does not support it.

To see the running kernel’s configuration, and to filter for GS_USB, run this command:
zcat /proc/config.gz | egrep -i gs_usb

If you see “=m”, then the feature is available via a module. If you see “=y”, then the feature is permanent and cannot be unloaded. If the line is commented out or “=n”, then the feature is missing.

To add a module you would configure the kernel source to match the current system, set CONFIG_LOCALVERSION="-tegra", and then use a menu style editor to enable that feature (probably as a module). The module can then be copied to the right subdirectory of “/lib/modules/$(uname -r)/kernel/” (btw, the reason for the CONFIG_LOCALVERSION edit is so uname -r does not change and module location remains constant).

If you want to know what is going on, run the above command and report what the result is. Also, if the feature is already enabled in some way (or perhaps even if not enabled), then monitor the command “dmesg --follow” and note what shows up upon insert of the USB connector.

Btw, many documents on this topic will be no different for a Jetson versus any other hardware. This is a more or less standard kernel build topic. There will not be any Linux system which does or does not support that hardware…it is a question of whether or not the feature is enabled. There may also be some user space software reqiurements.

Hi yubocheng,

CONFIG_CAN_GS_USB is in this location:
-> Networking support (NET [=y])
-> CAN bus subsystem support (CAN [=m])
-> CAN Device Drivers
-> Platform CAN drivers with Netlink support (CAN_DEV [=m])
-> CAN USB interfaces
You can set this config as m and build kernel. Then try to load it via modprobe gs_usb, it will load.

Thanks,
Shubhi

Hi Shubhi,

Thanks for pointing it out! I found the gs_usb option (Geschwister Schneider UG interfaces), made the kernel, succeeded in ‘sudo modprobe gs_usb’ and now my device is working.

I was a little confused about why I didn’t see -> CAN USB interfaces last time. It might be because I didn’t click and expand some other options last time. I appreciate your help!

Best,
Bocheng

1 Like