User Tools

Site Tools


wiki:advanced:tce:install

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
wiki:advanced:tce:install [2013/03/15 16:39]
sunweaver [Installing X2Go server]
wiki:advanced:tce:install [2017/01/09 19:07] (current)
stefanbaur
Line 1: Line 1:
-====== Installation of the X2Go TCE based on Debian ​======+====== Installation of the classic, NFS-filesystem-based ​X2Go TCE ======
  
 In the following article we will explain how to set up an X2Go Thin Client environment. In the following we will use three technical terms that we want to define/​explain before we start: In the following article we will explain how to set up an X2Go Thin Client environment. In the following we will use three technical terms that we want to define/​explain before we start:
Line 8: Line 8:
  
 <​note>​The X2Go TCE has been developed on/for Debian GNU/Linux. -- You can surely use any GNU/Linux distribution as X2Go Server (providing that the ''​x2goserver''​ package is available for the server'​s distro). The boot environment for the X2Go PXE Server has been developed on Debian GNU/Linux and also been tested on Ubuntu GNU/Linux. The X2Go Thin Client chroot can be configured to use Ubuntu GNU/Linux, but it is __highly recommended__ to leave the defaults and use Debian GNU/Linux for creating the X2Go TCE chroot.</​note>​ <​note>​The X2Go TCE has been developed on/for Debian GNU/Linux. -- You can surely use any GNU/Linux distribution as X2Go Server (providing that the ''​x2goserver''​ package is available for the server'​s distro). The boot environment for the X2Go PXE Server has been developed on Debian GNU/Linux and also been tested on Ubuntu GNU/Linux. The X2Go Thin Client chroot can be configured to use Ubuntu GNU/Linux, but it is __highly recommended__ to leave the defaults and use Debian GNU/Linux for creating the X2Go TCE chroot.</​note>​
 +
 +<​note>​The Debian instructions should also hold for Raspbian, a Debian fork rebuilt on armhf.</​note>​
  
 ===== Network setup ===== ===== Network setup =====
Line 24: Line 26:
   * X2Go Thin Client hardware (can be everything from e.g. Pentium III, AMD Athlon upwards), main requirement is that the thin client hardware box contains a network card that is PXE/​Etherboot capable   * X2Go Thin Client hardware (can be everything from e.g. Pentium III, AMD Athlon upwards), main requirement is that the thin client hardware box contains a network card that is PXE/​Etherboot capable
  
-===== X2Go TCE / Debian squeeze =====+===== X2Go TCE / Debian squeeze/​wheezy/​jessie ​=====
  
-<​note>​The current X2Go TCE is based and has been tested ​on Debian GNU/Linux (squeeze). Since June 2011 we have working packages available in our Debian repository on ''​packages.X2Go.org''​.</​note>​+<​note>​The current X2Go TCE can be based on and has been tested ​against ​Debian GNU/Linux (squeeze, wheezy and jessie). Since June 2011 we have working packages available in our Debian repository on ''​packages.x2go.org''​. The latest test against Debian jessie have been performed around Nov 2013.</​note>​
  
-In the following description we will describe a simple X2Go TCE installation,​ using two separate hosts as X2Go Server and X2Go PXE Server. The explanation presumes that you either install on Debian GNU/​Linux ​(squeeze) ​or Ubuntu GNU/​Linux ​(lucid, maverick). If you (for testing purposes) use the same machine as X2Go Server and X2Go PXE Server, please perform described steps for either of the machines on the same system. ​+In the following description we will describe a simple X2Go TCE installation,​ using two separate hosts as X2Go Server and X2Go PXE Server. The explanation presumes that you either install on Debian GNU/Linux or Ubuntu GNU/Linux. If you (for testing purposes) use the same machine as X2Go Server and X2Go PXE Server, please perform described steps for either of the machines on the same system. ​
  
