Changes between Initial Version and Version 1 of Workshops/Sig Comm2022/Remote Graphics


Ignore:
Timestamp:
Aug 19, 2022, 10:21:45 PM (21 months ago)
Author:
jennyshane
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Workshops/Sig Comm2022/Remote Graphics

    v1 v1  
     1[[Include(WikiToC)]]
     2
     3=== Methods for running graphical applications remotely ===
     4
     5Because SSH is a text-based interface, we need additional tools to run graphical applications such as gnuradio companion or mininet on the machines in the testbed. There are several options available: X forwarding, chrome remote desktop, and vnc over an ssh tunnel (we will not discuss this option here, but anyone who is familiar with this method should feel free to use it).
     6
     7==== X Forwarding ====
     8X11 is the default windowing system on linux systems. Graphical applications on linux are X11 clients which communicate with the X server software, which is what renders the clients onto the screen and handles requests from the clients for user input. The communication between client applications and an X server can be forwarded over an ssh session, which is how [https://en.wikipedia.org/wiki/X_Window_System#Remote_desktop X forwarding] displays remote applications-- the application runs on the remote machine, but uses the ssh session to communicate with an X server on your local machine.
     9
     10[[CollapsibleStart(Linux)]]
     11If you are using linux, you shouldn't need to install anything to use X forwarding, because you're already running an X server on your local machine. You simply have to run your ssh session using the -Y flag on the command line:
     12{{{#!shell-session
     13ssh -Y -t cosmos-user@sb.cosmos-lab.org
     14}}}
     15Keep in mind that you will have to use the flag for each ssh command you use, so if you ssh to a console and then from the console to the node, you will have to use the flag in both ssh commands in order to forward the applications all the way back to your local machine.
     16
     17[[CollapsibleEnd]]
     18[[BR]]
     19
     20[[CollapsibleStart(Windows)]]
     21In addition to ssh client, remote X11 access on Windows requires installation of X11 Server. There are a number of open source or free servers available including:
     22  1. [https://sourceforge.net/projects/vcxsrv/ VcXsrv]
     23  1. [https://sourceforge.net/projects/xming/ Xming]
     24  1. [http://mobaxterm.mobatek.net/ mobaXterm] (includes ssh client)
     25
     26As an illustration, we will use configuration based on Putty and !VcXsrv and connect with remote graphics capability to the node1-1.sb1:
     27  * Install Putty and make sure you can log into ORBIT gateway or console
     28  * Install !VcXsrv and make sure it is running  say on display '''1''' (without any applications)
     29  * Start Putty and load the appropriate session
     30  * Configure X11 forwarding under "Connection->SSH->X11":
     31    * Check mark on "Enable X11 forwarding"
     32    * Set "X display location" to: '''127.0.0.1:1''' (note matching display number)
     33  * Save the session
     34  * Open the session to SB1 i.e. connect to the console.sb1.orbit-lab.org
     35  * On the console execute
     36{{{
     37  ssX -Y -t root@node1-1
     38}}}
     39and connect to the node.
     40[[CollapsibleEnd]]
     41[[BR]]
     42[[CollapsibleStart(Mac)]]
     43Mac users will need to install and run the [https://en.wikipedia.org/wiki/XQuartz XQuartz] X server application. Then you will run your ssh commands with the -Y flag to enable X forwarding:
     44{{{#!shell-session
     45ssh -Y -t cosmos-user@sb.cosmos-lab.org
     46}}}
     47[[CollapsibleEnd]]
     48[[BR]]
     49==== Chrome Remote Desktop ====
     50[https://en.wikipedia.org/wiki/Chrome_Remote_Desktop Chrome Remote Desktop] is a remote desktop software from Google which allows you to interact with a desktop session on a remote machine from your browser. Note that using this method will link the remote desktop sessions to your google account. You'll never need to provide information about your account to the remote machine, but you'll only be able to connect to it with remote desktop by using the client in your browser while you are signed in to your google account.
     51
     52 1. Go to this link [https://remotedesktop.google.com/headless/] and click begin. You can skip downloading and installing remote desktop to your node-- it will already be installed. Follow  the steps until you reach the command to start the remote desktop session.
     53 2. In your ssh session, type {{{su sigcomm}}} to switch to operating as the sigcomm user. Chrome remote desktop will not work if run by the root user.
     54 3. Copy the command to start the remote desktop session and paste it into your ssh session. You will be prompted to enter a pin.
     55 4. Go to [https://remotedesktop.google.com/access/]. You should see the machine you just set up. When you open a session to it, you will have to enter the pin you created in the previous step.