A vast majority of new Embedded System projects make use of the Linux Kernel. Unfortunately, neither the development process nor the quality assurance process of the Kernel are fully understood by many companies. Often, buggy vendor kernels from board support packages are preferred over a standard mainline kernel although the latter has passed the complete review process while the kernel suppied by the manufacturer has not and is not even fit for being posted on a kernel mailing list. Another example is the inability of many companies to work with the community, for political or technical reasons. Instead of having their code reviewed and maintained for free by experienced programmers, they prefer to write new drivers, often duplicating work that has already been done better. Not working with the community does not only happen in smaller companies. Google made the same mistake with the Android kernel. Costly mistakes like long development cycles or buggy products are often the result. The author had to deal with such mistakes for several years. The biggest mistake resulted in the removal of support for a whole ARM subarchitecture from the 3.2 Kernel. Reasons for many of these mistakes are simple misunderstandings. This talk gives an overview of the most common mistakes and misunderstandings and shows how to avoid them.
Über den Autor Hans-Jürgen Koch: I was born 1964 in the south of Germany. Studied Electronics at the University of Applied Sciences, Furtwangen, from 1985 to 1989. Worked as a Hardware and Software Developer in several companies, mainly dealing with automation systems. I started Linux kernel development by adding the driver for the SAA6588 RDS decoder to the Video4Linux subsystem. I presented my RDS work at my own booth at Linuxtag 2006. I now work on the Kernel and also do Linux consulting and teaching. I am maintainer of the Userspace I/O (UIO) framework and the Telechips ARM subarchitecture in the Linux kernel.