Jump to content
jang430

Accessing VMs on Unraid remotely using monitor, keyboard, mouse attached to RPi

45 posts in this topic Last Reply

Recommended Posts

I was wondering if I can use keyboard, monitor, mouse, all connected to raspberry pi, and have it connected to one of the VMs created inside Unraid?  My intention is to have raspberry Pis scattered in different locations, with just monitor, keyboard and mouse, and have a central Unraid server at the heart of everything.  Unraid will have VM dedicated for 3D gaming, another VM for Linux, another VM for ....

 

Preferably, the RPi can boot from PXE, and stream heavy graphics over lan.

 

Hope to hear your thoughts.

Share this post


Link to post

So you want to use the Pi basically as a dumb terminal?

 

John

Share this post


Link to post

Sure, just use a remote desktop app on the RPi to get into your VMs.

 

Share this post


Link to post

It's a mighty interesting concept..

 

I'd love to see how this works out.

Share this post


Link to post

Basically, everyone's saying you can create several powerful VMs at the Unraid server, with VGA passthrough even, for gaming, streaming, what not.  But what's the use if the Unraid server isn't at the basement, or center of the house?  You need to be beside it to use?  How many VMs can 1 person use at a time?  I prefer to keep it out of sight.  I imagine different persons using the VMs in the central Unraid server, each from different location.  Then the next question will be:  How do you hook up a monitor, keyboard, and mouse, and place it at each floor of the house, at the kitchen, study room, library, etc (I really don't have all those rooms).  So, I thought, is it possible to hook a monitor, keyboard, and mouse to a RPi, then via the all powerful LAN, stream video, surf the net, play Steam games, multiple instances at a time?  Preferably, RPi boots from the server already, so faster, no need for slow SD card os. 

Share this post


Link to post

Your plan sounds good until you mention gaming or video streaming. Don't think remote desktop protocols handle high quality video very well.

 

For this you need to be "bare metal", meaning you need to connect the keyboard, mouse, monitor directly to unraid some how.

Share this post


Link to post

mr-hexen,

 

My thought is to overcome Rpi's disadvantages, and capitalize on it's strengths:

 

Disadvantages:

1. slow computing power

2. sloow computing power

3. 10/100 Mbps (not sure, but might be good enough)

 

Advantages:

1. inexpensive, virtually indistructible

2. very capable GPU (1080p capable)

3. easy to deploy, specially if can boot from a docker app in Unraid itself

 

Other question

1. does the slow processor of the Rpi still a factor to play games?  Can't the fast GPU act as if it's streaming 1080p movie, with a little input here and there?  (mouse and keyboard usage)

2. regarding slow video streaming, can you assign one of the NIC ports of Unraid server dedicated to one of the VMs accessed by Rpi?  Then the performance may be good since it's not being shared.

Share this post


Link to post

It has nothing to do with the network or processing power, it has to do with the RDP protocol. It was not designed for use with video.

Share this post


Link to post

Rpi unnecessary. Your UnRaid VM's, with their dedicated GPU's, will be powering everything. You simply run HDMI out of the GPU's to a HDMI Switch, or receiver, and then run HDMI from there to different "terminals" in your house. You also pass USB hubs to the VM's, and run USB over ethernet to each terminal, with a USB hub at the end for mouse/keyboard/etc. Powered hubs work best when running over long lengths or using many devices on the hub.

 

This is how I do it with my XenServer box, which I am in the middle of migrating to UnRAID+KVM.

Share this post


Link to post

Hi NotYetRated,

 

I was disappointed to hear you can't do it with RPi, but now, I'm excited again.  What about the cost of the items you mentioned?  Will it still be feasible?

 

 

Share this post


Link to post

NotYetRated,

 

Just made a few quick searches.  What is the purpose of HDMI Switch?  From what I read, it's a single output, with multiple HDMI inputs.  How does this fit into the solution?  Do you simply mean extend the HDMI cable from the GPU to where you want the terminal to be?  In that case, aren't we limited by the length of HDMI cables?  As for USB over ethernet, is it a software product?  Or is it a hardware product?  Would you possibly share a link for me to better understand how that works?

 

Without the RDP limitation, the reason for RPI is for us to cheaply connect HDMI, USB keyboard, USB mouse, to the Unraid server via Lan.  Any more inputs on this?

Share this post


Link to post

NotYetRated,

 

Just made a few quick searches.  What is the purpose of HDMI Switch?  From what I read, it's a single output, with multiple HDMI inputs.  How does this fit into the solution?  Do you simply mean extend the HDMI cable from the GPU to where you want the terminal to be?  In that case, aren't we limited by the length of HDMI cables?  As for USB over ethernet, is it a software product?  Or is it a hardware product?  Would you possibly share a link for me to better understand how that works?

 

Without the RDP limitation, the reason for RPI is for us to cheaply connect HDMI, USB keyboard, USB mouse, to the Unraid server via Lan.  Any more inputs on this?

 

I'll try and answer questions here, sorry I was unclear before!

 

