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
other:x_conf [2022/08/09 13:26]
jypeter [If you are connecting with ssh or PuTTY]
other:x_conf [2023/06/30 08:20] (current)
jypeter Added the no space related error
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 108: Line 117:
 </​WRAP>​ </​WRAP>​
  
 +The ''​XQuartz''​ //X server// will be automatically started, if a graphical application needs it!
 +
 +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 ===== ===== Configuration on the remote Linux server =====
  
Line 114: Line 128:
 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 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 ====
  
-You need to know what you consider as the //Local machine//and what is the //Remote server//+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]]
  
-  * **Local machine**: your local **Windows computer**, where you have installed ​[[other:​win10wsl|WSL+Ubuntu]]+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 =====
  
-  * **Remote server** : we consider 2 types of remote servers: +==== Testing ​plan ====
-    * 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: 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 156: Line 172:
 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 180: Line 196:
 localhost:​19.0 localhost:​19.0
  
-[Remote] $ xterm</​code>​+[Remote] $ xterm &</​code>​
  
  
Line 194: Line 210:
 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 214: Line 232:
 [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?+  * 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 236: Line 279:
 $ 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 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 & +==== Can'​t ​start a graphical application by clicking on its desktop shortcut ==== 
-$ connect localhost port 6000Connection refused + 
-xterm: Xt error: Can't open display: localhost:​12.0</​code>​+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!]] 
  
-Time to [[other:​x_conf|read this page again]]... 
 ==== OpenGL related settings ==== ==== OpenGL related settings ====
  
other/x_conf.1660051579.txt.gz · Last modified: 2022/08/09 13:26 by jypeter