# UP Squared (UP2)

**URL:** <https://hub.mender.io/t/up-squared-up2/126>\
**Category:** Yocto Project\
**Tags:** yocto, intel, sumo\
**Created:** [November 6, 2018, 10:00am UTC](https://hub.mender.io/t/up-squared-up2/126 "2018-11-06T10:00:48Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![mirzak](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/mirzak/32/2056_2.png) [@mirzak](https://hub.mender.io/u/mirzak)\
**Post date:** [November 6, 2018, 10:00am UTC](https://hub.mender.io/t/up-squared-up2/126/1 "2018-11-06T10:00:48Z")

</div>

The official [Mender documentation](https://docs.mender.io/) explains how Mender works. This is a board-specific complement to the official documentation.

# Board description

UP² is the world’s fastest x86 pro maker board based on the latest Intel platform Apollo Lake. The 40 Pin I/O connector, the multiple USB 3.0 ports, the double Gigabit Ethernet, the HDMI and more other features make it a perfect solution for different domains and products like Robotics, Drone, Machine Vision, Smart Home, Education, Digital Signage, Intelligent Cars, Internet Of Things.

 ![up-squared-pentium-quad-core-8gb-memory64gb-emmc](https://canada1.discourse-cdn.com/flex036/uploads/mender/original/1X/63049a1e6a774ee23d23a420d93b17e3c4ed820f.jpeg)

URL: [https://up-board.org/upsquared/specifications/](https://up-board.org/upsquared/specifications/)  
Wiki: [https://wiki.up-community.org/Main\_Page](https://wiki.up-community.org/Main_Page)

# 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](https://wiki.yoctoproject.org/wiki/Releases?target=_blank):

| Yocto Project | Build | Runtime |
| --- | --- | --- |
| sumo (2.5) | :test_works: [1](#footnote1) | :test_works: |

1. The latest branch on [meta-up-board](https://github.com/emutex/meta-up-board) is `pyro`, but it is compatible with `sumo` branch of `poky` and `meta-mender`.

**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](https://docs.mender.io/devices/integrating-with-u-boot/integration-checklist?target=_blank) has been verified.

# Getting started

## Prerequisites

- A supported Linux distribution and dependencies installed on your workstation/laptop as described in the [Yocto Mega Manual](https://www.yoctoproject.org/docs/current/mega-manual/mega-manual.html#detailed-supported-distros)
  - NOTE. Instructions depend on which Yocto version you intend to use.

- Google repo tool [installed](https://hub.mender.io/t/google-repo/58/2) and in your `PATH` .

## Configuring the build

### Setup Yocto environment

Set the Yocto Project branch you are building for:

```auto
# set to your branch, make sure it is supported (see table above)
export BRANCH="sumo" 

```

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

```auto
mkdir mender-up && cd mender-up

```

Initialize repo manifest:

```auto
repo init -u https://github.com/mendersoftware/meta-mender-community \
           -m meta-mender-up/scripts/manifest-up.xml \
           -b ${BRANCH}

```

Fetch layers in manifest:

```auto
repo sync

```

## Setup build environment

Initialize the build environment:

```auto
source setup-environment up

```

### 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 mode](https://docs.mender.io/artifact-creation/standalone-deployment), 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:

```auto
# 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:

```auto
MACHINE=up-board bitbake upboard-image-sato

```

Replace `upboard-image-sato` with your desired image target.

### Using the build output

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

- tmp/deploy/images/up-board/upboard-image-sato-up-board.uefiimg.gz
- tmp/deploy/images/up-board/upboard-image-sato-up-board.mender

The disk image (with `.uefiimg.gz` suffix) is used to provision the device storage for devices without Mender running already. Please proceed to below sections (Boot from USB / Boot from on-board eMMC)

On the other hand, 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](https://docs.mender.io/overview/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 [standalone mode](https://docs.mender.io/artifact-creation/standalone-deployment).

### Boot from USB

The default settings assume that you will write the `uefiimg` to the on-board eMMC. To be able to do this you must boot the system using a USB flash drive.

You can create an image suitable to boot from USB flash drive by changing the following in your `local.conf`:

```
MENDER_STORAGE_DEVICE = "/dev/mmcblk0"

```

to

```
MENDER_STORAGE_DEVICE = "/dev/sda"

```

This will will produce an `uefiimg` that you can write to a USB flash drive which you can use as a live disk image for provisioning the eMMC, e.g:

```
zcat tmp/deploy/images/up-board/upboard-image-sato-up-board.uefiimg.gz | sudo dd of=<device to write> bs=8M

```

**WANRING!** Double check the device name in above command, to avoid overwriting your running system.

Once you have done this remember to change back to:

```
MENDER_STORAGE_DEVICE = "/dev/mmcblk0"

```

### Booting from on-board eMMC

Once the system is booted from the USB flash drive you must transfer the `upboard-image-sato-up-board.uefiimg.gz` file, e.g using `scp`:

```
 scp tmp/deploy/images/up-board/upboard-image-sato-up-board.uefiimg.gz root@192.168.128.61:/tmp

```

**NOTE!** Replace IP address from the example to the actual IP address of your device

Once the file is transferred you need to write the `uefiimg` to the on-board eMMC by running the following command:

```
zcat /tmp/upboard-image-sato-up-board.uefiimg.gz | dd of=/dev/mmcblk0 bs=8M

```

* * *

_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!_

---

<div class="post-metadata">

**Author:** ![mirzak](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/mirzak/32/2056_2.png) [@mirzak](https://hub.mender.io/u/mirzak)\
**Post date:** [August 15, 2019, 8:16am UTC](https://hub.mender.io/t/up-squared-up2/126/2 "2019-08-15T08:16:37Z")

</div>

5 posts were split to a new topic: [Slow writes on Up Squared](https://hub.mender.io/t/slow-writes-on-up-squared/924)

---

<div class="post-metadata">

**Author:** ![lukas\_e](https://avatars.discourse-cdn.com/v4/letter/l/f9ae1b/32.png) [@lukas\_e](https://hub.mender.io/u/lukas_e)\
**Post date:** [February 5, 2020, 7:35am UTC](https://hub.mender.io/t/up-squared-up2/126/3 "2020-02-05T07:35:01Z")

</div>

Many thanks for this very helpful contribution.

Aeeon/emutex now also provides a specific sumo-layer for the up-squared board ([https://github.com/emutex/meta-up-board](https://github.com/emutex/meta-up-board)). We’ve run some initial tests that look good.

---

<div class="post-metadata">

**Author:** ![mirzak](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/mirzak/32/2056_2.png) [@mirzak](https://hub.mender.io/u/mirzak)\
**Post date:** [August 31, 2020, 7:17am UTC](https://hub.mender.io/t/up-squared-up2/126/4 "2020-08-31T07:17:16Z")

</div>

5 posts were split to a new topic: [How can I fetch the Mender Artifact Name](https://hub.mender.io/t/how-can-i-fetch-the-mender-artifact-name/2368)

---

<div class="post-metadata">

**Author:** ![mirzak](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/mirzak/32/2056_2.png) [@mirzak](https://hub.mender.io/u/mirzak)\
**Post date:** [August 31, 2020, 7:17am UTC](https://hub.mender.io/t/up-squared-up2/126/9 "2020-08-31T07:17:59Z")

</div>

2 posts were split to a new topic: [Required firewall settings for Mender](https://hub.mender.io/t/required-firewall-settings-for-mender/2369)

---

<div class="post-metadata">

**Author:** ![kunyang](https://avatars.discourse-cdn.com/v4/letter/k/ecc23a/32.png) [@kunyang](https://hub.mender.io/u/kunyang)\
**Post date:** [September 28, 2021, 6:43am UTC](https://hub.mender.io/t/up-squared-up2/126/10 "2021-09-28T06:43:28Z")

</div>

Hi mirzak,

The UP board has been updated for the 3.1 (Dunfell) version in [GitHub - AaeonCM/meta-up-board: Yocto BSP meta layer for the UP Board](https://github.com/AaeonCM/meta-up-board/) . Could anyone can help enable mendor with up-board.

Thanks,