1. HDMI matrix was the term I should have used, not switch. It allows multiple inputs, and multiple outputs. With one, you could have multiple "terminals" set up, and swap which video/VM you want serving them/where, or perhaps multiple locations. http://www.amazon.com/Monoprice-105704-Matrix-Splitter-Control/dp/B003L1AEHE/ref=sr_1_2?ie=UTF8&qid=1440531156&sr=8-2&keywords=matrix+hdmi+4x4

2. USB over ethernet is a simple hardware solution. I used something similar to these. http://www.amazon.com/HDE-over-Extension-Cable-Adapter/dp/B004XYEXX4

 

The matrix switch is only necessary if you want to split HDMI signal to multiple locations(in which case youll need USB to each location as well)! My receiver actually has 3 outputs, and is capable of outputting the same input to all 3 outputs simultaneously, so I don't need a separate matrix.

 

I have a VM with GPU going to my media center, with usb over ethernet to a powered USB hub, which has a mouse, keyboard, and 2 wired Xbox controllers. I can game on it.

 

Another VM goes up to the bedroom, and also to the living room. Used for watching Plex/surfing etc. Not powerful enough GPU for gaming. Only 1 ethernet/USB run to this, and the rooms border each other and the wireless keyboard works well in both rooms.

 

This is on XenServer, which I am in process of switching over to UnRAID/KVM.

Share this post


Link to post

To directly respond to the OP's original desires: 

http://www.howtogeek.com/220969/turn-a-raspberry-pi-into-a-steam-machine-with-moonlight/

http://lifehacker.com/turn-a-raspberry-pi-2-into-a-cheap-diy-steambox-for-in-1693120019

 

This would enable you do perform in-home streaming using Moonlight.  This would require an NVIDIA GPU though as Lime Light uses NVIDIA GameStream technology to accomplish this.  No good if you require using an AMD-based GPU as there doesn't seem to be an equivalent that will accomplish this.

 

One thing worth noting here is that this type of a solution is a total hackjob.  You are relying on a lot of hackery to accomplish this, so the end-experience may not be as great as you want it to be.  For the absolutely BEST gameplay experiences, I would probably suggest alternative devices:

 

  • NVIDIA Shield TV
  • Razer Forge TV
  • Steam Link (not available till November)

 

To reply to your more specific questions: 

 

1. does the slow processor of the Rpi still a factor to play games?  Can't the fast GPU act as if it's streaming 1080p movie, with a little input here and there?  (mouse and keyboard usage)

 

It can be.  Game streaming is not the same as movie streaming.  Let's say there is massive latency on your network and you are watching a movie.  You probably wouldn't know because the endpoint will just keep play in sync at all times anyway.  But with a game, your input such as moving the mouse and pressing a key would make that same latency noticeable.  Not saying you will have bad latency with a Pi, just highlighting the fact that video / movie streaming is NOT the same as game streaming.  From a CPU performance standpoint, without having tested this myself, I wouldn't want to make judgments about what the Pi can or can't do.  Check the articles I linked at the top for more information from folks that have actually done this.

 

2. regarding slow video streaming, can you assign one of the NIC ports of Unraid server dedicated to one of the VMs accessed by Rpi?  Then the performance may be good since it's not being shared.

 

Ports?  No.  But you can assign an Ethernet controller (an entire network card) to a VM as opposed to running through it virtually.  Also, it's worth noting that game streaming is pretty network-adaptable.  Having more bandwidth available may increase visual quality, but it won't change performance so much because if the network is choked, a higher-compression codec will be used by the game streaming system to accommodate that.  It's like Netflix when it detects a slow network and drops the visual quality, but it doesn't have to rebuffer to do this.

Share this post


Link to post

Ako NotYetRated, thanks for the explanation. Is your setup usable by several people at the same time? Especially regarding hdmi.

 

Jonp,  thanks for the input. I will take a look at the link. Noted on the highly adaptable situation of network and explanation on latency. I was thinking if a small network will be affected,  without big file transfers.

Share this post


Link to post

 

 

Jonp,  thanks for the input. I will take a look at the link. Noted on the highly adaptable situation of network and explanation on latency. I was thinking if a small network will be affected,  without big file transfers.

 

Network size isn't as much a factor as wired vs wireless.  Even with tons of network traffic, you could use QoS (quality of service) to prioritize game streaming traffic over other packets.

Share this post


Link to post

jonp, NotYetRated,

 

To further clarify what I meant, is there a way for RPI to act as a KVM Extender?  Basically, the RPI, with a simple os, will act as a hub to connect monitor, keyboard, mouse, and send and receive signal via cat 5 directly to the VM in question. 

 

So as not to be affected by the slow processor of RPI, it should act more of like an appliance, with embedded os, rather than with full gui interface, with slow load times. 

 

If RDP is a slow protocol (due to how the information sent and received), isn't there any other protocol to enable what I'm talking about?  Possible?  Agree?  Your thoughts are welcome.

Share this post


