Deploying and running a redpesk OS image on Solidrun HummingBoard i.MX8 SBC

“The HummingBoard-M range of carrier platforms offers developers an energy-efficient & small footprint range of solutions for easily harnessing the powerful i.MX8 processor, i.MX8M, i.MX8M Mini, and i.MX8M Plus SOMs. HummingBoard-M family includes the robust HummingBoard Pulse focused around multimedia and connectivity, and the simplified HummingBoard Ripple.”

Go here to see specification of the Hummingboard on SolidRun website.

NOTE:
Only the pulse model is supported with the BSP yet.

Download images

See Download Images section.

Download the redpesk OS image from command line

Create a directory to download the image:

mkdir ~/redpeskimage
cd ~/redpeskimage

Then download the latest redpesk OS image with this command:

wget -r -nd -nc --no-parent --accept-regex='redpesk.*smack.*\.(bmap|xz|sha256)' --reject-regex '(image\.raw|ova|index)' 'https://download.redpesk.bzh/redpesk-lts/batz-2.0-update/images/smack/minimal/aarch64/solidrun-hummingboard/'

Control the image integrity

Before doing anything, please control the integrity of the downloaded redpesk image. Example:

sha256sum -c redpesk*.tar.xz.sha256
redpesk*aarch64*.tar.xz: OK

Copying the image on your SD card

Plug your SD card and find it (be sure it is unmounted)

Copy the correct device path using the command below. It should be a hotplug device.

lsblk -dli -o PATH,VENDOR,TYPE,HOTPLUG,MODEL
DEVICE_TO_COPY='/dev/<hotplug_device>' #in the example it is /dev/sdc

Example:

$ lsblk -dli -o PATH,VENDOR,TYPE,HOTPLUG,MODEL
PATH         VENDOR   TYPE HOTPLUG MODEL
/dev/sda     ATA      disk       0 WDC_WD10SPZX-08Z10
/dev/sdc     TS-RDF5  disk       1 SD_Transcend #MYSDCARD
/dev/nvme0n1          disk       0 LITEON T11 512
DEVICE_TO_COPY=/dev/sdc

Or if only one device is hotpluggable on your computer:

# need jq
DEVICE_TO_COPY=$(lsblk -dlJ -o PATH,VENDOR,TYPE,HOTPLUG,MODEL | jq -r '.blockdevices[] | select(.hotplug == true).path')
echo $DEVICE_TO_COPY

Umount if needed

lsblk $DEVICE_TO_COPY
# need to umount each partition
sudo umount <part*>

Example:

$ lsblk /dev/sdc
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdc      8:32   1 14.6G  0 disk
├─sdc1   8:33   1  501M  0 part /run/media/iotbzh/0409-3A02
├─sdc2   8:34   1    1G  0 part /run/media/iotbzh/cd3c87ec-1011-4832-aef3-6be0ed3d3748
└─sdc3   8:35   1  2.5G  0 part /run/media/iotbzh/4e508264-8ce2-447f-a829-e4c31ea20047
$ sudo umount /run/media/iotbzh/*

Flash the SD card

Prerequisites: device is plugged in, found, unmounted

  • First, extract the image
    tar xJf redpesk*.tar.xz
    
  • Then, flash it using dd (safer)
    sudo dd if="Redpesk-OS.img" of=$DEVICE_TO_COPY bs=4M status=progress
    
  • Or using bmaptool (faster)
    bmaptool copy "Redpesk-OS.img" $DEVICE_TO_COPY
    

TIPS: Once your are used to flash your image, you could do it much faster in one single step using bmaptool like this:

bmaptool copy "https://download.redpesk.bzh/redpesk-lts/batz-2.0-update/images/smack/minimal/aarch64/solidrun-hummingboard/image.raw.tar.xz" $DEVICE_TO_COPY

This will download, control integrity and flash the latest redpesk OS image on your device.

Hardware DIP switch configuration

Integrated into the PCB, a DIP switch is generally present to allow you to choose between different boot mode.

For the SolidRun Hummingboard Pulse, here is the following configuration:

Boot mode (S3) Switch 1 Switch 2 Switch 3 Switch 4 Switch 5 Switch 6
SD card ON ON ON ON OFF OFF
eMMC card ON OFF ON ON OFF OFF
Serial download OFF ON ON ON OFF OFF

For more hardware information (like connections, button functions or led status), please refer to the SolidRun documentation.

Connect to the Hummingboard

Hummingboard Pulse details

  • Plug the micro USB from the board to your PC for the serial connection.
  • Plug the SD Card into the board.
  • Power on the board by plug in the power (12V).

  • Use picocom to connect to the serial

     sudo picocom -b 115200 /dev/ttyUSB1
    

NOTE: Default root password is root.

  • Get the address of the board to be able to use an SSH connection

    Connect your board to your network with an Ethernet cable.

     #on board
     ip -c a
    
     # on computer
     ssh root@<ip_board>