Integration of mender to Odyssey-x86

Edge Computing devices are playing an increasingly important role in the field of IoT. Nowadays, a computer is not just a big rectangular black box under the desk, or a small portable device working on your knees. Computers are ubiquitous devices that span calculating, communicating, and data storage. Based on this definition, here we would like to introduce our new product – the ODYSSEY - X86.

Board description

ODYSSEY is a series of SBC (Single Board Computer), allowing you to build Edge Computing applications with ease. The ODYSSEY - X86, based on latest Intel x86 chips, is a Quad-Core CPU that running up to 4.10GHz. It includes all the powerful features of Mini PC such as including an 32GB LPDDR4 RAM(optional), 64GB eMMC Storage(optional), onboard Wi-Fi/BLE, Dual Gigabyte Ethernet Ports or dual® 2.5-Gigabit Ethernet ports, Audio Input and Output, USB Ports, HDMI, SATA Connectors and PCIe, however, within a cost-effective price. With simple connections to Mouse, Keyboard and Monitor to ODYSSEY - X86, you will get a Mini Device right away. With eMMC versions, you even have the Windows 10 Enterprise pre-installed!

Compare with other x86 boards in the marketplace, Every Odyssey-x86 board has an on-board microcontroller, you can control your machine in real-time. if you are not family with an embedded system, a microcontroller Arduino environment will help you get started quickly. we hope the board will help more people in more different scenes.

For the ODYSSEY -x86 v1 board, the board includes a standard RPI 40-pin Pi Hat. you can add your favorite Pi HAT to the board. We made a lot of ACPI tables to support those Pi Hats. hope you like it.

For the ODYSSEY -x86 v2 board , we use the latest intel Mobile processor, We want it to consume less power and perform better.

Just simply connect to a mouse, a keyboard and a monitor with the ODYSSEY – X86, you will get a powerful Desktop Mini PC that can run Windows and Linux OS.

Where to buy: https://www.seeedstudio.com/ODYSSEY-c-1492.html

Wiki ODYSSEY-X86 V1: Getting Started - Seeed Wiki

Wiki ODYSSEY-X86 V2: Getting Started with reServer - Seeed Wiki

Test results

The Yocto Project releases in the table below have been tested by the Mender community. Please update it if you have tested this integration on other Yocto Project releases:

Yocto Project Build Runtime
dunfell (3.1 / 5.3.0) :test_works: :test_works:

Build Means that the Yocto Project build using this Mender integration completes without errors and outputs images.
Runtime Means that Mender has been verified to work on the board. For U-Boot-based boards, the integration checklist has been verified.

Getting started

Prerequisites

  • A supported Linux distribution and dependencies installed on your workstation/laptop as described in the Yocto Mega Manual
    • NOTE. Instructions depend on which Yocto version you intend to use.

Configuring the build

Setup Yocto environment

Set the Yocto Project branch you are building for:

Create a directory for your mender-seeed setup to live in and clone the
meta information.

mkdir mender-seeed && cd mender-seeed

Get all of necessary layers:

git clone git://git.yoctoproject.org/meta-intel layer/meta-intel -b dunfell
git clone https://github.com/mendersoftware/meta-mender layer/meta-mender -b dunfell
git clone https://github.com/openembedded/meta-openembedded  layer/meta-openembedded -b dunfell
git clone git://git.yoctoproject.org/poky  layer/poky -b dunfell
git clone https://github.com/Seeed-Studio/meta-odyssey-x86 layer/meta-odyssey-x86

Setup build environment

Initialize the build environment:

source layer/poky/oe-init-build-env 

Add yocto project layers:

bitbake-layers add-layer  ../layer/poky/meta 
bitbake-layers add-layer  ../layer/poky/meta-poky 
bitbake-layers add-layer  ../layer/poky/meta-yocto-bsp 
bitbake-layers add-layer  ../layer/meta-intel 
bitbake-layers add-layer  ../layer/meta-odyssey-x86 
bitbake-layers add-layer  ../layer/meta-openembedded/meta-oe 
bitbake-layers add-layer  ../layer/meta-openembedded/meta-python 
bitbake-layers add-layer  ../layer/meta-openembedded/meta-networking 
bitbake-layers add-layer  ../layer/meta-mender/meta-mender-core 
bitbake-layers add-layer  ../layer/meta-mender/meta-mender-demo 

Apply Mender configuration to build environment:

CONF_VERSION = "1"
MACHINE = "odyssey-x86"
MENDER_ARTIFACT_NAME = "release-1"
INHERIT += "mender-full"
DISTRO_FEATURES_append = " systemd"
VIRTUAL-RUNTIME_init_manager = "systemd"
DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit"
VIRTUAL-RUNTIME_initscripts = ""
MENDER_STORAGE_DEVICE = "/dev/sda"
MENDER_STORAGE_TOTAL_SIZE_MB_DEFAULT = "4096"
MENDER_BOOT_PART_SIZE_MB = "64"
MENDER_DATA_PART_SIZE_MB = "1024"
MENDER_IMAGE_BOOTLOADER_FILE = "wic-initrd"

IMAGE_FEATURES_append = " \
    ssh-server-openssh \
    "

in your local.conf.

Configure Mender server URL (optional)

This section is not required for a successful build but images that are generated by default are only suitable for usage with the Mender client in Standalone deployments, due to lack of server configuration.

You can edit the conf/local.conf file to provide your Mender server configuration, ensuring the generated images and Mender Artifacts are connecting to the Mender server that you are using. There should already be a commented section in the generated conf/local.conf file and you can simply uncomment the relevant configuration options and assign appropriate values to them.

Build for Hosted Mender:

# To get your tenant token:
#    - log in to https://hosted.mender.io
#    - click your email at the top right and then "My organization"
#    - press the "COPY TO CLIPBOARD"
#    - assign content of clipboard to MENDER_TENANT_TOKEN
#
MENDER_SERVER_URL = "https://hosted.mender.io"
MENDER_TENANT_TOKEN = "<copy token here>"

Building the image

You can now proceed with building an image:

bitbake core-image-base

Replace bitbake core-image-base with your desired image target.

Using the build output

After a successful build, the images and build artifacts are:

  • deploy/images/odyssey-x86/core-image-base-odyssey-x86.uefiimg.bz2

if you already have Mender running on your device and want to deploy a rootfs update using this build, you should use the Mender Artifact files, which have .mender suffix. You can either deploy this Artifact in managed mode with the Mender server (upload it under Releases in the server UI) or by using the Mender client only in Standalone deployments.

Flash instructions

Refer to the ODYSSEY-X86 Intalling OS instructions for more details.


If this post was useful to you, please press like, or leave a thank you note to the contributor who put valuable time into this and made it available to you. It will be much appreciated!