All about Open Source
As we've mentioned, we built C.H.I.P. to make tiny powerful computers more accessible and easier to use. A huge part of making C.H.I.P. accessible is making sure that it can change to meet the needs of the community.
We've fielded a lot of questions about C.H.I.P.'s open source software and wanted to give some more detailed information and share some exciting news. If you love the guts of open source software and want to hear the latest, read on!
Mainline C.H.I.P. Kernel Changes
We want C.H.I.P. to be a happy and healthy member of the Linux open source community for many years to come. That means C.H.I.P. needs to run the official and current version of the Linux kernel.
Getting the official version of the Linux to run on C.H.I.P. requires making changes to the Linux kernel and building entirely new drivers for some of C.H.I.P.'s onboard hardware. Once all the updates are complete, they need to be added into the kernel's source tree in a process called "Mainlining."
Mainlining the kernel changes necessary for C.H.I.P. is no small task. It will take a huge and ongoing community effort. Luckily we're standing on shoulders of giants: The amazing Linux-Sun-Xi community has made great progress on kernel support for Allwinner SoCs over the last few years. If you're interested in the inner workings of the SoC's that power C.H.I.P., take a look at their wiki - https://linux-sunxi.org
We're incredibly excited to announce that we've partnered with one of the premier contributors to ARM Linux: Free Electrons! We will be collaborating with their amazing team of ARM Linux engineers, and of course our Kernel Hacker backers to help us test and mainline C.H.I.P.'s kernel modifications as we move forward.
Bottom line: Wynter, Alex, and Dave will be working very closely with Free Electrons and the C.H.I.P. Kernel Hacker backers over the next 6 months to make sure C.H.I.P.'s software is open, standard and most importantly FREE.
Binary Blobs, GPL Violations and Moving Forward
As members of the open source community, we take license violations very seriously. We've had a productive and active dialog with our friends at Allwinner about the GPL violations present in the released CedarX drivers and are commited to helping them resolve the issues.
Allwinner's engineers have already spent hundreds of hours doing static analysis to locate and repair GPL violating components of their drivers, and are continuing to dig through, line by line. It's a time-consuming process complicated by intellectual property restrictions inherent in the SoC business.
Allwinner's most recent code release addresses GPL violations in three ways:
- New code architecture: Driver has been split into several plugins, one plugin per video format.
- GPL-compliant: We have scanned and analyzed the code to ensure that there is no GPL code used or called.
- Partial CedarX video decoder source code release: MPEG2, MPEG4, MJPEG, and H264 drivers source code available.
There is a long road ahead, but we're extremely excited at the progress made already, and the good-faith effort shown by partners on all sides.
Ultimately, our goal is to have as few binary blobs present in the source tree required to use C.H.I.P. as possible. Presently, binary blobs are required for 3 parts of the R8 SoC software stack:
- ARM Mali 400 Driver (3D graphics acceleration)
- C2D (2D acceleration)
- CedarX (Video Hardware Encoding/Decoding)
Our plan is to mainline support for user-space drivers for these binary blobs. But we're also actively exploring ways that we can eliminate the need for these binary blobs altogether. We will also provide Chipsters who want a completely FOSS C.H.I.P. OS builds that are blob-free!
- Dave, Richard, Thomas, Gus, Wynter, Vanessa, Alex, Sharps, and George @nextthingco