Note: This only works for OS versions before 3.11 as 3.11 changes the upgrade mechanism that the device uses.
A hackish, quick and dirty update server implementation. For a more complete solution, check out codexctl.
-
Clone this Repo
-
Obtain an official release that you would like to upgrade (er, downgrade) to. A list of firmware releases can be found here.
-
Put your firmware release in
./updates
. -
Figure out the hostname of the computer you are connecting your remarkable to. If you are connecting to USB it will likely be
10.11.99.2
. If your ReMarkable device is connected to your local wifi, it may also work to use a local IP address such as192.168.1.25
. The docs will use10.11.99.2
as the hostname. If you have a different hostname, adjust accordingly. -
Start the mock upgrade server. (This assumes you are running python3)
python serve.py 10.11.99.2
-
SSH into your ReMarkable device and edit
/usr/share/remarkable/update.conf
:ssh root@10.11.99.1 nano /usr/share/remarkable/update.conf
-
Add the following line to the
update.conf
file:SERVER=http://10.11.99.2:8000
-
Run an automatic update.
-
Go to Menu -> Settings -> General: click on the Software Version.
-
Tap Check for Updates. It should download and install the update.
-
Once it is complete, it should prompt you to tap to reboot your device.
-
In the ReMarkable Terminal, make sure
update-engine
is running:systemctl start update-engine
-
Trigger the update:
update_engine_client -check_for_update
-
Observe the update progess.
journalctl -u update-engine -f
-
Once it is complete, reboot the device.
reboot
-
Copy the
switch.sh
script to the device.scp switch.sh root@10.11.99.1:~
-
SSH into reMarkable and run the script.
ssh root@10.11.99.1 ./switch.sh
-
Reboot the device for changes to take effect.
reboot
It seems that the update server address (SERVER) is defined in the /home/root/.config/xochitl.conf
file Issue