It has been a crazy year for those watching the rapid evolution of ChromeOS, in fact it has been a month since I first broke that ChromeOS had implemented proper USB support in Crostini 75.0.3759.4. Officially the Crostini USB support is limited to Android Phones, specifically to allow for developers to connect to adb on the phone to test applications on actual hardware however it is possible to pass support to many other devices by activating a hidden flag. There is a myriad of USB devices out there and this article provides a overview of what works and what does not work.
Activating Unsupported USB Devices
Before we begin, if you would like to activate support for “Unsupported USB Devices”, please ensure you are on ChromeOS 75.0.3759.0 or later and have Crostini setup. You will need to ensure the following flags have been enabled.
chrome://flags/#crostini-usb-support chrome://flags/#crostini-usb-allow-unsupported
Now simply reboot your ChromeOS device for the changes to take effect. Furthermore if you have a Chromebook without USB-A ports such as the Pixelbook – make sure that you pick up a USB-C OTG Cable or a USB-C Hub as many of these accessories do not come with USB-C ports by default.
What Works and What Does Not Work
Here is a list of the items I have tested along with details. Of course I cannot test every possible device so if you have anything that you wish to have added to this list, please drop a comment at the bottom of this post or reach out to me via email – in both cases, please include model numbers of the device you tested and I will add to this list. If you have something specific that you want me to test, reach out to me and I will see if I can get access to the hardware.
Item | Result | Notes | Tested By |
Android Phones | Pass | No shock here as this is officially the only supported use case for Crostini USB | KMyers |
Android Tablets | Pass | No shock here as this is officially the only supported use case for Crostini USB | KMyers |
CD/DVD-ROM Drives (Data) | Pass | This one is not as seamless as other options. Please see the section of this post called “Sharing Data DVD Data With Crostini” for steps on accessing data stored on a CD/DVD-ROM. I should point out that this is read-only, not Read/Write. | KMyers |
CD/DVD-ROM Drives (Video) | Fail | ChromeOS will mount the CD/DVD ROM Drive on the ChromeOS File Manager and you can technically share the mount point to ChromeOS however Linux Video players will refuse to play the video in this format. I did install a CSS decoder but this did not help. | KMyers |
Intel Movidius NCS 2 | Pass | Simply connect the NCS to your Chromebook and you will be prompted to share the device to Linux. You may want to take a look at my Crostini ML Setup Script which automates most of the setup inside of your Crostini container. | KMyers |
MicroSD Cards (Build in or via USB) | Fail | Although it is not possible to pass the hardware to Crostini , it is possible to share the disk or a folder of the disk to Crostini. The reason this is a fail is you cannot get low level access to the hardware which is needed for tools like dd to work therefore making it impossible to flash a Raspberry Pi SD card via Crostini | KMyers |
U2F Keys/Yubikeys | Fail | These devices are limited to ChromeOS. This also includes the Pixelbook’s U2F Key. | KMyers |
USB Camera/Webcam | Fail | Not detected by ChromeOS or Crostini | KMyers |
USB Flash Drives | Fail | Although it is not possible to pass the hardware to Crostini , it is possible to share the disk or a folder of the disk to Crostini. The reason this is a fail is you cannot get low level access to the hardware which is needed for tools like dd to work therefore making it impossible to flash a USB Flash Drive card via Crostini. | KMyers |
USB Keyboards/Mice | Fail | These devices cannot be bound to the Crostini Container however are usable on ChromeOS to interact with Crostini. | KMyers |
USB Mass Storage Devices | Fail | Although it is not possible to pass the hardware to Crostini , it is possible to share the disk or a folder of the disk to Crostini. The reason this is a fail is you cannot get low level access to the hardware which is needed for tools like dd to work therefore making it impossible to perform low level actions such as partitioning. | KMyers |
I will be updating this list as I test more items so please check back periodically.
Sharing CD/DVD Data With Crostini
In order to share Data CDs or DVDs, please follow the instructions below
- Connect a USB DVD ROM to a USB Port (using a Type-C OTG if needed)
- Insert a CD-ROM or DVD-ROM in the drive
- Wait a few moments for the disk to show up in the ChromeOS file manager (it will be listed as the name of the CD/DVD)
- Right Click on the drive and select “Share with Linux”
Have you tried connecting a chromebook to a 3d printer after making the above changes? If so what were the results? I was able to install Pronterface on my chromebook but was not able to get the usb device recognized. After reading this article I have a better understanding of why i did not work.
Thanks for the info.
Robert
It seems to have broke shortly after I wrote this. I am still working on some possible solutions. In my case I normally just export the gcode and run my printers off the SD card but I know that this is not always a option for some.
Hi Keith,
Since you wrote your May article on what works and what doesn’t in USB with Crostini: Has there been any progress towards Linux apps accessing usb cameras? we have developed Linux software (AstroDMx Capture for Linux) for use with UVC cameras as well as specialist astronomical cameras. The software can be downloaded from our website at https://www.linux-astro-imaging.uk/ . I wonder if you would test it for us as I am reluctant to purchase a Chromebook to test it and then find that it will not work. Please help if you can.
Thank you
Steve Wainwright and Nicola Mackin
I have been trying to work with an AmScope camera. I was able to install the software, driver and app, and I can open the app. If I then plug the camera into the USB socket, the camera will (after a time) show up in the app’s device list. However, if I then try to select the device, it disconnects. This could be an app problem, not crostini.
Hello! I wanted to try my T7 astro camera with the newest version of AstroDMx (older version had worked fine), and your question made me curious as to whether it would function with my Google Pixel Slate in the Linux virtual machine. Surprisingly (to me), the app *did* start up — though the windows/boxes/GUI seemed a bit ‘off’. I was prompted to accept the ChromeOS permissions required to access the ‘ASI120MC’ that I had connected to the USB-C port (even though this was the T7 clone). It seemed to accept this, but no matter what I did — there was ‘no connection’ to the camera. The ChromeOS permissions screen, however, does indicate that USB ‘only works for Android devices’ — so my guess is that this is mainly where the problem is.
BTW, whether or not AstroDMx works (currently) under ChromeOS or not, I heartily recommend devices using it! Of course my first love in Linux on regular x86 hardware, but ChromeOS is a great option as well.
Hello – would it be possible for you to create a thread on https://chromebook.community/ with your issue. I am trying to move all ChromeOS troubleshooting over there to make it easier for others to find.
Keith, you should update this to note that the Yubikeys do work in Crostini, you simply have to disable the “Smart Card Connector” in order to keep the devices from getting grabbed in ChromeOS so you can successfully pass them into Crostini.
Nice find, I will update that in a bit