Seth Barrett

Daily Blog Post: April 20th, 2025

refresh

April 20th, 2025

Fun with an EReader: Modifying the Kobo Clara 2E to my needs

During my first semester of PhD, as most grad students, I found myself reading tons of research papers, but I hated that at the time, I could only really read them on my laptop or by printing them out. I love reading outside, and neither of these options worked particularly well for this, so I began looking into ereaders. After comparing the options on the market, I ended up purchased Kobo Clara 2E, primarily due to its supposed extensibility, as well as it being waterproof, as reading while kayaking sounded rather attractive. Initially, I thoroughly enjoyed using it, however over time, I found some limitations in it that I have since addressed:

  • Kobo login requirement for device setup
  • Crashing when reading documents
  • Poor document formatting when reading research papers
  • Inability to listen to music while reading

Kobo Login Requirement for Device Setup

As someone who supports privacy preserving technologies, I was rather dismayed to see that Kobo requires users to connect their device to WiFi as well as create and sign into a Kobo account in order to set up their device. I was sure there was a way around this, and it turns out I was correct. Lee Yington Li, MD, encountered this same issue, and posted a work around onto their blog, found here. By following the steps listed, I was able to set up my device without ever connecting it to WiFi, or create a Kobo account.

Crashing and lag when reading documents

Once I had my device setup, I got to reading. One thing I noticed that there would be a significant lag when turning pages using the default Kobo software, particularly on longer pdfs, and those with lots of images. This got to the point where my device would regularly crash and have to be restarted, and eventually froze. Holding down the power button did nothing and my device was bricked. After many hours on the phone with Kobo support, I was able to send my ereader in, and get it replaced as it was still under warrenty. Once the replacement device was in my hands, I knew I needed to find a work around to prevent this from happening again.

After a bit of searching around, I found KOReader, a document reader developed for E Ink devices. KOReader supports Kobo devices, and I figured I'd give it a shot. I found a forum thread that includes a "one-click" install script for installing KOReader, found here. By following the directions in the thread, it was super simple to install and set it up on the device. After this, I ran into no issues with lag or crashes; this is a perfect fix!

Poor document formatting when reading research papers

After installing and setting up KOReader, I was having no issues reading on by device. No issues, except with reading research papers in the IEEE Transactions format. You see, this format is designed for regular printer paper, while the Clara 2E has 6" display, significantly smaller. In order to read these papers, I would have to zoom in on the document and constantly move the zoom box around. Initially this wasn't the biggest concern in the world, but it kept making me more and more annoyed, and I figured there must exist a work around for this.

In my searches for a solution, I kept hearing to "just" purchase a larger e-reader, but I wasn't happy with that solution. That was, until I found this reddit thread, where deep in the comment section, I found user 1bent suggested using something called k2pdfopt to transform the pdf. This piqued my interest, as I hadn't seen anyone else mention this in my search. Upon visiting its website, I knew this was the solution to my problem. K2pdfopt resizes a regular size(8.6" x 11" or A4) pdf file perfectly to a 6" reader screen size, preserving images and tables, even in two column format. Seeing the display of how it works on the website's mainpage, I had to try it out. Using the OSX version is a breeze, where you simply need to run .k2pdfopt <document name> in order for the pdf to be transformed into a version for ereaders. This software works great, and I highly recommend it for anyone who wants to read pdfs on an ereader(or phone, as it will also convert to 4").

Inability to listen to music while reading

With all of these minor fixes in place, I went about using my ereader to its fullest. As of today, I've spent 319 hours and 46 minutes reading, not a bad start. There was just one thing bugging me, and that was I couldn't listen to music on my device. The Clara 2E has BLE functionality, where wireless headphones can be connected to listen to audiobooks. I'm not exactly an audiobook connoisseur, but I do enjoy listening to music while reading. This doesn't work well, as by default the mp3 format is not supported, but I knew there had to be a work around.

One of the first things I noticed about KOReader was that it enabled a console emulator for the device. I had always wondered if I could set up mpd with ncmpcpp on the device, but hadn't gone through with it as I figured the device's limited resources would prevent me from doing so. That was until a friend told me about moc, or music on console, which is even lighter than mpd. There wasn't a static ARMv7 binary for moc, so I set up a Dockerfile using:

FROM debian:bookworm

RUN apt update && apt install -y \
    gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf \
    build-essential wget bzip2 \
    libncurses5-dev libasound2-dev libltdl-dev \
    libsamplerate0-dev libid3tag0-dev libmad0-dev libflac-dev \
    libvorbis-dev libsndfile1-dev libfaad-dev libmp3lame-dev \
    libtool pkg-config

WORKDIR /build

Then I started the container and dropped into shell for it:

docker run -it --rm -v $PWD:/build moc-crossbuild bash

And then I downloaded the source code and extracted it in the container:

cd /build
curl -O http://ftp.daper.net/pub/soft/moc/stable/moc-2.5.2.tar.bz2
tar -xvjf moc-2.5.2.tar.bz2
cd moc-2.5.2

Lastly, I configured compilation for ARMv7 and made the correct binary:

./configure \
    --host=arm-linux-gnueabihf \
    --prefix=/opt/moc-arm \
    --disable-nls \
    --without-x \
    CFLAGS="-O2 -static" \
    LDFLAGS="-static"
make -j4
make install

From here, I copied the binary to my Clara 2E along with a file containing the music I wanted to listen to. In order to listen to music, I have to connect my bluetooth headphones, start KOReader, and run the command in the terminal emulator to play moc from my playlist directory, allowing me to listen to music while reading, no phone needed. This solution is a bit sloppy, and I look forward to improving it so I can connect the headphones in KOReader using something like a2dp, but that's a project for another day.

Conclusions

All of these "hacks" for my Clara 2E has made my reading situation far nicer. I can go out to the riverwalk attached to campus with just my ereader and some headphones, and knock out a few papers. This has greatly enhanced my focus while reading these complex documents, and eased my PhD process immensely. I don't think most users need to make all these complex enhancements to their devices, but if you find even one of these to be beneficial, it would put a smile on my face. I hope you've enjoyed reading!