A New Technology on Chromebooks
CodeWeavers is always excited to see new platforms where we can expand Windows compatibility. Of course we were thrilled when this year at Google I/O, the Chrome OS team announced a powerful new feature coming to Chromebooks. Starting with Google Pixelbook, Chrome OS will be able to run a full Linux environment in a secure virtual machine.
Linux VMs on Chrome OS open up a lot of possibilities. Google focused on the ability to use Chrome OS as a self-hosting Android development platform by running Android Studio in the Linux VM. At CodeWeavers, of course, I was excited to try running our Linux build of CrossOver on a Chromebook inside the virtual machine.
>>> Read How Josh Got Wine Working on Android
A clarification: running CrossOver for Linux on a Chromebook is early and experimental. Across the board, Linux containers on Chromebooks are still a developer focused feature. Also, CodeWeavers has a version of CrossOver already available in Google Play. That product - running via the Android system - is our more mature offering on Chrome OS and remains our current go-to means of running CrossOver on a Chromebook.
With that said, it will be an interesting journey to try using these new Linux VMs to run Debian CrossOver on Chrome OS. Let's get started.
Let's Explore
First, we must do a few things to enable the Linux VM on our Chromebook. The requirements:
- The Linux VM is currently only available on a Google Pixelbook.
- You have to first switch your Chromebook to the dev channel
Once that is done, you can navigate to the Chrome OS Settings and see a new "Linux (Beta)" option. Select that, and click 'Turn on'.
This will download and install some things, and after a minute or two you will get a new window with a bash shell running inside a Debian Linux instance.
CodeWeavers has instructions for installing CrossOver on Debian here:
https://www.codeweavers.com/support/wiki/linux/faq/Debian
So following those we first try:
wget https://crossover.codeweavers.com/redirect/crossover.deb
Our Linux VM is pretty bare-bones to begin with, and we don't yet have wget. A
sudo apt-get install wget
fixes that, and we can do the wget command again to get a crossover.deb.
Next we need to
sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install gdebi sudo gdebi crossover.deb
Now we should have a working install of CrossOver.
Looking in our Chrome OS launcher, however, there is not yet any CrossOver icon. It is not clear whether this is a problem with the Chrome OS / Linux VM integration, or a bug in CrossOver's packaging. However, because we have a terminal, we can launch from the command-line:
/opt/cxoffice/bin/crossover
... and up pops a little window. It's not quite what we want, though. CrossOver is complaining about missing packages. From here, a
sudo apt-get install python-dbus python-gtk2
is needed, and we can try
/opt/cxoffice/bin/crossover
again. This time ... voila! CrossOver appears:
Running a Windows Application
Now let's try to install Quicken.
The first problem is that I have a Quicken.exe installer on a USB flash drive. The Linux VM does not have access to my USB drive nor the outside filesystem. I need to put a copy of that into the Debian container so that CrossOver can make use of it. To do that, I insert my USB key and open the Chrome OS files app. Now that my Linux VM is running, I see an entry in the Files app called "Linux Files." I can easily drag the Quicken.exe file from my USB drive in there.
After that, an easy
ls
from my terminal shows that it has appeared in my Linux VM in the root of my home directory. Simple enough.
Now I click on CrossOver's 'Install Windows Software' button and search for Quicken 2018. I can select the Quicken.exe installer file I just copied into my VM and the install kicks off.
Right away I get an error message complaining that we don't have libxml2. Really CrossOver should have been able to fix this automatically, but it seems that on this Debian VM CrossOver cannot find a tool for sudo access. I'll have to do this by hand, with:
sudo apt-get install libxml2:i386
... and re-start the install.
The install process goes smoothly this time - same as CrossOver on any platform. Quicken's Windows installer presents itself.
I click through several 'OK' buttons, and at the end, I have a Quicken icon in CrossOver's launcher window. I click that, an Quicken starts up!
I can use the same features of Quicken 2018 here that I can for our Mac and Linux products. This is nice because running Quicken is something our Android product cannot do yet, and it is a frequent customer demand. (On the Android front: stay tuned ... we are actively working on Quicken support in our regular Android offering also and hope to announce that soon.)
There are a few bumps and warts. The biggest is that I'm not getting a CrossOver launcher in the Chrome OS launcher, and I'm not getting Quicken launchers there either.1 In theory this ought to work. Again, it's not clear whether this is a problem with CrossOver or with the Chrome OS Linux integration. Things are in the early stages, though, so a few flaws are not too surpising.
We don't know yet what the future holds for Linux VMs running on Chrome OS. Increased security for running Windows applications is one likely advantage. The robust developer tools available on Linux will make it easier for us to develop CrossOver for Chromebooks via a Linux VM. Of course, smoother integration and a more seamless user experience will be paramount.
For now, I am delighted because I have what I think is a nice piece of hardware - a Google Pixelbook - with a new capability to run CrossOver in a familiar Linux environment. It's already much more integrated than the older crouton solution, with clear aim at being user-friendly. That said, today this is clearly for people who are comfortable at a Unix command line. This machine is small and thin and a delight to carry around and work with. For someone wanting a Unix box to travel with, it is a nice solution (I can even run Emacs!)
Virtual Machine technology is a powerful addition to the Chrome OS lineup. CodeWeavers is very excited at the possibilities this opens for both Chromebooks and CrossOver.
1. If you really want launchers for CrossOver's Wine apps, you can edit /opt/cxoffice/bin/locate_gui.sh and just hardcode xdg_menu_on to 1, then re-install. For me, that produced menu entries on the Chrome side but no custom icons. Obviously a few kinks left! ↑
About Josh DuBois
Josh DuBois is an engineer and product manager for CrossOver.