Public session changes

New agenda, sessions in Grenoble, and walking away with an embedded board

Did you notice? We’ve made significant changes to our next public training sessions.

First of all, partnering with CALAO Systems, we are opening new public sessions in Grenoble.

In the upcoming sessions, we also offer a new training agenda, covering embedded Linux system development in full detail. Until recently, our public trainings dedicated approximately 3 days to kernel integration and device driver development, and only 2 days to real-time and to developing the system itself. The new sessions will still cover kernel configuration, (cross)compiling and usage, but will leave Linux kernel and driver development to dedicated sessions.

The new training sessions will thus cover the below topics:

  • Introduction to embedded Linux
  • Bootloaders
  • Configuring, (cross)compiling and booting a Linux kernel
  • Block filesystems
  • Flash filesystems – Manipulating flash partitions
  • C library and cross-compiling toolchains
  • Embedded system development tools
  • BusyBox and other lightweight tools for embedded systems. Graphical toolkits
  • Debugging and profiling tools
  • Implementing realtime requirements
  • Udev and hotplugging
  • System optimizations
  • Practical lab: implementing a multimedia system

CALAO SystemsFor the first time too, each participant will walk away with an embedded board from CALAO systems. After the training sessions, you will then be able to go on practicing with the new technologies that you discovered, and to build your own system prototypes.

You will find more details in the description of our public training sessions.

If there is enough demand, we will propose other public sessions in September 2009, this time on Linux kernel and device driver development. Don’t hesitate to contact us if you are interested in such a session. We could even make it earlier if enough people are interested.

Real hardware in our training sessions

At last, real hardware in our training sessions

If you haven’t had a look at our new training agendas, you may not have noticed that we now use real hardware in our embedded Linux and kernel training sessions. For 4 years, we had been using the QEMU emulator on the x86, arm and mips platforms. While this simplified training session logistics, and avoided any trouble due to hardware failures, this was not close enough to the real world situations that our customers face.

Calao's logoWe chose the nifty boards from Calao Systems. They have great features that make them very attractive for training and prototyping purposes

  • AT91SAM9263 ARM CPU from ATMEL, running at 200 MHz
  • 64 MB of RAM and 256 MB of flash, which are more than enough for any embedded system we can think of.
  • Small and light (30 g), with a USB connector replacing power, serial and JTAG connectors, making it easy to travel with several of these devices without having to carry many heavy accessories. Carrying convenience was a key decision factor.
  • 100 Mbit Ethernet port, allowing to practice with root filesystems on NFS, and with tftp from the U-boot command line.
  • CALAO USB 92632 USB 2.0 host ports, allowing to connect any type of device. In particular, we are thinking about USB mass storage and webcam devices.
  • 1 USB device port, allowing to experiment with Linux USB gadget drivers.
  • Very affordable price (less than 160 €).

On the software side, this board is also very attractive:

  • It is supported by the mainline Linux kernel, since version 2.6.27.
  • A bricked board can be reflashed without ever needing to use Windows, thanks the Linux version of Atmel’s SAM-BA utility.
  • It will soon be supported by the mainline version of U-boot. We are contributing to this.
  • It should also be directly supported in the mainline version of Buildroot in the next months, making it easy to build complete root filesystems for it. We will also work on this.

We will also soon offer training cost options that include these boards. This way, customers can walk away with their own device and easily continue to practice with the training hardware and make prototypes, without having to go through an extra purchasing process.

Call for presentations for the LSM embedded track

The Libre Software Meeting (LSM) is an annual event on free software taking place in july in France since 2000. The LSM meeting is organized this year in Nantes, France from 7th to 11th July. Amongst several tracks, the Libre Software Meeting will feature an « Embedded Systems and Open Hardware » track, for which the call for presentations has been released recently.

The purpose of the “Embedded Systems and Open Hardware” session is to give the state of the art of free software for embedded systems and Open Hardware. Technical topics of this session include but are not limited to:

  • Embedded OS Development kernel architecture, implementation and port for embedded systems
  • Embedded Development Tools: tool chains and project cases (tool chain projects, packaging for cross compilation, portability …)
  • Embedded Linux: µClinux…
  • Real-time extensions for Linux: RTLinux, RTAI…
  • Hard real-time kernels: eCos, RTEMS, ADEOS, Xenomai…
  • Soft Real-time kernels
  • Embedded Java
  • GUI for embedded systems: Gtk, Qt, Nano/X…
  • Linux and System on Chip (SoC)
  • Open Hardware, Open design, free IP modules (Intellectual Property) and softcores: opencores, OpenRISC, NIOS, Microblaze, LEONSparc, FPGA…

