# BeaglePlay

**URL:** https://hub.mender.io/t/beagleplay/5792
**Category:** Yocto Project
**Created:** [April 27, 2023, 7:49am UTC](https://hub.mender.io/t/beagleplay/5792 "2023-04-27T07:49:56Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![TheYoctoJester](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/theyoctojester/32/1444_2.png) [@TheYoctoJester](https://hub.mender.io/u/TheYoctoJester)
#### Post date: [April 27, 2023, 7:49am UTC](https://hub.mender.io/t/beagleplay/5792/1 "2023-04-27T07:49:56Z")

</div>

# Board description

Linux computing made simple and fun with 1,000s of available off-the-shelf sensors, actuators, indicators and connectivity options over mikroBUS, Grove, and QWIIC connections, a TI Sitara AM625 system-on-chip with 1.4GHz quad-core Arm Cortex-A53, PRU and M4 microcontrollers, Gigabit Ethernet, full-size HDMI, USB, 5GHz, 2.4GHz and sub-1GHz wireless, and single-pair Ethernet with power-over-data-line. Camera and touchscreen display ribbon-cable connectors also included.

No breadboarding expertise needed to expand this system, just connect, power, and leverage the massive ecosystem of Linux drivers. Want a remote sensor? Utilize BeagleConnect® technology over the sub-1GHz IEEE 802.15.4 wireless network to a [BeagleConnect® Freedom](https://beagleconnect.org/) up to 1km away.

 ![beagleplay](https://canada1.discourse-cdn.com/flex036/uploads/mender/original/2X/d/ded9ea88e4c1a4f4f738077aa39f0b259855f955.jpeg)

URL: [BeaglePlay](https://beagleboard.org/play)

# 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 |
| --- | --- | --- |
| kirkstone (4.0) | :test_works: [1](#footnote1) | :test_works: |

1. the `.sdimg.bmap` image type seems to produce buggy results, using the `.sdimg` artifact directly is required.

**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/system-updates-yocto-project/board-integration/bootloader-support/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="kirkstone"

```

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

```auto
mkdir mender-beagleplay && cd mender-beagleplay

```

Initialize repo manifest:

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

```

Fetch layers in manifest:

```auto
repo sync

```

## Setup build environment

Initialize the build environment:

```auto
source setup-environment ti

```

### 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](https://docs.mender.io/artifact-creation/standalone-deployment?target=_blank), 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=beagleplay bitbake core-image-base

```

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

### Using the build output

After a successful build, the images and build artifacts are placed in `tmp/deploy/images/beagleplay/`.

The disk image (with `.sdimg` suffix) is used to provision the device storage for devices without Mender running already. Please proceed to [the official documentation on provisioning a new device](https://docs.mender.io/system-updates-yocto-project/provisioning-a-new-device?target=_blank) for steps to do this.

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).

# References

- The official [Mender documentation](https://docs.mender.io/) explains how Mender works. This is simply a board-specific complement to the official documentation.
- The integration template is maintainted in the [meta-mender-community](https://github.com/mendersoftware/meta-mender-community) repository.

# Known issues

- `.sdimg.bmap` support seems to be causing partition corruption. Use the `.sdimg` image directly, eventually after unpacking from `.sdimg.bz2`
