Yocto for raspberry pi4, build, boot, and cross compile

Preface The goal of this post is to customize the Yocto reference distribution, Poky to create a bootable image for the Raspberry Pi4. This involves aspects of what is often termed as “board bring-up”, specifically adapting the build system for new hardware. And will also cover cross-compilation. Choosing the Raspberry Pi4 as the target hardware for this post is deliberate decision rooted in how wide spread the use of this board for prototyping and the fact that there is already a Yocto BSP layer for it....

Building a Poky (Yocto Project) Image for QEMU

After looking at why you should build your own distribution in Rolling you own Linux distro with Yocto, And then looking on how bitbake works, it is time to dip our toes in the water and create first real image out of poky reference repository and actually run it using a virtual machine. Prerequisites I will be using Ubuntu 24.04.2 LTS, and will have about 100G of free space. Install required packages: sudo apt install liblz4-tool gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1....

Hands-On Introduction to BitBake

Preface This post is based on a tutorial by Harald Achitz. As I was following it I was adding notes to it for context, and clarity. Filling in the blanks I came across and refactoring the structure for readability. If you haven’t yet read Rolling you own Linux distro with Yocto you should pause and start with it as it is a good intro into Yocto and goes over what it is and why use it....

Keeping Nix Secrets with Sops: Integration and Applications

When setting up a full NixOS system—or even just a standalone Home Manager module—secrets are often a core part of the configuration. With nix being declarative, it makes a lot of sense to integrate them into the nix configurations, but this needs to be done in a secure manner, so even if your configurations are put on public display your secrets will stay safe(case in point my repository that are a reference for this post)....

Rolling you own Linux distro with yocto

This post is the first in a series that will cover embedded development from the perspective of OS development, starting with the need of such solution, the moving parts, the basic configuration that can be used on a raspberry pi and anything else that might be relevant. When it comes to starting an embedded project, one that uses more then a simple micro controller, a choice how much control over its software components will need to be made, meaning control over the OS(Linux in the context of this post) and the added logic/responsibility during development....

lsp and cross compilation pitfalls

About The aim of this tutorial is to go over the creation of the compilation database(compile_commands.json) for cland lsp using cmake, and then more importantly expand on its limitations when it comes to cross compilation. Resources You can get all the source described bellow at the following repository. Creating the source code Understanding the include search order by clang++/g++ standard headers such as iostream or pthread(posix) are located by the compiler at standard paths, other headers(foo....

Advanced workflows with tmux

There are many videos and posts dealing with tmux and how to use it, most of them only deal with its basic use, meaning explaining tabs, panes, session and at best the use of tmux as a daemon. I am on the other hand want to focus on the impact that tmux has had on my workflow and the ways I use it to reduce context switching friction. By understanding the moving parts of your tool and your interface with it you can carve a friction free workflow that suits you specifically, concentrating on the task at hand instead of wasting time and energy to bring the things you need together and then scrambling form one context to the next, just to repeat it again and again with each system restart....