Offline updates #67

Open
opened 2026-02-20 08:20:00 -05:00 by deekerman · 8 comments
Owner

Originally created by @Albirew on GitHub (Jan 26, 2025).

Originally assigned to: @ym on GitHub.

Is it possible to add a way o update firmware in offline mode?

This would means:

  • adding version tags in repo
  • having releases binaries available on release tab here and/or on website

UI would looks as simple as this (with maybe a link to grab latest release):
Image

Originally created by @Albirew on GitHub (Jan 26, 2025). Originally assigned to: @ym on GitHub. Is it possible to add a way o update firmware in offline mode? This would means: - adding version tags in repo - having releases binaries available on release tab here and/or on website UI would looks as simple as this (with maybe a link to grab latest release): ![Image](https://github.com/user-attachments/assets/84c0937c-ecd4-4d96-a398-73542f71fac1)
Author
Owner

@Nevexo commented on GitHub (Jan 26, 2025):

This will likely happen, yeah.

It's easy enough to do over SSH in the mean time.

@Nevexo commented on GitHub (Jan 26, 2025): This will likely happen, yeah. It's easy enough to do over SSH in the mean time.
Author
Owner

@jasker5183 commented on GitHub (Mar 7, 2025):

Curious as to how you would update if your JetKVM is on a network with no internet (which is the case for me)? Is there a file I can flash over SSH?

@jasker5183 commented on GitHub (Mar 7, 2025): Curious as to how you would update if your JetKVM is on a network with no internet (which is the case for me)? Is there a file I can flash over SSH?
Author
Owner

@Nevexo commented on GitHub (Mar 7, 2025):

Curious as to how you would update if your JetKVM is on a network with no internet (which is the case for me)? Is there a file I can flash over SSH?

This feature request is for offline upgrading. You can do it by hand using DFU mode (OS) or SSH (app) for the time being, but it'd be nice to be able to upload a tarball in the web UI.

@Nevexo commented on GitHub (Mar 7, 2025): > Curious as to how you would update if your JetKVM is on a network with no internet (which is the case for me)? Is there a file I can flash over SSH? This feature request is for offline upgrading. You can do it by hand using DFU mode (OS) or SSH (app) for the time being, but it'd be nice to be able to upload a tarball in the web UI.
Author
Owner

@craigcabrey commented on GitHub (May 5, 2025):

Where are the instructions for updating the firmware over SSH?

@craigcabrey commented on GitHub (May 5, 2025): Where are the instructions for updating the firmware over SSH?
Author
Owner

@chrisbennight commented on GitHub (May 22, 2025):

Just wanted to follow up on the offline upgrade question; i poked around issues and the other repos, but couldn;t find anything that clarified the ssh firmware update feature

@chrisbennight commented on GitHub (May 22, 2025): Just wanted to follow up on the offline upgrade question; i poked around issues and the other repos, but couldn;t find anything that clarified the ssh firmware update feature
Author
Owner

@Albirew commented on GitHub (May 23, 2025):

Where are the instructions for updating the firmware over SSH?

I believe it's the same way as to factory reset the device (meaning not over SSH, tho)

@Albirew commented on GitHub (May 23, 2025): > Where are the instructions for updating the firmware over SSH? I believe it's the same way as to [factory reset](https://jetkvm.com/docs/advanced-usage/factory-reset) the device (meaning not over SSH, tho)
Author
Owner

@chrisbennight commented on GitHub (May 23, 2025):

I may be missing something - that link describes flashing over usb from a linux or windows pc. I was interpreting "over ssh" to be ssh'ing into the jetkvm, not another linux pc. I'm hoping to avoid - basically whatever process the ota update does, i'd like to invoke manually over ssh with an out of band sourced image (probably curled or scp'd to the jetkvm).

@chrisbennight commented on GitHub (May 23, 2025): I may be missing something - that link describes flashing over usb from a linux or windows pc. I was interpreting "over ssh" to be ssh'ing into the jetkvm, not another linux pc. I'm hoping to avoid - basically whatever process the ota update does, i'd like to invoke manually over ssh with an out of band sourced image (probably curled or scp'd to the jetkvm).
Author
Owner

