Linux device drivers architecture talk at Libre Software Meeting

recursive device modelThomas Petazzoni gave a talk on the Linux kernel architecture for device drivers at the Libre Software Meeting in Bordeaux, France. While the talk was given in French, the materials are in English and can therefore benefit a larger audience. The talk seems to have been well-received, especially from people already having a basic Linux kernel development experience. The topics covered are part of our Linux Kernel development training, and are also usually very appreciated from the trainees already having Linux kernel experience.

The idea of the talk is to give an overview of how device drivers fit into the kernel, both to expose their functionality to upper layers (such as a network device driver exposes itself to the kernel network infrastructure) and to detect/access the hardware using the device/driver model, which is quite hard to understand from the source code only.

The talk went through the following sections :

  • First a basic introduction to device drivers: how devices are seen from userspace applications, and how a simple, raw, character driver can be implemented. It allowed to expose the principle of operations and their similarity with methods in object-oriented programming, and the principle of registration to an upper-layer infrastructure
  • Then, an introduction to what I call « kernel frameworks », i.e kernel subsystems that specialize a general device type (i.e character device) into a particular device type (i.e serial port device, framebuffer device, etc.). The talk illustrates this with the framebuffer core and the serial port core.
  • Finally, an explanation about the device model: bus drivers, adapter drivers and device drivers. I started with the example of the USB bus: being a dynamically-enumerated bus, it provides a good illustration of the device model principles. At the end, I explained how the device model works for the devices embedded into a SoC using the platform drivers/devices mechanism

Here are the slides of this talk.

Many new training materials

12 pages with new training materials!

We are happy to release many new training materials that we created along the course of 2008, for our embedded Linux and kernel training sessions:

Many thanks to customers who asked us to cover new topics!

This is actually the tip of the iceberg (with penguins standing on top of it, of course). The documents that have been around for a long time have also undergone significant improvements and have been updated every time new versions with interesting features were released. We are doing our best to keep our training sessions up to date, and this keeps us pretty busy! So, if you haven’t had a look at these documents for a while, you will probably learn new things if you open them again.

Why so many documents at once? Well, we usually try to release the new documents that we create as early as possible. Here are a few excuses for doing this late this time:

  • We’ve had a very busy year (new training sessions, development and service work), preventing us from polishing our new documents and creating new pages describing them.
  • The switch to our new website took more time than expected. We were reluctant to add more pages that would have caused more migration work, and we were also busy deploying the KVM virtualization technology on our new server.
  • We are also switching the documents to a new template, which leaves more space for real content and less space for logos and for information repeated on every page. This work is far from being over yet!
  • We couldn’t release them for National Security reasons Winking smiley.

Now that there’s no infrastructure work left, and that we have run out of excuses (except the one about being busy, we still are), we should be able to release our new documents much earlier.

So, stay tuned on our RSS feed, more will come soon!

Linux USB drivers

Learning how to write USB device drivers for Linux

Free Electrons is proud to release a new set of training slides from its embedded Linux training materials. These new ones cover writing USB device drivers for Linux.

Like everything we create, these new materials are released to the user and developer community under a free license. They can be freely downloaded, copied, distributed or even modified according to the terms of the Creative Commons Attribution-ShareAlike 2.5 license.

Embedded Linux and Ecology

Embedded Linux contributions to the Linux Ecology HOWTO.

Free Electrons has contributed major updates to the Linux Ecology HOWTO, a Linux Documentation Project document that gathers ideas and techniques for using Linux in an environmentally friendly way.

In particular, Free Electrons took advantage of its experience with embedded Linux system development to add new techniques which can reduce power consumption or make it possible to extend the lifetime of old systems with limited resources.

Free Electrons also contributed an overview presentation on this HOWTO. The latest HOWTO version with our updates (waiting for the next official release) can also be found on the same page.

Happy 2006 with a penguin!

Penguin New Year wishes and good reasons for using Free Software in 2006

Free Electrons wishes a Happy New Year to embedded system developers and to all members of the Free Software and Open Source community.

Unlike other birds…
Penguins never freeze!
While most others stay locked in a cozy shelter…

In 2006,
with a penguin,
you can reach out,
withstand extreme conditions,
and pioneer an exciting world of opportunities!
Happy New Year!

2006 wish card, front

  • License: right to copy and modify if the copyright notice is kept. Graphic elements (trees, cottage…) can be copied and modified with no restriction (Public Domain).
  • Source (Scalable Vector Graphics, created with Inkscape) and generated files can be found here. Rooster, hen and penguin graphics come from the Open Clip Art project.
  • Contributed 3 reusable graphics (cottage, Christmas hat and pine tree) back to Open Clip Art.

New presentation

To make these wishes come true, Free Electrons has also released a new presentation collecting the main strengths (and weaknesses too) of Free Software in embedded systems. It should help to make the decision to (or not to) rely on penguins in 2006 and in the years to come.

Free embedded Linux training: one year after

A summary of the improvements brought in 1 year to our free embedded linux training materials.

Since our first public release in October 2004, we made significant improvements to our free embedded Linux training materials:

  • The total number of slides increased from approximately 500 to more than 1000. Here are all available training materials and presentations.
  • New training materials: audio in embedded Linux systems, multimedia in embedded Linux systems.
  • New presentations: embedded Linux From Scratch… in 40 minutes, Linux on TI OMAP processors, free software development tools.
  • Added many sections, updates and improvements to our main document: embedded Linux kernel and driver development. If you haven’t checked it for 1 year, you will hardly recognize it!
  • Some of training labs now use the SkyEye emulator, which supports several arm boards. People can now practise with cross-compiling and booting the Linux kernel without having to purchase expensive development boards.
  • KernelKit, a live GNU/Linux distribution derived from Knoppix, was created for embedded systems and kernel developers. In particular, it includes uClibc cross-compiling toolchains for several platforms: arm, armeb, i386, m68k, mips, mipsel, ppc and sh4. KernelKit is used in our training labs.
  • The PDF versions of the documents now include internal and external hyperlinks, thanks to using 2.0. To navigate within the documents or to go to an external site, just click on the links in your favorite PDF reader.
  • Some utilities were created and shared with the community: clink (to compact cross-compiling toolchains), and cOOol (to report broken hyperlinks in documents).
  • The training materials were used for 12 training sessions delivered to embedded system companies and key silicon vendors.
  • The documents are now released under the terms of the Creative Commons Attribution – ShareAlike 2.0 license, instead of the GNU Free Documentation License.
  • Some of the documents have been translated to French, German or Italian by several contributors.

Your corrections, suggestions, contributions and translations are welcome!

Free embedded Linux training materials

Free Electrons embedded Linux training materials freely available

This was our first, initial annoucement in 2004. Since then, we have made huge improvements to our embedded Linux and Linux kernel and device driver development training courses. See all our training materials.

The 500 page materials of Free Electrons’ embedded Linux training have just been published.

They are all released under the terms of the “GNU Free Documentation License (with no invariant sections).

Full training materials