It's an open secret: Tesla cars are powered not only by batteries but by open-source software. Until recently, though, Tesla hasn't lived up to its obligations under open-source licenses, but now Tesla is finally releasing some of its Linux source code for the Model S and X cars.
The Tesla GitHub repository contains the code for the Model S/X 2018.12 software release. Specifically, it holds the system image on the Tesla Autopilot platform, the kernel sources for its underlying hardware, and the code for its Nvidia Tegra-based infotainment system.
Tesla will release additional open-source code for other systems in their cars soon. According to Tesla, "Work is underway on preparing sources in other areas as well, together with a more coordinated information page. We wanted to let you know about this material as it is available now while work continues on the other parts." The electric car thought-leader will also update its code as updated software releases are made.
You can't build your own Tesla binaries for your car yet though. The Tesla Linux code is still missing source code files and has incomplete build instructions.
Tesla has been slowly working with the Software Freedom Conservancy (SFC) to release its code according to strictures of Linux's Gnu General Public License version 2 (GPLv2). SFC leaders Bradley M. Kuhn and Karen M. Sandler wrote: "Conservancy has been engaging with Tesla on its GPL compliance since June 2013, when we advised Tesla that we had received multiple reports of a GPL violation regarding Tesla's Model S. Customers who purchased Tesla's Model S received on-board system(s) that contained BusyBox and Linux, but did not receive any source code, nor an offer for the source."
The SFC, and other open-source licensing groups, have been working with Tesla to convince its upstream software providers, NVIDIA and Parrot, to disclose complete, corresponding source (CCS) releases for all GPL'd binaries found in Tesla's Model S.
In doing this, Tesla privately provided the Conservancy with multiple rounds of CCS candidates. These source code releases aren't complete yet as required by the GPL. CCS reports have become the standard document of GPL enforcement since 1998. This is the first time though that "circumstances have allowed us to share such a report with the public without violating our Principles."
In turn, the SFC has reviewed the "CCS candidates and provided technical feedback on how to improve the candidates to reach compliance. In this process, we provide detailed reports explaining how the candidate releases fall short of GPL's requirements."
That's because, Kuhn and Sandler wrote, "This part of the process is the longest, most difficult part of GPL enforcement. We often wish we could celebrate the triumph of moving from a no-source-or-offer violation to the next step of 'incomplete sources provided'. However, we also can't lose sight of the fact that compliance means meeting all GPL's requirements, so we don't convey false hopes with an incomplete release. We must ultimately remain focused on user freedom in our efforts."
Still, Tesla has major strides forward in how it treats open-source software. Tesla has elected to publish its incomplete CCS candidates. While the SFC would prefer companies provide adequate CCS immediately, "We realize that this can be a challenging process and recognize that Tesla has struggled for years with upstreams to yield proper CCS. We believe Tesla's new approach also has merit, because it allows the entire community to discuss and contribute in public and collaboratively assist Tesla in complying with the GPL."
That said, the SFC knows that "many of you, particularly those Linux-savvy folks who bought Tesla vehicles, have reached high levels of frustration with the lengthy time this GPL compliance effort is taking. Nevertheless, this situation shows precisely why patience is essential for successful enforcement work; it gives us the opportunity to welcome violators to become contributors to the copyleft software community. Our community's history is filled with such success stories."
Want to help the Tesla story become a Linux success story? You can join the brand new CCS evaluation mailing list. Additionally, if you hold a Linux copyright you can join the Conservancy's enforcement coalition of Linux Developers by writing to firstname.lastname@example.org.