Linux Kiosk computer with Chrome Browser [1]

Here is an option for making your own “Chromebox” out of some old PC you have lying around. It lends itself well to educational scenarios with old computers that are too slow to run a modern operating system, but which can be perfectly satisfactory for the Chrome browser to run Google Apps etc.

I am going to build up a test system using these instructions and then perhaps clone it to see how easy it is to set up a bulk lot of computers for this scenario. It is certainly a more viable option to use Ubuntu instead of Chromium OS. The latter has limited hardware support and every time we have tested it on regular desktop computers we have run into some sort of issues with it. Consequently just using regular Ubuntu has a lot in its favour. In this case the server version because it is very easy to customise exactly what is installed and therefore limit it to just the bare minimum.
Therefore I started with downloading Ubuntu Server 32 bit 14.04 and making a bootable pen drive for my test computer. In practice the computers it is going to run on are HP DC7100 PCs with 256 MB of RAM and a HDD of 40 GB or less. These computers have only a 32 bit CPU and cannot run 64 bit OSs. With the ISO image I downloaded I used the USB Image Writer tool in Mint to put it on the pen drive for the test computer. The system was then booted and came up in a text mode installer. The disk was partitioned into 1 GB of swap and 9 GB of ext4 mounting to /. The server operating system was then installed with the exact same options specified in the article. It was then allowed to reboot and came up normally.
The main difference from the article is that since it was written, Google has dropped 32 bit support for Chrome for Linux, which means I had to switch to Chromium instead. The biggest problem with Chromium is lack of support for Adobe Flash. But we hope that Flash isn’t a problem in Google Apps. And also I didn’t want to use Kiosk mode. So I changed some flags. My command to start the browser in /opt/ looks like this instead:
  •   chromium-browser –incognito –disable-background-mode –disable-sync –start-maximized –no-first-run ‘somewebsite’

incognito is necessary to stop the user settings (including being logged in) being saved when the browser is closed, so the user gets logged out automatically of the browser. It also wipes history etc. This is a relevant thing when the same computer is being used by multiple Google Apps users so that they don’t get the history etc of the previous user. In our case with the use of web filtering, they will still be logged through the web filtering system so we have a record of their usage.

Once you have this thing set up fully as a “kiosk” you can use ssh to get into change settings and do stuff remotely.

Other things not mentioned in the original article:

  • Disable function keys that you would press to get to a terminal for logon (because you can always SSH to the computer remotely)
  • If you minimise the browser window then you will never see it again as there is no taskbar. But pressing Alt-Tab will bring it back.
  • Downloading and so forth onto the local computer needs to be disabled. In other words that rm -rf command needs to be extended to some other local directories that stuff could end up in, otherwise the disk space can fill up when you don’t want it to.
  • Chromium policies may be useful to set in addition to the kiosk settings. See links below.
I will post a complete list of steps taken to set up the kiosk in my next post.