A USB ttyACM device cannot be accessed on a stock L4T 28.1 installation. In this article, we cover installation of a prebuilt cdc-acm module on the NVIDIA Jetson Dev Kits running L4T 28.1 to access ttyACM devices. This works with both the Jetson TX1 and Jetson TX2. Looky here:
Some USB devices report as USB, others report as ACM. Here’s an article explaining the good bits about what that means. Many devices, such as some Arduinos, report as ACM devices.
We have previously gone over how to download the kernel sources and build the kernel and modules, even how to build a module specifically to “talk ACM”. However, that seems like a lot of work to do something both simple and frequently needed. Therefore there’s a JetsonHacks repository on Github named installACMModule which contains a pre-built module along with a script to install the module.
Installation is straightforward:
$ git clone https://github.com/jetsonhacks/installACMModule
$ cd installACMModule
There is one script:
The script compares the module version with the currently running kernel version. If the versions match, then the cdc-acm module is installed. If the versions do not match, then you will be asked if this is something you really want to do. In this case, you should make sure that the kernel on your machine is a version of 4.4.38:
$ uname -r
If you have a custom version of 4.4.38 running, it should be fine. If you have a different version, then you probably should not proceed. If you decide to go ahead, you may have to do a force install, which you can do with something similar to modprobe -f cdc-acm though this hasn’t been tested. There are many online resources which talk about this type of situation, so we won’t cover them here. Here’s an extra bit of information. A module contains something called a ‘version magic’ string which tells which version of a particular kernel built the module. If the kernel version of your machine and the version magic do not match, then the module system pouts a little bit. You can override it, but just remember that it is there for a reason.
Whether you’re just starting out on the Jetson, or you just need a quick fix for not being able to access your ttyACM USB device, this should be a useful tool for your bag of tricks.
This has been tested both on NVIDIA Jetson TX1 and TX2 Development Kits, directly after flashing with L4T 28.1 (JetPack 3.1).