September 30, 2009
This article was contributed by Hanno Zulla
Back in July, Jonathan Corbet lamented that Amazon was making
the Kindle an unattractive hacking target for Linux users. The comments to
his article suggested having a closer look at OpenInkpot, a fairly new Linux
distribution for e-book readers. This much in advance: It doesn't run on
the Kindle. Not yet, anyway.
OpenInkpot (or OI) intends to be a full alternative, free software stack
for e-ink based readers. It comes with a "bookshelf" menu to
handle your collection of e-books and brings the popular FBReader and Cool Reader to display most
e-book formats, among them epub, fb2, txt, html, rtf, pdb, plucker and
mobipocket. PDF files are handled by OI's own locoPDF and madeye is a simple
viewer for images. A sound player application for audio books will join the
OI software collection soon.
History
The initial motivation for OpenInkpot was the limited use of the
original software that Debian hackers Mikhail Gusarov and Yauhen Kharuzhy
found on their newly acquired Hanlin V3. They found
it too slow and its software clunky. E.g., there was no way to adjust the
PDF viewer's zoom and the bookshelf couldn't handle Cyrillic or other
non-ASCII characters in file names.
Because of that, the V3 became the only supported device of the
first public 0.1
OpenInkpot release in August 2008. Mikhail says they achieved most of
their goals
for the V3. OI supports more formats and is faster to display and turn
pages, although the more complex user interface of OI eats up some of the speed
improvements to the original firmware.
Right now, the team is busy porting OI to a second hardware platform for the
upcoming 0.2 release, the Hanvon N516. Both V3 and
N516 are available inexpensively under various brand names around the
world. Intrigued by OI, your author quickly found an online shop based in
his country and, a few days later, the original firmware of his brand new
N516 didn't survive more than 30 minutes before it got overwritten with a
development snapshot of OI.
With the new firmware, you win some and you lose some features. The N516
gains a lot more e-book formats through OI, but loses others such as the
Chinese XEB format. The
OI PDF reader is an improvement, but an audio player is missing since OI's
sound drivers and applications are still under development. The main
advantage of running OI is that it is fully open source and not tied to one
manufacturer or device.
The internals of OI
OI's current development trunk for the upcoming 0.2 release uses a
recent 2.6.29 kernel (with a switch to .31 planned), kernel drivers, and
system software targeted for Hanlin V3 and Hanvon N516 devices.
To get the first version of OI going, kernel hacker Yauhen had to work
without hardware documentation. He disassembled the V3's original firmware
binary and wrote drivers for the buttons, the battery controller, and
the display. The V3 is a simple ARM board with an e-ink display, but its audio
hardware is unusual: It only decodes MP3 streams and further investigation is
needed to see if it can be made to play simple raw PCM audio so that it can be
used for generic audio applications.
The port to the N516 is mostly complete and luckily, its manufacturer is
far more helpful with specs and sources. An audio driver is still missing
for the N516 too, but it is in progress for the 0.2 release. Compared to the
V3, the N516 sports a faster MIPS CPU and more RAM, which is helpful for
applications such as FBReader, which keeps the full document file in
memory. On the downside, the N516 uses some funky hardware components that
complicate driver development, e.g. handling key presses or reading the
status of the battery is unnecessarily difficult.
Yauhen also made some improvements to the e-ink display driver by Jaya
Kumar to speed up screen updates. All drivers and modifications by the OI
team are intended to be contributed upstream.
The OI user space software is based on the Debian-like IPlinux, which is a fork that Mikhail made
of the dormant Slind project. (OpenEmbedded was also tried, but
discarded, mostly because the team did not like OE's package build
management.)
Alexander Kerner, the third main OI developer, maintains many of the user space
libraries and applications and describes OI as an abstraction layer that
hides most of the embedded nature of the hardware from the developer. He
installs the same libraries on his x86 desktop to develop an application,
so that
cross-compiling for the device later is not much of an effort.
The static nature of an e-ink display is a challenge for user interface
development. Screen updates are very slow and expensive, but
the display does not consume power to keep its state. An e-ink device only needs to
render a new page and then goes back to deep sleep. There is no use for the
clutter toolkit, since animation
is impossible on e-ink. OI uses X and the Enlightenment
Foundation Libraries (EFL), which the OI team found to be feature-rich, yet
fast and lightweight and thus well-suited for limited hardware. EFL's
memory footprint is smaller than that of the GTK or Qt libraries (the
latter requiring libstdc++). Since the OI team had bad
experiences with GTK's slow performance on the Nokia N770, they wanted to
try something else. While EFL turned out not to be as lean as hoped for,
they consider it a good choice for a device such as the original V3 with
its slow CPU and only 16 MB of RAM.
For development, OI uses the familiar array of open source tools: git repository, bugtracker, and documentation wiki
(which is a bit outdated, as documentation tends to be). The mailing list
is low volume and the IRC
channel isn't crowded and thus friendly to newcomers.
Localization is done with Transifex. The UI strings are few and
short, so it was not much of an effort for your author to contribute a few
German translations. But not all text is in gettext yet, so
would-be-translators may want to wait until the 0.2 release gets
closer. The system uses UTF-8 and supports right-to-left text, so that any
language supported by Unicode may become a user interface choice.
Commercial e-books and DRM
The OI software stack does not handle content "protected" with
DRM, so most commercial e-book downloads available today cannot be read on
an OI device. The team is not opposed to DRM per se, but to make it part of
the distribution, it would have to be fully open
source and may not rely on hardware to enforce its restrictions. That is
rather tough to implement, so it is safe to expect that there will be no
DRM found in OI in the foreseeable future.
You will find plenty of legal, DRM-free content at places like the Gutenberg Project — time to catch
up on
the classics. For web content, tools like Calibre, Readability, and
many other PDF and e-book format converters will bring your morning paper
(or LWN) onto your e-book reader. Maybe the publishing industry will
see the light and offer DRM-free commercial downloads soon, just like the
music industry has started to do after it went through a painful learning
process.
Help wanted. Apply within
OI is a well-managed project. Alexander jokes that the quick and dirty
hacks he found in the commercial e-book firmware sources would never make it
past Mikhail. But the project does have a serious lack of manpower. Next to the
three main developers, there are only a few casual contributors.
The current development trunk is very much work in progress, and not
suitable for end users, but beta testing it is already fun. The PDF viewer
is still too slow and the OI user interface is inconsistent. Alexander
describes the team as a group of engineers, not usability professionals,
and your author wholeheartedly agrees.
OI looks like a good foundation and the team would welcome commercial
manufacturers joining the effort. The team's current work to port OI to the
N516 is commissioned by Russian Ukrainian hardware distributor Azbooka
(Азбука), who plans to sell N516
devices with OI as the official firmware. Their target audience is
students and young budget-oriented users. Alexey Sednev of Azbooka is
excited about the open source nature of OI and calls it "the greatest
feature" of the Azbooka N516. He expects that OI will encourage software
development by device owners and that this will help foster customization
for specific user groups such as education, medicine, or law.
The team hopes to port the software to more hardware, so OI will soon
need to add abstraction layers for device-specific input methods, storage
media, and network devices. OI could also be a chance at new life for
devices abandoned by their manufacturers, allowing users to avoid planned obsolescence, which
the manufacturers create by not providing new firmware for "old"
products. The Sony
PRS-505 may become the third supported e-reader, as there are only a
few driver details missing. They are confident that it is possible to port
OI to any hardware, including the Kindle, but lack of manpower and time is
stopping them. They need the help of device owners willing to write and
maintain drivers. If you are a kernel developer with an e-ink reader lying
around, you may just have found an exciting new hacking target.
(
Log in to post comments)