The conference will last 30 minutes, questions included. Round tables will be organized. Synthetic presentations are scheduled to last 20 minutes. PDF versions of the presentation are not mandatory but they will be greatly appreciated (with an online web access just after the LSM event, they are a very useful documentation source for the entire community).

If you plan to participate and to propose a presentation, please send a message as soon as possible to the following address: embarque@rmll.info with a summary of your presentation (and if you can, a summary in English too) no later than 15th march 2009. Feel free to forward this Call For Presentation to other places or to everyone you think could be interested.

Embedded Linux Conference Europe 2008 videos

Together with the announcement of our free mainlining offer in our Linux kernel and bsp development services, we are pleased to announce the availability of new conference videos.

The CELF Embedded Linux Conference Europe (ELCE) and the NLUUG Autumn Conference on Mobile Computing took place last November in Ede, in the Netherlands.

For those who don’t know them yet, the Embedded Linux Conference (ELC) and ELCE are in our opinion the most interesting conferences for embedded Linux system developers. They cover only interesting topics, such as power management, boot time, flash storage, security, graphics, mobile applications and many more.

This time, four people shot videos: Ruud Derwig (NXP), Tim Bird (Sony), Thomas Petazzoni and Michael Opdenacker (both from Bootlin). Then, Thomas took care of reading the tapes and DVDs, and encoding them to Ogg/Theora, all this in just a few minutes of manual intervention, thanks to his super automated scripts.

Here are all the videos:

Speakers were supposed to post their slides on the CELF Wiki, but some of them haven’t done it yet.

If you don’t know which video to start with, here are the talks that Thomas Petazzoni and I preferred:

Of course, these are just our personal recommendations, from the talks we managed to attend. We are sure that many other ones are worth recommending.

Kernel and BSP development and mainlining

Offering free mainlining for Linux kernel, device driver and BSP development

Note: Due to the number of requests we get for mainlining work, we can no longer continue the offer described below.

Bootlin is best known worldwide for its kernel and embedded Linux system training sessions and its free training materials, and also perhaps for sharing videos from technical conferences.

However, did you know that Bootlin is not a training company?

We are actually embedded Linux system and kernel developers like the people we support, train and work for. This is essential to be good trainers, in addition to our passion for sharing what we learn. For example, have you ever had a look at the description of our engineering services?

In our training activity, we differentiate with other suppliers by offering custom sessions, being completely transparent with our training materials, costs and customer evaluations. Here’s how we can also make a difference in our development activity:

  • As in all our activities, by focusing only on the Linux kernel, device drivers, bootloaders, embedded and real-time system development.
  • By offering free mainlining to any customer who orders Linux board support packages or Linux device drivers from us. Having our code accepted in the official Linux and U-boot sources brings terrific benefits to our customers and can be a key contributor to the success of their products.
  • By working inside the Linux development community. Being part of it, we know this community very well: its people, its rules, its best practices and its best resources. This helps us to make the right decisions (if needed, collecting advice from the right people), and quickly obtain the expected results.

2008 contributions

Here are the contributions that we made to the user and developer community in 2008, thanks to the customers who ordered our engineering and training services.

As you can see, we do our best to have all our contributions merged into mainline sources. So, if you need a new feature in the Linux kernel (supporting your new boards, for example), in development tools and libraries (Buildroot, QEMU…), and want to enjoy this feature in all future updates and releases, don’t hesitate to ask us. We will be glad to work with the community and find a long lasting solution.

Linux kernel

  • [x86] use ELF section to list CPU vendor specific code (commit)
  • [MTD] fix minor typo in the MTD map driver for SHARP SL series (commit)
  • [x86] configurable DMI scanning code (commit)
  • [mm] directly use kmalloc() and kfree() in init/initramfs.c (commit)
  • [x86] consolidate the definition of the force_mwait variable (commit)
  • inflate: refactor inflate malloc code (commit)
  • fs/buffer.c: uninline __remove_assoc_queue() (commit)
  • [x86] make movsl_mask definition non-CPU specific (commit).
  • [x86] move cmpxchg fallbacks to a generic place (commit)
  • [x86] configuration options to compile out x86 CPU support code (commit)
  • Configure out file locking features (commit)
  • Fix comment in include/linux/mmc/host.h (commit)
  • Configure out AIO support (commit)
  • [PCI] allow quirks to be compiled out (commit)
  • [x86] remove PC speaker code (commit)
  • [Doc] improvement to Documentation/SubmittingPatches (commit)
  • Work on multicast and ethtool configurability. Not merged yet.
  • 65 e-mails sent to the kernel newbies mailing list to help new kernel developers.

Buildroot

