User Tools

Site Tools


other:x_conf

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
other:x_conf [2022/08/09 14:06] – [What do we mean exactly with Local and Remote computers?] jypeterother:x_conf [2024/07/10 10:54] (current) – [Using X forwarding in a Windows Powershell] jypeter
Line 1: Line 1:
 ====== Installing and configuring an X server ====== ====== Installing and configuring an X server ======
 +
 +
 +<WRAP center round tip 60%>
 +This detailed and easy-to-understand page will help you **set up things correctly on your own**, and help you **understand what you are doing**
 +
 +Or you can ask somebody to quickly configure everything for you, and keep on believing that things work by magic...
 +</WRAP>
 +
  
 ===== What is an X server? ===== ===== What is an X server? =====
Line 7: Line 15:
   * An //X server// **is** basically a program running on your **local** computer that understands the [[https://en.wikipedia.org/wiki/X_Window_System_core_protocol|X Windows System protocol]] used by **Linux computers** (**local** computer, or **remote** Linux servers) to generate graphics, and that can //render// (i.e. display) the graphics generated **remotely** on your **local** computer   * An //X server// **is** basically a program running on your **local** computer that understands the [[https://en.wikipedia.org/wiki/X_Window_System_core_protocol|X Windows System protocol]] used by **Linux computers** (**local** computer, or **remote** Linux servers) to generate graphics, and that can //render// (i.e. display) the graphics generated **remotely** on your **local** computer
  
 +  * This page will mention a //''DISPLAY'' variable// several times: the X server needs this in order to know **where to display the graphics**!
 ===== What do we mean exactly with Local and Remote computers? ===== ===== What do we mean exactly with Local and Remote computers? =====
  
