Free and open source software (FOSS) was a recurring theme during many of the talks during the HOPE XII conference, which should probably come as no surprise. Hackers aren’t big fans of being monitored by faceless corporate overlords or being told what they can and cannot do on the hardware they purchased. Replacing proprietary software with FOSS alternatives is a way to put control back into the hands of the user, so naturally many of the talks pushed the idea.
In most cases that took the form of advising you to move your Windows or Mac OS computer over to a more open operating system such as GNU/Linux. Sound advice if you’re looking for software freedom, but it’s a bit quaint to limit such thinking to the desktop in 2018. We increasingly depend on mobile computing devices, and more often than not those are locked down hard with not only a closed proprietary operating system but also a “Walled Garden” style content delivery system. What’s the point of running all FOSS software at home on your desktop if you’re carrying a proprietary mobile device around?
That’s precisely the thinking that got Marc Juul interested in the possibility of bringing a FOSS operating system to e-reader devices. During his talk “Liberate Your E-book Reader with fread.ink!”, he gave examples such as Amazon’s infamous remote deletion of 1984 off of users’ Kindles as a perfect example of the sort of control these companies exert on our personal devices. Marc believes the goal should be to completely replace the operating system on these devices with a free software alternative that still retains the ability to open electronic book formats. Not only would this keep the likes of Amazon or Barnes and Noble out of our reading habits, but turn these cheap readers into more capable devices in the bargain.
Marc started his talk with a rundown of the types of electronic readers currently on the market and their hardware specifications. The Amazon Kindle is unsurprisingly the most common model by a rather wide margin, with the rest of the market being made up of the Nook from Barnes and Noble and various models of the Kobo reader.
As it turns out, these devices are all exceptionally similar internally. Every major reader uses a Freescale i.MX6 chip, which Marc theorizes is because it includes a built-in electronic paper controller. They all use very similar electronic paper panels as well, largely due to the fact that there’s very little competition in that space.
The end result is that while the software and attached content marketplace is different, most of the readers are internally almost identical. This should make it relatively easy to create a common operating system that can be installed on most readers, though for the time being the focus is on the 4th and 5th generation Kindle devices as they are so popular and widely available for testing and development.
Luckily we don’t have to start from scratch. All these readers are running Linux, and the manufacturers have been pretty good with releasing their code under the terms of the GPL. Marc reports that Amazon provides all of their modified software packages as well as their kernel source which was invaluable when it came time to find what changes were necessary to get the software working on the Kindle. The Kindle also helpfully provides a serial port that allows local logins, making it easy to test binaries and kernels from the running device without having to make any permanent changes to the system’s software.
First Steps in a Long Journey
In his talk Marc demonstrated how easy it is to run Linux programs on the Kindle by way of the serial port. There’s even an application launcher available that lets you add program shortcuts to the Kindle’s library as if they were books. But while this can help with some of the shortcomings of the Kindle (such as the inability to read EPUB), it doesn’t change the fact that we still don’t have full control over the system.
With the ability to run binaries on the Kindle and the bootloader being released by Amazon under the GPL, Marc had everything he needed to start porting Debian over to the system. Unfortunately, the glibc used in Debian no longer supports kernels as old as what the Kindle is running. Without the technical experience to port a more modern kernel to the Kindle (though he mentions he’s open to working with anyone who wants to take on the challenge) he was forced to recompile glibc with different flags.
Marc experimented with several cross-compiling environments, everything from using an ODROID SBC to using an old Samsung Galaxy S5 phone with Busybox installed. In the end he found QEMU on his desktop to be the most convenient, and soon he was able to compile a build of Debian that would boot on the Kindle.
But all that was easy compared to getting X running on the electronic paper screen. These displays don’t work the same as normal computer monitors, and getting graphics working took a considerable amount of work and code. The kernel needs to have display-specific information known as a “waveform” which describes the display and how it performs. Unfortunately these waveforms are not well documented and Marc had to write his own software to manipulate the data. He then had to come up with patches for the window manager that would prevent the entire display from being constantly updated; the opposite of what you want on an electronic paper display.
As of right now, Marc has the 5th generation Kindle largely working. Graphics, hardware buttons, and USB networking are working. WiFi needs some more work, and progress is being made on a new ebook reader program so the Kindle can still fulfill its original purpose while running this new GNU/Linux operating system. He hopes to have a stable version of the OS available before the end of the year, as well as an easy to use installer that won’t require any modification to the hardware.
How many people are likely to get an antiquated Kindle, disconnect it from the Amazon mothership, and install a variant of Debian on it? Probably very few. But that’s not the point. The option will be there for those who want it. In time the hardware compatibility will get better and the barriers for entry will come down. With a little luck, perhaps enough people will be running FOSS powered e-readers that manufacturers start taking notice and begin offering official options for installing new system software like some do now with Android devices. We don’t know for sure what the future holds, but this is a very promising first step that’s definitely caught our attention.