Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to figure out how to follow instructions(commemt #71) to roll back from 3.13 #95

Closed
Xelmarik opened this issue Aug 22, 2024 · 14 comments

Comments

@Xelmarik
Copy link

My issue is I've been trying to follow the instructions in comment #71, but I've been unable really to get started.
I can SSH and install hacks on my RM2 such as the Lamy Eraser Hack, but due to my relative inexperience in using terminal, using Codexctl to roll back my firmware from 3.13 is proving more difficult than I thought.

Perhaps I can have some help, I don't understand how to use the download function in the first step I'm thinking. Do I use Codexctl after I've SSH'd into my RM2 or before?

I've used the syntax "codexctl download 2.15.0.1067" and other variations, however nothing seems to be recognized.

Is there something I'm missing before step one?

Thank you.

@Eeems
Copy link
Collaborator

Eeems commented Aug 22, 2024

You run codexctl from wherever you downloaded and put it. I would recommend getting the build for your computer's operating system, and then extracting the executable.

Depending on your operating system, what console/terminal you are using, and where you put codexctl, it will change how you run it.

  • Windows: C:\path\to\codexctl.exe with the correct path
  • macOS/Linux: /path/to/codexctl.bin with the correct path, or place it in a folder where it is on the system path, then you can just run codexctl.bin.

To download and extract 3.11.2.5 you would run the following:

  1. codexctl download --out . 3.11.2.5
  2. codexctl extract --out 3.11.2.5.img 3.11.2.5_reMarkable2-qLFGoqPtPL.signed

You can then transfer 3.11.2.5.img to your device with whatever method you use to transfer files. I would recommend placing it in /home/root.

Determine what partition is the fallback partition by inspecting the output of mount when run on your tablet over SSH and then looking for /dev/mmcblk2p3 on / type ext4 (rw,relatime) or /dev/mmcblk2p2 on / type ext4 (rw,relatime). If you see mmcblk2p3 than mmcblk2p2 would be your fallback, and vice versa.

On your tablet over SSH run dd if=/home/root/3.11.2.5.img of=/dev/mmcblk2p2 or dd if=/home/root/3.11.2.5.img of=/dev/mmcblk2p3, depending on which is your fallback.

Run codexctl restore on your computer, and then reboot your device.

@Xelmarik
Copy link
Author

Thank you, that makes a lot more sense. Still running into an issue on Ubuntu.
When I go to run codexctl.bin from my Downloads folder below is my result.

xelmarik@Flashmac:~/Downloads$ ./codexctl.bin
usage: Codexctl app [-h] [--debug] [--rm1] [--auth AUTH] [--verbose] {install,download,backup,extract,mount,upload,status,restore,list,ls,cat} ...
Codexctl app: error: the following arguments are required: command
xelmarik@Flashmac:~/Downloads$ 

Is this an issue with codexctl.bin or with my method of running codexctl.bin?

Thank you,
Xelmarik

@Eeems
Copy link
Collaborator

Eeems commented Aug 23, 2024

You aren't passing parameters to codexctl.bin like in my instructions. For example: ./codexctl.bin download --out . 3.11.2.5

@Xelmarik
Copy link
Author

Ah, that makes more sense, I misunderstood and thought I ran the codexctl first, then sent the commands. Makes more sense and can report that this has worked and I am now at firmware 3.11.2.5, on to better things! Thank you!

@CoolPenguin42
Copy link

Determine what partition is the fallback partition by inspecting the output of mount

Hello, so I have tried to do this step and it just doesn't seem to work? I type mount command, it tells me that it needs filesystem argument. What even is that? I tried running -h, says it wants path to version firmware filesystem to extract. Should i direct it to the downloaded .img, or maybe the .signed? I tried pointing it to the .img but it throws a "NotImplementedError: mounting has not been implemented on win32"

@Eeems
Copy link
Collaborator

Eeems commented Sep 14, 2024

Determine what partition is the fallback partition by inspecting the output of mount

Hello, so I have tried to do this step and it just doesn't seem to work? I type mount command, it tells me that it needs filesystem argument. What even is that? I tried running -h, says it wants path to version firmware filesystem to extract. Should i direct it to the downloaded .img, or maybe the .signed? I tried pointing it to the .img but it throws a "NotImplementedError: mounting has not been implemented on win32"

Running mount without any arguments on the device over SSH will display all the currently mounted filesystems. My guess is that you are running it on your computer instead.

@CoolPenguin42
Copy link

Determine what partition is the fallback partition by inspecting the output of mount

Hello, so I have tried to do this step and it just doesn't seem to work? I type mount command, it tells me that it needs filesystem argument. What even is that? I tried running -h, says it wants path to version firmware filesystem to extract. Should i direct it to the downloaded .img, or maybe the .signed? I tried pointing it to the .img but it throws a "NotImplementedError: mounting has not been implemented on win32"

Running mount without any arguments on the device over SSH will display all the currently mounted filesystems. My guess is that you are running it on your computer instead.

Omg thank you! That's what I was missing. Thanks for updating the guide with that info, will probably help out alot of other confused people in the future lol!!

@technolog-singularity
Copy link

You run codexctl from wherever you downloaded and put it. I would recommend getting the build for your computer's operating system, and then extracting the executable.

Depending on your operating system, what console/terminal you are using, and where you put codexctl, it will change how you run it.

* Windows: `C:\path\to\codexctl.exe` with the correct path

* macOS/Linux: `/path/to/codexctl.bin` with the correct path, or place it in a folder where it is on the system path, then you can just run `codexctl.bin`.

To download and extract 3.11.2.5 you would run the following:

1. `codexctl download --out . 3.11.2.5`

2. `codexctl extract --out 3.11.2.5.img 3.11.2.5_reMarkable2-qLFGoqPtPL.signed`

You can then transfer 3.11.2.5.img to your device with whatever method you use to transfer files. I would recommend placing it in /home/root.

Determine what partition is the fallback partition by inspecting the output of mount when run on your tablet over SSH and then looking for /dev/mmcblk2p3 on / type ext4 (rw,relatime) or /dev/mmcblk2p2 on / type ext4 (rw,relatime). If you see mmcblk2p3 than mmcblk2p2 would be your fallback, and vice versa.

On your tablet over SSH run dd if=/home/root/3.11.2.5.img of=/dev/mmcblk2p2 or dd if=/home/root/3.11.2.5.img of=/dev/mmcblk2p3, depending on which is your fallback.

Run codexctl restore on your computer, and then reboot your device.

Hi.
I have two questions:

  1. The rollback to any necessary firmware is done in two steps (we take the latest version 3.15+): (a) 3.15 => 3.11.2.5, (b) 3.11.2.5 => anything lower?
  2. Do you know how applicable this is to reM Pro? thanks

@Eeems
Copy link
Collaborator

Eeems commented Nov 18, 2024

  1. No, just download the version you want to downgrade to. I used 3.11.5 as an example.
  2. This is not applicable to the reMarkable Paper Pro.

@SubtleMuffin
Copy link

@Eeems thanks for the steps. After the dd command, I stopped the first execution of codexctl restore, and when I try again connecting, I can't. The device did not respond to ping any more, and it is now in a infinite-loop stage. Is this rm2 bricked? If so, is there any way to recover it? Thanks!

@CoolPenguin42
Copy link

@Eeems thanks for the steps. After the dd command, I stopped the first execution of codexctl restore, and when I try again connecting, I can't. The device did not respond to ping any more, and it is now in a infinite-loop stage. Is this rm2 bricked? If so, is there any way to recover it? Thanks!

It's it's a bootloop you can try ssh-ing into it and running

systemctl stop xochitl

Should halt xochitl boot if your bootloop begins upon GUI startup and not just an infinite loop immediately upon reboot. But it sounds like your device might have gotten boot messed up which wouldn't strictly be gui related.

There is device recovery stuff (https://github.com/ddvk/remarkable2-recovery) if your device is cooked

@SubtleMuffin
Copy link

@CoolPenguin42 Thanks for the reply! It is more cooked than I think... I think I will need to go through the recovery stuff now...

@CoolPenguin42
Copy link

CoolPenguin42 commented Dec 30, 2024

@CoolPenguin42 Thanks for the reply! It is more cooked than I think... I think I will need to go through the recovery stuff now...

Ah that is not optimal unfortunately. If no ssh (which I assume you are meaning), it's done for (for easy fixes). The pogo pin recovery stuff seems to be perfectly successful as long as your device is not actually destroyed, so yours seems as though it will be fixed via the steps in that repo :)

@Eeems
Copy link
Collaborator

Eeems commented Dec 30, 2024

Please open a new issue in the future instead of adding a new issue to the bottom of a closed issue.

If you are unable to SSH into the device, and are unable to interact with the UI, https://remarkable.guide/tech/recovery.html would be your only option.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants