Using Teensy with Chromebook Linux

mwomack

Well-known member
I'm guessing that this hasn't been solved yet, I have a Chromebook with the Linux container enabled. I can install the Arduino IDE, Teensyduino, and all of the libraries I use for my project. I can compile the project and the Teeny bootloader opens. The one thing I can't do is actually upload the code to the connected Teensy (3.5). The Teensy isn't recognized or supported in the Linux container. When it is plugged in it does not appear in the Chromebook Linux USB devices.

If I can petition to have this one thing fixed, then please consider it petitioned. It is just so close (but then the last 10% is probably the hardest...). I don't know what needs to happen on the Teensy side.

thanks,
-Mark
 
Yes, make sure the udev rules are installed.

If that doesn't magically make everything work, look for the place where kernel syslog messages are stored. On Ubuntu, running "tail -f /var/log/syslog" in a terminals shows the messages. While that is running, try unplugging Teensy and reconnect. Also try pressing the Program button on Teensy. The kernel should give messages about the USB device detection, and info about which drivers it is loading.

After udev rules, the next most likely issue is the Linux system may be missing necessary drivers. The kernel syslog messages can show those details.
 
Thanks for the quick replies. Yes, I did install the udev rules, and when the Teensyduino installer ran in the linux container, it found them successfully installed. I suspect that the issue is at the ChromeOS level since there is a setting for the Linux container to allow usb devices. And as I said, the Teensy doesn't even show up there a valid device. So, digging around I found where ChromeOS seems to print its own logs (separate from the Linux container, its own /var/log/messages), and this is what it prints out when the Teensy is connected:

2022-04-14T19:57:55.678800Z INFO kernel: [264985.939482] usb 1-2: new full-speed USB device number 12 using xhci_hcd
2022-04-14T19:57:55.843871Z INFO kernel: [264986.104834] usb 1-2: New USB device found, idVendor=16c0, idProduct=0483, bcdDevice= 2.76
2022-04-14T19:57:55.843935Z INFO kernel: [264986.104854] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
2022-04-14T19:57:55.843946Z INFO kernel: [264986.104864] usb 1-2: Product: USB Serial
2022-04-14T19:57:55.843953Z INFO kernel: [264986.104872] usb 1-2: Manufacturer: Teensyduino
2022-04-14T19:57:55.843961Z INFO kernel: [264986.104879] usb 1-2: SerialNumber: 2447770
2022-04-14T19:57:55.847925Z INFO kernel: [264986.108710] cdc_acm 1-2:1.0: ttyACM0: USB ACM device
2022-04-14T19:57:56.085330Z INFO permission_broker[1892]: ProcessPath(/dev/bus/usb/001/012)
2022-04-14T19:57:56.173914Z INFO permission_broker[1892]: AllowUsbDeviceRule: ALLOW
2022-04-14T19:57:56.174006Z INFO permission_broker[1892]: AllowTtyDeviceRule: IGNORE
2022-04-14T19:57:56.176138Z INFO permission_broker[1892]: Found claimed interface with driver: cdc_acm
2022-04-14T19:57:56.176615Z INFO permission_broker[1892]: Found claimed interface with driver: cdc_acm
2022-04-14T19:57:56.205157Z INFO permission_broker[1892]: DenyClaimedUsbDeviceRule: DENY
2022-04-14T19:57:56.205290Z INFO permission_broker[1892]: Verdict for /dev/bus/usb/001/012: DENY
2022-04-14T19:57:56.206054Z INFO permission_broker[1892]: ProcessPath(/dev/bus/usb/001/012)
2022-04-14T19:57:56.253420Z INFO permission_broker[1892]: AllowUsbDeviceRule: ALLOW
2022-04-14T19:57:56.253530Z INFO permission_broker[1892]: AllowTtyDeviceRule: IGNORE
2022-04-14T19:57:56.255713Z INFO permission_broker[1892]: Found claimed interface with driver: cdc_acm
2022-04-14T19:57:56.256168Z INFO permission_broker[1892]: Found claimed interface with driver: cdc_acm
2022-04-14T19:57:56.256827Z INFO permission_broker[1892]: DenyClaimedUsbDeviceRule: DENY
2022-04-14T19:57:56.256881Z INFO permission_broker[1892]: Verdict for /dev/bus/usb/001/012: DENY
2022-04-14T19:57:56.257181Z INFO permission_broker[1892]: ProcessPath(/dev/bus/usb/001/012)
2022-04-14T19:57:56.304694Z INFO permission_broker[1892]: AllowUsbDeviceRule: ALLOW
2022-04-14T19:57:56.304796Z INFO permission_broker[1892]: AllowTtyDeviceRule: IGNORE
2022-04-14T19:57:56.306875Z INFO permission_broker[1892]: Found claimed interface with driver: cdc_acm
2022-04-14T19:57:56.307326Z INFO permission_broker[1892]: Found claimed interface with driver: cdc_acm
2022-04-14T19:57:56.308005Z INFO permission_broker[1892]: DenyClaimedUsbDeviceRule: DENY
2022-04-14T19:57:56.308065Z INFO permission_broker[1892]: Verdict for /dev/bus/usb/001/012: DENY
 
