Session
Schedule FOSDEM 2020
Embedded, Mobile and Automotive

boot/loader — How to boot Linux and nothing else

UD2.218A
Łukasz Stelmach
To boot Linux on a new ARM/ARM64 platform we have to port Linux to that platform and a bootloader. Aside from the platform setup code, we need to add and maintain some device drivers to both Linux and the bootloader. We decided to avoid the extra effort and get rid of the dedicated bootloader. With a few dozen lines of assembly code, Linux Kernel and a pinch of userland tools the "boot" kernel was running with all the cool features we wanted! Then we used kexec(2) to start a "full" Linux kernel.

How to boot Linux and nothing else

To boot Linux on a new ARM/ARM64 platform we have to port Linux to that platform and a bootloader. Aside from the platform setup code, we need to add at least some platform specific device drivers both Linux and the bootloader and maintain the drivers in both trees. We decided to avoid the extra effort and get rid of the dedicated bootloader.

We took a widely available Odroid XU4 board and replaced bootloader (U-Boot) with a few dozen lines of assembly code, Linux Kernel and a pinch of userland tools. The "boot" kernel was running with all the cool features we wanted! Then we used kexec(2) to start a "full" Linux kernel.

Dedicated bootloaders perform two types of tasks: platform specific setup and management (starting an OS, managing OS updates). We show that Linux is a better environment to implement management proccedures.

We want to share our experience and encourage others to join our effort to use Linux Kernel as a bootloader on ARM/ARM64 platforms.

Target audience

The presentation is meant for everyone interested in how the Linux Kernel handles the boot process and especially developers who commit to arch/* directories, and bootloader developers. We present our experience with ARM Odroid XU4 board, but we expect people working on other platforms will benefit too.

How we want to improve the ecosystem

Development of new bootloading code for ARM and other embedded platforms. We believe using Linux kernel for this task is beneficial in three different ways. Less platform specific code needs to be created and maintained in different repositories. General purpose code like filesystem drivers or network stack are maintained better in Linux than in U-Boot. This, as well as wide verity of libraries makes Linux better environment to develop advanced management functions (e.g OS updates, security checks etc.) in contemporary bootloader.

Additional information

Type devroom

More sessions

2/1/20
Embedded, Mobile and Automotive
Thierry Bultel
UD2.218A
This presentation deals with the integration of Julius Speech Recognition Engine. The aim of this Proof of Concept is to have a connectionless speech engine, working on an embedded device, integrated as a binding of the AGL Application Framework. The recognition uses Deep Neural Network realtime decoding, and for safer results and performances purpose, uses a grammar. Julius does not support wakewords out of the box, some hacking has been done to enable it in an efficient way. Tests have been ...
2/1/20
Embedded, Mobile and Automotive
Leon Anavi
UD2.218A
Homebridge is a lightweight NodeJS server that emulates Apple HomeKit API. Combined with versatile plugins it allows you to make any device Homekit-compatible. In the presentation you will understand how Homebridge works and how to integrated it in a custom embedded Linux distribution built with the Yocto Project and OpenEmbedded. We will go through the exact steps for leveraging the latest release of Poky, the reference system of the Yocto Project, with systemd, X11, openbox, surf web browser, ...
2/1/20
Embedded, Mobile and Automotive
Elisa Nectoux
UD2.218A
IP video intercom systems combined with smartphones can leverage regular RTP/SIP VoIP technology to offer a new set of services to end-users: getting a notification when visitors press the door bell, seeing them on video before answering the call, interacting with them via voice and video and deciding to open the door, at home or anywhere else via wifi or 3G coverage. Linphone (a SIP user-agent) and Flexisip (a SIP proxy server) can be integrated into IP video door phones, in-house panels and ...
2/1/20
Embedded, Mobile and Automotive
Jose Luis Rivero
UD2.218A
In FOSDEM 2013, Open Robotics introduced an overview of the Robot Operating System (ROS), an open software integration framework for robots created in 2007. After more than a decade of great success, powering from Robocup teams to NASA robots in space, ROS2 was born to break any limitation detected previously by roboticians all around the globe. It's an exciting time. This talk will explain the design changes and technical motivations that lead to the creation of ROS2 giving a quick overview of ...
2/1/20
Embedded, Mobile and Automotive
UD2.218A
Bosch has open sourced a true zero-copy middleware for inter-process communication on modern robotics and vehicle computers. The shared memory based solution is compatible with Linux/QNX and achieves data independent communication in constant time without serializing data. We would like to present our recent development towards an open-source release and demonstrate our performance and timing benchmarks on a privately developed embedded robot.
2/1/20
Embedded, Mobile and Automotive
Guillaume Vier
UD2.218A
When printed circuit boards come out of the assembly line, a test fixture is required to perform functional testing and program the firmware. These fixtures, called bed of nails, are sturdy setups usually built for high volume production, and can be quite costly. The goal of this talk is to describe how you can build your own low cost fixture with basic PCB design skills and off the shelves components.
2/1/20
Embedded, Mobile and Automotive
Michael Schloh von Bennewitz
UD2.218A
In this half hour we study aspects of physically and cryptographically secure hardware (often termed secure element or SE) and the integration into existing circuits. We illustrate utility of such integration by inspecting a cryptocurrency wallet design, and explain the difficulty presented by nondisclosure agreements (NDA) common to industry closed adversaries. We examine several hardware devices, study their parts under a close range circuit camera, and suggest instructions on their use.