Welcome to the 14th issue of TMPDIR, a weekly newsletter covering Embedded Linux, IoT systems, and technology in general. Subscribe to future issues at https://tinyletter.com/tmpdir and pass it on to anyone else you think might be interested. Please send any tips or feedback to info@tmpdir.org.


Linux 5.15 has been released and while going through changes it seems MIPS support is almost done, there were very few patches and even in past few year main contributor has been Loongson and now they have dumped MIPS for their own new architecture called loongarch. This is an indicator that when deciding on new SOCs, one should pay attention to SOC CPU architecture and if it is not ARM, RISCV, or x86 then take a double look.

A nice summary of changes is provided by CNX Software

Yocto’s git fetcher falls back to using master for branchname if it is not specified by the user in the recipe when defining SRC_URI. Recently a lot of OSS packages have started moving away from calling the default branch master; therefore, it is no longer a common default. Yocto now warns about such usage:

Parsing recipes...
WARNING:  /home/jenkins/oe/world/yoe/sources/meta-freescale/recipes-bsp/mxsldr/mxsldr_git.bb:
URL: git://git.denx.de/mxsldr.git does not set any branch parameter.
The future default branch used by tools and repositories is uncertain  and we will
therefore soon require this is set in all git urls.

There is detailed discussion about this on oe-architecture mailing list openembedded-architecture@lists.openembedded.org | Default branch names in git urls

Yoe release 2021.10 (karakul) is now available. See release notes for a list of changes. This is the first Yoe release that includes Yocto 3.4, which has many changes.

Github has stopped supporting the unencrypted 'git' protocol, which may impact Yocto recipes. We have fixed up a few of our recipes.


In Simple IoT we are finishing ADR-1 and have been pulling CRDT theory into the discussion. This has been very helpful as it gives us a vocabulary and framework for thinking about data synchronization problems. It is shaping up nicely and will give us a good data framework going forward. Still a lot of things to explore (like issues with distributed clocks), but we're making progress. It is neat when you discover others are using similar approaches to solve problems.

With the availability and low cost of networks, the future in computing is distributed. Distributed data requires a different mindset than the central database mentality. For many distributed systems, it works best to handle the data synchronization and merging at the application layer. And with these new methods (like CRDTs) the result is more simple and reliable. When things get simpler, this is a good indication we are heading in the right direction. -- cb


Sometimes its handy to know what the compiler might be doing with a code snippet. At times when I am working on upgrading a compiler or debugging a performance issue, I want to look at different versions of compiler to generate code for a given source and compare. This tool called the Compiler Explorer is priceless for me. I believe it could also help folks who are learning computer programming -- especially at the system level. It supports all the well known programming languages e.g. C/C++, Go, Rust, JAVA, Python etc. You can choose difference compilers and different versions. You can also choose different cross compiler architectures e.g. ARM/x86/RISCV/PPC/MIPS etc. -- kr

Quote for the week

Simplicity is a prerequisite for reliability. -- Edsger W. Dijkstra

Join our Discourse forum to discuss these or new topics. Find past issues of TMPDIR here. Listen to previous podcasts at https://tmpdir.org/.

Thanks for reading!

Khem and Cliff