ddvk / remarkable-update

force a full factory reset / re-update / upgrade
MIT License
168 stars 16 forks source link

[USER ERROR: FIXED] Unable to connect to server with 3.0.4.1305 and downgrade (RM2) #26

Open Architekt909 opened 1 year ago

Architekt909 commented 1 year ago

Let me prefix this by saying I'm an idiot. I went from 2.x (forgot the exact version) and upgraded to 3.x. I discovered that 3.x was missing a feature a really loved ("light sleep" mode) and didn't know about ddvk so I figured let's try a beta version and see if they put it back. Nope. Which then of course made it so that I can't simply use the switch.sh script: I now have two different 3.x versions on my partitions, one retail one beta. So I tried to use the server downgrade method. I'm on a Win 10 PC with Python 3.11.1. Here's what I did:

I see what looks like it's working: it says: python .\serve.py 10.11.99.1 2.9.0.204 Device should use: http://10.11.99.1:8000/ Available updates: {'reMarkable': ('2.9.0.204', '2.9.0.204_reMarkable.signed')} Starting fake updater: 8000

ssh into my device via the USB address using PuTTY and edit /usr/share/remarkable/update.conf and just simply add this line at the end of the file: SERVER=http://10.11.99.1:8000 (yes I've tried also using a trailing /, no difference). Here's what the contents of the file looked liked after modification:

[General]

REMARKABLE_RELEASE_APPID={98DA7DF2-4E3E-4744-9DE6-EC931886ABAB}

SERVER=https://updates.cloud.remarkable.engineering/service/update2

GROUP=Prod

PLATFORM=reMarkable2

REMARKABLE_RELEASE_VERSION=3.0.4.1305 SERVER=http://10.11.99.1:8000

Go to Menu->Settings->General, click software version, tap check for updates, and it just simply says on the device "Error checking for update" and no output from the python console on the PC. So I go the CLI route to get more detailed info. Just to verify I'm doing the CLI right, here's what I did after SSHing from my PC into that same USB IP address:

systemctl start update-engine update_engine_client -check_for_update journalctl -u update-engine -f

Looking at the output, it seems the primary issue is that it can't connect to the ddvk python server as it says "Unable to get http response code: Failed to connect to 10.11.99.1 port 8000: Connection refused"

I should note that yes, from my SSH session inside the tablet I can ping 10.11.99.1:8000

I presume any other errors are the result of this. I don't know why it can't connect. I tried disabling all firewall settings just in case. I also tried the wifi IP for all the above steps as well, same problem. If you're curious about the full output from the CLI, it is the following:

