Ubermix on Chromebooks
Contents
Overview
Google Chromebook hardware has been gaining popularity of late, due to its simplicity, low cost, and ease of management. While living entirely in a web browser can be fine for some, many find being restricted to lightweight applications frustrating and the requirement for constant connectivity unrealistic for their computing needs. Thankfully, ubermix can help.
Installing ubermix does not remove ChromeOS from your Chromebook, it simply installs itself alongside it, so there is no risk. Even if something goes horribly wrong, you can always restore your Chromebook to its factory state by following Google's instructions here.
Limitations
Due to some of the limitations of Chromebook hardware, there are a few important considerations to keep in mind:
- ubermix will not work on ARM based hardware - only Intel(x86) devices are supported (ie no Samsung Series 3).
- Chromebooks must be in Developer Mode to run ubermix. Developer Mode introduces an huge startup delay as the Chromebook splash screen sits and waits for 30 seconds at bootup, letting you know your are running in Developer Mode and offering the option to "turn Developer Mode off" by pressing the space bar. It also beeps twice (loudly) as a final warning before finally booting up. This is:
- Incredibly annoying
- Makes it too easy to unset Developer Mode, causing the device to only boot into ChromeOS. There is no way to prevent your end users from disabling developer mode (and consequently ubermix).
- There is no way (at present) to customize an ubermix install key using a Chromebook. If you wish to create a custom image to deploy on multiple Chromebooks, you will need to use a regular laptop/netbook to build your custom ubermix install key.
- Google could, theoretically, decide to update the way ChromeOS and the hardware work at a future date. While this is highly unlikely, it is theoretically possible that an end user could boot into ChromeOS, install an automatic update from Google, and no longer be able to boot into ubermix.
Other than that, all ubermix functionality is intact, even the quick reset capability, making ubermix an excellent choice for your Chrome hardware.
Installation
Creating a custom ubermix USB install key
The first thing we'll need is an ubermix USB install key that has the appropriate installer files for a Chrome device on it. Follow the instructions on the ubermix Download and Install page to create one. Next:
- Download chrome-ubermix_1.0.zip and extract the chrome folder from the zip file
- Insert your newly created ubermix USB install key in any port, and copy the chrome folder you just extracted to the root of the key.
Getting your Chrome hardware into Developer Mode
The first step is to get your Chrome hardware into Developer Mode. This will be different for each device, but Google is pretty good at keeping up on the Chromium OS project pages. Instructions for most devices are listed here. As an example, the following are instructions for getting an Acer C7 Chromebook into Developer Mode:
- Turn the Chromebook off.
- Press the power button while holding the Refresh (F3) and Esc keys simultaneously. This should land you at a screen that asks you to insert recovery media. If it doesn't, you missed a key, so try again.
- Press Crtl+D to toggle developer mode.
This will prompt a reboot and a wait of several minutes while your Chromebook is reset. Your Chromebook will then reboot to a scary "you're in Developer Mode" screen and sit for 30 seconds, trying to trick you into pressing the space bar and disabling developer mode. Either press ctrl+d or wait for the device to boot.
Developer Firmware
Developer firmware is also required for most devices. Be sure to follow any special instructions you find in the Developer Mode pages from above, however most should work with the following instructions:
- Once you see the standard ChromeOS login screen, press ctrl+alt+F2 to open a terminal window.
- At the "localhost login" prompt, enter "chronos" and press Enter.
- Type "sudo bash" and press enter.
- Type "chromeos-firmwareupdate --mode=todev" and press Enter.
If you see a message telling you that you can press Ctrl+U to run your own self-signed OS kernels, you're all set to go.
Installing ubermix
You're almost home! Follow these steps to complete the installation:
- Insert the ubermix USB install key you created earlier in a USB port on your Chrome device.
- If you exited the terminal in the previous step, follow steps 1-3 under "Developer Firmware" above to get your terminal back into place.
- Type "mkdir /tmp/usb" and press Enter.
- Type "mount /dev/sdb1 /tmp/usb" and press Enter.
- Type "/tmp/usb/chrome/install-ubermix.sh" and press Enter.
The script will then make sure you have everything you need to get going. If all is OK, it will prompt you for the amount of space you want to reserve for Ubuntu. Be sure to reserve at least 10 gigabytes.
Next the script will adjust your disk partitions and reboot. ChromeOS will the "repair" itself, which will take a few minutes. Once the "repair" process is complete, you will be returned to a standard ChromeOS login screen. Once you see the login screen, follow steps 2-5 above to complete the installation. Your system should reboot into ubermix when complete.
Rebooting into ChromeOS
If you want to reboot the machine in ChromeOS, simply click the "Chromebook OS Selector" under System Tools and select ChromeOS. On reboot, your machine will boot into ChromeOS again.
Switching back to ubermix from ChromeOS
Unfortunately, ChromeOS is not very customizable, so switching back from ChromeOS to ubermix is not quite as simple. To switch back to ubermix from ChromeOS:
- Open a terminal in ChromeOS by pressing ctrl+alt+f2
- Type "chronos" and press Enter at the login prompt
- Type "sudo bash ureboot" and press Enter.
Your Chrome device will then reboot into ubermix.
Setting up the custom keyboard keys
Differences from stock ubermix
Since Chrome devices utilize a "secure" boot process, some of the functions of ubermix had to be altered to function properly on Chrome hardware, as follows:
- Since there is no bootloader or pre-boot process, the reset menu had to be implemented a little later in the boot process. Watch for the "Press [ESC] for menu..." prompt on the screen prior to pressing the esc key to enter the reset menu. You will only have 3 seconds to press esc, so be ready.
- Customizers looking to enter "generic" mode (see the ubermix Customization page for details) must now wait until they see the "Press [ESC] for menu..." prompt, then press the "g" key within 3 seconds to boot into generic mode.
- Due to the aforementioned boot process, the user changes functionality is not quite as robust as stock ubermix, as the system must be partially booted up prior to the user changes layer being initialized. While this will not likely cause problems for most (normal) users, it is possible that some background services a user might install in normal mode (services like apache web server or mysql database server) might not load automatically on reboot, as they are typically set to start prior to the user changes layer becoming active.