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 revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
other:x_conf [2022/08/08 13:12]
jypeter [If you are connecting with ssh] Improved
other:x_conf [2022/08/09 12:31]
jypeter [Using an X server on Windows]
Line 3: Line 3:
 ===== What is an X server? ===== ===== What is an X server? =====
  
-An //X server// is not a server for distributing your perfect models output!+  * An //X server// ​**is not** a server for distributing your perfect models output!
  
-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 **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
  
 +
 +===== What do we mean exactly with Local and Remote computers? =====
 +
 +This page will very often mention **local computers**,​ and **remote computers**:​
 +
 +  * The **local computer** is the desktop or laptop you are interacting with (using a screen+mouse+keyboard)
 +    * The local computer can be a **Linux, Windows or Mac (i.e //OS X//) 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)
 +    * We only consider on this page the case of a **remote //Linux// machine** that **requires a local running //X server//**
 +
 +  * **Remote Linux machine** can mean several things:
 +    * It can be another operating system running inside **a [[https://​en.wikipedia.org/​wiki/​Virtual_machine|Virtual Machine]] on your local computer**
 +      * We mostly consider on this page the case of a **Linux virtual machine** using [[other:​win10wsl|Windows Subsystem for Linux (WSL)]] on a **local Windows computer**, but this can apply to other configurations
 +    * It can be a **distant Linux computer or server** in your building, or a high performance Linux computer in a computing center on the other side of the Earth. It could also be a Linux virtual machine in the //Cloud//
 ===== Using an X server on Linux ===== ===== Using an X server on Linux =====
  
-Linux computers come pre-configured with a running ​//X server// that will display the graphics generated locally and on remote Linux servers+<WRAP center round tip 60%> 
 +You don't need to do anything special! 
 +</WRAP>
  
-**You don't need to do anything special!**+Linux computers come pre-configured with a running //X server// that will display the graphics generated locally and on remote Linux servers
  
  
 ===== Using an X server on Windows ===== ===== Using an X server on Windows =====
  
-There are several ​options ​available+There are several available ​options
  
 ==== Installing VcXsrv ==== ==== Installing VcXsrv ====
Line 77: Line 94:
   * Note: if you need to quit the //X server//, you can right-click on the ''​X''​ icon, and then click on the //Display// number at the lower left (usually ''​0''​) and select ''​Shut down'' ​   * Note: if you need to quit the //X server//, you can right-click on the ''​X''​ icon, and then click on the //Display// number at the lower left (usually ''​0''​) and select ''​Shut down'' ​
  
 +===== Using an X server on a Mac =====
  
-**Starting, configuring and exiting X410**: you can start X410 by clicking on it in the Windows Start Menu, or choose to [[https://​token2shell.com/​howto/​x410/​automatically-start-x410-on-login/​|Automatically Start X410 on Login]] 
-  * Note: nothing actually happens when you start X410, as it is just waiting to display graphics! You will just get a new **X** icon in the //hidden// icons of the taskbar. 
-  * You can configure (and exit) X410 by right clicking on its **X** icon 
  
 +===== Configuration on the remote Linux server =====
  
-===== Using an X server on an Apple computer =====+==== If you are connecting with ssh or PuTTY ====
  
 +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
  
-===== Configuration on the remote machine =====+==== If you are using WSL ====
  
-==== If you are connecting with ssh ====+You need to know what you consider as the //Local machine//, and what is the //Remote server//
  
-Nothing special to do if you are using [[other:ssh#​using_an_x_server_to_display_graphics|"ssh -X" or "ssh -Y"]] +  * **Local machine**: your local **Windows computer**, where you have installed ​[[other:win10wsl|WSL+Ubuntu]]
- +
-==== If you are using WSL ====+
  
-If you have installed [[other:win10wsl|WSL+Ubuntu]] ​on your local machine, ​and you need your X server to display graphics generated in WSL, you need to define ​the DISPLAY variable: ''​export DISPLAY=localhost:​0.0''​+  * **Remote server** ​we consider 2 types of remote servers: 
 +    * 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
  
  
Line 102: Line 123:
   * 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 correctly defined on the local machine
   * Connect to the remote machine   * Connect to the remote machine
-  * Check that a (new) ''​DISPLAY''​ variable is 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 you can start an application using graphics (e.g. ''​xterm''​) on the remote machine
  
Line 153: Line 174:
 ==== On a Windows computer with PuTTY and an X server installed ==== ==== On a Windows computer with PuTTY and an X server installed ====
  
-We assume here that [[other:​putty_conf|PuTTY is already installed and configured]]+We assume here that [[other:​putty_conf|PuTTY is already installed and configured]] ​and **correctly** configured (with ''​Enable X11 forwarding''​)
  
-We just have to open a pre-configured //Session// on a remote server+We just have to open a pre-configured //PuTTY Session// on a remote server
 <​code>​[Remote] $ hostname <​code>​[Remote] $ hostname
 name_of_the_remote_server name_of_the_remote_server
Line 167: Line 188:
 ==== 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]]
  
-  * FIXME ''​export DISPLAY=localhost:​0.0''​+Open a WSL terminal (you should know how, if you have installed WSL) and type some basic commands
  
 +<​code>​[Local WSL] $ hostname
 +name_of_your_local_machine
 +[Local WSL] $ echo $DISPLAY
 +localhost:​0.0
 +[Local WSL] $ xterm
  
 +[Local WSL] $ ssh -X some_login@some_remote_server
 +[some connection information skipped here]
 +
 +[Remote] $ echo $DISPLAY
 +localhost:​22.0
 +[Remote] $ xterm</​code>​
 ===== Troubleshooting ===== ===== Troubleshooting =====
  
Line 182: Line 215:
   * 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?   * Is the ''​DISPLAY''​ variable defined correctly on the local and remote computer?
 +
 +=== 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
 +
 +<​code>​$ xterm &
 +$ xterm: Xt error: Can't open display:
 +xterm: DISPLAY is not set
 +$ echo $DISPLAY
 +
 +</​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''​
 +
 +=== 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 &
 +$ 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 ====
  
-It's hard to know what the best OpenGL settings for your X server are: it depends on your local computer, the remote computer, the network speed, the application generating the graphics, the libraries'​ versions...+It's hard to know what the best //OpenGL// settings for your //X server// are: it depends on your local computer, the remote computer, the network speed, the application generating the graphics, the libraries'​ versions...
  
-  * If ''​Native opengl''​ is activated in VcXsrv, you //may// have to also use the following environment variable on the remote computer: ''​export LIBGL_ALWAYS_INDIRECT=1''​+  * If ''​Native opengl''​ is activated in ''​VcXsrv''​, you //may// have to also use the following environment variable on the remote computer: ''​export LIBGL_ALWAYS_INDIRECT=1''​
     * or maybe not! You can try to understand the [[https://​unix.stackexchange.com/​questions/​1437/​what-does-libgl-always-indirect-1-actually-do|What does LIBGL_ALWAYS_INDIRECT=1 actually do?]] thread...     * or maybe not! You can try to understand the [[https://​unix.stackexchange.com/​questions/​1437/​what-does-libgl-always-indirect-1-actually-do|What does LIBGL_ALWAYS_INDIRECT=1 actually do?]] thread...
  
other/x_conf.txt · Last modified: 2023/06/30 08:20 by jypeter