Unable to Assign Teensy 3.2 to ttyACM* port on Linux

Status
Not open for further replies.

gossea

New member
Hi there,

I've been trying to get a Teensy 3.2 to show up as a serial device on Linux for a few days now. In particular, I'm using a Jetson TK1 board, but I have also been unsuccessful using a laptop with Ubuntu 16.04. I've already installed the udev rules and programmed the Teensy through Arduino IDE with the LED blink examples. The problem isn't being unable to program the Teensy at all, but I need it to show up at a port that can be accessed by rosserial. In Arduino IDE, the port with the Teensy is detected and appears as "Port: /dev/bus/usb/001/023" - basically, where it is connected on my USB hub. Ideally, the Teensy will show up under /dev/ttyACM0, but Linux will not assign it to this port for some reason. Are there any fixes to this problem? I can't change port permissions because nothing shows up when I run ls /dev/ttyACM* or even ls /dev/ttyUSB*. Any suggestions would be appreciated.

Here is the output from tail -f var/log/syslog when the Teensy is plugged in:
Sep 13 16:13:16 tegra-ubuntu kernel: [22794.919455] usb 1-3.2: New USB device found, idVendor=16c0, idProduct=0483
Sep 13 16:13:16 tegra-ubuntu kernel: [22794.919508] usb 1-3.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Sep 13 16:13:16 tegra-ubuntu kernel: [22794.919548] usb 1-3.2: Product: USB Serial
Sep 13 16:13:16 tegra-ubuntu kernel: [22794.919584] usb 1-3.2: Manufacturer: Teensyduino
Sep 13 16:13:16 tegra-ubuntu kernel: [22794.919619] usb 1-3.2: SerialNumber: 2199030
Sep 13 16:14:49 tegra-ubuntu wpa_supplicant[893]: wlan1: CTRL-EVENT-SCAN-STARTED
Sep 13 16:14:54 tegra-ubuntu wpa_supplicant[893]: nl80211: send_and_recv->nl_recvmsgs failed: -33
 
Maybe try uploading and running a sketch that uses Serial.print(), the blink sketch does not use the USB serial.

also "Port: /dev/bus/usb/001/023" shows up if Teensy is in HID mode (program mode)
 
Seeing something like /dev/bus/usb/001/023 is the correct behavior when the Linux kernel doesn't have the cdc_acm driver, either built in or as a loadable module, but the kernel does have the usbfs driver.

Since version 1.42, Teensyduino is able to detect Teensy on all 3 platforms and show it in the Ports menu, even when the operating system is missing a driver.

Unfortunately, nVidia didn't put cdc_asm into their kernel for the Jetson TX1 & TX2. Pretty sure they will add it for future versions.
 
I'm working with the Jetson TK1, not the TX1. Consequently, the fix you've linked doesn't work for my board, as I'm running an older version of L4T (21.3, I believe) and the newer versions aren't compatible.
 
I'm working with the Jetson TK1, not the TX1. Consequently, the fix you've linked doesn't work for my board, as I'm running an older version of L4T (21.3, I believe) and the newer versions aren't compatible.

Working now - the issue was solved by reinstalling the Grinch kernel on the TK1.
 
The simplest "solution" is to set Tools > USB Type to a non-serial option, like MIDI or RawHID.

If you really want to use USB serial, you'll need to cdc_acm driver. Maybe ask on nVidia's forum for support to get the cdc_acm driver installed on your board? ---- EDIT: I see you got it. Good. :)

PJRC tests on a single Linux system for each version (except for 32 bit x86, which isn't tested at all). For AARCH64, testing is only done on Jetson TX2. Generally the software works on other Linux systems, but the reality of Linux involves a massive number of slightly different systems. I'm afraid this is where support for Linux ends. When things don't work due to differences on other systems, this sort of generic advise is all I can offer.
 
Status
Not open for further replies.
Back
Top