Line 16: Line 24:
  
   * The **remote computer or server** is another computer that you also want to interact with (using the screen+mouse+keyboard of your local computer)   * The **remote computer or server** is another computer that you also want to interact with (using the screen+mouse+keyboard of your local computer)
 +    * [[other:ssh#connecting_to_servers_commonly_used_by_lsce_users|Some servers used by LSCE users]]
     * We only consider on this page the case of a **remote //Linux// machine** that **requires a local running //X server//**     * We only consider on this page the case of a **remote //Linux// machine** that **requires a local running //X server//**
  
Line 33: Line 42:
 ===== Using an X server on Windows ===== ===== Using an X server on Windows =====
  
-There are several options available+There are several available X servers, and applications that will allow //X forwarding// from a remote server to your local X server
  
 +==== Using X forwarding in a Windows Powershell ====
 +
 +**You have to type ''$env:DISPLAY = "localhost:0"'' before connecting** using ''ssh -Y remote server'' (''-X'' will not work), in order to have the ''DISPLAY'' variable correctly defined on the remote server
 +
 +<code>PS C:\> ssh -X obelix
 +[...]
 + >echo $DISPLAY
 +DISPLAY: Undefined variable.
 + >logout
 +Connection to obelix closed.
 +
 +PS C:\> $env:DISPLAY
 +
 +PS C:\> $env:DISPLAY = "localhost:0"
 +PS C:\> $env:DISPLAY
 +localhost:0
 +
 +PS C:\> ssh -X obelix
 +[...]
 +Warning: untrusted X11 forwarding setup failed: xauth key data not generated
 +[...]
 + >echo $DISPLAY
 +DISPLAY: Undefined variable.
 +
 +PS C:\> ssh -Y obelix
 +[...]
 +Warning: No xauth data; using fake authentication data for X11 forwarding.
 +[...]
 + >echo $DISPLAY
 +localhost:42.0
 + >xterm&
 +[1] 30038
 +</code>
 ==== Installing VcXsrv ==== ==== Installing VcXsrv ====
  
Line 49: Line 91:
 === VcXsrv Configuration === === VcXsrv Configuration ===
  
-You need to configure ''VcXsrv'' to work in //multiple windows// mode. The following steps will show you how to create a shortcut on your desktop to start VcXsrv in this appropriate mode+You need to configure ''VcXsrv'' to work in //multiple windows// mode. The following steps will show you how to create a shortcut on your desktop to start ''VcXsrv'' in this appropriate mode
  
   * Start the //configuration tool//: ''Start'' => ''VcXsrv'' => ''Xlaunch''   * Start the //configuration tool//: ''Start'' => ''VcXsrv'' => ''Xlaunch''
Line 71: Line 113:
 This is an //X server//, and you will get the same functionalities as what is already provided for free by [[other:x_conf#installing_vcxsrv|VcXsrv]], **but**: This is an //X server//, and you will get the same functionalities as what is already provided for free by [[other:x_conf#installing_vcxsrv|VcXsrv]], **but**:
   * Once installed, ''x410'' will be automatically updated by the Microsoft Store application   * Once installed, ''x410'' will be automatically updated by the Microsoft Store application
-  * If you move to another computer, you can install ''x410'' again by just [[other:win10config#connecting_to_the_microsoft_store|Connecting the MS Store to your account]] on the new computer. No need to buy it again +  * If you move to another computer, you can install ''x410'' again by just [[other:win10config#connecting_to_the_microsoft_store|Connecting the Microsoft Store to your MS account]] on the new computer. No need to buy ''x410'' again ! 
-  * There seem to be more (useful) updates than for ''VcXsrv''+  * There seems to be more (useful) updates than for ''VcXsrv''
   * The interface is more modern, with more options, and there is a lot of useful information on the web site   * The interface is more modern, with more options, and there is a lot of useful information on the web site
   * The ''x410'' name is easier to remember! :-D   * The ''x410'' name is easier to remember! :-D
Line 85: Line 127:
  
   * Start ''x410'': ''Start'' => ''X410''   * Start ''x410'': ''Start'' => ''X410''
-    * It will seem that nothing happens, but an ''X'' icon will appear in the right side of the taskbar (you may have to look for it in the //Display hidden icons// pull-up menu). Your computer is now __almost__ ready to display remote graphics!\\ {{ :other:x410_x.png?direct |}}+    * It will seem that nothing happens, but an ''X'' icon will appear in the right side of the taskbar (you may have to look for it in the //Display hidden icons// pull-up menu). Your computer is now //almost// ready to display remote graphics!\\ {{ :other:x410_x.png?direct |}}
   * Right-click on the ''X'' icon to open the **X410 settings**   * Right-click on the ''X'' icon to open the **X410 settings**
-    * Select ''Auto copy to Windows after selection''\\ {{ :other:x410_settings.png?direct |}} +    * Select ''Auto copy to Windows after selection''\\ {{ :other:x410_settings.png?direct |}} and click somewhere else on the desktop to close the settings 
-  * It'possible to **automatically start ''x410''**! Otherwise, it will stop when you close your Windows session or restart the computer, and you will have to restart it by hand (''Start'' => ''X410'') if you know that you will need an X server later+  * It is possible to **automatically start ''x410''** when you open your session! Otherwise, it will stop when you close your Windows session or restart the computer, and you will have to restart it by hand (''Start'' => ''X410'') if you know that you will need an X server later
     * Open the **Windows Task Manager** (Right-click on ''Start'' and select ''Task Manager'')     * Open the **Windows Task Manager** (Right-click on ''Start'' and select ''Task Manager'')
     * Go to the ''Startup'' panel (if there are no panels, select ''More details'')     * Go to the ''Startup'' panel (if there are no panels, select ''More details'')
Line 96: Line 138:
 ===== Using an X server on a Mac ===== ===== Using an X server on a Mac =====
  
 +==== Installing XQuartz ====
  
-===== Configuration on the remote Linux server =====+Type: <wrap em>free</wrap>
  
-==== If you are connecting with ssh or PuTTY ====+Download the installer from [[https://www.xquartz.org|XQuartz]] and install it
  
-Nothing special to do, if you are using [[other:ssh#using_an_x_server_to_display_graphics|"ssh -X" or "ssh -Y"]] or ''PuTTY'' to connect to a remote Linux server+=== XQuartz configuration ===
  
-==== If you are using WSL ====+<WRAP center round tip 60%> 
 +Nothing to configure! 
 +</WRAP>
  
-You need to know what you consider as the //Local machine//, and what is the //Remote server//+The ''XQuartz'' //X server// will be automatically startedif a graphical application needs it!
  
-  * **Local machine**: your local **Windows computer**, where you have installed [[other:win10wsl|WSL+Ubuntu]]+Check the [[https://support.apple.com/guide/terminal/script-management-with-launchd-apdc6c1077b-5d5d-4d35-9c19-60f2397b2369/mac|launchd documentation]] if you need more details 
 +<code>$ launchctl list | grep quartz 
 +         - 0 org.xquartz.startx</code> 
 +===== Configuration on the remote Linux server =====
  
-  * **Remote server** : we consider 2 types of remote servers: +==== If you are connecting with ssh or PuTTY ====
-    * an **actual remote server** +
-    * The **WSL computer** running on a **virtual machine inside your local Windows computer**. This can be considered as a different and //remote// computer, even it is running on the local computer\\ You need your local //X server// to display graphics generated in WSL +
-    * **Define the ''DISPLAY'' variable** in the terminals used in WSL: +
-      * //bash// shell: ''export DISPLAY=localhost:0.0'' +
-      * //tcsh// shell: ''setenv DISPLAY localhost:0.0'' +
-      * You probably want to define the ''DISPLAY'' variable automatically in one of the shell configuration files+
  
 +Nothing special to do, if you are using [[other:ssh#using_an_x_server_to_display_graphics|"ssh -X" or "ssh -Y"]] or a [[other:putty_conf#changing_some_useful_settings|correctly configured PuTTY]] to connect to a remote Linux server
  
 +==== If you are using Windows Subsystem for Linux ====
 +
 +In that special case, you will need the //X server// to display graphics [[other:x_conf#what_do_we_mean_exactly_with_local_and_remote_computers|from the local virtual machine and from remote computers]]
 +
 +You have to make sure that the ''DISPLAY'' variable is correctly [[other:win10wsl#configuration_in_your_local_linux_account|defined in the terminals used in WSL]]
 ===== Testing ===== ===== Testing =====
 +
 +==== Testing plan ====
  
 The idea is to: The idea is to:
-  * Open a terminal and check that the ''DISPLAY'' environment variable is correctly defined on the local machine+  * Open a terminal and check that the ''DISPLAY'' environment variable is defined on the local machine 
 +    * If we use [[other:win10wsl|WSL]], we also check that we can start an application using graphics in ''WSL''
   * Connect to the remote machine   * Connect to the remote machine
   * Check that a (new) ''DISPLAY'' variable is automatically defined on the remote machine   * Check that a (new) ''DISPLAY'' variable is automatically defined on the remote machine
-  * Check that you can start an application using graphics (e.g. ''xterm''on the remote machine+  * Check that we can start an application using graphics on the remote machine 
 + 
 +Test application: 
 +  * We need a simple graphical application that is likely to be already installed on the remote machine 
 +    * The **test is declared successful** if we get a new window and we can interact with it.\\ Note: some applications may start with their window iconified, and you may have to check the part of your screen where the iconified windows go... 
 +    * Do not forget to **cleanly quit the test application** when you have checked that it seems to work 
 +    * It's enough to test one application 
 +  * ''xterm &'': the **recommended test application**. It will open a new terminal on the remote machine 
 +  * ''xeyes &'', ''xclock &'', ''gvim &'', ''gedit &'', ''eog &'', ''evince &'', ... : other //standard// applications, that may be installed (or not)
  
-==== On a Linux computer ====+The test may fail, due to the [[other:x_conf#nothing_works|usually expected errors]] 
 +==== On a Linux computer or a Mac ====
  
-Some basic commands in a terminal+Open //terminal// ([[other:ssh#a_recommended_terminal_for_mac|terminal on a Mac]]) and use some basic commands to check things
  
 <code>[Local] $ hostname <code>[Local] $ hostname
Line 145: Line 205:
 localhost:20.0 localhost:20.0
  
-[Remote] $ xterm</code>+[Remote] $ xterm &</code>
  
 ==== On a Windows computer with only an X server installed ==== ==== On a Windows computer with only an X server installed ====
  
-We just open a ''Powershell'' window (''Start'' => ''Windows Powershell'' => ''Windows Powershell'') and type some basic commands+We just open a ''Powershell'' window (''Start'' => ''Windows Powershell'' => ''Windows Powershell'') and type some basic commands, including the creation of a ''DISPLAY'' variable
  
 <code>PS C:\> $env:computername <code>PS C:\> $env:computername
Line 169: Line 229:
 localhost:19.0 localhost:19.0
  
-[Remote] $ xterm</code>+[Remote] $ xterm &</code>
  
  
Line 183: Line 243:
 localhost:19.0 localhost:19.0
  
-[Remote] $ xterm</code>+[Remote] $ xterm &</code>
  
  
 ==== On a Windows computer with WSL+Linux and an X server installed ==== ==== On a Windows computer with WSL+Linux and an X server installed ====
  
-We assume that [[other:win10wsl|WSL+Ubuntu]] is installed and that the ''DISPLAY'' variable is [[other:x_conf#if_you_are_using_wsl|configured correctly]]+We assume that [[other:win10wsl|WSL+Ubuntu]] is installed and that the ''DISPLAY'' variable is [[other:x_conf#if_you_are_using_windows_subsystem_for_linux|configured correctly]]
  
-Open a WSL terminal (you should know how, if you have installed WSL) and type some basic commands+Open a //WSL// terminal (you should know how, if you have installed //WSL//) and type some basic commands
  
 <code>[Local WSL] $ hostname <code>[Local WSL] $ hostname
 name_of_your_local_machine name_of_your_local_machine
 +
 [Local WSL] $ echo $DISPLAY [Local WSL] $ echo $DISPLAY
 localhost:0.0 localhost:0.0
-[Local WSL] $ xterm+ 
 +[Local WSL] $ xterm &
  
 [Local WSL] $ ssh -X some_login@some_remote_server [Local WSL] $ ssh -X some_login@some_remote_server
Line 203: Line 265:
 [Remote] $ echo $DISPLAY [Remote] $ echo $DISPLAY
 localhost:22.0 localhost:22.0
-[Remote] $ xterm</code>+ 
 +[Remote] $ xterm &</code> 
 + 
 + 
 + 
 + 
 ===== Troubleshooting ===== ===== Troubleshooting =====
 +
  
 ==== Nothing works! ==== ==== Nothing works! ====
  
 That's unfortunate, but: That's unfortunate, but:
-  * Have you turned on your computer? +  * Have you turned on your computer? :-P 
-  * Do you have network access, and an account on a remote server?+  * Do you have network access, and an account on a remote server? :-?
   * Have you run the [[other:x_conf#testing|Tests]]?   * Have you run the [[other:x_conf#testing|Tests]]?
-  * Have you installed and configured the //X server// correctly? Is it really running?+  * Have you [[other:x_conf|installed and configured the X server]] correctly? Is it really running?
   * Have you configured [[other:putty_conf|PuTTY]] and/or other required applications correctly ?   * Have you configured [[other:putty_conf|PuTTY]] and/or other required applications correctly ?
-  * Is the ''DISPLAY'' variable defined correctly on the local and remote computer?+  * Are you [[other:x_conf#using_x_forwarding_in_a_windows_powershell|using Windows Powershell correctly]]? 
 +  * Is the [[other:x_conf#what_is_an_x_server|DISPLAY variable]] defined correctly on the local and remote computer?
  
-=== When DISPLAY is not defined correctly ===+ 
 +==== Error when there is no X server running ==== 
 + 
 +If the ''DISPLAY'' variable is defined, but there is **no X server**, you will get a ''Can't open display: localhost://[SOME VALUE]//'' error 
 + 
 +<code>$ xterm & 
 +xterm: Xt error: Can't open display: localhost:23.0</code> 
 + 
 +Time to [[other:x_conf|read this page again]]... 
 + 
 +==== Error when there is no space left in your home directory ==== 
 + 
 +If there is no space left in your home directory (usually the home directory of the remote server), or if you have exceeded your [[other:newppl:starting#which_disks_should_you_use|home disk quota]], you will get an error similar to [[#error_when_there_is_no_x_server_running|Error when there is no X server running]] 
 + 
 +<code>$ xterm & 
 +xterm: Xt error: Can't open display: localhost:23.0</code> 
 + 
 +**Solution**: clean the content of your //home//! 
 +==== Error when DISPLAY is not defined correctly ====
  
 If the ''DISPLAY'' **variable is not defined (correctly)**, you will get a ''Can't open display: //[NO VALUE DISPLAYED HERE]//'' error If the ''DISPLAY'' **variable is not defined (correctly)**, you will get a ''Can't open display: //[NO VALUE DISPLAYED HERE]//'' error
Line 225: Line 313:
 $ echo $DISPLAY $ echo $DISPLAY
  
 +$ setenv DISPLAY CRAP_DISPLAY
 +$ xterm
 +xterm: Xt error: Can't open display: CRAP_DISPLAY
 </code> </code>
  
-Make sure that you are using ''ssh -X'' or ''ssh -Y'', or that [[other:putty_conf#changing_some_useful_settings|PuTTY is configured]] with ''Enable X11 forwarding''+  * Make sure that you are using ''ssh -X'' or ''ssh -Y'', or that [[other:putty_conf#changing_some_useful_settings|PuTTY is configured]] with ''Enable X11 forwarding''
  
-=== When there is no X server running ===+  * If you use ''ssh'' in a **Windows Powershell**, read [[other:x_conf#using_x_forwarding_in_a_windows_powershell|Using X forwarding in a Windows Powershell]] 
 + 
 +==== Can't start a graphical application by clicking on its desktop shortcut ==== 
 + 
 +Check the shortcut and run the command directly in a terminal to check the error message 
 + 
 +There is a good chance that [[other:x_conf#error_when_there_is_no_x_server_running|you have forgotten to start the X server!]]
  
-If the ''DISPLAY'' variable is defined, but there is **no X server**, you will get a ''Can't open display: localhost://[SOME VALUE]//'' error\\ <code>$ xterm & 
-$ connect localhost port 6000: Connection refused 
-xterm: Xt error: Can't open display: localhost:12.0</code> 
  
-Time to [[other:x_conf|read this page again]]... 
 ==== OpenGL related settings ==== ==== OpenGL related settings ====
  
other/x_conf.1660046780.txt.gz · Last modified: 2022/08/09 14:06 by jypeter

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki