I have successfully got MTP working with a Teensy 3.6 using the code from here: https://github.com/WMXZ-EU/MTP_t4)...but only with Windows 10.
With Linux (Ubuntu 20.04), the Teensy is recognised with lsusb:
Code:
Bus 002 Device 002: ID 0781:5583 SanDisk Corp. Ultra Fit
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 0c45:671e Microdia Integrated_Webcam_HD
Bus 001 Device 022: ID 16c0:04d1 Van Ooijen Technische Informatica Teensy MTP Disk
Bus 001 Device 003: ID 0cf3:e009 Qualcomm Atheros Communications
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
...and dmesg:
Code:
2590.640519] usb 1-2: new full-speed USB device number 22 using xhci_hcd
[12590.789140] usb 1-2: New USB device found, idVendor=16c0, idProduct=04d1, bcdDevice= 2.77
[12590.789142] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[12590.789144] usb 1-2: Product: Teensy MTP Disk
[12590.789145] usb 1-2: Manufacturer: Teensyduino
[12590.789146] usb 1-2: SerialNumber: 9053380
[12590.792081] hid-generic 0003:16C0:04D1.0013: hidraw1: USB HID v1.11 Device [Teensyduino Teensy MTP Disk] on usb-0000:00:14.0-2/input1
...but the Teensy does not mount.
I have compiled using in PlatformIO using TeensyDuino 1.54b7, and the following build parameters (platformio.ini):
Code:
[env:teensy36]
platform = teensy
board = teensy36
framework = arduino
build_flags = -D USB_MTPDISK
platform_packages =
framework-arduinoteensy@https://github.com/maxgerhardt/teensy-core-pio-package.git
Is there a specific udev entry I need to make in /lib/udev/rules.d/69-libmtp.rules ?
I have installed gvfs-backends, jmtpfs and mtp-tools. I have read through 37 pages of this thread for ideas/solutions.
What have I missed? Or is getting Teensy 3.6 MTP working with linux not yet possible?
It's a bit frustrating that it works flawlessly under Windows 10, showing up just like a USB stick would, but under Linux...recognised, but will not mount. 
Any help will be appreciated.