Does anyone know what changed in Limelight firmware version 2019.7.1? The changelog makes no mention of it, and all previous releases were removed from the website when 2019.7.1 was released.
Hope this helps. Limelight 2019.7 - Reflections & Bandwidth
I appreciate the response, but I was referring to the minor release after 2019.7, 2019.7.1
Oops no idea.
I expect that a minor change was made such that the Limelight software could no longer be used with hardware other than official Limelights. There were several threads around the time of that release that had been describing the use of the Limelight software with stock Raspberry PIs. There hasn’t been anything since then that I’ve seen.
Unless or until the Limelight software author responds with a definitive answer, consider this a guess.
I think that this is likely.
After some analysis, I have concluded that this is what the update was for.
Care to elaborate on this? Curious to know how you got to that conclusion.
Sure. I used a disassembler to compare the 2019.7 and the 2019.7.1 versions and found something very interesting. There appears to be a mechanism that prevents the software from starting on anything other than a Raspberry Pi compute module. I can’t post any disassemblies because of copyright, but I can explain what the code does. When the software starts, it reads from /proc/cpuinfo. Then, the code extracts the CPU revision from the string. It compares the value to several revision codes, and if it does not match any for the compute module, it will print a bogus error message and exit. All 2019.7.1+ versions have this.
For what it’s worth, there are over 100 packages on the Limelight image which use the GPLv3 license. If what Caleb is saying is true here, this might be classified as “tivoization” which section 6 of the GPLv3 strictly prohibits.
I know for fact that the vision application dynamically links to the GNU C++ runtime, which is GPL.
I was going to verify this, but it seems that Limelight has actually de-listed version before 2019.7.1. I also don’t see any compute related strings in the output of
It uses shell commands to get it. Search for things like cat, grep, and awk.
While this is accurate, I would encourage you to edit the post to remove the output because it is subject to copyright.
If anyone wants to verify this themselves, this is an awesome free disassmebler/decompiler.
It definitely seems that the software on the Limelight checks for the CPU revision. Personally, this doesn’t say anything for certain, but definitely doesn’t paint a pretty picture.
I am quite skilled at reverse engineering and have a good understanding of assembly. I am very sure of what I saw.
The C++ runtimes actually have an exception to them allowing linking to them even in non gpl apps. Otherwise no non gpl apps could ever be distributed on Linux. Even Open Source BSD or MIT apps. Pretty much all GPL based runtimes, including libc, libstdc++, Java, the linux syscall api, and many more have this exception. Otherwise, nothing proprietary (or even actual open source licenses like BSD or MIT) could ever be built and distributed for linux, which would be a very bad thing.
Cool. I didn’t know that.
If you want to get the actual ELF binary to play with, this tool allows you to actually mount the filesystem on Linux.