ClusterCTRL: How do I boot a Compute Module from eMMC?

To boot a Compute Module from the eMMC USBBOOT must be disabled.

If your Compute Module doesn't already have a bootable system see our other instructions.

Background

When using ClusterCTRL with Compute Modules "clusterctrl status" will show the status for both Power "pX:S" (X=Node number, S=Status 0=on/1=off) and USBBOOT "uX:S" (X=Node number, S=Status on/off).

uX:0 Try to boot from the onboard eMMC and fallback to booting as a USB device.
uX:1 Boot as a USB device.

You will also see a "ctrl_bus:" line, this shows the details for all ClusterCTRL device found (space separate if you have multiple ClusterCTRL devices).

For each ClusterCTRL device you will see 3 numbers, for example.

ctrl_bus:20:3:3

The first number above "20" shows the ORDER, this is used if you have multiple ClusterCTRL devices on the same controller (lower numbers have a higher priority). A ClusterHAT always has highest priority so if present will be used for p1-p4. It will then assign the next pX.. numbers to the ClusterCTRL device with the lowest ORDER, then the next lowest etc (you may need this ORDER value to save the state below).

The second number "3" is the I2C bus (/dev/i2c-3 for example) used to communicate with the ClusterCTRL device.

The last number "3" is the maximum number of nodes this device supports.

Disable USBBOOT

Power of the node and disable USBBOOT.

clusterctrl off pX
clusterctrl usbboot off pX

The next time the node is powered on it will boot from onboard eMMC.

Save power on state (optional)

If you want the node to always boot from eMMC you will need to save the state (replacing ORDER with the order number shown in the "clusterctrl status" output above).

clusterctrl save ORDER

This command saves both power and USBBOOT states for use on next power up

Power on

You can now power on the node and it will boot from the eMMC.

clusterctrl on pX

Within a few seconds you should see it boot up in the logs, the first boot will be slower as it reconfigures and resizes the filesystem (CTRL-c to exit).

tail -f /var/log/kern.log /var/log/daemon.log

You can now accesses the node as normal "ping pX.local", "ssh pi@pX.local", if you haven't enabled SSH you can access it using the serial console "screen /dev/ttypiX" (CTRL-x then 'k' to exit).

You cannot comment on this entry