Yocto meta-rte is now open for everyone

Yocto meta-rte is now open for everyone


We are happy to announce that our 3mdeb’s Yocto meta-rte is now available on our GitHub. But let’s say briefly what the Yocto Project is and why we decided to work with it.

First of all, like everything that we love the most, Yocto Project is open sourced. The project is hosted by the Linux Foundation and gives you templates, methods, and set of interoperable tools for creating OS images for embedded Linux systems. Secondly, the Yocto project is used by many mainstream embedded Linux providers and offers thousands of packages which are available through layers. What are they?

Yocto project can be used by itself or be extended by meta layers, which are repositories with instructions (recipes) telling the build system what it should do. By separating the instructions into layers we can reuse them and share for other users (our 3mdeb’s meta-rte is exactly that kind of layer). Thirdly, with Yocto Project you can bring to life exactly the Linux you want and need. The project lets you choose your CPU architecture, select footprint size and remove and/or add components to get the features you want.

In addition, it is important to stress that Yocto project is developed by programming enthusiasts and because we consider ourselves as one of them we created and now we share meta-rte. meta-rte is created for our RTE (remote testing environment - a hat designed for Orange Pi Zero board, a tool which makes easier work with firmware debugging tasks). So let’s now present some raw data about it:

Hardware support

The Orange Pi Zero default config does not enable all of its interfaces. Following interfaces were enabled in the meta-rte (as devicetree patches and kernel configuration changes) to support the features of the RTE extension boards:

  • UART (uart2) interface - for RS-232
  • I2C (i2c1) interface - for mcp2301 GPIO expander
  • SPI (spi1) interface - for flashing external boards' SPI flash chips
  • USB (ehci/ohci 2 and 3) interfaces - for additional on-board USB connector

System features

  • minimal image with full support for the target hardware,
  • RteCtrl utility - controlling the RTE via REST API calls,
  • dual-image OTA upgrades based on the SWUpdate: https://sbabic.github.io/swupdate/swupdate.html
  • systemd as init manager
  • standard useful system utilities such as:
    • tmux,
    • minicom,
    • openssh-server,
    • full python3,
    • bash shell,
    • etc.
  • Utilities for controlling the platform under test via RTE:
    • ser2net - redirecting platform’s serial via Ethernet over telnet
    • flashrom - flashing platform’s SPI chip,
    • fastboot and imx-usb-loader https://github.com/boundarydevices/imx_usb_loader for i.MX6 boards flashing,
    • stlink and openocd for STM32 microcontrollers flashing
    • ifdtools, cbftools - utilities useful for coreboot testing


Here we have our dev version API. It starts automatically and thanks to that you can start your remote work without any additional configurations.

We all know that using Linux for embedded devices is complicated, but thanks to Yocto Project bringing embedded devices to market becomes easier, cheaper and faster. And it doesn’t even matter what kind of device it is. In our case, it’s 3mdeb’s RTE. If you have any questions about rte, meta-rte or you are just interested in embedded systems you can email us at: contact@3mdeb.com. The confirmation of our competence is our presence on the Embedded Linux Expert List and Yocto Project Consultants List.

You should also know that anyone can build a system based on meta-rte. To do this you will need a tool named kas. Interested? Check our another article: Quick start guide to kas - best tool for setting up the Yocto projects.

You can also find us on our official site, blog and on social media: Twitter, Facebook, LinkedIn, GitHub, stackoverflow.

Marta Szelecka
Intern at 3mdeb Open Source Firmware Validation team.