Skip to content

Commit 0f10aba

Browse files
committed
NEXT-ONLY: instructions
Signed-off-by: Cameron Fleming <cameron@nevexo.space>
1 parent c3e99a0 commit 0f10aba

File tree

1 file changed

+129
-6
lines changed

1 file changed

+129
-6
lines changed

README.md

Lines changed: 129 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
# jetkvm-next
22

3+
> jetkvm-next is not affiliated with, nor supported by, JetKVM or BuildJet.
4+
35
jetkvm-next is a fork of the JetKVM application with various in-progress features merged in from commnunity
46
pull requests.
57

68
This branch isn't meant to be pulled into the upstream, and will almost certainly contain some bugs, it's a
79
bleeding-edge build of the software that community members can use to try out new features, or for developers to check
810
their upcoming features don't clash with other in-progress PRs.
911

10-
> Generally, you shouldn't run jetkvm-next on your device, you should keep it on the main update stream, or optionally
11-
> switch to the beta branch in the device's settings.
12-
1312
Main repo: https://github.com/jetkvm/kvm
1413

1514
## Current Additional Features
@@ -33,6 +32,8 @@ compare the commit hash on this branch, to the current hash of the commit(s) in
3332
- andnic - [USB HID Fix](https://github.com/jetkvm/kvm/pull/113)
3433
- Nevexo - Add Reboot Button (No PR for this as it's not final)
3534

35+
If you're looking to try these features out in jetkvm-next, you should go to the PR and read the authors documentation.
36+
3637
## next-multisession
3738
As requested by a few in the [JetKVM Discord](https://jetkvm.com/discord), this tree also includes a branch that enables
3839
support for multiple sessions connecting to the JetKVM.
@@ -45,6 +46,128 @@ off the main jetkvm-next branch, and applies changes to the session handling cod
4546
next-muiltisession does not include any concept of control authority/mutex, so all users connected will have full control
4647
over the target machine, and you'll be fighting for the cursor with the other user.
4748

48-
## Additional Info
49-
There's a GitHub Action setup to build the JetKVM software whenever this repo has a new release added, it'll take
50-
a few minutes for the binary to appear on the release once this repo is tagged.
49+
## Installation
50+
> You should read this section multiple times before even plugging in the JetKVM device.
51+
> If these instructions don't immediately make sense, then it's probably best to avoid installing
52+
> jetkvm-next, it's incredibly bleeding-edge, and could explode in a million different ways.
53+
54+
**DISCLAIMER:** This is very much beta, canary, unstable, software there could be bugs that cause
55+
damage to your JetKVM hardware, such as wearing out the eMMC, breaking the LCD or overheating.
56+
57+
**On Windows?:** Install WSL now, it makes life much easier.
58+
59+
### Prepare the KVM
60+
Boot up your KVM, login, and enable SSH access with your SSH public key.
61+
62+
Test you can login to the KVM with your SSH key, remember the username is `root`.
63+
64+
### Build your own binary
65+
While I provide pre-compiled binaries with every [release](https://github.com/nevexo/jetkvm-kvm/releases), you can (and should) build
66+
the binary yourself, this allows you to analyse the code running on your device, and be familiar with the innerworkings of the JetKVM
67+
software stack, before you have to start debugging it.
68+
69+
#### You will need:
70+
- A JavaScript runtime, such as Node.JS ([Bun](https://bun.sh) works fine, but you'll need to adjust the Makefile)
71+
- Git
72+
- Go (and the various compilers for ARMv7)
73+
- make
74+
75+
#### Get the code
76+
Make yourself a directory to keep jetkvm-next in, and clone the repo:
77+
78+
`git clone https://github.com/nevexo/jetkvm-kvm.git`
79+
80+
(If you're updating, just do `git pull` in the jetkvm-kvm directory.)
81+
82+
As the next branch is the main development branch of jetkvm-next, it may not build as-is, so you should check-out
83+
one of the tags for the version you want to use. At the time of writing, that's next-7, but if I forget to update
84+
the README (I will) you should check [the releases page](https://github.com/nevexo/jetkvm-kvm/releases) for the latest tags.
85+
86+
`git checkout next-7`
87+
88+
If you want multisession, then stick -multisession on the end of the checkout command, but note I usually release multisession
89+
a little bit later than the default.
90+
91+
Your code will now be in line with the code in the binary released.
92+
93+
#### Build the code
94+
This will automatically build both the frontend and the jetkvm-next binary. If you don't have the proper ARM compilers
95+
installed for Go, you'll see some errors, simply Google the package that Go says is missing, and the name of your OS, and you'll
96+
be able to find it. (If you're on WSL, search for the distro you're using, not Windows)
97+
98+
`make build_next`
99+
100+
#### Deploy the binary
101+
**NOTE:** There's a bug in next_deploy.sh for all versions next-7 and older, so if you're building one of those, you'll need to
102+
run these commands first:
103+
104+
```
105+
mkdir -p bin/next
106+
touch bin/jetkvm_app
107+
```
108+
(the script checks if the normal jetkvm_app binary exists, even though it only needs the one in bin/next, oops!)
109+
110+
Run the deployment script:
111+
```
112+
./next_deploy.sh -r [address of kvm]
113+
```
114+
115+
After a moment, you should see `Deployment complete!` - skip to the bottom to see how to launch it.
116+
117+
### Use the provided binary
118+
Again, I highly recommend you get familiar with the innerworkings of the JetKVM stack and build your own binaries.
119+
But, if you can't be bothered with the above:
120+
121+
#### Get the binary
122+
Simply go to the releases page, and download the latest available image, you can choose the multisession version at this stage, if you wish.
123+
124+
Pop the binary somewhere that you can get to with your terminal (on WSL, that's probably /mnt/c/Users/[yourname]/Downloads)
125+
126+
#### Deploy the binary
127+
**NOTE:** The buildroot image on the JetKVM doesn't have support for scp, so this is where it gets interesting.
128+
129+
Use `cat` to send the contents of the jetkvm_app_next binary over to your KVM.
130+
131+
`cat jetkvm_app_next | ssh "root@[IP of JetKVM]" "cat > /userdata/jetkvm/bin/jetkvm_app_next"`
132+
133+
That's it :)
134+
135+
## Run jetkvm-next
136+
**NOTE:** You need to be somewhat quick at doing this as the kernel watchdog timer will reboot the jetkvm
137+
if the jetkvm_app binary hasn't been running for a while. You can turn that off by running `echo 'V' > /dev/watchdog`
138+
139+
To run jetkvm-next now, run:
140+
```
141+
cd /userdata/jetkvm/bin
142+
killall jetkvm_app
143+
killall jetkvm_native
144+
./jetkvm_app_next
145+
```
146+
147+
The app will launch, and you can try out the new features! When you reboot the device, it'll return to jetkvm_app.
148+
149+
### Use jetkvm-next by default
150+
You can rename the jetkvm_app binaries to make the KVM start next by default.
151+
152+
```
153+
cd /userdata/jetkvm/bin
154+
killall jetkvm_app
155+
killall jetkvm_native
156+
mv jetkvm_app jetkvm_app_old
157+
mv jetkvm_app_next jetkvm_app
158+
reboot
159+
```
160+
161+
Your JetKVM is now running jetkvm-next!
162+
163+
### Going back to stable
164+
If you followed the above instructions properly, switching back to stable is easy.
165+
166+
```
167+
cd /userdata/jetkvm/bin
168+
killall jetkvm_app
169+
mv jetkvm_app jetkvm_app_next
170+
mv jetkvm_app_old jetkvm_app
171+
```
172+
173+
If you lost jetkvm_app_old, then [factory reset](https://jetkvm.com/docs/advanced-usage/factory-reset).

0 commit comments

Comments
 (0)