Important note: this howto is quite outdated. Instead of reading it, I would advise you to have a look at the http://www.x2go.org site which has packages which work for Squeeze, Wheezy and SID.

FreeNX Server

Homepage: http://freenx.berlios.de/

Taken from the package description:

The FreeNX application/thin-client server based on NX technology

?NoMachine NX is the next-generation X compression and roundtrip suppression scheme. It can operate remote X11 sessions over 56k modem dialup links or anything better.

Currently there are no packages in the repositories [1]. FreeNX 0.7.2 is the current upstream version and a complete rewrite is also done [2].

[1] http://lists.alioth.debian.org/pipermail/pkg-nx-group/2007-July/000171.html

[2] http://mail.kde.org/pipermail/freenx-knx/2008-March/006826.html

Neatx is rewrite of FreeNX and supposedly its successor.

Installation with packages

There are packages of FreeNX 0.6 available. This should get freenx installed.

1. Repository. Adapt the following line to your release and add it to your sources.list.

deb http://packages.debianbase.de/[etch|lenny|sid|...]/i386/nx/ ./

2. Installation. Update the list of available packages from the apt sources and install the FreeNX server.

sudo aptitude update && sudo aptitude install freenx

3. Check. You can check if the server is running.

$ sudo nxserver --status
NX> 100 NXSERVER - Version 1.5.0-60 OS (GPL)
NX> 110 NX Server is running
NX> 999 Bye

Newer packages for Lenny/Sid can be found here http://ubuntuforums.org/showthread.php?t=620057&highlight=freenx

installation on lenny (worked 16.10.2009)

Info from :

basically:

  1. create the file /etc/apt/sources.list.d/freenx.list with the contents below
  2. [optional] if you want to avoid the security warnings, you must add the repo's key using the command  apt-key adv --recv-keys --keyserver keyserver.ubuntu.com CORRECT_KEYID_GOES_HERE 

  3. install using something like  aptitude update; aptitude install freenx 

/etc/apt/sources.list.d/freenx.list

deb http://ppa.launchpad.net/freenx-team/legacy/ubuntu intrepid main 
deb-src http://ppa.launchpad.net/freenx-team/legacy/ubuntu intrepid main 

* confirmed working with nomachine nxclient 3.4.0-5 (MacOS)

Installation from source

You can find a howto under [3].

[3] http://tim.haegele.info/2008/03/28/nomachine-nx-libraries-and-freenx-server/

The full NX guide, that includes installation from source, is here: http://mail.kde.org/pipermail/freenx-knx/2008-May/007059.html

FreeNX client

There are several clients available.

1. qtnx, available in Debian since

2. ?NoMachine provides also an client and the Debian packages.

a) The release 3.2.x does only work with freenx-server >= 0.7.2.

b) For freenx < 0.7.2 you will need ?NoMachine NX Client 2.x. No machine has posted installation instructions under [4]. You will need the sections Debian Pre-requisites for NX and NX Client Installation.

[4] http://www.nomachine.com/ar/view.php?ar_id=AR05E00459

Old wiki page with some solutions for problems

The repositories for freenx for unstable distribution are at

deb http://debian.tu-bs.de/project/kanotix/unstable/ sid nx
deb-src http://debian.tu-bs.de/project/kanotix/unstable/ sid nx

Add the above two lines to /etc/apt/sources.list and then aptitude install freenx. NOTE: the links above are no longer being maintained.

Other repositories are

deb http://packages.debianbase.de/testing/i386/nx/ ./
deb http://sidux.com/debian/ unstable nx

Solutions for NX Client version 2.0.0 and FreeNX 0.4.x and 0.5.0.

If you have problem connecting with new NX Client ver. 2.0.0, there are 2 patch, which working for me with NX Client ver. 2.0.0-93:

'fake cookie authentication problem':

Some new clients uses 1.4.0 as proto version. You have to make sure that 'fake cookie authentication' is working on the server. Look at nxnode and search for that string in 'node_startsession()' function and edit it.

For freenx 0.4.x nxnode in function 'node_startsession()'