-The resulting X2Go Thin Client chroot will be a Debian GNU/Linux (squeeze) system by default.+The resulting X2Go Thin Client chroot will be a Debian GNU/Linux (wheezy) system by default.
  
 :!: **Before you continue!** :!: **Before you continue!**
Line 56: Line 58:
 </​code>​ </​code>​
  
-=== Basic installation of the X2go PXE server ===+=== Basic installation of the X2Go PXE server ===
  
 Now a bit more in detail... Now a bit more in detail...
  
-   - Install a minimal Debian GNU/​Linux ​(squeeze) ​or Ubuntu GNU/Linux Server ​(lucid, precise, ...) system from CD/DVD. +   - Install a minimal Debian GNU/Linux or Ubuntu GNU/Linux Server ​LTS system from CD/DVD. 
-   - Then add the X2go repository to your freshly installed ​X2go PXE server: [[:​wiki:​repositories:​debian|Debian]] / [[:​wiki:​repositories:​ubuntu|Ubuntu]]. On Debian GNU/Linux make sure that you install the ''​x2go-keyring''​ package first. +   - Then add the X2Go repository to your freshly installed ​X2Go PXE server: [[:​wiki:​repositories:​debian|Debian]] / [[:​wiki:​repositories:​ubuntu|Ubuntu]]. On Debian GNU/Linux make sure that you install the ''​x2go-keyring''​ package first. 
-   - The only X2go related package needed on the X2go PXE server is the ''​x2gothinclientmanagement''​ package.<​code>​+   - The only X2Go related package needed on the X2Go PXE server is the ''​x2gothinclientmanagement''​ package.<​code>​
 $ sudo aptitude install x2gothinclientmanagement $ sudo aptitude install x2gothinclientmanagement
-</​code>​The installation will drag in some other required packages onto your system, please confirm with Yes, to start the installation.+</​code>​The installation will pull in some other required packages onto your system, please confirm with Yes, to start the installation.
  
-=== Building the X2go Thin Client system (the so-called chroot environment) ===+=== Building the X2Go Thin Client system (the so-called chroot environment) ===
  
   - After installation of the ''​x2gothinclientmanagement''​ package (and required dependencies),​ please edit/​introspect the following file with your favourite editor:<​code>​   - After installation of the ''​x2gothinclientmanagement''​ package (and required dependencies),​ please edit/​introspect the following file with your favourite editor:<​code>​
 $ sudo editor /​etc/​x2go/​x2gothinclient_settings $ sudo editor /​etc/​x2go/​x2gothinclient_settings
-</​code>​ and apply changes required for your local site setup to the X2go TCE configuration. +</​code>​ and apply changes required for your local site setup to the X2Go TCE configuration. 
-  - When done, start the creation of a fresh X2go Thin Client chroot environment:<​code>​+  - When done, start the creation of a fresh X2Go Thin Client chroot environment:<​code>​
 $ sudo x2gothinclient_create $ sudo x2gothinclient_create
 </​code>​ </​code>​
-  - Now you will be able to observe a medium long installation process on your system. This installation process takes place in a chroot jail environment,​ it does not do anything to the X2go PXE server itself.+  - Now you will be able to observe a medium long installation process on your system. This installation process takes place in a chroot jail environment,​ it does not do anything to the X2Go PXE server itself.
   - During installation you will be asked to configure your thin client'​s default language and default keyboard settings. Please do so. Hint: make sure you use UTF-8 encoding in your language selection (e.g. en_US.UTF-8,​ de_DE.UTF-8,​ etc.).   - During installation you will be asked to configure your thin client'​s default language and default keyboard settings. Please do so. Hint: make sure you use UTF-8 encoding in your language selection (e.g. en_US.UTF-8,​ de_DE.UTF-8,​ etc.).