@hertg commented on GitHub (Jun 14, 2025):

I would also appreciate this feature since I don't intend to give my JetKVM any internet access. Looking through the source code, I found a way to install the update manually by doing the same as ota.go

Download the latest updates

Tip

Alternatively, if you build them yourselves, skip this

  • Enable developer mode and SSH into JetKVM
  • Get the serial number of your device by running
    awk '/Serial\s*:/ {print $3}' /proc/cpuinfo
    
  • On your computer with internet access, call the JetKVM API to get the latest available versions / checksums, provide the serial number from above as your device id
    curl https://api.jetkvm.com/releases?deviceId=<YOUR_SERIAL_NUMBER>&prerelease=false
    
  • Download the jetkvm_app and system.tar file from the links in the JSON response
  • Verify the file sha256 checksums with the hashes from the JSON response

Update the app

Note

Using netcat, as described here, because JetKVM is missing packages to use scp or rsync.

  • On JetKVM, start netcat with the following command
    nc -l -p 12345 > /userdata/jetkvm/jetkvm_app.update
    
  • On your computer, run the following command to copy the file to JetKVM
    nc <YOUR-JETKVM-IP> 12345 < jetkvm_app
    
  • After a few seconds, close the netcat command and verify the checksum again on the JetKVM
  • Reboot (the update is applied automatically on startup)

Update the system

  • On JetKVM, start netcat with the following command
    nc -l -p 12345 > /userdata/jetkvm/update_system.tar
    
  • On your computer, run the following command to copy the file to JetKVM
    nc <jetkvm-ip> 12345 < system.tar
    
  • After a few seconds, close the netcat command and verify the checksum again on the JetKVM
  • Then update the system by running the following command
    rk_ota --misc=update --tar_path=/userdata/jetkvm/update_system.tar --save_dir=/userdata/jetkvm/ota_save --partition=all
    
  • Reboot
@hertg commented on GitHub (Jun 14, 2025): I would also appreciate this feature since I don't intend to give my JetKVM any internet access. Looking through the source code, I found a way to install the update manually by doing the same as [`ota.go`](https://github.com/jetkvm/kvm/blob/dev/ota.go) **Download the latest updates** > [!TIP] > Alternatively, if you build them yourselves, skip this - Enable developer mode and SSH into JetKVM - Get the serial number of your device by running ```bash awk '/Serial\s*:/ {print $3}' /proc/cpuinfo ``` - On your computer with internet access, call the JetKVM API to get the latest available versions / checksums, provide the serial number from above as your device id ```bash curl https://api.jetkvm.com/releases?deviceId=<YOUR_SERIAL_NUMBER>&prerelease=false ``` - Download the `jetkvm_app` and `system.tar` file from the links in the JSON response - Verify the file sha256 checksums with the hashes from the JSON response **Update the app** > [!NOTE] > Using netcat, as described [here](https://github.com/jetkvm/kvm/issues/350#issuecomment-2797487318), because JetKVM is missing packages to use `scp` or `rsync`. - On JetKVM, start netcat with the following command ```bash nc -l -p 12345 > /userdata/jetkvm/jetkvm_app.update ``` - On your computer, run the following command to copy the file to JetKVM ```bash nc <YOUR-JETKVM-IP> 12345 < jetkvm_app ``` - After a few seconds, close the netcat command and verify the checksum again on the JetKVM - Reboot (the update is applied automatically on startup) **Update the system** - On JetKVM, start netcat with the following command ```bash nc -l -p 12345 > /userdata/jetkvm/update_system.tar ``` - On your computer, run the following command to copy the file to JetKVM ```bash nc <jetkvm-ip> 12345 < system.tar ``` - After a few seconds, close the netcat command and verify the checksum again on the JetKVM - Then update the system by running the following command ```bash rk_ota --misc=update --tar_path=/userdata/jetkvm/update_system.tar --save_dir=/userdata/jetkvm/ota_save --partition=all ``` - Reboot
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/kvm#67
No description provided.