User Tools

Site Tools


doc:howto:tce

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
doc:howto:tce [2022/12/02 13:08]
stefanbaur [Starting the Build] added comment to explain where the log file goes
doc:howto:tce [2024/01/26 19:49] (current)
stefanbaur [Client Branding/Theming using SVGs] added before and after images
Line 61: Line 61:
 # Select ONE of the following git reposities # Select ONE of the following git reposities
 # this one loosely corresponds to "stable" # this one loosely corresponds to "stable"
-#export LBX2GO_CONFIG='git://code.x2go.org/live-build-x2go.git::feature/openbox-magic-pixel-workaround-buster' +#export LBX2GO_CONFIG='https://gitlab.x2go.org/x2go/live-build-x2go.git::feature/openbox-magic-pixel-workaround-buster' 
-#export LBX2GO_CONFIG='git://code.x2go.org/live-build-x2go.git::feature/mate-minidesktop-buster' +#export LBX2GO_CONFIG='https://gitlab.x2go.org/x2go/live-build-x2go.git::feature/mate-minidesktop-buster' 
-export LBX2GO_CONFIG='git://code.x2go.org/live-build-x2go.git::feature/openbox-magic-pixel-workaround-bullseye' +export LBX2GO_CONFIG='https://gitlab.x2go.org/x2go/live-build-x2go.git::feature/openbox-magic-pixel-workaround-bullseye' 
-#export LBX2GO_CONFIG='git://code.x2go.org/live-build-x2go.git::feature/mate-minidesktop-bullseye' +#export LBX2GO_CONFIG='https://gitlab.x2go.org/x2go/live-build-x2go.git::feature/mate-minidesktop-bullseye' 
-# this one loosely corresponds to "heuler" +#export LBX2GO_CONFIG='https://github.com/bauritcs/live-build-x2go.git::feature/openbox-magic-pixel-workaround-bookworm
-#export LBX2GO_CONFIG='https://github.com/LinuxHaus/live-build-x2go::feature/openbox-magic-pixel-workaround-buster+#export LBX2GO_CONFIG='https://github.com/bauritcs/live-build-x2go.git::feature/mate-minidesktop-bookworm
-#export LBX2GO_CONFIG='https://github.com/LinuxHaus/live-build-x2go::feature/openbox-mate-minidesktop-buster+NOTES: 1) https://github.com/bauritcs loosely corresponds to "heuler" 
-#export LBX2GO_CONFIG='https://github.com/LinuxHaus/live-build-x2go::feature/openbox-magic-pixel-workaround-bullseye' +       2) Minidesktop builds are work in progress and not production-ready. Cont(r)act us if you need them; feel free to submit patches
-#export LBX2GO_CONFIG='https://github.com/LinuxHaus/live-build-x2go::feature/openbox-mate-minidesktop-bullseye' +       3) Add "-stretch" to the end of the LBX2GO_CONFIG string to create a stretch build, 
-NOTE: Add "-stretch" to the end of the LBX2GO_CONFIG string to create a stretch build, +          add "-buster" to the end of the LBX2GO_CONFIG string to create a buster build, 
-      add "-buster" to the end of the LBX2GO_CONFIG string to create a buster build, +          add "-bullseye" to the end of the LBX2GO_CONFIG string to create a bullseye build 
-      add "-bullseye" to the end of the LBX2GO_CONFIG string to create a bullseye build+#           add "-bookworm" to the end of the LBX2GO_CONFIG string to create a bookworm build (will be in gitlab repo $SOON - use github.com/bauritcs for now)
  
 # Select ONE of the following LBX2GO_ARCH lines and comment out the others # Select ONE of the following LBX2GO_ARCH lines and comment out the others
Line 114: Line 114:
     export LBX2GO_DEBVERSION="bullseye"     export LBX2GO_DEBVERSION="bullseye"
     export LBX2GO_BOOTAPPEND_LIVE+=" net.ifnames=0 biosdevname=0"     export LBX2GO_BOOTAPPEND_LIVE+=" net.ifnames=0 biosdevname=0"
 +elif [ -z "${LBX2GO_CONFIG##*-bookworm}" ] ; then
 +    export LBX2GO_DEBVERSION="bookworm"
 +    export LBX2GO_BOOTAPPEND_LIVE+=" net.ifnames=0 biosdevname=0"
 +    export LBX2GO_ARCHIVE_AREAS="non-free-firmware "
 else else
     export LBX2GO_DEBVERSION="jessie"     export LBX2GO_DEBVERSION="jessie"