I20221226 18:06:58.675487 472 update_engine_client.cc:271] Initiating update check and install. -- Logs begin at Wed 2022-12-21 02:52:08 UTC. -- Dec 26 18:06:58 reMarkable update_engine[413]: Dec 26 18:06:58 reMarkable update_engine[413]: Dec 26 18:06:58 reMarkable update_engine[413]: Dec 26 18:06:58 reMarkable update_engine[413]: Dec 26 18:06:58 reMarkable update_engine[413]: Dec 26 18:06:58 reMarkable update_engine[413]: Dec 26 18:06:58 reMarkable update_engine[413]: I20221226 18:06:58.694192 413 libcurl_http_fetcher.cc:50] Starting/Resuming transfer Dec 26 18:06:58 reMarkable update_engine[413]: I20221226 18:06:58.694440 413 libcurl_http_fetcher.cc:163] Setting up curl options for HTTP Dec 26 18:06:58 reMarkable update_engine[413]: E20221226 18:06:58.695248 413 libcurl_http_fetcher.cc:264] Unable to get http response code: Failed to connect to 10.11.99.1 port 8000: Connection refused Dec 26 18:06:58 reMarkable update_engine[413]: I20221226 18:06:58.695456 413 libcurl_http_fetcher.cc:281] No HTTP response, retry 1 Dec 26 18:07:08 reMarkable update_engine[413]: I20221226 18:07:08.936008 413 libcurl_http_fetcher.cc:50] Starting/Resuming transfer Dec 26 18:07:08 reMarkable update_engine[413]: I20221226 18:07:08.936373 413 libcurl_http_fetcher.cc:163] Setting up curl options for HTTP Dec 26 18:07:08 reMarkable update_engine[413]: E20221226 18:07:08.937165 413 libcurl_http_fetcher.cc:264] Unable to get http response code: Failed to connect to 10.11.99.1 port 8000: Connection refused Dec 26 18:07:08 reMarkable update_engine[413]: I20221226 18:07:08.937408 413 libcurl_http_fetcher.cc:295] Transfer resulted in an error (0), 0 bytes downloaded Dec 26 18:07:08 reMarkable update_engine[413]: I20221226 18:07:08.937479 413 libcurl_http_fetcher.cc:297] Error buffer: Failed to connect to 10.11.99.1 port 8000: Connection refused Dec 26 18:07:08 reMarkable update_engine[413]: I20221226 18:07:08.937521 413 omaha_request_action.cc:670] Omaha request response: Dec 26 18:07:08 reMarkable update_engine[413]: E20221226 18:07:08.937562 413 omaha_request_action.cc:686] Omaha request network transfer failed. Dec 26 18:07:08 reMarkable update_engine[413]: I20221226 18:07:08.937638 413 action_processor.cc:81] ActionProcessor::ActionComplete: OmahaRequestAction action failed. Aborting processing. Dec 26 18:07:08 reMarkable update_engine[413]: I20221226 18:07:08.937682 413 action_processor.cc:87] ActionProcessor::ActionComplete: finished last action of type OmahaRequestAction Dec 26 18:07:08 reMarkable update_engine[413]: I20221226 18:07:08.937723 413 update_attempter.cc:313] Processing Done. Dec 26 18:07:08 reMarkable update_engine[413]: E20221226 18:07:08.937810 413 update_attempter.cc:685] Update failed. Dec 26 18:07:08 reMarkable update_engine[413]: I20221226 18:07:08.937858 413 utils.cc:750] Converting error code 2000 to kActionCodeOmahaErrorInHTTPResponse Dec 26 18:07:08 reMarkable update_engine[413]: I20221226 18:07:08.937901 413 payload_state.cc:104] Updating payload state for error code: 37 (kActionCodeOmahaErrorInHTTPResponse) Dec 26 18:07:08 reMarkable update_engine[413]: I20221226 18:07:08.937947 413 payload_state.cc:110] Ignoring failures until we get a valid Omaha response. Dec 26 18:07:08 reMarkable update_engine[413]: I20221226 18:07:08.938460 413 action_processor.cc:41] ActionProcessor::StartProcessing: OmahaRequestAction Dec 26 18:07:08 reMarkable update_engine[413]: I20221226 18:07:08.939330 413 omaha_request_action.cc:280] Posting an Omaha request to http://10.11.99.1:8000 Dec 26 18:07:08 reMarkable update_engine[413]: I20221226 18:07:08.939412 413 omaha_request_action.cc:281] Request: <?xml version="1.0" encoding="UTF-8"?> Dec 26 18:07:08 reMarkable update_engine[413]: Dec 26 18:07:08 reMarkable update_engine[413]: Dec 26 18:07:08 reMarkable update_engine[413]: Dec 26 18:07:08 reMarkable update_engine[413]: Dec 26 18:07:08 reMarkable update_engine[413]: Dec 26 18:07:08 reMarkable update_engine[413]: Dec 26 18:07:08 reMarkable update_engine[413]: I20221226 18:07:08.939465 413 libcurl_http_fetcher.cc:50] Starting/Resuming transfer Dec 26 18:07:08 reMarkable update_engine[413]: I20221226 18:07:08.939666 413 libcurl_http_fetcher.cc:163] Setting up curl options for HTTP Dec 26 18:07:08 reMarkable update_engine[413]: E20221226 18:07:08.940367 413 libcurl_http_fetcher.cc:264] Unable to get http response code: Failed to connect to 10.11.99.1 port 8000: Connection refused Dec 26 18:07:08 reMarkable update_engine[413]: I20221226 18:07:08.940593 413 libcurl_http_fetcher.cc:295] Transfer resulted in an error (0), 0 bytes downloaded Dec 26 18:07:08 reMarkable update_engine[413]: I20221226 18:07:08.940655 413 libcurl_http_fetcher.cc:297] Error buffer: Failed to connect to 10.11.99.1 port 8000: Connection refused Dec 26 18:07:08 reMarkable update_engine[413]: I20221226 18:07:08.940699 413 omaha_request_action.cc:670] Omaha request response: Dec 26 18:07:08 reMarkable update_engine[413]: I20221226 18:07:08.940752 413 action_processor.cc:78] ActionProcessor::ActionComplete: finished last action of type OmahaRequestAction Dec 26 18:07:08 reMarkable update_engine[413]: I20221226 18:07:08.940793 413 action_processor.cc:87] ActionProcessor::ActionComplete: finished last action of type OmahaRequestAction Dec 26 18:07:08 reMarkable update_engine[413]: I20221226 18:07:08.940831 413 update_attempter.cc:313] Processing Done. Dec 26 18:07:08 reMarkable update_engine[413]: I20221226 18:07:08.940871 413 update_attempter.cc:317] Error event sent.

RedTartan04 commented 1 year ago

"I'm an idiot" LOL ;-) I think you've misinterpreted the IP. 10.11.99.1 is most likely the reMarkable's IP, and 10.11.99.2 your PC's. serve.py and update.conf need your PCs IP, not your rM's. You start serve.py on your PC which creates a server. The rM's updater connects to the server on the IP given in the .conf, i.e. your PC's IP.

Architekt909 commented 1 year ago

"I'm an idiot" in this case is 100% right! There were TWO cases of user error. The first is that I have a remarkable 2, not a remarkable 1. When I googled to find the last 2.x firmware, I didn't realize til many hours later that I had downloaded 2.9 which was for the REMARKABLE. The python script helped me realize this by comparing the product strings (I added my own print statements to debug). So then I was like OMG wrong version and found the 2.15 remarkable V2 VERSION, replaced it, and replaced the IP with my PCs IP and all was good. Sorry to bug you about that =) Not sure if you want to close it out or leave it open in case any other people lacking reading comprehension for the day need some help, haha.

For reference, 10.11.99.1 is the USB IP of the device, my PC is on a 192.168.1.x subnet which is another reason why I think I was confused. I fixed it also by just connecting to the Wi-Fi IP of my device which is also on 192.168.1.x.

RedTartan04 commented 1 year ago

Glad you sorted it :)

You're still missing something, however: each interface has its own IPs on both ends. For the USB connection, the rM has 10.11.99.1 and the PC has 10.11.99.2. They can talk to each other over USB using these IPs. For WiFi both use 192.168.1.x and they will find each other within this subnet.

If you setup the server on your PC, the rM can find it over USB if you specified 10.11.99.2 (using USB) or 192.198.1.<your PC's IP> over WiFi - if the rM is connected to the WiFi.