# Remarkable 2 with Koreader Created: 2023_07_26 23:07 Tags: [[Project]] [[Remarkable 2]] [[PKM]] I found the Remarkable 2 to be insufficient in terms of software, as I described in [[Remarkable 2, Great Hardware, Lack-luster Software]]. I've known for a long time that the Remarkable 2 allows root access over SSH, and that there is an entire community around building tools for it. So I took the plunge, and tried to install an alternative reading interface onto the Remarkable 2, Koreader. I've fallen in love with it, and think that it is doing what I want from an E-Reader. I realize that the Remarkable 2 may have been optimized for writing, but I've found it difficult to extract insights from my writing. I've found the Remarkable to be [[Remarkable 2, Great Hardware, Lack-luster Software#A sinkhole of information|a sink-hole of information]] and not much of an advantage over traditional notebook journaling. ## Install Guide My Remarkable was on version 3.5 when I decided to try this, but one of the requirements to get Koreader on the Remarkable 2 is to downgrade to version 2 because of a big upgrade that Remarkable made with version 3. ### Downgrade to version 2 I used a tool aptly named [RM Update Helper](https://github.com/Jayy001/rm-update-helper) to downgrade to the latest compatible version 2 software `2.15.1.1189`. To use it, I ran the following commands in a cloned version of the repo: ```sh # Make a python virtual env python3 -m venv venv # Source it source ./venv/bin/activate # Install Dependencies (not sure why these are not just in a requirements file) pip install paramiko rich netifaces requests ``` From here it should be ready to run with a `python main.py`, but I ran into an issue trying to get my USB sharing enabled on my Remarkable, so I worked around this by modifying the script to connect to my Remarkable at my LAN IP. I changed [this line](https://github.com/Jayy001/rm-update-helper/blob/73574a642bd12ee23813abca635ae875f93b5ee3/main.py#L32) to connect to the IP of the remarkable. To find this IP, from the Remarkable 2 I went into its settings, then the "About" section and found the "Copyrights & Licenses" section, at the bottom of that page will have your Remarkable's IP & SSH password. From here, we can start the actual downgrade process, which starts with running `python main.py`: 1. Pick the version that you would like to downgrade to - I just hit enter, and it picked the latest version supported by [Toltec](https://toltec-dev.org/) the unofficial Remarkable package library. 2. Enter `y` to make that version be available to update to on the Remarkable 3. The SSH password can be found by going into settings, then the "About" section and then "Copyrights & Licenses" section, at the bottom of that page will have your Remarkable's IP & SSH password - For me, it could not find the host IP (since I was not using the remarkable over USB) so I pulled the IP for my Mac by running `ifconfig | grep 10.0.` since I knew my local network was on that subnet. 4. SSH into the Remarkable from a different terminal window (do not close the previous one, since it is hosting the update server now) 5. Tell the device to initiate an update with [these commands](https://github.com/Jayy001/rm-update-helper/blob/ebc548312039de5ae9c6ba38444b5524d55fbfc1/README.md#L31-L33) - I had an update that was already pending, so I let it upgrade then restarted 6. On the Remarkable, download the older firmware by upgrading & wait for it. When ready, reboot - Once rebooted, remarkable should be on the old v2 firmware Now we are back in the past on version 2 of the remarkable firmware. Do note that if you have the type folio that this version of Remarkable pre-dated that, so you can no longer use the type folio. ### Install KOReader Alright, after all that downgrading, we do have to try to get some more prerequisites in place before we can install KOReader. Here are the steps I took: 1. SSH into the Remarkable - The SSH host key verification may fail after the downgrade, just remove the key from your computer's `~/.ssh/authorized_keys` to re-trust the Remarkable's new key 2. Install [Toltec by following the instructions on their page](https://toltec-dev.org/#install-toltec) 3. See [KOReader's wiki for installing the latest Koreader via Toltec](https://github.com/koreader/koreader/wiki/Installation-on-Remarkable#installation-via-toltec) - I installed the oxide launcher to launch Koreader without fiddling with disabling Remarkable's default launcher - `opkg install oxide` - Disable Remarkable's launcher with: `systemctl disable --now xochitl` - Disable Remarkable's screensavers with: `systemctl disable remarkable-shutdown remarkable-reboot` ### Using KOReader I added my personal instance of [calibre-web](https://github.com/janeczku/calibre-web) ([books.nickthesick.com](https://books.nickthesick.com)) to my KOReader to have KOReader be able to pull any of my [Calibre books via OPDS](https://github.com/koreader/koreader/wiki/OPDS-support). To set it up, I added my user's credentials set the server URL to be books.nickthesick.com/opds, and it just worked right off the bat! One of the best parts about KOReader was its integration with other services (which Remarkable's software just fails at). One integration that I was particularly excited about was its integration with [[Readwise]] which is a service that I just have a lot of admiration for and highly recommend. To set that up, I just had to put Readwise's API key into the export highlight integration, and it just worked! Another point of customization for KOReader is that you can tweak just about everything in your reading experience, setting stylesheets, changing fonts and much more. To install fonts for KOReader to use, I ran this command on my host machine to copy a font into the Remarkable into the right directory for KOReader to pick up on it: `scp -r ~/Downloads/CharInk6 [email protected]:/opt/koreader/fonts/charink` where "CharInk6" was the extracted font folder I wanted in KOReader and "charink" was the destination folder that did not exist before this. ## References -