Done many projects using Teensy 3.2, 3.5 & 3.6 exclusively on a Windows 10 platform. I ordered the NVIDIA Jetson Nano to do real-time Visual Recognition. Linux is very different. I decided to program a Teensy 3.2 from the Jetson. So I installed Arduino 1.8.9 with Teensyduino 1.46 using PJRC's "Linux Installer (AARCH64 / Jetson TX2)") on Ubuntu 18.04.2 LTS. It worked. Follow instructions carefully. The only hitch was that I missed copying the file called 49-teensy.rules to here:

using this command:

sudo cp 49-teensy.rules /etc/udev/rules.d/
No need to download Java. The Arduino installation includes it.

The trial... I brought up the Arduino IDE from the linux prompt. I plugged in the Teensy 3.2 board. The IDE automatically detected the Teensy, which was good because the linux port names are not straightforward (e.g., "/dev/ttyACM0 (Teensy)"). I put together a simple "blink" program and compiled it with no issues. The upload initially failed because of the missing 49-teensy.rules file. After that, uploads worked flawlessly. Overall, the experience of compiling and uploading is the same as Windows. Maybe less clunky on the Linux side. It terms of speed, I'd say they're on par with each other, Linux might be faster, although I did not time it.

Has anyone tried SPI and/or UART communication between a Teensy and Ubuntu?