User Tools

Site Tools


other:x_conf

Differences

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

Link to this comparison view

Next revision
Previous revision
Next revision Both sides next revision
other:x_conf [2022/08/04 09:17]
jypeter created
other:x_conf [2022/08/08 15:49]
jypeter [Nothing works!] Improved
Line 5: Line 5:
 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 the **remote Linux servers** to generate graphics, and that can //render// (i.e. display) the graphics 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 **remote Linux servers** to generate graphics, and that can //render// (i.e. display) the graphics ​generated remotely ​on your **local computer**.
  
 ===== Using an X server on Linux ===== ===== Using an X server on Linux =====
  
-Nothing to do! Linux computers come pre-configured with a running X server ​(because they need it for displaying local graphics)+Linux computers come pre-configured with a running ​//X server// that will display the graphics ​generated locally and on remote Linux servers 
 + 
 +**You don't need to do anything special!**
  
  
Line 16: Line 18:
 There are several options available There are several options available
  
 +==== Installing VcXsrv ====
  
 +<note tip>''​VcXsrv''​ is **pre-installed on the LSCE Windows computers**!
 +
 +  * You may want to check if a more recent version is available
 +  * You surely want to follow the configuration steps, in order to get the best possible settings to work with PuTTY!
 +</​note>​
 +
 +Type: <wrap em>​free</​wrap>​
 +
 +Download the installer from [[https://​sourceforge.net/​projects/​vcxsrv/​|VcXrsv]] and install ''​VcXsrv''​.
 +
 +=== 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
 +
 +  * Start the //​configuration tool//: ''​Start''​ => ''​VcXsrv''​ => ''​Xlaunch''​
 +  * Select ''​Multiple windows'',​ then ''​Next''​
 +  * Select ''​Start no client'',​ then ''​Next''​
 +  * Keep the default ''​Clipboard''​ settings, uncheck ''​Native opengl'',​ then ''​Next''​
 +    * You can check the [[other:​x_conf#​opengl_related_settings|OpenGL discussion section]] if you have time...
 +  * Click on ''​Save configuration''​ and save an ''​X_Server.xlaunch''​ configuration file on your Desktop, then ''​Terminate''​.\\ You should now have a new ''​X_Server''​ icon/​shortcut on your Desktop
 +  * Start the server by double-clicking on the new ''​X_Server''​ icon
 +    * 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 ready to display remote graphics!\\ {{ :​other:​vcxsrv_x.png?​direct |}}
 +    * The X server will stop when you close your Windows session or restart the computer. Do not forget to click on the ''​X_Server''​ icon on your desktop if you know that you will need an X server later
 +      * FIXME Document how to automatically start the X server...
 +    * Note: you can right-click on the ''​X''​ icon and select ''​Exit...''​ if you need to quit the X server
 +
 +
 +==== Installing x410 ====
 +
 +<WRAP center round tip 60%>
 +[[https://​token2shell.com/​x410/​|x410]] is a **low cost** commercial //X server// that can be directly installed from the [[https://​www.microsoft.com/​store/​productId/​9NLP712ZMN9Q|Microsoft store]].
 +
 +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
 +  * 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
 +  * There seem 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 ''​x410''​ name is easier to remember! :-D
 +</​WRAP>​
 +
 +
 +Type: <wrap em>​commercial</​wrap>​
 +
 +Buy and install ''​x410''​ from the [[https://​www.microsoft.com/​store/​productId/​9NLP712ZMN9Q|Microsoft store]]
 +
 +=== x410 configuration ===
 +
 +  * 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 |}}
 +  * Right-click on the ''​X''​ icon to open the **X410 settings**
 +    * Select ''​Auto copy to Windows after selection''​\\ {{ :​other:​x410_settings.png?​direct |}}
 +  * It's 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
 +    * 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''​)
 +    * Right-click on ''​X140''​ and select ''​Enabled''​
 +  * 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 an Apple computer ===== ===== Using an X server on an Apple computer =====
 +
 +
 +===== Configuration on the remote Linux server =====
 +
 +==== 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
 +
 +==== If you are using WSL ====
 +
 +You need to know what you consider as the //Local machine//, and what is the //Remote server//
 +
 +  * **Local machine**: your local **Windows computer**, where you have installed [[other:​win10wsl|WSL+Ubuntu]]
 +
 +  * **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
 +
 +
 +===== Testing =====
 +
 +The idea is to:
 +  * Open a terminal and check that the ''​DISPLAY''​ environment variable is correctly defined on the local machine
 +  * Connect to 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
 +
 +==== On a Linux computer ====
 +
 +Some basic commands in a terminal
 +
 +<​code>​[Local] $ hostname
 +name_of_your_local_machine
 +
 +[Local] $ echo $DISPLAY
 +:0
 +
 +[Local] $ ssh -X some_login@some_remote_server
 +[some connection information skipped here]
 +
 +[Remote] $ hostname
 +name_of_the_remote_server
 +
 +[Remote] $ echo $DISPLAY
 +localhost:​20.0
 +
 +[Remote] $ xterm</​code>​
 +
 +==== 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
 +
 +<​code>​PS C:\> $env:​computername
 +name_of_your_local_machine
 +
 +PS C:\> $env:​DISPLAY
 +PS C:\> $env:​DISPLAY="​localhost:​0"​
 +PS C:\> $env:​DISPLAY
 +localhost:0
 +
 +PS C:\> ssh -Y some_login@some_remote_server
 +Warning: No xauth data; using fake authentication data for X11 forwarding.
 +[some connection information skipped here]
 +
 +[Remote] $ hostname
 +name_of_the_remote_server
 +
 +[Remote] $ echo $DISPLAY
 +localhost:​19.0
 +
 +[Remote] $ xterm</​code>​
 +
 +
 +==== On a Windows computer with PuTTY and an X server installed ====
 +
 +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 //PuTTY Session// on a remote server
 +<​code>​[Remote] $ hostname
 +name_of_the_remote_server
 +
 +[Remote] $ echo $DISPLAY
 +localhost:​19.0
 +
 +[Remote] $ xterm</​code>​
 +
 +
 +==== 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]]
 +
 +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 =====
 +
 +==== Nothing works! ====
 +
 +That's unfortunate,​ but:
 +  * Have you turned on your computer?
 +  * Do you have network access, and an account on a remote server?
 +  * Have you run the [[other:​x_conf#​testing|Tests]]?​
 +  * Have you installed and configured the //X server// correctly? Is it really running?
 +  * 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?
 +
 +=== 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 ====
 +
 +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''​
 +    * 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...
 +
 +==== Blurry display ====
 +
 +  * If you use ''​VcXsrv''​ and the content of some displayed //X windows// appear **blurry**, see if you can [[other:​win10misc#​vcxsrv_x_server|fix the compatibility settings]], or try to use **x410**.
  
  
other/x_conf.txt · Last modified: 2023/06/30 08:20 by jypeter