Link to post

You basically only have the choices already listed for protocols, RDP or various Streaming setups, or the hardware matrix/usb items.

 

Share this post


Link to post

Ako NotYetRated, thanks for the explanation. Is your setup usable by several people at the same time? Especially regarding hdmi.

 

Jonp,  thanks for the input. I will take a look at the link. Noted on the highly adaptable situation of network and explanation on latency. I was thinking if a small network will be affected,  without big file transfers.

 

 

I have had, at most, media center VM streaming Batman Arkham Asylum, second VM streaming an HD movie with bitstreaming audio via Plex, and a Minecraft server with ~22 people online, with no issues on the gaming or movie playing. My second graphics card was not cut out for gaming, so I never tried doubling up on the gaming. Everything runs great. e3-1245V3.

 

In process of migrating to UnRAID and KVM now, can comment on performance once my 12TB of files have transferred. :)

Share this post


Link to post

jonp, NotYetRated,

 

To further clarify what I meant, is there a way for RPI to act as a KVM Extender?

 

Just to make sure we are clear on some terminology here (and for those reading that are confused), there are two references to KVM here.  The KVM Hypervisor (where KVM stands for Kernel-based Virtual Machines) and then KVM as in a switch (Keyboard, Video, and Mouse).  The two are completely unrelated and have nothing to do with one another.

 

Ok, that said, the rpi, at best, will be a thin client.  If you want to use a KVM extender solution to get keyboard/video/mouse from the server to a display, that could be a viable alternative to using the pi, but I am not sure what the cost/experience would actually be like (don't have one myself to tell you from personal experience).  But the Pi itself is not going to be a keyboard, video, and mouse extender in any way.  It will be a thin-client at best, which means using a remote graphics protocol (RDP, VNC, Spice, TeamViewer, Splashtop, Steam In-Home Streaming, NVIDIA GameStream, Razer Cortex [not yet available], or another variant).

 

So as not to be affected by the slow processor of RPI, it should act more of like an appliance, with embedded os, rather than with full gui interface, with slow load times.

 

To utilize the rpi to connect to a desktop instance on unRAID, you will want a lightweight GUI that can utilize a remote graphics client app to connect.  The idea would be you load this lightweight GUI on the pi and leave the pi on 24/7 (it's low power consumption anyway).  This alleviates any "load time" issues.  When you use the Pi to connect to a VM, the application performance for the VM will be much stronger than that of the Pi, but the remote graphics performance may vary based on the protocol you use and the network you're on.

 

If RDP is a slow protocol (due to how the information sent and received), isn't there any other protocol to enable what I'm talking about?  Possible?  Agree?  Your thoughts are welcome.

 

RDP is not a slow protocol, but using an RDP client on a Linux device may not be as efficient as RDP clients for Linux (x86_64) are not made by Microsoft.  Microsoft only has 4 clients for RDP that they officially support, and those are Android, iOS, Mac OS X, and Windows.

 

Now there are RDP clients for Linux, but they aren't supported directly by Microsoft, and the level of optimization they will have for the latest RDP protocol features may pale comparison to that of a native client.  I don't really test with the non-Microsoft clients because, quite frankly, it's not a supportable solution from my perspective.  As Microsoft continues to improve RDP with future iterations, the 3rd party clients will lag behind in feature matching.  I remember for a while when all the video acceleration of RDP was limited to when you were Windows on both ends (client and server).  Thankfully that is not the case anymore and all Microsoft-supported clients tend to have video acceleration over RDP just the same.

 

RPi's in general are a hackers delight because it lets you take this ultra light-weight device and load it with a very wide variety of software.  This is at the expense of no hardware-level optimization.  When you get a thin client device that has been optimized for remote graphics, the experience can be far better, but with a trade off of cost and flexibility.

 

The real challenge here is that it seems like you're looking for someone to say, "Yes, this will work 100% perfect and to your satisfaction," but there are too many varying conditions for anyone here to tell you that.  The best you can do is buy one, try it, and see for yourself.  If it doesn't work out, at least the cost was rather minimal, and perhaps you can re purpose the device for another need / purpose or resell it / return it.

 

I hope this information was helpful, and of course, feel free to keep asking questions!  That's the only way we learn!

Share this post


Link to post

By RDP being called "slow" it was meant that it is not the proper solution for playing a modern 3D game over, nor watching a HD movie. That's all.

Share this post


Link to post

Hello Joelones, thanks,  will check it out.

 

How about kvm? . The reason I ask is because out discussion here points out it would take be good for intensive gaming. I thought by being a kvm,  maybe it can.

 

I believe inside that Aten box (link I provided)  is a similar motherboard,  as simple as raspberry pi,  maybe even less capable.

 

Mr-hexen, what do you mean by kvm over the solutions?

Share this post


Link to post

Mr-hexen, what do you mean by kvm over the solutions?

 

Sorry that was a typo as i posted from my cell.

 

KVM over IP Solutions is what I meant to say, and i've edited my post too.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now