I’ll be the first to tell you that I’m a big fan of the Open Source movement- I’ve built a career out of supporting “free†software. For a brief flash in the pan of the late 90s and early 2000s, most technology based corporations saw the possible future of Linux, and embraced it wholly. It’s not quite the same today..
What’s my point? Some corporations have assisted Linux development by open sourcing specifications and code samples for kernel and driver writers to add support the product with Linux. Others have offered no assistance at all (requiring a “clean-room†reverse engineering method for support, requiring a lot time and dedication), and yet others have “sparingly†supported Linux, by making their own code and releasing it pre-built to be linked to, uploaded, or otherwise sent to the device.
I am speaking of the infamous “Binary Blobsâ€. Committing a blob is premature obsolescence.
The first time I ran into this design was when I was stuck with an ATI video card, which forced me to use an ATI build of X11 binary so I could get my video above 800×600, and a half decent rescan rate.
This design is problematic. In the case of my video card, it just won’t work properly anymore (such as evidenced by these instructions to get “blobby†builds of X11 to work with recent versions of Debian). These old, unsupported bits of software are an enormous security risk, as they are no longer updated, supported, and won’t work well (if at all) with recent distributions.
Intel has been guilty of the same- notably with their wireless devices in the past, and formerly, their onboard video. If I had to point a finger at any specific piece of hardware which is overwrought with blobs, it would be wireless devices.
OpenWRT, and LEDE have their hands tied for new device support because of these binary blobs (DD-WRT has no problem blindly throwing blobs at devices, which is why it is so popular, and supports so many more devices).
OpenWRT-cum-LEDE have decided they’d rather have proper support for devices, so they can integrate it in their current and future builds. LEDE is currently based on a recent 4.x kernel, whereas many RealTek, MediaTek, and RALink device blobs were written for (and supported by) Linux 2.6.x to 3.x. Quite a bit has changed under the hood since then. Developers are forced to work around these old designs whenever possible, which aren’t often capable of supporting recent enhancements and security implementations.
When I’m looking to purchase hardware, if I find these blobs available, I’m just as likely to pass on the device whenever possible. I suggest everyone do the same- and support corporations that support our hardware without hindering the device with ineffectual commitments.