For comparison, if I plug in an Arduino UNO, it appears in the Linux USB as a valid device. This is what it's log looks like:

2022-04-14T20:15:22.062594Z INFO kernel: [266032.333176] usb 1-2: New USB device found, idVendor=2341, idProduct=0043, bcdDevice= 0.01
2022-04-14T20:15:22.062645Z INFO kernel: [266032.333184] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=220
2022-04-14T20:15:22.062649Z INFO kernel: [266032.333188] usb 1-2: Manufacturer: Arduino (www.arduino.cc)
2022-04-14T20:15:22.062657Z INFO kernel: [266032.333191] usb 1-2: SerialNumber: 753383236353519072F0
2022-04-14T20:15:22.062660Z WARNING kernel: [266032.333719] usb 1-2: ep 0x82 - rounding interval to 1024 microframes, ep desc says 2040 microframes
2022-04-14T20:15:22.064587Z INFO kernel: [266032.335337] cdc_acm 1-2:1.0: ttyACM0: USB ACM device
2022-04-14T20:15:22.318856Z INFO permission_broker[1892]: ProcessPath(/dev/bus/usb/001/013)
2022-04-14T20:15:22.399505Z INFO permission_broker[1892]: AllowUsbDeviceRule: ALLOW
2022-04-14T20:15:22.399519Z INFO permission_broker[1892]: AllowTtyDeviceRule: IGNORE
2022-04-14T20:15:22.401495Z INFO permission_broker[1892]: Found claimed interface with driver: cdc_acm
2022-04-14T20:15:22.401912Z INFO permission_broker[1892]: Found claimed interface with driver: cdc_acm
2022-04-14T20:15:22.429714Z INFO permission_broker[1892]: DenyClaimedUsbDeviceRule: ALLOW_WITH_DETACH
2022-04-14T20:15:22.429913Z INFO permission_broker[1892]: DenyUninitializedDeviceRule: IGNORE
2022-04-14T20:15:22.429991Z INFO permission_broker[1892]: DenyUsbDeviceClassRule: IGNORE
2022-04-14T20:15:22.430033Z INFO permission_broker[1892]: DenyUsbVendorIdRule: IGNORE
2022-04-14T20:15:22.430070Z INFO permission_broker[1892]: AllowHidrawDeviceRule: IGNORE
2022-04-14T20:15:22.430106Z INFO permission_broker[1892]: AllowGroupTtyDeviceRule: IGNORE
2022-04-14T20:15:22.430142Z INFO permission_broker[1892]: DenyGroupTtyDeviceRule: IGNORE
2022-04-14T20:15:22.430199Z INFO permission_broker[1892]: message repeated 2 times: [ DenyGroupTtyDeviceRule: IGNORE]
2022-04-14T20:15:22.430217Z INFO permission_broker[1892]: DenyClaimedHidrawDeviceRule: IGNORE
2022-04-14T20:15:22.430263Z INFO permission_broker[1892]: DenyUnsafeHidrawDeviceRule: IGNORE
2022-04-14T20:15:22.430299Z INFO permission_broker[1892]: DenyFwUpdateHidrawDeviceRule: IGNORE
2022-04-14T20:15:22.430335Z INFO permission_broker[1892]: Verdict for /dev/bus/usb/001/013: ALLOW_WITH_DETACH
2022-04-14T20:15:22.430467Z INFO permission_broker[1892]: ProcessPath(/dev/bus/usb/001/013)
2022-04-14T20:15:22.479649Z INFO permission_broker[1892]: AllowUsbDeviceRule: ALLOW
2022-04-14T20:15:22.479764Z INFO permission_broker[1892]: AllowTtyDeviceRule: IGNORE
2022-04-14T20:15:22.481651Z INFO permission_broker[1892]: Found claimed interface with driver: cdc_acm
2022-04-14T20:15:22.482093Z INFO permission_broker[1892]: Found claimed interface with driver: cdc_acm
2022-04-14T20:15:22.482746Z INFO permission_broker[1892]: DenyClaimedUsbDeviceRule: ALLOW_WITH_DETACH
2022-04-14T20:15:22.482845Z INFO permission_broker[1892]: DenyUninitializedDeviceRule: IGNORE
2022-04-14T20:15:22.482908Z INFO permission_broker[1892]: DenyUsbDeviceClassRule: IGNORE
2022-04-14T20:15:22.482980Z INFO permission_broker[1892]: DenyUsbVendorIdRule: IGNORE
2022-04-14T20:15:22.483016Z INFO permission_broker[1892]: AllowHidrawDeviceRule: IGNORE
2022-04-14T20:15:22.483053Z INFO permission_broker[1892]: AllowGroupTtyDeviceRule: IGNORE
2022-04-14T20:15:22.483089Z INFO permission_broker[1892]: DenyGroupTtyDeviceRule: IGNORE
2022-04-14T20:15:22.483144Z INFO permission_broker[1892]: message repeated 2 times: [ DenyGroupTtyDeviceRule: IGNORE]
2022-04-14T20:15:22.483162Z INFO permission_broker[1892]: DenyClaimedHidrawDeviceRule: IGNORE
2022-04-14T20:15:22.483222Z INFO permission_broker[1892]: DenyUnsafeHidrawDeviceRule: IGNORE
2022-04-14T20:15:22.483258Z INFO permission_broker[1892]: DenyFwUpdateHidrawDeviceRule: IGNORE
2022-04-14T20:15:22.483294Z INFO permission_broker[1892]: Verdict for /dev/bus/usb/001/013: ALLOW_WITH_DETACH
2022-04-14T20:15:22.483404Z INFO permission_broker[1892]: ProcessPath(/dev/bus/usb/001/013)
2022-04-14T20:15:22.530262Z INFO permission_broker[1892]: AllowUsbDeviceRule: ALLOW
2022-04-14T20:15:22.530365Z INFO permission_broker[1892]: AllowTtyDeviceRule: IGNORE
2022-04-14T20:15:22.532467Z INFO permission_broker[1892]: Found claimed interface with driver: cdc_acm
2022-04-14T20:15:22.532933Z INFO permission_broker[1892]: Found claimed interface with driver: cdc_acm
2022-04-14T20:15:22.533611Z INFO permission_broker[1892]: DenyClaimedUsbDeviceRule: ALLOW_WITH_DETACH
2022-04-14T20:15:22.533717Z INFO permission_broker[1892]: DenyUninitializedDeviceRule: IGNORE
2022-04-14T20:15:22.533785Z INFO permission_broker[1892]: DenyUsbDeviceClassRule: IGNORE
2022-04-14T20:15:22.533837Z INFO permission_broker[1892]: DenyUsbVendorIdRule: IGNORE
2022-04-14T20:15:22.533875Z INFO permission_broker[1892]: AllowHidrawDeviceRule: IGNORE
2022-04-14T20:15:22.533912Z INFO permission_broker[1892]: AllowGroupTtyDeviceRule: IGNORE
2022-04-14T20:15:22.533948Z INFO permission_broker[1892]: DenyGroupTtyDeviceRule: IGNORE
2022-04-14T20:15:22.534005Z INFO permission_broker[1892]: message repeated 2 times: [ DenyGroupTtyDeviceRule: IGNORE]
2022-04-14T20:15:22.534023Z INFO permission_broker[1892]: DenyClaimedHidrawDeviceRule: IGNORE
2022-04-14T20:15:22.534068Z INFO permission_broker[1892]: DenyUnsafeHidrawDeviceRule: IGNORE
2022-04-14T20:15:22.534105Z INFO permission_broker[1892]: DenyFwUpdateHidrawDeviceRule: IGNORE
2022-04-14T20:15:22.534141Z INFO permission_broker[1892]: Verdict for /dev/bus/usb/001/013: ALLOW_WITH_DETACH
 
