As we discussed in a recent blog post, two of our engineers participated to the FOSDEM conference early February in Brussels, Belgium. For those interested, many videos are available, such as several videos from the Lameere room, where the embedded related talks were given.
Thomas Petazzoni also participated to the two days Buildroot Developers Meeting after the FOSDEM conference. This meeting gathered 10 contributors to the Buildroot project physically present and two additional remote participants. The event was sponsored by Google and Mind, thanks a lot to them! During those two days, the participants were able to discuss a very large number of topics that are often difficult to discuss over mailing lists or IRC, and a significant work to clean up the oldest pending patches was done. In addition to this, these meetings are also very important to allow the contributors to know each other, as it makes future online discussions and collaborations much easier and fruitful. For more details, see the complete report of the event.
Buildroot Developers Meeting in Brussels
Also, if you’re interested in Buildroot, the project has applied to participate to the next edition of the Google Summer of Code. Two project ideas are already listed on the project wiki, feel free to contact Thomas Petazzoni if you are a student interested in these topics, or if you have other proposals to make for Buildroot.
Version 3.13 of the Linux kernel was released by Linus Torvalds on January, 19th 2014. The kernelnewbies.org site has an excellent page that covers the most important improvements and feature additions that this new kernel release brings.
As usual Free Electrons contributed to this kernel: with 121 patches merged in 3.13 on a total of 12127 patches contributed, Free Electrons is ranked 17th in the list of companies contributing to the Linux kernel. We also appeared on Jonathan Corbet kernel contribution statistics at LWN.net, as a company having contributed 1% of the kernel changes, right between Renesas Electronics and Huawei Technologies.
Amongst the contributions we made for 3.13:
- Standby support added to the Marvell Kirkwood processors, done by Ezequiel Garcia.
- Various fixes and improvements to the PXA3xx NAND driver, as well as to the Marvell Armada 370/XP clocks, in preparation to the introduction of NAND support for Armada 370/XP, which will arrive in 3.14. Work done by Ezequiel Garcia.
- Added support for the Performance Monitoring Unit in the AM33xx Device Tree files, which allows to use perf and oprofile on platforms such as the BeagleBone. Work done by Alexandre Belloni.
- Support added for the I2C controllers on certain Allwinner SOCs, as well as several other cleanups and minor improvements for these SoCs. Work done by Maxime Ripard.
- Continued the work to get rid of
IRQF_DISABLED, as well as other janitorial tasks such as removing unused Kconfig symbols. Work done by Michael Opdenacker.
- Added support for MSI (Message Signaled Interrupts) for the Armada 370 and XP SoCs. Work done by Thomas Petazzoni.
- Added support for the Marvell Matrix board (an Armada XP based platform) and the OpenBlocks A7 (a Kirkwood based platform manufactured by PlatHome). Work done by Thomas Petazzoni.
In detail, the patches contributed by Free Electrons are:
- Alexandre Belloni (3)
- Ezequiel Garcia (19)
- Gregory CLEMENT (3)
- Maxime Ripard (19)
- Michael Opdenacker (69)
- Thomas Petazzoni (8)
This week-end is the first week-end of February, which on the schedule of all open-source developers is always booked for a major event of our community: the FOSDEM conference in Brussels. With several hundreds of talks over two days, this completely free event is one of the biggest event, if not the biggest of the open-source world.
For embedded Linux developers, FOSDEM has quite a few interesting tracks and talks this year: an embedded track, a graphics track (with many embedded related talks, such as talks on Video4Linux, the status of open-source drivers for 2D and 3D graphics on ARM platforms, etc.), and several talks in other tracks relevant to embedded developers. For example, there is one talk about the Allwinner SoCs and the community behind it in one of the main track. Our engineer Maxime Ripard is the Linux kernel maintainer for this family of SoC.
Two Free Electrons engineers will attend FOSDEM: Maxime Ripard and Thomas Petazzoni. Do not hesitate to get in touch with them if you want to discuss embedded Linux or kernel topics!
Also, right after FOSDEM, the Buildroot community is organizing its Developers Meeting, on Monday, 3rd and Tuesday 4th February. This event is sponsored by Google (providing the meeting location) and Mind (providing the dinner), and will take place in the offices of Google in Brussels. Ten Buildroot developers will participate to the meeting in Brussels, as well as a number of others remotely. On Free Electrons side, Thomas Petazzoni will be participating to the meeting. If you are interested in participating, either physically or remotely, do not hesitate to contact Thomas to register. For more details, see the wiki page of the event.
Free Electrons is happy to announce its first public training session outside of France.
Of course, we deliver training courses on customer sites all around the world, but this will be the first one open to individual registration that we organize outside of France.
We are starting with an Android system development session in Southampton, UK. It will be given by our trainer Chris Simmonds, on April 14-17, 2014.
You will enjoy the newest version of our Android course, based on Android 4.x, and using the BeagleBone Black as the development platform for the practical labs. As always in our training sessions, participants walk away with the board used during the practical labs (in this case the BeagleBone Black and its LCD cape), allowing them to continue their learning and experiments well after the end of the course.
Being a popular cruising destination, Southampton is easy to reach from other cities in the UK and in the world.
The Android robot picture is copyrighted by Google. It is licensed under the Creative Commons 3.0 Attribution Unported license. The British robot version has been derived by Free Electrons, and is available under the same license. Feel free to reuse it and improve it as long as you keep the original author!
Linux Conf Australia is by far the most well-known Linux related conference of the southern hemisphere, with a good number of Linux kernel related talks and discussions, as well as many other topics around the Linux ecosystem. The 2014 edition of the event will take place in Perth, Australia, and the schedule of talks and mini-confs looks very promising!
For the first time, Free Electrons will be participating to this conference: our CTO and embedded Linux engineer Thomas Petazzoni will be giving a talk titled Buildroot: building embedded Linux systems made easy!, during which he will be presenting what Buildroot is, what it is useful for, and how it works.
Beyond this talk, Thomas will be attending the full week of conferences, so do not hesitate to get in touch with him, especially if you’re interested in embedded Linux topics, Buildroot, ARM kernel development, and in Free Electrons!
Posted in News
BeagleBone Black connected to the Wii Nunchuk over I2C
In the last few years, the practical labs of our Embedded Linux kernel and driver development training
were based on the ARMv5 Calao USB-A9263 platform, and covering the ARM kernel support as it was a few years ago. While we do regularly update our training session materials, with all the changes that occurred in the ARM kernel world over the last two years, it was time to make more radical changes to this training course. This update is now available since last month, and we’ve already successfully given several sessions of this updated course.
The major improvements and updates are:
- All the practical labs are now done on the highly popular ARMv7 based BeagleBone Black, which offers much more expansion capabilities than the Calao USB-A9263 platform we were using. This also means that participants to our public training sessions keep the BeagleBone Black with them after the session!
- All the course materials and practical labs were updated to cover and use the Device Tree mechanism. We also for example cover how to configure pin muxing on the BeagleBone Black through the Device Tree.
- The training course is now centered around the development of two device drivers:
- A driver for the Wii Nunchuk. This device is connected over I2C to the BeagleBone Black, and we detail, step by step, how to write a driver that communicates over I2C with the device and then exposes the device functionalities to userspace through the input kernel subsystem.
- A minimal driver for the OMAP UART, which we use to illustrate how to interface with memory-mapped devices: mapping I/O registers, accessing them, handling interrupts, putting processes to sleep and waking them up, etc. We expose some minimal functionality of the device to userspace through the misc kernel subsystem. This subsystem is useful to expose the functionalities of non-standard types of devices, such as custom devices implemented inside FPGAs.
And as usual, all the training materials are freely available, under a Creative Commons license, so you can study in detail the contents of the training session. It is also worth mentioning that this training session is taught by Free Electrons engineers having practical and visible experience in kernel development, as can be seen in the contributions we made in the latest kernel releases: 3.9, 3.10, 3.11 and 3.12.
For details about cost and registration, see our Training cost and registration page.
If you are an embedded Linux developer too, you have probably been frustrated by the lack of information from the Linux kernel when it failed to start the
init process when you’re building a new root filesystem. The only thing you get is
No init found, and this could hide many different causes:
init program candidate found at all
init program candidates exist but they can’t be executed, for multiple possible causes (missing execute permissions, failed to load shared libraries, executable compiled for an unknown architecture…)
The good news is that this source of frustration will be gone in Linux 3.13. Thanks to a Free Electrons commit merged on Nov. 13, 2013, whenever an attempt to execute an
init program candidate fails, there is a message in the console detailing the executable path and the error code. For example:
Starting init: /sbin/init exists but couldn't execute it (error -13)
When you get such a message, all you have to do is lookup the error code in include/uapi/asm-generic/errno-base.h or maybe in uapi/asm-generic/errno.h. In the above example, the
-13 code meant
permission denied, typically because of missing execution rights.
This had been annoying me for a long time, and I am glad that the Linux kernel community accepted my improvement!
By the way, many more improvements to the Linux kernel from Free Electrons are currently getting merged in 3.13. See all our contributions to the Linux kernel.