Linaro Connect San Francisco 2015 is taking place this week, and several 96Boards have been presented including LeMaker Hikey and Qualcomm DragonBoard 410c, both of which will finally be available by the end of the year. But there are also many technical presentation and discussions that are uploaded to LinaroOnAir Youtube account, and they’ve greatly improved video and audio quality compared to the past, with presentation slides also available on Slideshare. I’ve just watched one of the session entitled “Kernel Mainline Status of Mobile Chipsets” by Tim Bird, Sony Mobile. Also the talk focus on mobile SoC, it’s also relevant to other consumer electronics products, and some embedded systems.
The presentation states the extend of the issues, shares comparisons between the vendor device tree and mainline, and explains how developers can participate, with the talk ending with a discussion within the group of attendees.
Here’s a summary of some of the key points:
- Shipping products are 20 versions behind Linux mainline, that’s about 3 years old, and have between 1 to 3 million lines of code out-of-tree, as shown in the table below, where they compared the vendors’ GPL source code releases to mainline Linux.
- Manufacturers find working with Linux is hard, even for a company like Sony with 1,100 developers, and many manufacturers don’t participate because they don’t understand the benefit, or simply don’t know how to do. The end results however is that users’ device don’t get any long term support for their devices.
- One of the issue is the development cycle goes through multiple parties. Google selects an LTS kernel, which then gets to SoC vendors, then device manufacturers, before reaching the end user, and the cycle repeat with a large “version gap” between mainline and the kernel used on devices.
- To reduce to version gap, a joint project between Linaro and the Linux Foundation aims to determine obstacles to mainlining, and reduce or eliminate them, and the results of analysis, generated with upstream-analysis-tools, shows large differences for the expect media & video drivers, as well as the architecture directory, but also for USB 2.0 code, simply because of the extra code required to handle USB charging that’s not supported in mainline.
- The analysis lead to kernel area of focus for mainling Wiki entry which includes potential work to be done for sensors, charging, NFC,GPS & Bluetooth using UART, and more. So if you a student looking for a summer or final year project, this could be something you could explore.
- Beside technical issues, and there’s a lot of work, there are also institutional barriers, and management must be convinced mainlining – and avoid binary blobs – is the way to go before committing resources. Some ideas are listed on eLinux.org such as gathering data to show the benefit of mainlining, possibly showing smaller code base for mainlined code which can leverage the kernel framework, making software costs visible, etc… You can edit the Wiki, and add your own ideas too.
You can watch the full 55-minute presentation below, and/or download the presentation slides.