Aopen Chromebase Mini Alpine Setup Script


Introduction

Follow this guide to get a basic touch based GUI environment on the Aopen Chromebase Mini. It’s meant to be used as a starting point and will need further configuration to suit your needs.

Completing this guide should result in the Chromebase booting to a desktop similar to the screenshot. The wallpaper is randomly selected on each GUI restart.

Chromebase Desktop

The main components by default are:

The idea is to have multiple workspaces (tags) with one full screen application running per tag and mapped to an icon on the desktop. For example, pressing the Audio icon selects tag 1 and launches jivelite. Tag 0 displays the desktop icons by default and is selected by a two finger tap on the right hand 1/3 of the screen.

Default gestures are:

The setup script creates a user named “cb” which is the user that automatically logs in and runs the GUI. The “cb” user belongs to the wheel group and has doas privileges to run commands without being prompted to enter a password. This is convenient but not a very secure configuration if someone malicious gains access to your device. Securing the default configuration created by this guide is up to the reader.

All files needed for the steps below can be downloaded from the repo.

Boot from USB and Install Alpine to Internal eMMC

  1. Download the current boot image file from the repo (eg. aopen-veyron-5.15.59.img.tar.gz)
  2. Extract the .img file from the tar archive and write to USB stick (use the right device path!)
~$ wget http://www.sodface.com/repo/cb/aopen-veyron/aopen-veyron-5.15.59.img.tar.gz
~$ tar xzvf aopen-veyron-5.15.59.img.tar.gz
~$ sudo dd if=aopen-veyron-5.15.59.img of=/dev/sdb bs=4096
~$ sync
  1. Boot Chromebase from USB stick (ctrl-u)
  2. Login as root with no password
  3. Run ./install-mmc.sh (in root’s home dir)
  4. Reboot

Boot Alpine from Internal eMMC and Set Clock

  1. Boot Alpine from internal eMMC (ctrl-d)
  2. Login as root with no password
  3. Set the clock to the current date and time
# date -s 202209302012

Setup Networking

This guide has had multiple revisions in response to user feedback (thanks Patricia P and ralphy!). Networking in particular can cause problems during setup and during use if you switch back and forth between the wired and wifi interfaces. There are multiple approaches to successfully getting through initial setup and having a reliable configuration for daily use:

I think that covers the majority of use cases, there are probably others.

This guide will cover the first two. Networking can, of course, be reconfigured at any time after intial setup, but I will leave that in the capable hands of the reader.

Wired Ethernet for Setup and Daily Use

  1. Connect eth0 and get an IP address with dhcp
# ip link set eth0 up
# udhcpc

Wifi for Setup and Daily Use

The kernel options to support the iNet Wireless Daemon (iwd) are configured and the Alpine iwd package is installed by default.

The iwd openrc service is also set to start at boot by default which renames the default device mlan0 to wlan0.

The iwd configuration file /etc/iwd/main.conf is configured so that iwd manages the wlan0 interface, uses the dhcp client built into iwd, and uses openresolv to manage name resolution.

  1. Connect to Wifi with iwctl
# iwctl station wlan0 connect [your ssid]
Passphrase:

Verify Internet Access

Whether you chose wired or wifi networking, check your interface config and verify internet access before continuing.

Check that you have an IP address on eth0 (wired) or wlan0 (wifi):

# ip a

Verify internet access:

# ping 8.8.8.8
# ping www.google.com

Do not continue without internet access.

If using wifi and your wlan0 IP address looks good but the ping test fails with “Network unreachable”, reboot. After reboot, iwd should automatically reconnect to wifi. Repeat the connectivity checks.

Continue Setup

  1. Run through setup-alpine, some more notes on answers below, but pay close attention to the network interface question:
Available interfaces are: eth0 wlan0.
Enter '?' for help on bridges, bonding and vlans.
Which one do you want to initialize? (or ? or 'done') [eth0] _

The default answers are in brackets, eg. [eth0], so just pressing enter will result in the default selection being configured.

If you chose to use wired networking, just press enter to accept eth0 (or you can type in eth0 and press enter).

If you chose to use wifi, do NOT enter wlan0 but instead type “done” and press enter.

The remaining network questions (manual config, domain name, nameserver) you should be able to just press enter and accept the defaults.

# setup-alpine

Notes on setup-alpine:

Just re-run setup-alpine again if you want to change a response. If re-running, previous responses may now be the defaults.

  1. Download and run setup-cb.sh
# wget http://www.sodface.com/repo/cb/aopen-veyron/setup-cb.sh
# chmod +x setup-cb.sh
# ./setup-cb.sh 2>&1 | tee setup-cb.log

You will be prompted to set the password for the cb user and then the script should run without errors until you see “Done, please reboot.”

Review the setup-cb.log file for errors if needed.

  1. Reboot and the Chromebase should boot and automatically log in and display the desktop icons
# reboot

Application notes

See also: Aopen Chromebase Mini with Alpine Linux, Squeezelite and Jivelite