{"id":685,"date":"2025-12-18T21:55:56","date_gmt":"2025-12-18T21:55:56","guid":{"rendered":"https:\/\/www.texturemind.com\/tmd\/docs\/tmd-administrator-guide\/setting-up-tmd-server\/linux\/prerequisites\/"},"modified":"2025-12-19T14:52:31","modified_gmt":"2025-12-19T14:52:31","slug":"prerequisites","status":"publish","type":"docs","link":"https:\/\/www.texturemind.com\/tmd\/docs\/tmd-administrator-guide\/setting-up-tmd-server\/linux\/prerequisites\/","title":{"rendered":"Prerequisites"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Before installing the TextureMind Desktop (TMD) server on a Linux system, ensure that the target machine meets the minimum software and hardware requirements described in this section. These prerequisites apply to both <strong>physical machines<\/strong> and <strong>virtual machines<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">TextureMind Desktop supports <strong>console sessions only<\/strong>. Virtual or headless virtual sessions are not supported.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Supported Linux Distributions and Architectures<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">TMD supports a wide range of modern Linux distributions, provided that the system meets the required GNU C Library (glibc) version.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Supported Architectures<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Architecture<\/th><th>Minimum glibc Version<\/th><\/tr><\/thead><tbody><tr><td><strong>x86_64<\/strong><\/td><td>glibc 2.17 or later<\/td><\/tr><tr><td><strong>arm64 (aarch64)<\/strong><\/td><td>glibc 2.28 or later<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Note<\/strong><br>ARM64 support is limited to Linux systems only. Windows ARM is not supported.<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">Supported Distributions<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Any Linux distribution that meets the glibc requirements above is supported, including (but not limited to):<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ubuntu 13.04 and later<\/li>\n\n\n\n<li>Debian 8 and later<\/li>\n\n\n\n<li>RHEL \/ Rocky Linux \/ AlmaLinux 7 and later<\/li>\n\n\n\n<li>CentOS 7 and later<\/li>\n\n\n\n<li>Slackware 14.1 and later<\/li>\n\n\n\n<li>Fedora 19 and later<\/li>\n\n\n\n<li>Amazon Linux 2 and later<\/li>\n\n\n\n<li>SUSE Linux Enterprise Server 12 SP5 and later<\/li>\n\n\n\n<li>Arch Linux (rolling)<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Desktop Environment Requirements<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">TextureMind Desktop requires a <strong>running X11 desktop environment<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Wayland Is Not Supported<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Wayland-based desktop sessions are <strong>not supported<\/strong> by TMD and must be disabled.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On systems where Wayland is enabled by default (such as GNOME-based distributions), configure the display manager to force X11.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, on systems using <strong>GDM<\/strong>, edit:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/gdm\/custom.conf\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ensure the following setting is present:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>WaylandEnable=false\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Then restart the display manager or reboot the system:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl reboot\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">X Server Configuration<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A properly configured X Server is required for TMD to function.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Physical Machines<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">On physical machines with a monitor attached, the X Server is typically configured automatically by the operating system. No additional configuration is required beyond installing the appropriate GPU drivers (if applicable).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Headless or Virtual Machines<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">On virtual machines or headless systems (without a physical display), an X Server must still be available. In these scenarios, you must configure a <strong>dummy X display<\/strong>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Using Xorg with a Dummy Driver<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Install the Xorg server and the dummy video driver:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Debian \/ Ubuntu\nsudo apt update\nsudo apt install -y xorg xserver-xorg-video-dummy\n\n# RHEL \/ Rocky \/ AlmaLinux \/ Amazon Linux\nsudo yum install -y xorg-x11-server-Xorg xorg-x11-drv-dummy\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Create or update the Xorg configuration file:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/X11\/xorg.conf\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Example configuration:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Section \"Device\"\n    Identifier \"DummyDevice\"\n    Driver \"dummy\"\n    VideoRam 256000\nEndSection\n\nSection \"Monitor\"\n    Identifier \"DummyMonitor\"\n    HorizSync 28.0-80.0\n    VertRefresh 48.0-75.0\nEndSection\n\nSection \"Screen\"\n    Identifier \"DummyScreen\"\n    Device \"DummyDevice\"\n    Monitor \"DummyMonitor\"\n    DefaultDepth 24\n    SubSection \"Display\"\n        Depth 24\n        Modes \"1920x1080\"\n    EndSubSection\nEndSection\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Restart the system or the display manager after applying the configuration.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">GPU Drivers (Optional but Recommended)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">While a GPU is <strong>not required<\/strong> to run TextureMind Desktop, installing appropriate GPU drivers significantly improves rendering and encoding performance for graphical workloads.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">NVIDIA GPUs<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Install the official NVIDIA drivers provided by your distribution or directly from NVIDIA.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example (Ubuntu):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install -y nvidia-driver-535\nsudo reboot\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">AMD GPUs<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Install the AMDGPU drivers provided by your distribution.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example (Ubuntu):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install -y xserver-xorg-video-amdgpu\nsudo reboot\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Audio Support on Linux<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">TextureMind Desktop relies on the Linux system audio stack to provide sound output inside remote desktop sessions. Audio support is optional and depends on the availability of a functional audio subsystem on the host.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On some <strong>headless systems<\/strong>, <strong>virtual machines<\/strong>, or <strong>cloud instances<\/strong>, no physical audio device is present by default. In these cases, audio output may be unavailable unless a virtual audio device is configured.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Supported Audio Systems<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">TMD supports the following Linux audio stacks:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>PipeWire<\/strong> (recommended, modern default)<\/li>\n\n\n\n<li><strong>PulseAudio<\/strong><\/li>\n\n\n\n<li><strong>ALSA<\/strong> (indirectly, via PulseAudio or PipeWire)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Most modern Linux distributions ship with PipeWire or PulseAudio preinstalled.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Verifying Audio Availability<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">To verify that an audio server is running, use one of the following commands:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">PipeWire or PulseAudio<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>pactl info\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If the audio server is running, this command returns information about the current audio system.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">List available audio sinks<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>pactl list short sinks\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If no sinks are listed, the system does not currently have an audio output device.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Configuring a Virtual Audio Device<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If no physical audio device is available, you can create a <strong>virtual (null) audio sink<\/strong>. This allows applications and remote desktop sessions to produce audio output even on headless systems.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Creating a Virtual Sink (PulseAudio or PipeWire)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Run the following command:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pactl load-module module-null-sink sink_name=VirtualSink\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This creates a virtual audio output device named <code>VirtualSink<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To confirm that the sink was created:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pactl list short sinks\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Setting the Virtual Sink as Default<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">To make the virtual sink the default output device:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pactl set-default-sink VirtualSink\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Applications launched after this change will use the virtual audio device automatically.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Persisting the Virtual Audio Device (Optional)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The virtual sink created with <code>pactl<\/code> is not persistent across reboots by default.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">PulseAudio (legacy)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Add the following line to:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>~\/.config\/pulse\/default.pa\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>load-module module-null-sink sink_name=VirtualSink\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">PipeWire<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">PipeWire typically restores audio configuration automatically. For persistent virtual sinks, consult your distribution\u2019s PipeWire configuration documentation.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Surround Sound and Advanced Audio Layouts<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Advanced audio layouts (such as 5.1 or 7.1 surround sound) depend on:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The selected audio sink configuration<\/li>\n\n\n\n<li>The desktop environment<\/li>\n\n\n\n<li>Application-level audio settings<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">While virtual sinks can be configured to expose multiple channels, support varies by distribution and audio stack. TextureMind Desktop does not enforce or modify audio channel layouts; it relies entirely on the host system configuration.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Summary of Linux Prerequisites<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Before installing the TextureMind Desktop server on Linux, ensure that:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The system meets the <strong>glibc requirements<\/strong> for its architecture<\/li>\n\n\n\n<li>A supported <strong>X11 desktop environment<\/strong> is installed<\/li>\n\n\n\n<li><strong>Wayland is disabled<\/strong><\/li>\n\n\n\n<li>An X Server is properly configured (including dummy display for headless systems)<\/li>\n\n\n\n<li>Appropriate <strong>GPU drivers<\/strong> are installed if a GPU is present<\/li>\n\n\n\n<li>Optional audio devices are configured if audio output is required<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Before installing the TextureMind Desktop (TMD) server on a Linux system, ensure that the target machine meets the minimum software and hardware requirements described in this section. These prerequisites apply to both physical machines and virtual machines. TextureMind Desktop supports console sessions only. Virtual or headless virtual sessions are not supported. Supported Linux Distributions and &#8230; <a title=\"Prerequisites\" class=\"read-more\" href=\"https:\/\/www.texturemind.com\/tmd\/docs\/tmd-administrator-guide\/setting-up-tmd-server\/linux\/prerequisites\/\" aria-label=\"Read more about Prerequisites\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":623,"menu_order":3,"comment_status":"open","ping_status":"closed","template":"","doc_tag":[],"class_list":["post-685","docs","type-docs","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.texturemind.com\/tmd\/wp-json\/wp\/v2\/docs\/685","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.texturemind.com\/tmd\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/www.texturemind.com\/tmd\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/www.texturemind.com\/tmd\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.texturemind.com\/tmd\/wp-json\/wp\/v2\/comments?post=685"}],"version-history":[{"count":2,"href":"https:\/\/www.texturemind.com\/tmd\/wp-json\/wp\/v2\/docs\/685\/revisions"}],"predecessor-version":[{"id":703,"href":"https:\/\/www.texturemind.com\/tmd\/wp-json\/wp\/v2\/docs\/685\/revisions\/703"}],"up":[{"embeddable":true,"href":"https:\/\/www.texturemind.com\/tmd\/wp-json\/wp\/v2\/docs\/623"}],"wp:attachment":[{"href":"https:\/\/www.texturemind.com\/tmd\/wp-json\/wp\/v2\/media?parent=685"}],"wp:term":[{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/www.texturemind.com\/tmd\/wp-json\/wp\/v2\/doc_tag?post=685"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}