11# jetkvm-next
22
3+ > jetkvm-next is not affiliated with, nor supported by, JetKVM or BuildJet.
4+
35jetkvm-next is a fork of the JetKVM application with various in-progress features merged in from commnunity
46pull requests.
57
68This branch isn't meant to be pulled into the upstream, and will almost certainly contain some bugs, it's a
79bleeding-edge build of the software that community members can use to try out new features, or for developers to check
810their 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-
1312Main 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
3738As requested by a few in the [ JetKVM Discord] ( https://jetkvm.com/discord ) , this tree also includes a branch that enables
3839support 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
4546next-muiltisession does not include any concept of control authority/mutex, so all users connected will have full control
4647over 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