Introducing MicroBoot version 2

MicroBoot is the graphical user interface application for initiating and monitoring the firmware update procedure. It is part of the OpenBLT bootloader package and forms the counter-part to the BootCommander application, which is console based.

The latest stable OpenBLT bootloader (version 1.5.0) contains a version of MicroBoot that works fine, but it only works under Microsoft Windows and it not yet based on the powerful OpenBLT host library (LibOpenBLT). The newly developed MicroBoot version 2 sets out to correct these two shortcomings. It uses LibOpenBLT under the hood and it is developed as a cross-platform application that runs under both Microsoft Windows and GNU/Linux operating systems.

How to get it

MicroBoot version 2.0 will be part of the next stable release of the OpenBLT bootloader. This is version 1.6.0, which is planned for July 2018. You can read more about OpenBLT’s release schedule in this article.

The new MicroBoot is already merged with the code in the SVN trunk. For those curious to give it a try earlier, feel free to download a snapshot of the trunk from either SourceForge or GitHub. The trunk contains a prebuilt MicroBoot binary for Microsoft Windows. GNU/Linux users have to built the binary themselves. More details about how to do this are presented later on in this article.

The new MicroBoot in action

Without too many words, here are some screenshots of the new MicroBoot in action under various GNU/Linux distributions with different desktop environments. Specifically note the last one, running on a Raspberry PI 2 to further showcase the cross-platform feature of the new MicroBoot.

How to build it

The new MicroBoot was developed using the Lazarus IDE. This is an open-source development environment for cross-platform rapid application development, in the Object Pascal programming language. It is basically a free version of Delphi with cross-platform support. Refer to the previous article for background information on why I decided to go this route. For development I used version 1.6.2 of Lazarus on my Debian machine. I verified that it also works with newer versions of Lazarus on my openSUSE Tumbleweed machine.

Since MicroBoot is based upon LibOpenBLT, the prerequisite is to first build the LibOpenBLT shared library. This is an easy step, described in detail on the OpenBLT Wiki.

Next is the installation of the Lazarus IDE. Microsoft Windows users can head over to SourceForge and download the Lazarus installer from there. GNU/Linux users can also download DEB and RPM packages from SourceForge, however it is recommended to install the version of Lazarus that is present in the package repositories of your distribution. Here are the installation instructions for some popular GNU/Linux distributions:

Debiansudo apt install make gdb fpc fpc-source lazarus

Ubuntusudo apt install make gdb fpc fpc-source lazarus lcl

Fedorasudo dnf install make gdb fpc fpc-src lazarus

openSUSEsudo zypper install make gdb fpc fpc-src lazarus

Building MicroBoot with Lazarus is a breeze. Start Lazarus by selecting it from your applications menu. Next, select Project → Open Project from the program menu. Browse to the ./Host/Source/MicroBoot/ directory and select the MicroBoot.lpi file.

To build and run MicroBoot, simply click the green play-button in the toolbar or select Run → Run from the program menu. The MicroBoot binary is now present in the ./Host/ directory.

By default, the “Release” build mode is configured. If you intend to do some debugging with breakpoints and watches, all you have to do is change the build mode to “Debug”:

I am curious to hear your opinion on MicroBoot version 2. Feel free to contact me about it. Feedback is always welcome.

This entry was posted in OpenBLT and tagged , , , . Bookmark the permalink.