if [ "$ENABLE_1_5_0_BACKEND" = "1" -a "$clientproto" = "1.5.0" ] || [ "$ENABLE_1_5_0_BACKEND" = "1" -a "$clientproto" = "1.4.0" ]
    then
      # enable fake cookie authentication
      cookie=$proxy_cookie
fi

For freenx 0.5.0 nxnode in function 'node_startsession()'

if [ "$clientproto" = "1.5.0" ] || [ "$clientproto" = "1.4.0" ]
   then
      # enable fake cookie authentication
      cookie=$proxy_cookie
fi

Pre 1.5 clients will face trouble in this case, though - but works for me (no users with old clients). As I see in comunnication with client ver. 2.0.0-93, it use 1.5.0 proto version, so this is for older 2.0.0 clients.

'Backingstore problem':

Thorsten Sandfuchs found some issues concerning backingstore. Problem arouse as you try to connect to a 0.5.0 installation with no 2.0.0 backend support and a 2.0.0-client. As Nomachine changed the behaviour of the backingstore-option. In 1.5.0-clients the client sends "always, when_requested" et all and freenx just passed this string to the nxagent-call. The new client now sends "backingstore=1" and the 1.5.0-nxagent issues a warning and an error with "no argument requiered for -bs" or with "Error: NX Agent exited with exit status 1.". You can read all his message here: Backingstore or 2.0.0-client and 1.5.0 backend and freenx-0.5

Look at nxnode and in function 'node_start_agent()' after this line

[ -n "$backingstore" ] && B="-bs $backingstore"

add these lines:

# backingstore = { "when_requested", "always", ... }
[ -n "$backingstore" -a "$ENABLE_2_0_0_BACKEND" != "1" -a "$backingstore" != "1" ] && B="-bs $backingstore"
# backingstore = 1 (new nxclient 2.0.0 doesn't send any strings in the option-string for backingstore anymore)
[ -n "$backingstore" -a "$ENABLE_2_0_0_BACKEND" != "1" -a "$backingstore" = "1" ] && B="+bs"
# backingstore = 1 and 2.0.0-Backend EXPERIMENTAL
[ -n "$backingstore" -a "$ENABLE_2_0_0_BACKEND" = "1" ] && B="-bs $backingstore"

This works using nxclient version 2.0.0-98.

--?Predseda3D 2006-08-02

Missing Color Definitions Cause Some Applications to Fail

After upgrading to the latest X.org (xorg/testing 1:7.0.22), some applications will fail to start while using FreeNX (freenx 0.4.4+0.4.5-4) with the following error:

(application): Cannot allocate color (some color), such as:

xterm: Cannot allocate color green

Other applications will fail with similar errors.

The reason for this is that nxagent is looking for rgb.txt in /usr/X11R6/lib/X11, and it is not present.

Issuing a:

ln -s /etc/X11/rgb.txt /usr/X11R6/lib/X11/rgb.txt

and restarting nxserver clears up the issue.

Enable logging by default to find causes of problem

When troubleshooting, edit /etc/nxserver/node.conf to enable logging to a specific log file, set the log level (NX_LOG_LEVEL=3) and to keep the log files (SESSION_LOG_CLEAN=0). Then look in ~/.nx of the user trying to log in to find out more when in trouble.

Missing fonts Cause Some Applications to Fail

When seeing "The connection with the remote server was shut down. Please check the state of your network connection.", it could be missing fonts.

As noted on http://openfacts.berlios.de/index-en.phtml?title=FreeNX_FAQ/Server, changing AGENT_EXTRA_OPTIONS to

DEFAULT_FONT_PATH=$(echo $(grep -v '^ *#' /etc/X11/xorg.conf | grep FontPath | awk '{print $2}' | sed -r "s/^[\"']|[\"']$//g") | sed 's/ /,/g')
AGENT_EXTRA_OPTIONS_X="-fp $DEFAULT_FONT_PATH"

in /etc/nxserver/node.conf will find all the FontPaths in xorg.conf .

Fixing garbled icewm under freenx

icewm / imlib based programs uses shared memory which apparently is not (fully?) supported or being misused by imlib(?). This results in a garbled screen. Add "-noshmem" to AGENT_EXTRA_OPTIONS_X in node.conf . See also http://lists.kde.org/?l=freenx-knx&m=112680038920473&w=2 .