-  - After the X2go TCE installation of your X2go Thin Client (default location: ''/​opt/​x2gothinclient/​chroot''​) you will find a complete and minimal ​X2go TCE GNU/Linux system at the aforenamed chroot location.+  - After the X2Go TCE installation of your X2Go Thin Client (default location: ''/​opt/​x2gothinclient/​chroot''​) you will find a complete and minimal ​X2Go TCE GNU/Linux system at the aforenamed chroot location.
   - Next, you may take a look at the config files in the folder ''/​opt/​x2gothinclient/​etc/'':​   - Next, you may take a look at the config files in the folder ''/​opt/​x2gothinclient/​etc/'':​
-    - ''​**x2gothinclient_init**'':​ No customizations should be necessary for this file. Modify at your own risk... If a modification is necessary here, please report it as a bug/​enhancement to the X2go developers. +    - ''​**x2gothinclient_init**'':​ No customizations should be necessary for this file. Modify at your own risk... If a modification is necessary here, please report it as a bug/​enhancement to the X2Go developers. 
-    - ''​**x2gothinclient_start**'':​ This file is responsible for actually launching ''​x2goclient''​ as a login manager on your thin client. The default setting is to start in non-LDAP mode. In non-LDAP mode the ''​x2gothinclient_sessions''​ file contains the thin clients'​ list of available ​X2go session profiles. For LDAP mode there is a commented out stanza that shows possible LDAP options to pass on to the ''​x2goclient''​ application. //**Note:** If you edit this file, please make sure that all applications you call from this file are sent to background with the ampersand (»&«) operator, e.g.: ''​ x2goclient <​options>​ &''//​ +    - ''​**x2gothinclient_start**'':​ This file is responsible for actually launching ''​x2goclient''​ as a login manager on your thin client. The default setting is to start in non-LDAP mode. In non-LDAP mode the ''​x2gothinclient_sessions''​ file contains the thin clients'​ list of available ​X2Go session profiles. For LDAP mode there is a commented out stanza that shows possible LDAP options to pass on to the ''​x2goclient''​ application. //**Note:** If you edit this file, please make sure that all applications you call from this file are sent to background with the ampersand (»&«) operator, e.g.: ''​ x2goclient <​options>​ &''//​ 
-    - ''​**x2gothinclient_sessions**'':​ This file contains a list of session profile configurations for your thin clients'​ ''​x2goclient''​ (running in non-LDAP logon manager mode). Surely, you can edit/​customize the examplary session profiles file that comes with the ''​x2gothinclientmanagement''​ package in your favourite text editor. --- However, you can also use the ''​x2goclient''​ application on your local (GNU/Linux) computer to create a set of session profiles for your X2go Thin Client. Start ''​x2goclient''​ locally, create a set of session profiles and then copy your local ''​x2goclient''​ session profile configuration to the X2go PXE server:<​code>​+    - ''​**x2gothinclient_sessions**'':​ This file contains a list of session profile configurations for your thin clients'​ ''​x2goclient''​ (running in non-LDAP logon manager mode). Surely, you can edit/​customize the examplary session profiles file that comes with the ''​x2gothinclientmanagement''​ package in your favourite text editor. --- However, you can also use the ''​x2goclient''​ application on your local (GNU/Linux) computer to create a set of session profiles for your X2Go Thin Client. Start ''​x2goclient''​ locally, create a set of session profiles and then copy your local ''​x2goclient''​ session profile configuration to the X2Go PXE server:<​code>​
 $ scp ~/​.x2goclient/​sessions root@<​pxeserver.hostname.domain>:/​opt/​x2gothinclient/​etc/​x2gothinclient_sessions $ scp ~/​.x2goclient/​sessions root@<​pxeserver.hostname.domain>:/​opt/​x2gothinclient/​etc/​x2gothinclient_sessions
 </​code>​ </​code>​
