At Bootlin, we recently developed from scratch a new Linux driver for the USB Device Controller found in the Renesas RZ/N1 processor. This driver is already accepted upstream, is currently visible in linux-next and should hopefully be part of the upcoming Linux 6.3 release.
As part of developing this driver, we of course had to… test it! To test a USB Device Controller driver, the obvious idea that comes to mind is to use the available USB gadget drivers in the Linux kernel, to expose a USB mass-storage device, a USB network device, etc. However, these existing USB gadget drivers are not necessarily the best option for this kind of testing: they perform some more or less complex transfers and it can be difficult to find the root cause of an error using these gadget drivers.
Fortunately, a tool exists precisely to perform testing of USB transfers: this tool is called
testusb, and it can be found directly in the Linux kernel source code in tools/usb/testusb.c. The tool is quite old and not very well known, but it proved to be very useful for our testing, so in this blog post we are sharing some details on how to use it.
Continue reading “Test a Linux kernel USB Device Controller driver with testusb”
Almost the entire engineering team of Bootlin attended the Embedded Linux Conference Europe 2022 in Dublin mid-september, an important event for Bootlin as it helps everyone in the team stay up to date with the latest developments in the Embedded Linux ecosystem, and connect with members of the community.
All the slides and videos are available at https://elinux.org/ELC_Europe_2022_Presentations, which is one of the great things about the Embedded Linux Conference.
After such conferences, we have a tradition at Bootlin: share with our readers a selection of talks that we found interesting. Several members of our engineering team were asked to select one of their favorite talks, and highlight it with a short summary.
Continue reading “Embedded Linux Conference Europe 2022: a selection of talks by Bootlin engineers”
Bootlin is really happy to welcome another engineer in its team: Alexis Lothoré, who joined us on January 3, 2023.
Alexis graduated in 2016 from INSA Toulouse and built his experience on embedded systems and embedded Linux while working for Smile and then Somfy Protect. In addition to his experience on embedded Linux, Alexis has experience on micro-controller based development, with real-time operating systems such as FreeRTOS, and also has a wide knowledge around connected systems: protocols, security, robustness, evolutivity.
Alexis is now joining our team located in Toulouse, France, where he will work at our office with Hervé Codina, Paul Kocialkowski, Köry Maincent, Thomas Perrot, Miquèl Raynal, Jérémie Dautheribes and Thomas Petazzoni.
For more details, see Alexis page on Bootlin.com and his LinkedIn profile.
Back in November 2022, we announced the availability of a new training course titled Linux debugging, profiling, tracing and performance analysis.
At the time, this training course was still being prepared, but since then Bootlin engineer Clément Léger finished the preparation and successfully delivered the training course to a group of participants.
We are now happy to announce the availability of the training materials corresponding to this course, continuing Bootlin’s long commitment of free availability of all its training materials. On the training page, you can access:
We have a public on-line session of this course planned on January 30-February 2 which is full, but we have a few seats left for the next session on March 20-23, registration available on-line.
We will of course schedule other public on-line sessions of this course this year. If you have a sufficiently large group of participants to train, we also offer private on-line and private on-site sessions.
The icon used in this blog post comes from flaticon.com.
Back in December 2021, we announced the buildroot-external-st project, which is an extension of the Buildroot build system with ready-to-use configurations for the STMicroelectronics STM32MP1 platforms. Later on, in July 2022, we updated it to the lastest Buildroot LTS 2022.02 and version 4.0 of ST BSP version.
More specifically, this project is a
BR2_EXTERNAL repository for Buildroot, with a number of defconfigs that allow to quickly build embedded Linux systems for the STM32MP1 Discovery Kit platforms. It’s a great way to get started with Buildroot on those platforms.
Today, we are happy to announce an updated version of this project, published under the branch
st/2022.02.7 at https://github.com/bootlin/buildroot-external-st. This new version brings the following changes:
Continue reading “Updated Buildroot support for STM32MP1 platforms, ST BSP v4.1”
Linux 6.1 has been released yesterday, a week later than expected. Head over to LWN (part 1, part 2) or KernelNewbies for an overview of the major features merged in this release.
For this release, Bootlin contributed a total of 38 patches, with the following highlights:
- Maxime Chevallier added initial support for the QUSGMII PHY mode, together with supporting code in the lan966x MAC driver and lan966x PHY driver.
- Maxime Chevallier added a new PCS driver for the Altera PSE
- Maxime Chevallier converted the Altera TSE MAC driver to phylink
- Paul Kocialkowski contributed many improvements to the Allwinner sun6i camera interface driver, which are preparation commits to introduce support for interacting with the Allwinner ISP
Continue reading “Linux 6.1 released, Bootlin contributions”
As described in previous articles (Introduction to PipeWire, Hands-on installation of PipeWire), the PipeWire daemon is responsible for running the graph execution. Nodes inside this graph can be implemented by any process that has access to the PipeWire socket that is used for IPC. PipeWire provides a shared object library that abstracts the communication with the main daemon and the communication with the modules that are required by the client.
In this blog post, our goal will be to implement an audio source node that plays audio coming from a file, in a loop. This will be an excuse to see a lot of code, showing what the library API looks like and how it should be used. To introduce some dynamism to a rather static setup, we’ll rely on an input from a Wii Nunchuck, connected using a custom Linux driver and relying on the input event userspace API.
Continue reading “A custom PipeWire node”
As every six months for the last two years, a new virtual edition of the Yocto Project Summit is coming, and its schedule has been announced.
This summit will be over 3 days:
- Tuesday, November 29
Two tracks in parallel, a beginner track and a “hands-on” track for people already familiar with the concepts.
- Wednesday, November 30
Only one track, with intermediate level talks on all kinds of topics.
- Thursday, December 1
Only one track, starting with “product showcase” talks and going on with intermediate level talks on various topics too.
Last but not least, at the end of each day, you will get a chance to hangout with other contributors and users, and ask all the questions that you may have.
Bootlin is proud to contribute one talk to this summit: Bitbaking SPDX SBoM which we will prepare and present. This talk will cover one of the topics we explored to document features of the Yocto Project which had no documentation yet. SPDX and SBoM are related to software supply chain security, vulnerability management and license compliance. These are hot topics these days, and there will be another presentation about SBoMs (SBoMs and Supply Chain with the Yocto Project by Joshua Watt), and two about security (Detecting and fixing CVE security issues in yocto based embedded Linux distribution by Mikko Rapeli, and Maintenance and Security of a Yocto Project-based Distribution: A Year of Experiences by Marta Rybczynska).
Bootlin is indeed involved in the Yocto Project by maintaining its documentation (see the active contributors through the git repository), and also a participant to the Yocto SWAT team, keeping track of all the issues encountered by the autobuilder machines and runs.
Though the Yocto Project and OpenEmbedded are Open Source projects, registration for this conference is not free but just costs 40 USD, to cover infrastructure and staffing costs, the event being hosted by the Linux Foundation.
In this blog post, we’ll discuss the phandle properties used in Device Tree. These properties are used to describe a relationship between components described in the Device Tree. Many blog posts describe this property from the Device Tree source point of view (you can for example have a look at https://elinux.org/Device_Tree_Mysteries#Phandle for details related to Device Tree source). In this blog post, we want to take a different approach, and discuss how to handle this type of property from the Linux kernel C code point of view.
Continue reading “Device Tree phandle: the C code point of view”