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:
- Unmount the sd card using
diskutil
. - Create pipes using
std::os::unix::net::UnixStream::pair()
. - Create a MacOS Authorization external form using
security_framework::authorization
. - Launch
authopen
with the-extauth
argument usingstd::process::Command
with the send pipe as stdout. - Send the MacOS authorization external form to the process stdin.
- 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.