-  - When done with all your customizations execute the ''​x2gothinclient_update''​ script. This script will incorporate your changes applied the ''/​opt/​x2gothinclient/​etc/​x2gothinclient_*''​ files into the X2go Thin Clients'​ chroot environment. Whenever you customize anything in ''/​opt/​x2gothinclient/​etc/''​ make sure your run the update command:<​code>​+  - When done with all your customizations execute the ''​x2gothinclient_update''​ script. This script will incorporate your changes applied the ''/​opt/​x2gothinclient/​etc/​x2gothinclient_*''​ files into the X2Go Thin Clients'​ chroot environment. Whenever you customize anything in ''/​opt/​x2gothinclient/​etc/''​ make sure your run the update command:<​code>​
 $ sudo x2gothinclient_update $ sudo x2gothinclient_update
 </​code>​ </​code>​
  
-With this last step your X2go Thin Client'​s chroot environment is basically ready for being booted. The last step, however, is to configure the PXE boot manager itself (PXE, TFTP).+With this last step your X2Go Thin Client'​s chroot environment is basically ready for being booted. The last step, however, is to configure the PXE boot manager itself (PXE, TFTP).
  
-=== Boot environment for your X2go Thin Client system (PXE, TFTP) ===+=== Provide firmware for certain hardware devices === 
 + 
 +Debian does not ship so-called non-free firmware in its main package archive area. However, several network cards (and other TCE relevant devices) require the installation of a firmware package from Debian non-free. 
 + 
 +Run the command ''​x2gothinclient_shell''​ and edit ''/​etc/​apt/​sources.list''​ in your TCE chroot (nano, vim and mcedit should be installed in your TCE chroot): 
 +<​file>​ 
 +deb http://​ftp.debian.org/​debian <​distro-codename>​ main contrib non-free 
 +</​file>​ 
 + 
 +Then run (in your X2Go TCE chroot):<​code>​ 
 +$ apt-get update 
 +$ apt-get install firmware-linux-nonfree firmware-bnx2 firmware-bnx2x firmware-myricom firmware-netxen ​ firmware-qlogic ​ firmware-ralink firmware-realtek intel-microcode amd64-microcode 
 +</​code>​ 
 + 
 +If this command fails, please check if packages have been removed from your Debian version or if they are not yet available for your version. Also scan for other firmware packages:<​code>​ 
 +$ apt-cache search firmware 
 +</​code>​ 
 + 
 +Also, there is a fine tool that you can run on normal Linux systems that helps with the package installation for several special hardware devices: [[http://​packages.debian.org/​unstable/​main/​isenkram|Isenkram by Petter Reinholdtsen]] from the Debian Edu team. 
 + 
 + 
 +=== Boot environment for your X2Go Thin Client system (PXE, TFTP) ===
  
 With the ''​x2gothinclient_preptftpboot''​ script you can simply set up a PXE boot environment using the ''​syslinux''​ package. Please take a look at the ''/​etc/​x2go/​x2gothinclient_settings''​ configuration file for customization first, then run this script: With the ''​x2gothinclient_preptftpboot''​ script you can simply set up a PXE boot environment using the ''​syslinux''​ package. Please take a look at the ''/​etc/​x2go/​x2gothinclient_settings''​ configuration file for customization first, then run this script:
Line 97: Line 120:
 </​code>​ </​code>​
  
-If there already is a PXE boot environment installed at the configured location, the script will abort with a warning. If you want to combine ​X2go PXE with other boot environments (e.g. LTSP), please customize your system manually. Templates for X2go PXE can be found at ''/​usr/​share/​x2go/​tce/​tftpboot''​.+If there already is a PXE boot environment installed at the configured location, the script will abort with a warning. If you want to combine ​X2Go PXE with other boot environments (e.g. LTSP), please customize your system manually. Templates for X2Go PXE can be found at ''/​usr/​share/​x2go/​tce/​tftpboot''​
 + 
 +Note: At the end of the ''​x2gothinclient_preptftpboot''​ script some further instructions (DHCP setup, NFS setup, etc.) of final configuration steps will be shown. Please follow these last steps to complete your X2Go TCE setup.
  
-Note: At the end of the ''​x2gothinclient_preptftpboot''​ script some further instructions (DHCP setup, NFS setup, etc.) of final configuration steps will be shown. Please follow these last steps to complete your X2go TCE setup.+=== Testing X2Go TCE ===
  
-=== Testing X2go TCE ===+You should now be able to start your office PCs as X2Go Thin Clients. To do this, configure the computer'​s BIOS to boot via network (PXE, Etherboot). You will know that you setup has been successful, if a boot menu appears on your computer'​s screen that shows the X2GO banner that also appears when starting X2Go sessions.
  
-You should now be able to start your office PCs as X2go Thin ClientsTo do this, configure ​the computer'​s BIOS to boot via network (PXE, Etherboot)You will know that you setup has been successful, if boot menu appears on your computer'​s screen that shows the X2GO banner that also appears when starting X2go sessions.+It is also possible ​to test the X2Go TCE in qemuRead the [[http://​code.x2go.org/​gitweb?​p=x2gothinclient.git;​a=blob;​f=README.qemu|documentation shipped with the X2Go TCE sources]].
  
-=== Purging ​X2go TCE ===+=== Purging ​X2Go TCE ===
  
-To get rid of all files related to X2go TCE, please run this script:+To get rid of all files related to X2Go TCE, please run this script:
  
 <​code>​ <​code>​
Line 113: Line 138:
 </​code>​ </​code>​
  
-===== Tweaking your X2go TCE =====+===== Tweaking your X2Go TCE =====
  
 ==== Configuration of DHCPD ==== ==== Configuration of DHCPD ====
Line 162: Line 187:
 ==== Configuration of x2goclient (display manager mode) ==== ==== Configuration of x2goclient (display manager mode) ====
  
-=== x2goclient ​in LDAP-mode ===+=== X2Go Client ​in LDAP-mode ===
  
 Please feel free to customize the command line options used by the ''​x2goclient'' ​ running in display manager mode. For example you can enable LDAP mode: Please feel free to customize the command line options used by the ''​x2goclient'' ​ running in display manager mode. For example you can enable LDAP mode:
Line 175: Line 200:
 x2goclient --pgp-card \ x2goclient --pgp-card \
            ​--ldap="​192.168.1.1:​389:​dc=<​domain>,​dc=<​tld>"​ \            ​--ldap="​192.168.1.1:​389:​dc=<​domain>,​dc=<​tld>"​ \
-           ​--external-login=/ramdrive/logins \+           ​--external-login=~x2gothinclient/logins \
            ​--no-menu \            ​--no-menu \
            ​--maximize \            ​--maximize \
Line 181: Line 206:
            ​--haltbt \            ​--haltbt \
            ​--link=lan \            ​--link=lan \
-           ​--kbd-layout=de +           ​--kbd-layout=us 
-           ​--kbd-type=pc105/​de \+           ​--kbd-type=pc105/​us \
            ​--set-kbd=1 \            ​--set-kbd=1 \
            ​--geometry=fullscreen \            ​--geometry=fullscreen \
-           --add-to-known-hosts \ +           ​--read-exports-from=~x2gothinclient/export \
-           --read-exports-from=/ramdrive/export \+
            ​--add-to-known-hosts &            ​--add-to-known-hosts &
 </​file>​ </​file>​
  
-After modifying the ''​x2gothinclient_start''​ file, update the X2go Thin Client configuration:​+After modifying the ''​x2gothinclient_start''​ file, update the X2Go Thin Client configuration:​
  
 <​code>​ <​code>​
Line 196: Line 220:
 </​code>​ </​code>​
  
-=== x2goclient in non-LDAP mode ===+=== X2Go Client in broker mode === 
 + 
 +Please feel free to customize the command line options used by the ''​x2goclient'' ​ running ​in display manager mode. For example you can enable ​LDAP mode: 
 + 
 +<​code>​ 
 +$ editor /​opt/​x2gothinclient/​etc/​x2gothinclient_start 
 +</​code>​ 
 + 
 +The below example uses LDAP-mode for ''​x2goclient'':​ 
 + 
 +<​file>​ 
 +x2goclient --pgp-card \ 
 +           ​--broker-url=https://<​broker-server>:<​port>/​plain/<​backend>​ \ 
 +           ​--broker-cacertfile=<​path-to-your-self-signed-rootca-file>​ 
 +           ​--external-login=~x2gothinclient/​logins \ 
 +           ​--no-menu \ 
 +           ​--maximize \ 
 +           ​--thinclient \ 
 +           ​--haltbt \ 
 +           ​--link=lan \ 
 +           ​--kbd-layout=us \ 
 +           ​--kbd-type=pc105/​us \ 
 +           ​--set-kbd=1 \ 
 +           ​--geometry=fullscreen \ 
 +           ​--read-exports-from=~x2gothinclient/​export \ 
 +           ​--add-to-known-hosts & 
 +</​file>​ 
 + 
 +After modifying the ''​x2gothinclient_start''​ file, update the X2Go Thin Client configuration:​ 
 + 
 +<​code>​ 
 +$ x2gothinclient_update 
 +</​code>​ 
 + 
 + 
 +=== X2Go Client in sessions file mode ===
  
-The Debian GNU/​Linux ​(squeeze) X2go TCE uses non-LDAP mode as default. Edit the default sessions file in ''/​opt/​x2gothinclient/​etc/​x2gothinclient_sessions''​.+The Debian GNU/​Linux ​X2Go TCE uses non-LDAP mode as default. Edit the default sessions file in ''/​opt/​x2gothinclient/​etc/​x2gothinclient_sessions''​.
  
 There are two extra commandline arguments that you should be aware in the below configuration. ​ There are two extra commandline arguments that you should be aware in the below configuration. ​
  
   * ''​--no-session-edit''​ will deny any manipulation of the session by the user.   * ''​--no-session-edit''​ will deny any manipulation of the session by the user.
-  * ''​--session="​X2Go.EXAMPLE''​ needs to be identical to the name inside the X2go session file.+  * ''​--session="​X2Go.EXAMPLE''​ needs to be identical to the name inside the X2Go session file.
  
 <​file>​ <​file>​
Line 209: Line 268:
            ​--session="​X2Go.EXAMPLE"​ \            ​--session="​X2Go.EXAMPLE"​ \
            ​--pgp-card \            ​--pgp-card \
-           ​--external-login=/ramdrive/logins \+           ​--external-login=~x2gothinclient/logins \
            ​--no-menu \            ​--no-menu \
            ​--maximize \            ​--maximize \
Line 215: Line 274:
            ​--haltbt \            ​--haltbt \
            ​--link=lan \            ​--link=lan \
-           ​--kbd-layout=de +           ​--kbd-layout=us 
-           ​--kbd-type=pc105/​de \+           ​--kbd-type=pc105/​us \
            ​--set-kbd=1 \            ​--set-kbd=1 \
            ​--geometry=fullscreen \            ​--geometry=fullscreen \
-           --add-to-known-hosts \ +           ​--read-exports-from=~x2gothinclient/export \
-           --read-exports-from=/ramdrive/export \+
            ​--add-to-known-hosts &            ​--add-to-known-hosts &
 </​file>​ </​file>​
  
-After modifying the ''​x2gothinclient_start''​ file, update the X2go Thin Client configuration:​+After modifying the ''​x2gothinclient_start''​ file, update the X2Go Thin Client configuration:​
  
 <​code>​ <​code>​
wiki/advanced/tce/install.1363365547.txt.gz · Last modified: 2013/03/15 16:39 by sunweaver