My Week in Code #9

Hello everyone. Another light week here. Let’s go over everything.

BeagleBoard Rust Imager

Continuing the trend from previous weeks, many developments took place in BeagleBoard Rust Imager.

MacOS

Thanks to help from Zain, BeagleBoard Rust Imager SD card flashing finally works on MacOS. With this, it is now possible to flash Linux images to an SD card on MacOS.

Any developers requiring similar functionality should look at the PR. Here are the steps in brief:

  1. Unmount the sd card using diskutil.
  2. Create pipes using std::os::unix::net::UnixStream::pair().
  3. Create a MacOS Authorization external form using security_framework::authorization.
  4. Launch authopen with the -extauth argument using std::process::Command with the send pipe as stdout.
  5. Send the MacOS authorization external form to the process stdin.
  6. Read the SCM_RIGHTS control message from the receive pipe and get the file descriptor.

Sd card formatting

SD card formatting is now supported on both Windows and Linux. MacOS support is still pending. This is useful for making the bootable SD cards usable again.

Offline support

Offline use of BeagleBoard Rust imager for all supported boards is now possible. The base configuration now includes definitions for all boards.

MicroBlocks

Since MicroBlocks IDE v2 has been released, there has been a new release of MicroBlocks stable firmware. You can grab the latest firmware for BeagleBoard Freedom from here.

GPIO Nexus Node Schema

While working on MikroBUS patches, I encountered devicetree nexus nodes. It allows the ability to create proxy GPIO controller thereby providing a stable numbering scheme for GPIO pins on MikroBUS socket.

To allow use in the Linux kernel, I created a PR to add the dt schema to the upstream repository. It has now been merged.

Dynamic alias in Linux devicetree

Currently, adding/removing/updating /aliases is not supported in the upstream Linux kernel. This means overlays cannot rely on using /aliases, which are much more powerful than existing /__symbols__. In my patch series to add support for phandles in /__symbols__, it was brought up that it might be better to switch to using /aliases instead of trying to add more to /__symbols__.

So I have created a new patch series based on the original patch series by Geert Uytterhoeven in 2015.

Ending Thoughts

That is all for the week. Hopefully, this series helps keep people updated about my work and attracts potential contributors.

Consider supporting me if you like my work.

Helpful links