Yocto for Raspberry Pi - ready image and guidelines

Here is a great guide we created for flashing a ready-to-use Yocto image for Raspberry Pi that Upswift engineers created for the community. Including a guide for freezing and cloning the image with your application inside!

Time to read:

3

minutes

Here at Upswift, we communicate with the embedded Linux community on a daily basis: learning their difficulties and trying to build tools and features to ease on their path to smooth product fleet deployment.

Ready-to-use Yocto images for your Raspberry Pi project

This time, we would like to help the community by providing 2 ready-to-use Yocto based Linux images that have been built bottom-up, including common packages that are necessary for most of today’s IoT projects while keeping the images as small and lightweight as possible to save resources for your product application runtime.


Both images are 64bit specifically for the Raspberry Pi 4, taking the advantage of the Raspberry Pi 4 hardware SOC - 1.5GHz 64-bit quad-core Arm Cortex-A72 CPU.


The 2 Yocto based Linux OS images we made for different case studies:

1. Yocto based Linux OS: Lite version - a lightweight Yocto image that weighs only 60MB and includes the basic packages that are needed in a “single-mission” IoT product, including: Vim and Nano editors, lsmode, ping, ifconfig, systemd service manager and reduced busybox.


2. Yocto based Linux OS: Full version - a lightweight Yocto image that weighs only 75MB and includes basic packages as well as additional common packages that are being used in many IoT projects, including: Vim and Nano editors, systemd service manager, lsmode, ping, ifconfig, busybox AND Python3, Cron, iptables and SSH.


Both images are great for industrial applications and can be used right away after flashing.


Although the Yocto based Linux OS’s are stable, reliable, and can be deployed on millions of devices, the software application and environment can always cause issues that require us to support the device remotely: deploy OTA updates, remotely access by SSH or VNC, monitor or send Bash commands.

Here at Upswift.io we provide an all-in-one device management platform that takes just 60 seconds to install on your Linux based device and start managing it remotely. By using the platform, your product fleet is 24/7 managed remotely, turning software issues and remote debugging a piece of a cake.

Download our ready-to-use Yocto image:


By the time you are flashing the Yocto image, feel free to register and get ready to install Upswift agent on your device, join here. From that point, your Yocto based Linux devices are 100% managed remotely, ready for production.


A link to download the 60MB lite Yocto image -> download image

A link to download the 74MB full Yocto image -> download image


Next, insert the SD card to your computer, flash the image, and bring it back to the Raspberry Pi hardware SD slot.

How do I freeze and clone the image with my software inside?


Now that we have an industrial-grade OS for our devices, and we also developed the software application that is going to run on it, we are ready for the last step before production.


This guide will help you take the current Yocto-based OS that you have worked on and insert your application, running as a service, ready to production, then freeze that image and clone it to create a new image with your application inside - ready to flash on the entire fleet.


A few seconds before that - Upswift.io agent recognizes automatically when it is running on new hardware, even if it is the same cloned image, which means - you only need to install Upswift agent once on the same device you are going to freeze, isn't it great?

To clone the image, take out the SD card from your Raspberry Pi and follow these steps to create a ready-to-use image with your software inside:

Cloning SD card on Linux:

Open shell terminal and run the next command:

dd if=/dev/sdx of=/path/to/image bs=1M

*Where /dev/sdx is your SD card.

 

Cloning SD card on MAC:

Open shell terminal and run the next command:

dd if=/dev/rdiskx of=/path/to/image bs=1m

*Where /dev/rdiskx is your SD card.

Cloning SD card on Windows:

Install the software -Win32 Disk Imager, give a name to the image we are cloning, choose the drive to backup, and click on ‘read’ to start the process.

We are almost done

After cloning the image, you are free to flash it on the entire fleet, and start managing it remotely moments before shipping - arranging the devices in different groups, with name and location, ready to be maintained remotely.