Why Git?

Posted by Cliff Brake on 2016-08-18 | Comments are off for this article

Some time back, I gave a presentation that included an overview of the Git version control system.  I still occasionally get asked why Git should be used instead of Subversion, as it seems harder at first.  Most developers don’t really understand Git until they have used it for awhile, and then they will have an […]

Using Go in place of a Spreadsheet

Posted by Cliff Brake on 2016-06-28 | Comments are off for this article

Recently I needed to calculate NAND partition tables for a project where we will be supporting a number of different flash parts from 500MB to 2GB.  I first tried this in a spreadsheet, but found it difficult to work easily with hex numbers and do the calculations I needed.  I then looked into options for […]

Using Docker for OE/Yocto builds

Posted by Cliff Brake on 2016-04-21 | Comments are off for this article

Why Docker?  When using OE to build software for products, we often run into the scenario where software needs to be built using the same version of OpenEmbedded over the course of several years.  Production builds need to be predictable.  We’ve also observed that old versions of OE often break as new Linux distros come […]

Go Language for Embedded ARM Linux Systems

Posted by Cliff Brake on 2016-03-08 | Read the First Comment

In the quest for technologies that work well for embedded Linux systems, I recently gave Go another try.  The last time I tried this was very early on and there were some floating point issues on ARM that appear to be fixed now.  Having spent a few days porting an existing application to Go, there […]

OpenEmbedded / Yocto Usage Survey

Posted by Cliff Brake on 2015-11-18 | 5 Comments to Read

Recently, I sent a survey to the OpenEmbedded and Yocto mail lists asking a series of questions about how they use OE.  38 people responded.  The average number of years using OE is 4.8 years. Below are the results of the questions.  (update 2015-11-23 — the below numbers are absolute numbers, not percentage) On the […]

Best practices for using CMake in OpenEmbedded/Yocto

Posted by Cliff Brake on 2015-03-10 | Comments are off for this article

I’ve already written about using autotools and qmake in OE.  With recent projects, we’re using CMake to build most C/C++ components.  Like any good tool, CMake has a learning curve, but it seems to do its job quite well.  Below are examples of a CMake build file, and corresponding OE recipe. ————————– CMakeLists.txt cmake_minimum_required(VERSION 2.8) […]

Library sizes for C vs C++ in an embedded Linux system

Posted by Cliff Brake on 2013-12-18 | 2 Comments to Read

Is the size of the libraries required for C++ (vs C) a concern in Embedded Linux systems?  Most Embedded Linux systems likely include some C++ code, so this is probably not even a decision we need to make in many cases.  However, often there is a need for a small initramfs that is used as […]

Why systemd in Embedded Linux Systems?

Posted by Cliff Brake on 2013-12-11 | 2 Comments to Read

Recently I was asked why use systemd vs sysvinit in embedded systems?  There are many discussions on this, and really most of the reasons people use it for servers and desktops are also valid for embedded systems.  Lennart Poettering’s articles explain very well why you might want to consider systemd.  A few things that rank […]

Setting up an OpenEmbedded Package Feed Server

Posted by Cliff Brake on | Comments are off for this article

With the BEC OE build template, you can easily set up an opkg feed server that serves up packages from your build directory.  This allows you to easily install new packages during development, without generating and reflashing an entire image.  To use: On workstation: edit local.sh, and define MACHINE_IP to point to your target machine, […]

OpenEmbedded Build Template

Posted by Cliff Brake on 2013-06-28 | Comments are off for this article

How does one set an OpenEmbedded/Yocto/Poky/Angstrom build? There are many options. Some include: Angstrom setup scripts Poky Freescale Community BSP OpenEmbedded core standalone (I’m sure there are many others, feel free to add in comments …) Over the past years, we’ve supported a number of customers using OpenEmbedded to develop products using various SOC’s. We also […]

OS Containers for Build Systems

Posted by Cliff Brake on 2013-05-08 | Comments are off for this article

Since I’ve been running archlinux on some of my systems, one thing I’ve found useful is systemd-nspawn. systemd-nspawn containers (or chroots on non-systemd systems) give you a quick way to install a Linux distribution, that can run inside an existing Linux system. Some cases where systemd-nspawn containers (referred to as containers in this document) are […]

OpenEmbedded Source Mirrors

Posted by Cliff Brake on 2013-01-07 | Comments are off for this article

When using OpenEmbedded for product development, there are several reasons you may want to consider setting up a source mirror for your OpenEmbedded build: over time, sources disappear from download locations various servers for source packages may be off-line at the time a build is run some servers may be very slow, which slows down […]

Perisistent device names for USB serial ports

Posted by Cliff Brake on 2012-12-19 | Comments are off for this article

Currently, my workstation has two 8-port USB<->RS232 devices, one dual port USB<->RS422/RS485 adapter, and several single port adapters such as the very useful BUBII.  So with around 20 USB->serial devices, figuring out which /dev/ttyUSBx entry corresponds to which port is not really practical.  However, with udev in Linux, you can easily give static names to […]

A quick way to set up an OpenEmbedded feed server

Posted by Cliff Brake on 2012-12-08 | Comments are off for this article

During development with OpenEmbedded (oe-core, meta-oe, meta-angstrom), I often find it useful to set up a feed server so that packages can quickly be installed on the target system without manually copying them over or building a new image.  One way to do this is copy your deploy/ipk directory to an existing web server (perhaps […]

OpenEmbedded: configuring openssh to allow a blank password

Posted by Cliff Brake on 2012-12-05 | Comments are off for this article

Noticed the following when browsing around in the OpenEmbedded sources the other day: ROOTFS_POSTPROCESS_COMMAND += “openssh_allow_empty_password ;” This allows a blank password for development, which is conveient for running ssh/scp commands to the device.  The above can be placed in an image recipe. The command modifies the PermitEmptyPasswords config option in /etc/ssh/sshd_config or /etc/default/dropbear.