ChromeOS running on some Chromebooks now have the option to install Linux Beta, a containerized Debian. Recently, Linux Beta was given the ability to support some additional USB devices including Arduino. Previously only Android devices were supported. Arduino IDE and Teensyduino install fine as detailed below https://www.stevencombs.com/arduino/2020/01/20/arduino-on-chromeos.html
Plugging in an Arduino Uno, ChromeOS recognizes the device and prompts the user with a Notification to "Open Settings to connect USB device from Arduino to Linux". Clicking the Settings 'switch' allows the Uno to function with the IDE as expected including compiling and uploading code.
Plugging in a Teensy does NOT produce the prompt or appearance of a corresponding 'switch' in Settings. Linux Beta does not have access to the device and cannot upload to it. The Arduino IDE does compile for Teensy. Clicking Upload invokes the GUI Teensy Loader but upload fails with
Of course pressing the PROGRAM MODE BUTTON stops the Teensy from blinking and enters program mode, but the IDE of course still does not recognize it because Linux Beta which the IDE is running on does not recognize the Teensy. HOWEVER, the underlying ChromeOS DOES recognize Teensy!
Crosh Ctrl Alt T Teensy 3.5 running Blink disconnected then reconnected.
dmesg
Here Teensy 3.5 is disconnected and Uno is connected in its place.
dmesg In the Linux Beta Terminal for Uno. Teensy plug/unplug produces no dmesg events in Linux Beta Terminal.
Earlier in dmesg in the Linux Beta Terminal support for USB devices is loaded.
So, any idea why Uno works and Teensy doesn't? Could it be related to https://forum.pjrc.com/threads/6334...imes-5-not-clear-why-at-all?highlight=ttyACM0
Do we need to petition Google to add some specific support, or is it already there with the generic ACM support?
To further confuse things I just tried to upload Blink to the Uno again and the IDE did not recognize the Uno was connected. Only change that comes to mind is a ChromeOS update Version 85.0.4183.133 (Official Build) (32-bit)
~/.avrduderc contains only
but it does not appear in IDE as an option any more. only /dev/ttyS0 - /dev/ttyS3
Edit: Chromebook model is Lenovo e100 2nd gen MTK
Code:
wget https://downloads.arduino.cc/arduino-1.8.13-linuxarm.tar.xz
wget https://www.pjrc.com/teensy/td_153/TeensyduinoInstall.linuxarm
wget https://www.pjrc.com/teensy/49-teensy.rules
sudo cp 49-teensy.rules /etc/udev/rules.d/
tar -xf arduino-1.8.13-linuxarm.tar.xz
chmod 755 TeensyduinoInstall.linuxarm
./TeensyduinoInstall.linuxarm --dir=arduino-1.8.13
cd arduino-1.8.13
sudo ./install.sh
arduino-linux-setup.sh $USER
Plugging in a Teensy does NOT produce the prompt or appearance of a corresponding 'switch' in Settings. Linux Beta does not have access to the device and cannot upload to it. The Arduino IDE does compile for Teensy. Clicking Upload invokes the GUI Teensy Loader but upload fails with
Code:
Arduino: 1.8.13 (Linux), TD: 1.53, Board: "Teensy 3.5, Serial, 120 MHz, Faster, US English"
Opening Teensy Loader...
Sketch uses 8548 bytes (1%) of program storage space. Maximum is 524288 bytes.
Global variables use 3020 bytes (1%) of dynamic memory, leaving 259116 bytes for local variables. Maximum is 262136 bytes.
/home/hanksmaki/arduino/arduino-1.8.13/hardware/teensy/../tools/teensy_post_compile -file=Blink.ino -path=/tmp/arduino_build_861034 -tools=/home/hanksmaki/arduino/arduino-1.8.13/hardware/teensy/../tools -board=TEENSY35 -reboot -port=/dev/ttyS0 -portlabel=/dev/ttyS0 -portprotocol=serial
No Teensy boards were found on any USB ports of your computer.
An error occurred while uploading the sketch
Please press the PROGRAM MODE BUTTON on your Teensy to upload your sketch.
Crosh Ctrl Alt T Teensy 3.5 running Blink disconnected then reconnected.
dmesg
Code:
[ 6482.214702] usb 1-2.1: USB disconnect, device number 6
[ 6482.312548] SELinux: initialized (dev proc, type proc), uses genfs_contexts
[ 6482.315110] SELinux: initialized (dev tmpfs, type tmpfs), uses transition SIDs
[ 6482.315767] SELinux: initialized (dev tmpfs, type tmpfs), uses transition SIDs
[ 6482.315985] SELinux: initialized (dev tmpfs, type tmpfs), uses transition SIDs
[ 6482.342708] SELinux: initialized (dev tmpfs, type tmpfs), uses transition SIDs
[ 6484.614257] usb 1-2.1: new full-speed USB device number 7 using xhci-mtk
[ 6484.703340] usb 1-2.1: New USB device found, idVendor=16c0, idProduct=0486, bcdDevice= 2.00
[ 6484.703385] usb 1-2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 6484.703407] usb 1-2.1: Product: Teensyduino RawHID
[ 6484.703428] usb 1-2.1: Manufacturer: Teensyduino
[ 6484.703447] usb 1-2.1: SerialNumber: 6005510
[ 6484.713955] hid-generic 0003:16C0:0486.0007: hiddev0,hidraw0: USB HID v1.11 Device [Teensyduino Teensyduino RawHID] on usb-11270000.usb-2.1/input0
[ 6484.719319] hid-generic 0003:16C0:0486.0008: hidraw1: USB HID v1.11 Device [Teensyduino Teensyduino RawHID] on usb-11270000.usb-2.1/input1
[ 6484.765039] SELinux: initialized (dev proc, type proc), uses genfs_contexts
[ 6484.768617] SELinux: initialized (dev tmpfs, type tmpfs), uses transition SIDs
[ 6484.769210] SELinux: initialized (dev tmpfs, type tmpfs), uses transition SIDs
[ 6484.769433] SELinux: initialized (dev tmpfs, type tmpfs), uses transition SIDs
[ 6484.798518] SELinux: initialized (dev tmpfs, type tmpfs), uses transition SIDs
Code:
[ 6668.838468] usb 1-2.1: USB disconnect, device number 7
[ 6668.944039] SELinux: initialized (dev proc, type proc), uses genfs_contexts
[ 6668.948598] SELinux: initialized (dev tmpfs, type tmpfs), uses transition SIDs
[ 6668.949761] SELinux: initialized (dev tmpfs, type tmpfs), uses transition SIDs
[ 6668.950257] SELinux: initialized (dev tmpfs, type tmpfs), uses transition SIDs
[ 6668.982875] SELinux: initialized (dev tmpfs, type tmpfs), uses transition SIDs
[ 6674.694237] usb 1-2.1: new full-speed USB device number 8 using xhci-mtk
[ 6674.788709] usb 1-2.1: New USB device found, idVendor=2341, idProduct=0043, bcdDevice= 0.01
[ 6674.788747] usb 1-2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=220
[ 6674.788769] usb 1-2.1: Manufacturer: Arduino (www.arduino.cc)
Code:
[ 4610.845828] usb 1-1: new full-speed USB device number 2 using xhci_hcd
[ 4611.123442] cdc_acm 1-1:1.0: ttyACM0: USB ACM device
[ 4616.500039] usb 1-1: USB disconnect, device number 2
Code:
[ 1.697929] xhci_hcd 0000:00:0c.0: xHCI Host Controller
[ 1.702189] xhci_hcd 0000:00:0c.0: new USB bus registered, assigned bus number 1
[ 1.705933] xhci_hcd 0000:00:0c.0: hcc params 0x30000501 hci version 0x110 quirks 0x0000000000080452
[ 1.709685] hub 1-0:1.0: USB hub found
[ 1.710995] hub 1-0:1.0: 8 ports detected
[ 1.715060] xhci_hcd 0000:00:0c.0: xHCI Host Controller
[ 1.715705] xhci_hcd 0000:00:0c.0: new USB bus registered, assigned bus number 2
[ 1.716309] xhci_hcd 0000:00:0c.0: Host supports USB 3.0 SuperSpeed
[ 1.717244] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[ 1.718457] hub 2-0:1.0: USB hub found
[ 1.719543] hub 2-0:1.0: 8 ports detected
[ 1.724073] usbcore: registered new interface driver cdc_acm
[ 1.724740] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[ 1.725316] usbcore: registered new interface driver usb-storage
[ 1.726000] usbcore: registered new interface driver usbserial_generic
[ 1.726648] usbserial: USB Serial support registered for generic
[ 1.727244] usbcore: registered new interface driver ch341
[ 1.727748] usbserial: USB Serial support registered for ch341-uart
[ 1.728426] usbcore: registered new interface driver cp210x
[ 1.728903] usbserial: USB Serial support registered for cp210x
[ 1.729397] usbcore: registered new interface driver ftdi_sio
[ 1.729910] usbserial: USB Serial support registered for FTDI USB Serial Device
[ 1.730506] usbcore: registered new interface driver keyspan
[ 1.731127] usbserial: USB Serial support registered for Keyspan - (without firmware)
[ 1.731685] usbserial: USB Serial support registered for Keyspan 1 port adapter
[ 1.732201] usbserial: USB Serial support registered for Keyspan 2 port adapter
[ 1.732692] usbserial: USB Serial support registered for Keyspan 4 port adapter
[ 1.733199] usbcore: registered new interface driver pl2303
[ 1.733642] usbserial: USB Serial support registered for pl2303
[ 1.734135] usbcore: registered new interface driver usb_serial_simple
[ 1.734734] usbserial: USB Serial support registered for carelink
[ 1.735233] usbserial: USB Serial support registered for zio
[ 1.735737] usbserial: USB Serial support registered for funsoft
[ 1.736133] usbserial: USB Serial support registered for flashloader
[ 1.736363] usbserial: USB Serial support registered for google
[ 1.736552] usbserial: USB Serial support registered for libtransistor
[ 1.736898] usbserial: USB Serial support registered for vivopay
[ 1.737222] usbserial: USB Serial support registered for moto_modem
[ 1.737658] usbserial: USB Serial support registered for motorola_tetra
[ 1.738006] usbserial: USB Serial support registered for novatel_gps
[ 1.738263] usbserial: USB Serial support registered for hp4x
[ 1.738518] usbserial: USB Serial support registered for suunto
[ 1.738879] usbserial: USB Serial support registered for siemens_mpi
[ 1.739695] rtc-pl030 2000.rtc: registered as rtc0
[ 1.740134] IR NEC protocol handler initialized
[ 1.740416] IR RC5(x/sz) protocol handler initialized
[ 1.740683] IR RC6 protocol handler initialized
[ 1.740929] IR JVC protocol handler initialized
[ 1.741045] IR Sony protocol handler initialized
[ 1.741150] IR SANYO protocol handler initialized
[ 1.741253] IR Sharp protocol handler initialized
[ 1.741354] IR MCE Keyboard/mouse protocol handler initialized
[ 1.741474] IR XMP protocol handler initialized
[ 1.749140] device-mapper: ioctl: 4.41.0-ioctl (2019-09-16) initialised: dm-devel@redhat.com
[ 1.750303] device-mapper: verity-chromeos: dm-verity-chromeos registered
[ 1.750898] hidraw: raw HID events driver (C) Jiri Kosina
[ 1.751607] usbcore: registered new interface driver usbhid
[ 1.751869] usbhid: USB HID core driver
[ 1.753976] snd_intel8x0 0000:00:0b.0: enabling device (0000 -> 0002)
[ 1.754492] snd_intel8x0 0000:00:0b.0: enable (forced) VM optimization
So, any idea why Uno works and Teensy doesn't? Could it be related to https://forum.pjrc.com/threads/6334...imes-5-not-clear-why-at-all?highlight=ttyACM0
Do we need to petition Google to add some specific support, or is it already there with the generic ACM support?
To further confuse things I just tried to upload Blink to the Uno again and the IDE did not recognize the Uno was connected. Only change that comes to mind is a ChromeOS update Version 85.0.4183.133 (Official Build) (32-bit)
Code:
[ 4610.845828] usb 1-1: new full-speed USB device number 2 using xhci_hcd
[ 4611.123442] cdc_acm 1-1:1.0: ttyACM0: USB ACM device
[ 4616.500039] usb 1-1: USB disconnect, device number 2
[ 6306.989833] usb 1-1: new full-speed USB device number 3 using xhci_hcd
[ 6307.204131] cdc_acm 1-1:1.0: ttyACM0: USB ACM device
[ 6312.245400] usb 1-1: USB disconnect, device number 3
[ 6328.613793] usb 1-1: new full-speed USB device number 4 using xhci_hcd
[ 6328.829842] cdc_acm 1-1:1.0: ttyACM0: USB ACM device
[ 6334.258955] usb 1-1: USB disconnect, device number 4
Code:
default_serial = "/dev/ttyACM0";
Edit: Chromebook model is Lenovo e100 2nd gen MTK
Last edited: