sandia-minimega / minimega

minimega
GNU General Public License v3.0
148 stars 67 forks source link

RKVM #1455

Open mkunz7 opened 3 years ago

mkunz7 commented 3 years ago

https://github.com/sandia-minimega/minimega/issues/1398

This pull request is largely from the hard work of @zach-r-long. I'm leaving Sandia, so I wanted to push up the last version I know we had working.

RKVM extends Minimega's VNC abilities to be able to remotely connect to standalone VNC servers. This enables keybuffer and framebuffer recording, as well as VNC automation to external assets within Minimega. RKVM has had limited testing against ESX, x11vnc, and PIKVM for physical hardware. Multiple connections are used and you will need to use the --shared and --forever switches with x11vnc. Currently only VNC servers allowing RAW encoding are supported, VNC servers configured to force other encodings like TIGHT will not work.

I have a container that has been used in testing this new feature.

https://github.com/mkunz7/vms/blob/master/vnc.tgz

tap create 1000 ip 1.0.0.1/24
dnsmasq start 1.0.0.1 1.0.0.2 1.0.0.254
dnsmasq configure 0 ip 00:11:22:33:44:55 1.0.0.3
vm config filesystem /root/vnc
vm config net 1000,00:11:22:33:44:55
vm launch container a
vm start a
log level debug
log file /root/test.log
shell sleep 5
vm config vnc_host 1.0.0.3
vm config vnc_port 5900
vm launch rkvm vnc
vm start vnc

Zach has been working on a branch that supports tight encoding, but novnc needs to first be updated to at least v1. VNC recording was broken when we tried to update it before. https://github.com/sandia-minimega/minimega/issues/1258

Zach feel free to add your own pull request with some cleaned up code.