FOSDEM – which stands for Free and Open Source Software Developers’ European Meeting – is a free-to-participate event where developers meet on the first week-end of February to discuss open source software & hardware projects.
FOSDEM 2019 will take place on February 2 & 3, and the schedule has already been published with 671 speakers scheduled to speak in 711 events themselves sorted in 62 tracks. Like every year, I’ll create a virtual schedule based on some of the sessions most relevant to this blog in tracks such as open hardware, open media, RISC-V, and hardware enablement tracks.
- 10:30 – 10:55 – VkRunner: a Vulkan shader test tool by Neil Roberts
A presentation of VkRunner which is a tool to help test the compiler in your Vulkan driver using simple high-level scripts.
Perhaps the largest part of developing a modern graphics driver revolves around getting the compiler to generate the correct code. In order to achieve this, extensive testing is essential. For OpenGL we have Piglit and its convenient shader_runner script format. On Vulkan, writing the boilerplate needed to test a simple shader is a lot more work. This is where VkRunner steps in to implement all of the boilerplate once and provide a very high-level scripting language to make it easy to write a test. The scripts contain the required shaders, any data they need to run and simple commands to draw or compute and probe the results.
- 11:00 – 11:25 – The final release of Kodi v18 by Martijn Kaijser
Kodi v18 has been in development for over two and finally it is released. During this presentation we go through the most important parts that were added or changed and what this actually means for the future.During past two years developers in and outside of the Kodi Team have been steadily refactoring and working on new features that will be included in Kodi v18. Although we initially thought about doing a RERO release it ended up being quite the opposite. In this presentation we will go through the most important parts that are actually included and why it took so long to come to a final release. Additionally we will briefly cover some parts that we already know will go into v19 at the moment we branched of the current v18 release.
- 11:30 – 12:30 – Porting Debian to the RISC-V architecture by K. Merker
The talk tells the story of how the Debian GNU/Linux port for the RISC-V architecture came to life and describes the steps and challenges involved in adding support for a completely new architecture to one of the major Linux distributions. It provides an overview of the current state of the port and gives an outlook on further developments.
- 12:35 – 12:55 – Embedded FreeBSD on a five-core RISC-V processor using LLVM by Jeremy Bennett
In this talk we describe our experience of bringing up embedded FreeBSD for a heterogeneous 32/64-bit RISC-V system using LLVM, which was more difficult than you might expect. We look at the practical engineering steps needed to bring up an embedded operating system where many of the key components are not fully mature. The result is a reference embedded FreeBSD implementation for RISC-V, freely available to the community.
In this talk we’ll go through the steps needed to bring up a functioning embedded FreeBSD system on multi-core heterogeneous RISC-V system. Our target hardware was not available at the start of the project, so we used the generally available HiFive Freedom Unleashed board. The result is a reference embedded FreeBSD implementation for RISC-V, freely available to the community.
- 13:00 – 13:20 – Writing Network Drivers in High-Level Languages by Paul Emmerich
Drivers are usually written in C for historical reasons, this can be bad if you want your driver to be safe and secure. We show that it is possible to write low-level drivers for PCIe devices in modern high-level languages. We are working on super-fast user space network drivers for the Intel 82599ES (ixgbe) 10 Gbit/s NIC in Rust, C#, go, OCaml, Haskell, Python, Swift, and a few more languages (WIP). All of our drivers are written from scratch and require no additional kernel code.
Check out the GitHub page with links to all implementations, performance measurements, and publications for further reading.
- 13:30 – 14:00 – The New Internet, let’s talk about IPFS by Paula
Step by step, internet as we know it is currently being limited, censored and monitored. To prevent and fight against this, there are associations, activists and such… and one of the proposals is… IPFS protocol. IPFS is, as the official website describes “peer-to-peer hypermedia protocol to make the web faster, safer, and more open”. It wants to offer a distributed alternative protocol, making it more resilient which is handy in case of developing countries, for example.
- 14:00 – 14:25 – Making Open Source Hardware for Retrogaming on Raspberry Pi by Leon Anavi
In this presentation you will learn how to use cutting edge free and open source technologies such as KiCAD and OpenSCAD to create a gamepad as a Raspberry Pi HAT (Hardware Attached on Top) with device-tree fragment for mapping the keys saved in an EEPROM connected via I2C. Exact steps for setting it up and playing retro games in emulators on RetroPie and Raspbian will be provided. Furthermore we will discuss the benefits of the open source hardware and the certification program of Open Source Hardware Association (OSHWA).
- 14:45 – 15:15 – FreeRTOS on RISC-V by Richard Barry
The open source (now MIT licensed) FreeRTOS kernel has been helping embedded developers manage the complexity of their microcontroller designs for 15 years – during which time FreeRTOS has gained a reputation for reliability, ease of use, and responsive support. FreeRTOS now runs on RISC-V!
In this talk you will see how easy it it to execute the FreeRTOS kernel in open source RISC-V emulators and on physical RISC-V microcontrollers, as well as learn how to port the FreeRTOS kernel to new RISC-V implementations.
- 15:30 – 15:55 – Zink, OpenGL on Vulkan by Erik Faye-Lund
No abstract provided at the time of writing, but Zink is a Mesa Gallium driver that leverages the existing OpenGL implementation in Mesa to provide hardware accelerated OpenGL when only a Vulkan driver is available as explained in more details in a post on Collabora website.
- 16:15 – 16:55 – OpenBSD as a full-featured NAS system by Vincent Delft
The NAS has the following features: full encryption file system, transfer via NFS (for Linux and BSD machines) and sshd, implement a time machine-like system for end users’ files, how to backup this NAS on a 2nd disk and make sure we do not have bit rotation, implement Dnla to present to present the multimedia content of this NAS to any DLNA devices (TV, …), how to transform this NAS into a music daemon via the Music Player Daemon.
Thanks to sndio, this NAS is connected to a Cambridge Audio DAC and an HIFI audio system.
- 17:00 – 17:50 – The TPM2 software community by Philip Tricca
Security is and has been a hot topic in recent history. Software and hardware systems are increasingly complex, vulnerabilities increasingly publicized and attack methodologies increasingly sophisticated. This trend began long ago as did efforts to design and implement foundational technologies to curtail it. The trusted platform module (TPM) is one such technology. It was specifically designed to thwart attacks that aim to steal or misuse sensitive cryptographic keys. Despite its obvious benefits, TPM adoption on OSS platforms was historically minimal.
The next iteration of TPM implementations (TPM2) is quickly reaching critical mass in consumer computing platforms. Aiming to capitalize on the availability of TPM2 hardware, the tpm2-software organization on Github has coalesced as a community around the implementation of the TCG standard APIs, and their integration into common software tool and infrastructure.
This talk will start with an overview of the tpm2-software community, it’s history, it’s current direction and how new users can get involved. The talk will then shift to discuss the technical details of the TPM2 software stack (TSS2) infrastructure and programming APIs and our current efforts to improve the security properties of OSS through their adoption. Finally, we’ll conclude by presenting a use case driving the implementation of a new TPM2 Command Transmission Interface (TCTI) module enabling use of the TPM2 from with the SGX trusted execution environment.
- 18:00 – 18:30 – Buildroot for RISC-V by Mark Corbin
Buildroot is an embedded Linux build system that generates complete system images from source for a wide range of boards and processors. I have recently added support for 64-bit RISC-V to the official Buildroot distribution which make it a viable alternative to other build systems for RISC-V such as Yocto.During this presentation I will give a brief overview of Buildroot and how it compares to Yocto for those in the audience who are unfamiliar with these systems. In the main part of the talk I will look at the issues relating to the implementation of RISC-V support, based on my experiences. This will include a look at the status of the RISC-V software ecosystem with regard to the selection of a suitable toolchain, C library, kernel and bootloader. I will then run through how to configure and build a minimal system for booting under QEMU. Finally I will consider any further work required to improve Buildroot for RISC-V including the status of 32-bit support.
- 09:00 – 09:25 – Gnucap – The GNU circuit analysis package by Felix Salfelder
Digital vs analog simulation and in between, principles of fast spice algorithms, how Gnucap does it. Possible simulator architectures, monolithic vs modular. Relevant implementation details and benefits will be highlighted.
Recent applications will be presented, including Gnucsator, Gnucap-Python. Gnucsator provides the component library needed to replace the simulator behind the QUCS project. Gnucap-Python builds the bridge between component modelling, circuit simulation and scientific software packages available from Python scripts. Examples include parametric optimization (nlopt) and transfer function analysis (scipy).
- 09:30 – 10:00 – GNU Radio with a Rusty FPGA by Brennan AshtonQuick
overview of the state of CPP <-> Rust bindings
Overview of a decoder block implemented on the FPGA.
Spurred out of the need to write a fast decoder block and my seeming inability write presentable CPP code, we explore writing Rust bindings for GNU Radio block, and then implement a work function in the programmable logic of a Xilinx UltraScale+ FPGA.
- 10:00 – 10:50 – Tesla Hacking to FreedomEV! by Jasper Nuyens
How and why hack a Tesla and its Linux systems? What is possible, implemented and ‘to-do’? Call for joining the new world of Electric Vehicle Hacking. Do you want to help to bring some Freedom to our cars? My ‘Tesla Hacking’ evolved to a broader project ‘FreedomEV’.
Building a community to encourage and build better and Open Source software for in-vehicle entertainment and beyond… The current state of Tesla Hacking. Difficulties. Strategies. What has been done and what is possible? The creation of an opensource platform for hacking electric Linux-based vehicles. We will launch the website http://www.freedomev.com to bring our hacks to the world and allow others to contribute in the repository. Debian-style.
- 11:00 – 11:30 – U-Boot from Scratch by Jagan Teki
The U-Boot project has evolved in the time span of over 17 years and so as its complexity and its uses. This has made it a daunting task in getting started with its development and uses. This talk will address all these issues and share development efforts created by the U-Boot community.
In this talk Jagan Teki (Maintainer for Allwinner SoC, SPI, SPI FLASH Subsystems) will introduce U-Boot from scratch with a brief overview of U-Boot history, U-Boot Proper, SPL, TPL, Build process and Startup sequence. He will talk about other preliminaries such as Image booting, Falcon Mode, Secure Boot and U-Boot features like device tree, device overlays, driver model and DFU, etc.
- 11:30 – 12:00 – Linux and USB Audio Class 3 by Ruslan Bilovol
The USB Audio Class 3.0 is a specification recently introduced by USB Implementers Forum. Ruslan is an author of UAC3 implementation in Linux, he will give an overview of improvements and changes in this USB Audio spec, and will share current Linux support status and challenges faced during ALSA drivers implementation.
- 12:00 – 12:25 – Fritzing – the past, the present and the future by Patrick Franken
Making electronics accessible to the broad public was mainly made possible by Arduino, the Raspberry PI and last but not least Fritzing. Back in 2009 it was a pain to get from a loose wiring on a breadboard to a PCB. Fritzing came up first with a unique breadboard view and a simple to use PCB layout. Fast forward 10 years Fritzing is still widely used by over 200.000 users but struggles to find a sustainable way to fund its development.
This talk will give a rough introduction to Fritzing including its strength and weaknesses and introduce a roadmap for its further development.
- 12:30 – 12:55 – KiCad Project Status by Wayne Stambaugh
A state-of-the-union talk by KiCad’s project leader.
- 13:00 – 13:30 – Open Source Firmware at Facebook by Andrea BarberioLinuxBoot is an embedded Linux-based environment intended to be integrated into the firmware on the boot ROM. It provides an open, reliable way of initializing hardware and booting a target operating system. It can even replace large portions of proprietary and closed firmware on existing systems. We are experimenting with it at Facebook for speed, reliability, flexibility, transparency and control, and the goal is to make it available on as many platforms as possible.
We will talk about the advantages of running LinuxBoot for reliability, speed and flexibility, debugging, and how you can try it today on accessible hardware.
- 13:30 – 14:00 – Continuous Integration and firmware, a path to higher security ? by Jean-Marie Verdun
No abstract for now.
- 14:00 – 14:30 – An End-to-End LTE Testbed in Three Clicks by Andre Puschmann
After three years without active participation, this talk is going to look back at what happened to srsLTE since then, how it evolved from a flexible PHY library to 4G UE implementation, to a full eNB and finally to a complete open-source, end-to-end 4G testbed. We’ll also discuss some of the currently ongoing activities and the exciting new features that are ahead of us.
- 14:30 – 15:00 – Pocket Science Lab by Mario Behling
PSLab is a tiny pocket science lab that provides an array of test and measurement instruments for doing science and engineering experiments. It can function like an oscilloscope, waveform generator, frequency counter, programmable voltage and current source and also as a data logger. An Android app is developed and available on app stores. A desktop version is available in Python. In the session we will also explain how the software applications with their unique functionalities help to grow the PSLab and Open Science community.
- 15:00 – 15:25 – Open Source Hardware for Smart City by Tsvetan Usunov
Smart City concept includes Park Management, City Lighting management, Waste Management, Public Transport monitoring and management, Air quality monitoring, Security and People Healthcare alerts and monitoring. Olimex is working on OSHW solutions for two popular LWPAN technologies, the results of the work will be presented and demonstrated.
- 16:00 – 16:30 – KernelCI: a new dawn by Guillaume Tucker
KernelCI is a project dedicated to testing the upstream Linux kernel. Originally created by Linaro in 2014, it is now given a second breath by joining the Linux Foundation and has a fast growing community. Results are already starting to show.
- 16:30 – 17:00 – FST-01SZ (Flying Stone Tiny 01 revision ShenZhen) by Yutaka Niibe
Gnuk Token is a security hardware USB token for GnuPG, which supports OpenPGP card protocol. The important feature is it avoids special thing like hardware accelerator or tool (which comes with NDA). Development environment, Tools, Firmware, and hardware design are all free, as they should be.
FST-01 was designed and used as a reference hardware implementation for Gnuk. In 2011, FST-01 was designed as free hardware design with KiCAD, so that people can use Gnuk Token for their computing, having the nature of reproducible by other parties. In 2016, we had a revision called FST-01G, following update of KiCAD. FST-01 and FST-01G were mass produced and sold more than 1200 pieces (2012-2018). In 2018, it has major update, now called FST-01SZ, using Chinese chip (GD32F103TB) and Chinese connector for USB, following another update of KiCAD. In this short talk, I will show my experience of FST-01/FST-01G/FST-01SZ, focusing new revision.
As usual FOSDEM 2019 will be free to attend, and no advanced registration is needed, you can just show up anytime during the event taking place at the ULB Solbosch Campus, Brussels, Belgium.