Saturday 6 November 2021

AstroDMx Capture in a Chromebook via Crouton

In recent months I have written a number of articles about using AstroDMx Capture in a Crostini Linux virtual machine on a Chromebook. The Crostini Linux environment is now stable on Chromebooks. We have shown that it is easy to set up Linux under Crostini and to install a number of important Linux programs for astronomical imaging. We have also shown how to install the Windows compatibility layer Wine so that we can run Windows programs such as Autostakkert! And Registax on a Chromebook.

Crostini

Installing AstroDMx Capture for Chrome OS on the Crostini virtual Linux container allows us to capture images and movies. There are, however, limitations: 

One limitation is that responsiveness is slow, but the program is still very usable. The slow responsiveness is not surprising considering the fact that Chromebooks are, in general, low powered computers with little RAM and Storage, and with low end processors. On top of this, the Linux environment is running inside a virtual machine running in Chrome OS. All of these facts lead to performance penalties. Of course, there are some Chromebooks now available with much higher all round specifications and coming at commensurately higher prices. No doubt the software will be more responsive on these machines. 

Another limitation is that the only cameras that we have found to work properly in the Crostini virtual Linux environment on Chromebooks have been the SVBONY SV305 family of CMOS astronomy cameras. It is not immediately obvious why these cameras work well and others do not. Possibly it is due to the adherence to standards, but the reason could lie elsewhere. The fact remains that at the time of writing, cameras have not been implemented by Google in Crostini. The cameras to which I am referring to are UVC cameras, and most astronomy cameras are not UVC devices.

Crouton

For several years there has been a different way of running Linux on a Chromebook. This system is called Crouton.

Crouton was originally created by Google employee David Schneider. When you use Crouton, you're actually just running one operating system: Linux. However, you are running two environments with Chrome OS.

Crouton stands for Chromium OS Universal Chroot Environment

Crouton is a set of scripts that form a Chrome OS  chroot generator.

What's a chroot?

Chroot stands for Change root. The chroot call originated in Unix 7 in 1979 so it is not a new concept. Unlike Crostini, a chroot is not a virtualisation system.

However, like virtualisation, a chroot provides the guest OS (In this case Debian Linux) with its own, isolated file system to run in, allowing applications to run natively in a different environment from the host OS. Unlike virtualisation, you are not booting a second OS; instead, Debian Linux is running using the Chromium OS system and kernel and effectively uses the Chrome browser as its X-server as a GUI for the running application. The benefit to this is that there is no speed penalty since everything is run natively, and you don’t use lots of RAM to boot two operating systems at the same time.

To visualise this we must be aware that the Chrome OS has its own file system with its own root. It is, basically, an operating system with a Linux kernel and using the Chrome browser as its desktop environment. 

Crouton sets up another totally isolated file system with its own root on the computer and installs Debian Linux  into it. This Debian does not have its own kernel, it uses the Linux kernel of Chrome OS. The chroot changes the root to the Debian OS and it is within this system that programs are installed and run natively, without the performance penalties associated with virtualisation.

We have set up Crouton on a Lenovo Chromebook with an AMD A6 processor, 4GB RAM and 64BG of eMMC storage; a fairly modest Chromebook.

We installed AstroDMx Capture for Linux into the Debian system and were able to run it natively with no performance penalties.

There are three limitations that are not too important at the moment:

First, it is not possible to take a screenshot that includes the preview screen of AStroDMx Capture due to the way it is rendered by the Crouton system.

Second, it is important NOT to try to close the software in the usual way by clicking on the cross at the top right of the display. In fact, this is NOT a control to close down AStroDMx Capture; it is a control to close down the Chrome browser in which AstroDMx Capture is being displayed. It is necessary to close the software via the file menu.

Third, we have found that the QHY series of cameras will not work with the Crouton system. QHY cameras have to have their firmware uploaded each time they are started, and it is probably this process that is currently inhibiting the use of these cameras. Nonetheless, Crouton allows the use of many cameras that are just not possible to use under Crostini.

This is a work in process and it is not considered that these three  limitations are important at the moment

Unlike with the Crostini virtualisation system, we are not limited to using the SVBONY SV305 series of cameras, and in the current test we used a Touptek Toupcam GPCMOS01200KPF camera. 

Testing AstroDMx Capture for Linux using Crouton

An f/5.5, 80mm, ED Ekinox Eklipse refractor was mounted on a Celestron AVX mount and a Touptek Toupcam GPCMOS01200KPF camera was placed at the focus.

A Lenovo Chromebook with an AMD A6 processor was used running a Crouton chroot with Debian Linux, a way of running Linux on a Chromebook that does not involve the Crostini virtualisation system.

AstroDMx Capture for Linux was run natively in the chroot and was used to capture 60 x 15s exposures of M15 using the RGB48, 16-bit format along with matching dark frames.

The data collected were processed on a separate computer as this was simply a test of AstroDMx Capture with Crouton. However, it would be possible to install all of the software required to do the stacking and post-processing if this was to be a system that would be used for imaging on a regular basis.

Equipment used


Final image of the globular cluster M15


To set up Crouton on a Chromebook, you have to do a Powerwash and set the Chromebook in Developer mode. It is therefore important to back up any files you may have stored locally. Developer mode is less secure than the normal mode and Chrome OS reminds you of this when you turn on the computer by making some beeping sounds. (These can be avoided by pressing ctrl and d during power on). However, remember, that you are working with Linux which is pretty secure in its own right, and you are doing this in order to get more out of your Chromebook and use it to run AstroDMx Capture for Linux natively. Moreover, if you don’t invoke Crouton, you still have the full functionality of your Chromebook albeit in the slightly less secure Developer mode.