Line 183: Line 187:
 fi fi
  
-export LBX2GO_ARCHIVE_AREAS="main contrib non-free"+export LBX2GO_ARCHIVE_AREAS="main contrib non-free $LBX2GO_ARCHIVE_AREAS"
  
 # This is for minidesktop builds and currently only adds firefox-esr language packs # This is for minidesktop builds and currently only adds firefox-esr language packs
Line 253: Line 257:
 To add patches that aren't part of any package yet, you can use the directory ./patch/ for patches that should be added to all versions, and ./patch-minidesktop/ for patches that should only be added to the MATE-MiniDesktop Edition. To add patches that aren't part of any package yet, you can use the directory ./patch/ for patches that should be added to all versions, and ./patch-minidesktop/ for patches that should only be added to the MATE-MiniDesktop Edition.
  
-You will need to create a directory structure like ./patch/includes.chroot/etc/ to create/overwrite a file in /etc/ within the live environment.+You will need to create a directory structure like <code>./patch/includes.chroot/etc/</code> to create/overwrite a file in <code>/etc/</code> within the live environment. 
 + 
 +e.g. to override <code>/etc/x2go/x2gothinclient-minidesktop_start</code> with a custom version, run <code>mkdir -p ./patch-minidesktop/includes.chroot/etc/x2go/</code> and save the following file as <code>./patch-minidesktop/includes.chroot/etc/x2go/x2gothinclient-minidesktop_start</code> 
 +<code> 
 +#!/bin/bash 
 + 
 +# Copyright (C) 2010-2024 by X2Go project, https://wiki.x2go.org 
 +#       Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> 
 +#       Moritz 'Morty' Struebe <Moritz.Struebe@informatik.uni-erlangen.de> 
 +#       Mike Gabriel <mike.gabriel@das-netzwerkteam.de> 
 +#       Stefan Baur <X2Go-ML-1@baur-itcs.de> 
 +
 +# X2Go is free software; you can redistribute it and/or modify 
 +# it under the terms of the GNU General Public License as published by 
 +# the Free Software Foundation; either version 2 of the License, or 
 +# (at your option) any later version. 
 +
 +# X2Go is distributed in the hope that it will be useful, 
 +# but WITHOUT ANY WARRANTY; without even the implied warranty of 
 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
 +# GNU General Public License for more details. 
 +
 +# You should have received a copy of the GNU General Public License 
 +# along with this program; if not, write to the 
 +# Free Software Foundation, Inc., 
 +# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. 
 + 
 +# make sure pulseaudio can be reached via TCP from the X2Go Server side... 
 +if ! /usr/bin/pactl list modules | grep -A1 'module-native-protocol-tcp' | grep -q 'auth-ip-acl=127.0.0.1;::1' ; then 
 +        /usr/bin/pactl 'load-module' 'module-native-protocol-tcp' 'auth-ip-acl=127.0.0.1;::1' 
 +fi 
 + 
 +# make sure we don't start before sessions and settings files exist - avoids race conditions 
 +while ! [ -e ~x2gothinclient/.x2goclient/sessions ] ; do 
 +        sleep 1; 
 +done 
 + 
 +while ! [ -e ~x2gothinclient/.x2goclient/settings ]; do 
 +        sleep 1 
 +done 
 + 
 +[ -s /etc/x2go/x2gothinclient_bg.svg ] && X2GO_BG='--background="/etc/x2go/x2gothinclient_bg.svg' 
 +[ -s /etc/x2go/x2gothinclient_branding.svg ] && X2GO_BRAND='--branding="/etc/x2go/x2gothinclient_branding.svg' 
 + 
 + 
 +/usr/lib/x2go/x2goclient --no-menu \ 
 +                         $X2GO_BG \ 
 +                         $X2GO_BRAND \ 
 +                         --kbd-type=auto \ 
 +                         --set-kbd=1 \ 
 +                         --tray-icon \ 
 +                         --read-exports-from=~/export \ 
 +                         --no-session-edit \ 
 +                         --add-to-known-hosts \ 
 +                         & 
 + 
 +</code>
 ==== Starting the Build ==== ==== Starting the Build ====
 In the directory where you want to save your builds, save the following file as x2go-tce-build, and run it (e.g. via //sudo bash ./x2go-tce-build//): In the directory where you want to save your builds, save the following file as x2go-tce-build, and run it (e.g. via //sudo bash ./x2go-tce-build//):
Line 987: Line 1047:
   * ''throttle=n|n:n:n:n:n'' - Will throttle down- and upload speed (''throttle=n'') or set throttling limits as follows: download:upload:smoothingtime:smoothinglength:latency. Defaults for up- and download are 10 (KiloBytes/s), 3.0 (seconds, using decimals is permitted) smoothingtime, 20 (KiloBytes), 0 (ms). for a detailed description of these parameters, see "man trickle". You can use the first 1, 2, 3, 4 or all 5 parameters. To set down- and/or upload speed to unlimited, use the letter "u" instead of a numeric value.   * ''throttle=n|n:n:n:n:n'' - Will throttle down- and upload speed (''throttle=n'') or set throttling limits as follows: download:upload:smoothingtime:smoothinglength:latency. Defaults for up- and download are 10 (KiloBytes/s), 3.0 (seconds, using decimals is permitted) smoothingtime, 20 (KiloBytes), 0 (ms). for a detailed description of these parameters, see "man trickle". You can use the first 1, 2, 3, 4 or all 5 parameters. To set down- and/or upload speed to unlimited, use the letter "u" instead of a numeric value.
   * ''timezone=TIMEZONE'' - can be used to define a timezone other than UTC, e.g. 'Europe/Berlin'. This especially makes sense for MATE-MiniDesktop, but is nice to have in regular TCE-Live as well, because the timestamp of the log messages will show the local time instead of UTC. This is a standard parameter of live-boot, and not specific to X2Go.   * ''timezone=TIMEZONE'' - can be used to define a timezone other than UTC, e.g. 'Europe/Berlin'. This especially makes sense for MATE-MiniDesktop, but is nice to have in regular TCE-Live as well, because the timestamp of the log messages will show the local time instead of UTC. This is a standard parameter of live-boot, and not specific to X2Go.
 +  * ''windowwidth=[n-nnn]'' - this is only available in MiniDesktop mode. It allows you to set the width of the X2GoClient login window (which gets moved and resized to the right side of your screen during session startup) to any value between 0 and 100. Note that widths smaller than 30 are not recommended and may cause further resizing once the session starts.
   * ''x3270servers="host[:port][|host[:port]...]"'' - this is only available in MiniDesktop mode. It allows you to specify one or more hosts (with optional ports) for x3270 terminal emulation sessions that will be created as desktop shortcuts on the thinclient. For a default 3270 connection, the port is 23 (telnet) and does not need to be specified. For an SSL-encrypted connection (recommended), the port is 992. Hosts may be IP addresses or DNS names, and need to be separated with a ''|''. (feature available via github repo, soon via x2go repo too)   * ''x3270servers="host[:port][|host[:port]...]"'' - this is only available in MiniDesktop mode. It allows you to specify one or more hosts (with optional ports) for x3270 terminal emulation sessions that will be created as desktop shortcuts on the thinclient. For a default 3270 connection, the port is 23 (telnet) and does not need to be specified. For an SSL-encrypted connection (recommended), the port is 992. Hosts may be IP addresses or DNS names, and need to be separated with a ''|''. (feature available via github repo, soon via x2go repo too)
   * ''x5250servers="host[:port][|host[:port]...]"'' - this is only available in MiniDesktop mode. It allows you to specify one or more hosts (with optional ports) for x5250 terminal emulation sessions that will be created as desktop shortcuts on the thinclient. For a default 5250 connection, the port is 23 (telnet) and does not need to be specified. For an SSL-encrypted connection (recommended), the port is 992. Hosts may be IP addresses or DNS names, and need to be separated with a ''|''. Note that x5250 support is currently not part of the standard image available via git, as there is no x5250 executable in Debian. You can try using x3270 instead, most modern IBM i (System i, iSeries, AS/400) systems support 3270-type connections as well. If you need native 5250 support, say, with a commercial, closed-source 5250 terminal emulator, please leave a message on the X2Go-User Mailing List and we'll tell you if and how you can integrate that into your build. (feature available via github repo, soon via x2go repo too)   * ''x5250servers="host[:port][|host[:port]...]"'' - this is only available in MiniDesktop mode. It allows you to specify one or more hosts (with optional ports) for x5250 terminal emulation sessions that will be created as desktop shortcuts on the thinclient. For a default 5250 connection, the port is 23 (telnet) and does not need to be specified. For an SSL-encrypted connection (recommended), the port is 992. Hosts may be IP addresses or DNS names, and need to be separated with a ''|''. Note that x5250 support is currently not part of the standard image available via git, as there is no x5250 executable in Debian. You can try using x3270 instead, most modern IBM i (System i, iSeries, AS/400) systems support 3270-type connections as well. If you need native 5250 support, say, with a commercial, closed-source 5250 terminal emulator, please leave a message on the X2Go-User Mailing List and we'll tell you if and how you can integrate that into your build. (feature available via github repo, soon via x2go repo too)
Line 1004: Line 1065:
   * ''updateurl=rsync|https|http|ftp://your-http-server-ip-or-dns-here/path-to-update-files'' - Will allow you to update an image in the background when using local storage instead of PXE. Download task will start at a randomized interval to avoid unintentional dDOSing of the update server/network infrastructure. The updater will even work when using NTFS for local storage, but only if the //toram// boot option is used. Regardless of NTFS or not, the updater requires three directories: ''/boot/X2Go-live1, /boot/X2Go-live2, /boot/X2Go-live-download''. **Attention: Whoever manages to spoof the server name can deploy rogue images to your ThinClients.**  Even though it is slower, using an HTTPS web server is the safer way of doing this. Be sure that your web server delivers a last-modified header for all files.    * ''updateurl=rsync|https|http|ftp://your-http-server-ip-or-dns-here/path-to-update-files'' - Will allow you to update an image in the background when using local storage instead of PXE. Download task will start at a randomized interval to avoid unintentional dDOSing of the update server/network infrastructure. The updater will even work when using NTFS for local storage, but only if the //toram// boot option is used. Regardless of NTFS or not, the updater requires three directories: ''/boot/X2Go-live1, /boot/X2Go-live2, /boot/X2Go-live-download''. **Attention: Whoever manages to spoof the server name can deploy rogue images to your ThinClients.**  Even though it is slower, using an HTTPS web server is the safer way of doing this. Be sure that your web server delivers a last-modified header for all files. 
  
 +===== Client Branding/Theming using SVGs =====
 +It is possible to make X2Go-TCE-Live match your Corporate Design/Corporate Identity, using the "background" and "branding" parameters.
 +This is actually a feature of X2GoClient itself, so it will also work on //fat client// installations, and even on Windows and macOS.
 +
 +{{:wiki:advanced:x2goclientdefaultbranding.png?400|Before ...}} {{:wiki:advanced:x2goclientbranding.png?400| ... and after.}}
 +
 +You can find a more detailed explanation in the [[wiki:advanced:branding-theming|corresponding X2Go Wiki page]].
 ===== Querying X2Go-TCE version info =====  ===== Querying X2Go-TCE version info ===== 
 images built using the https://github.com/LinuxHaus/live-build-x2go::feature/openbox repository/branch after 2017-07-27 10:50 UTC will create a file ''/var/run/x2go-timestamps''. images built using the https://github.com/LinuxHaus/live-build-x2go::feature/openbox repository/branch after 2017-07-27 10:50 UTC will create a file ''/var/run/x2go-timestamps''.
doc/howto/tce.1669986493.txt.gz · Last modified: 2022/12/02 13:08 by stefanbaur