Thomas Petazzoni became official committer in November 2008. In addition to contributions, patch review and integration of patches into the official Buildroot repository, and discussions on the mailing list.

  • Thumb support, not integrated yet (post)
  • Fixed URL for fakeroot sources, integrated (post)
  • Bumped libpng version, integrated (post)
  • Added the DirectFB examples package, integrated (post)
  • Bumped up libgtk2 version, integrated (post)
  • Work on external toolchain support, integrated. Several iterations, patches and discussions.
  • External toolchain support improvements, integrated (post)
  • More external toolchain fixes, integrated (post)
  • External toolchain C++ cross-compiler fix, integrated (post)
  • Kernel build fix related to external toolchain use, integrated (post)
  • Fixed external toolchain build, integrated, and replaced later with an improved version (post)
  • Fix Qtopia build issues, integrated and then replaced by an improved version (post)
  • Another external toolchain support solution, integrated (post)
  • Fixed TARGET_PATH for external toolchain builds, integrated (post)
  • Fixed strange problems in pango configure target, integrated (post)
  • Strip libgtk2 in the target, integrated (post)
  • Strip pango libraries on the target, integrated (post)
  • Strip gettext libraries on the target, integrated (post)
  • Fix matchbox build, integrated (post)
  • Create zlib installation directory in the staging dir, integrated (post)
  • Bump up lite version, integrated (post)
  • Added a parallel compilation fix for fontconfig, integrated (post)
  • Documentation fixes (post, post)

QEMU

  • Increased write buffer size in pflash emulation, integrated (post)
  • Reset wcycle after erase confirm, integrated (post)
  • Improved pflash cfi01 debug messages, integrated (post)
  • Added missing parenthesis in qemu_ram_alloc(), integrated (post)
  • Add Flash support to the Versatile PB platform (post)

Conferences

New training materials

All our training materials can now be found on our docs page. Some of them are not new, but have undergone substantial updates.

See our recent post for details.

Financial support

We support organizations promoting Free Software:

You may also count our subscriptions to the most useful LWN.net resource.

Miscellaneous

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!

Agenda of FOSDEM embedded devroom announced

The FOSDEM is now scheduled in less than two weeks in Brussels. The agenda of the developers room dedicated to embedded topics has been published recently. A nice set of interesting talks will take place :

As usual, I’ll be at FOSDEM with Bootlin video camera, so soon after the conference, videos of the talks should be available from our website.

Qt goes LGPL

The next release of Qt will be released under the LGPL license

Good news for people developing graphical applications for embedded Linux systems. Nokia, the new owners of Trolltech, announced they will release the next version of the Qt graphical library under the LGPL license. This means that developers will be able to create applications based on the Qt library, with the license of their choice, free software / open source or proprietary.

As we explained in our Choosing graphical libraries for embedded systems presentation, Qt is more than a graphical library. It also offers a complete development framework, with development tools, data structures, threads, networking, XML parsing utilities making application development easier. All these features, and the fact that Qt directly run on top of the Linux framebuffer, also make it possible to create systems with a feature-rich interface without having to drag and build numerous dependencies.

Another bonus is that Qt supports multiple operating systems, making your applications easily portable. If you’ re not allowed to use Linux yet, write your applications with Qt, and once all OS related dependencies are removed, switch to your favorite OS without even letting your boss know wink.

See WikiPedia for details about Qt.

Kernel 2.6.28 is out with a few Bootlin contributions

A few hours before Christmas, Linus Torvalds released the latest stable version of the Linux kernel, 2.6.28. Jake Edge from LWN sums up the major highlights of this new release: « Some of the highlights of this kernel are the addition of the GEM GPU memory manager, the ext4 filesystem is no longer “experimental”, scalability improvements in memory management via the reworked vmap() and pageout scalability patches, moving the -staging drivers into the mainline, and much more ». As usual, the Kernel Newbies website offers an excellent human-readable summary of the changes.

Of particular interest to embedded developers will be the new boot tracer facility, which allows to draw SVG graphs of the kernel initialization procedures execution time, in order to analyze the boot time and possibly reduce it. Of course, a lot of architecture-dependent improvements have also been made (for example OProfile support for ARMv7 CPUs but also new supported boards) and a lot of drivers have been merged or improved, as usual.

Bootlin has contributed a few patches that have been merged and released in 2.6.28. While being a small contribution compared to the 9.000+ patches added to the kernel between 2.6.27 and 2.6.28, they still slightly improve the kernel for embedded users. Part of the Linux-Tiny efforts, these patches allow to reduce the size of the kernel by disabling features that may not be necessary on embedded systems. More specifically, these patches allow :

From the existing Linux Tiny patch ideas, the only one left in the feature removal area are the multicast support removal and ethtool removal. They have already been submitted a few months ago, but got rejected by the network maintainers. I will work on them again to fix the issues and try to re-submit them later.

Finally, Jonathan Corbet has published an analysis of the 2.6.28 developement cycle in terms of contributors and changes. An interesting reading.