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/05 14:37]
jypeter [Installing x410] Improved
other:x_conf [2022/08/09 15:32]
jypeter [Nothing works!] Improved
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 ​(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!**+<WRAP center round tip 60%> 
 +You don't need to do anything special! 
 +</​WRAP>​ 
 + 
 +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 26: Line 45:
 Type: <wrap em>​free</​wrap>​ Type: <wrap em>​free</​wrap>​
  
-Download the installer from [[https://​sourceforge.net/​projects/​vcxsrv/​|VcXrsv]] and install VcXsrv.+Download the installer from [[https://​sourceforge.net/​projects/​vcxsrv/​|VcXrsv]] and install ​''​VcXsrv''​.
  
 === 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''​
   * Select ''​Multiple windows'',​ then ''​Next''​   * Select ''​Multiple windows'',​ then ''​Next''​
   * Select ''​Start no client'',​ then ''​Next''​   * Select ''​Start no client'',​ then ''​Next''​
Line 39: Line 58:
   * 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   * 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   * Start the server by double-clicking on the new ''​X_Server''​ icon
-    * It will seem that nothing happens, but an ''​X''​ icon appears ​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 |}}+    * 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     * 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...       * FIXME Document how to automatically start the X server...
Line 50: Line 69:
 [[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]]. [[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:+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 but 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 ''​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 60: Line 79:
  
 Type: <wrap em>​commercial</​wrap>​ Type: <wrap em>​commercial</​wrap>​
 +
 +Buy and install ''​x410''​ from the [[https://​www.microsoft.com/​store/​productId/​9NLP712ZMN9Q|Microsoft store]]
  
 === x410 configuration === === 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 |}} and click somewhere else on the desktop to close the settings
 +  * 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''​)
 +    * 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'' ​
  
-**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]] +===== Using an X server ​on a Mac =====
-  * Note: nothing actually happens when you start X410, as it is just waiting to display graphics! You will just get new **X** icon in the //hidden// icons of the taskbar. +
-  * You can configure (and exit) X410 by right clicking on its **X** icon+
  
-==== Installing ​MobaXterm ​====+==== Installing ​XQuartz ​====
  
-Type: <wrap em>commercial</​wrap>​+Type: <wrap em>free</​wrap>​
  
-Available at [[https://mobaxterm.mobatek.net/|MobaXterm]], not tested. This seems to be more than just an X server, ​and may be an overkill if you just need an X server+Download the installer from [[https://www.xquartz.org|XQuartz]] and install it
  
-===== Using an X server on an Apple computer =====+=== XQuartz configuration ​===
  
 +<WRAP center round tip 60%>
 +Nothing to configure!
 +</​WRAP>​
  
-===== Configuration on the remote ​machine ​=====+===== Configuration on the remote ​Linux server ​=====
  
-==== If you are connecting with ssh ====+==== If you are connecting with ssh or PuTTY ====
  
-Nothing special to do!+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 WSL ==== +==== If you are using Windows Subsystem for Linux ====
- +
-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''​+
  
 +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 correctly 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 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 ==== ==== On a Linux computer ====
  
Line 115: Line 156:
 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 139: Line 180:
 localhost:​19.0 localhost:​19.0
  
-[Remote] $ xterm</​code>​+[Remote] $ xterm &</​code>​
  
  
 ==== 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 153: Line 194:
 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_windows_subsystem_for_linux|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>​
 +
 +==== On a Mac ====
 +
 +FIXME
 ===== Troubleshooting ===== ===== Troubleshooting =====
  
Line 167: Line 227:
  
 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?+  * 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 === 
 + 
 +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 
 + 
 +$ setenv DISPLAY CRAP_DISPLAY 
 +$ xterm 
 +xterm: Xt error: Can't open display: CRAP_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 & 
 +xterm: Xt error: Can't open display: localhost:​23.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