ttyACM0 does not work with the micro AB USB port

Don’t know if this helps, but on the default kernel config of a TX1 R28.2:

# CONFIG_USB_SERIAL_CH341 is not set

…which implies the driver can probably be added as a module, but if your “/proc/config.gz” does not have this, then the ch341 driver is missing. In one form or another CH341 hardware will need this.

Looks like the ttyGS0 is for the “gadget” interface…basically an emulated serial UART:
https://www.kernel.org/doc/Documentation/usb/gadget_serial.txt

Since R28.2 (I think) there seems to have been some effort to set up USB “gadgets” when in device mode. I don’t know the purpose behind this, but my assumption is that in some future release there might be a desire to get away from using wired ethernet and letting it all go over USB…with USB emulating everything needed (I’m just speculating).

For your device, if it is CH341, then you’ll have to have the kernel driver before the “/dev” file shows up.

@linuxdev: Thanks for the info!

I checked my

/proc/config.gz

and it shows:

CONFIG_USB_SERIAL_CH341 is not set.

So does this mean that it’s just a module that needs to be enabled, something that i could patch in, or that i need to recompile the kernel (vis-a-vis the jetson hacks tutorial?)

I’m basically proficient in following instructions but compiling kernel stuff is just above my grade level. If can figure out what needs to be done, I can likely figure it out… but pointers greatly appreciated.

Not everything can be built as a module, but most drivers can be modules. As long as you don’t need the driver to boot (e.g., if you need to read modules on an ext4 file system and the module is to read ext4, then it can’t be a module) you can just build it as a module and then copy it to the right place under “/lib/modules/$(uname -r)/”.

Use your existing “/proc/config.gz” when configuring your build, make sure your “CONFIG_LOCALVERSION” is set to the suffix of “uname -r”, and it should work. An example for CONFIG_LOCALVERSION is that if your “uname -r” is “4.4.38-tegra”, then CONFIG_LOCALVERSION should be “-tegra”, and the module would be somewhere under “/lib/modules/4.4.38-tegra/”. In the kernel source the “ch341.c” file (and thus the “ch341.o” file) is in “drivers/usb/serial/”, so I’d expect to put the “.ko” driver file here:

/lib/modules/4.4.38-tegra/kernel/drivers/usb/serial/

(then “sudo depmod -A” and reboot or re-insert the USB cable with the ch341)