ClusterCTRL: How do I USBBOOT a Compute Module?

To boot a Compute Module as a USB device USBBOOT must be enabled.


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.


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.


Power of the node and disable USBBOOT.

clusterctrl off pX
clusterctrl usbboot on pX

The next time the node is powered on it will boot as a USB device.

Save power on state (optional)

If you want the node to always boot using USBBOOT 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

You can now follow our standard instructions on using USBBOOT.

You cannot comment on this entry