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/04 15:03]
jypeter [Using an X server on Linux]
other:x_conf [2022/08/08 14:57]
jypeter [On a Windows computer with WSL+Linux and an X server installed] 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 =====
  
-Linux computers come pre-configured with a running X server ​(because they need it for displaying local graphics) ​that will display the graphics generated locally and on remote Linux servers**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 
 + 
 +**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?
 +==== 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