What is boils down to is many things 'serial' are still problematic under Crostini (Chromebook Linux in a VM). Google is still very cautious in opening up full access to devices under their VM. This I heard for a third party. see masong19hippows comment here. https://www.reddit.com/r/Crostini/comments/tykm18/arduino_ide_and_pygamer_no_devttyacm00/

I never managed to get downloads working. Samsung Galaxy Gave up and am running on a Chrombox + Crouton/XFCE
 
Yeah, that is unfortunate. My bug got closed as a duplicate of an internal Google bug that I don't have access to. I don't know if that is a good or bad sign. I sent an email to get some more clarification, but I'm not expecting much.

Not sure I'm ready to commit to something like Crouton yet.

-Mark
 
Yeah, that is unfortunate. My bug got closed as a duplicate of an internal Google bug that I don't have access to. I don't know if that is a good or bad sign. I sent an email to get some more clarification, but I'm not expecting much.

Not sure I'm ready to commit to something like Crouton yet.

-Mark

I didn't have any choice. I started out using the Arduino online IDE which worked OK until I switched processors. It was either Crouton or buy yet another laptop and install Linux as I quit MS-Win way back in 2004.

Hope they fix Crostini soon as it is a real pain moving src between my Crouton desktop and my Crostini laptop.
 
Back
Top