1
1
# jetkvm-next
2
2
3
+ > jetkvm-next is not affiliated with, nor supported by, JetKVM or BuildJet.
4
+
3
5
jetkvm-next is a fork of the JetKVM application with various in-progress features merged in from commnunity
4
6
pull requests.
5
7
6
8
This branch isn't meant to be pulled into the upstream, and will almost certainly contain some bugs, it's a
7
9
bleeding-edge build of the software that community members can use to try out new features, or for developers to check
8
10
their upcoming features don't clash with other in-progress PRs.
9
11
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
-
13
12
Main repo: https://github.com/jetkvm/kvm
14
13
15
14
## Current Additional Features
@@ -33,6 +32,8 @@ compare the commit hash on this branch, to the current hash of the commit(s) in
33
32
- andnic - [ USB HID Fix] ( https://github.com/jetkvm/kvm/pull/113 )
34
33
- Nevexo - Add Reboot Button (No PR for this as it's not final)
35
34
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
+
36
37
## next-multisession
37
38
As requested by a few in the [ JetKVM Discord] ( https://jetkvm.com/discord ) , this tree also includes a branch that enables
38
39
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
45
46
next-muiltisession does not include any concept of control authority/mutex, so all users connected will have full control
46
47
over the target machine, and you'll be fighting for the cursor with the other user.
47
48
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