NX

From Applied Optics Wiki
Jump to: navigation, search

Back to Linux How-tos


UPDATE 2015

scrap this advice below with NX and install X2GO at each end - same protocol and features and a damn sight easier...



Introduction

NX is a system by which you can log onto a PC running Linux over the network - either from elsewhere in the university, or from home, say. You are presented with your usual desktop, running inside a window on whatever PC you log on from. Graphics are compressed, so it works well even over normal domestic broadband. Crucially, you can "detach" a session, so that your programs (eg Matlab model) carry on running on the Linux PC. You can then re-establish a connection, from a different client if you like.

There are one or two little niggles with the programs (they are not entirely bug free). This wiki page will tell you how to install the NX client (the one on your win/lin/mac PC), work around the niggles, and install the NX server (installed on an AOG Linux PC).

Downloading and installing the NX client

You get the NX client software by downloading it from the NoMachine website. Click on the link for either NX Client for Windows, NX Client for Linux or NX Client for Mac OSX.

Extra Linux install notes

If you want the Linux client, then you probably want the "NX Client RPM for Linux - x86_64" (ie 64-bit) as most PCs now are 64-bit (and have 64-bit operating systems). If you need the 32-bit version, then choose "NX Client RPM for Linux - i386" instead.

Once it is downloaded, to install on SuSE, either find the RPM in the graphical file manager and click on it to install, or (in a terminal window) type:

sudo zypper install file.rpm

(where file.rpm is the name of the file, obviously).

Setting up the NX client

The first time you run the NX Client (type "nxclient" in Linux, or find it in the Applications menu like on Windows or Mac) it will take you through a setup procedure.

You will need a "key" - ask Steve or Roger to email you this.

Make sure you enable the "Show the Advanced Configuration dialog" checkbox, then click on the "Key" button. Delete the existing key, and cut and paste the key that you will have been emailed.

That's pretty much it. You need the IP address of the machine you want to NX into (one that is running an NX server) - for instance the PC we call "rug". You also need your usual username and password.

Niggles

Common to all architectures

The fact that this is common to all versions (win/lin/mac) suggests it's actually a problem with the server rather than the client.

When you close the NX Client, a process called "nxssh" keeps running on the client (until you power off your PC, or maybe log out). This prevents you re-opening a session (either a new one, or re-attaching to the one you detached from earlier). You have to manually "kill" this nxssh process.

On Windows use the Task Manager (ctrl-alt-delete). On Mac use the equivalent (alt-apple-escape? apple-ctrl-escape? Something like that). On Linux use:

pkill -KILL nxssh

Windows 64-bit specific niggles

If you find that things run cripplingly slowly, you need to do the following (thanks to Richard for the tip):

Go to the Advanced tab on the configure window, and tick the box that says, "Disable directdraw for screen rendering." This improves things massively.

Linux running KDE4 (eg SuSE Linux 11.2)

The cursor keys and those nearby (Page Up/Down/Home/End/Delete/Insert) are incorrectly mapped.

As a workaround, run the following when you first log in:

xmodmap -e "keycode 110=Home"
xmodmap -e "keycode 111=Up"
xmodmap -e "keycode 112=Page_Up"
xmodmap -e "keycode 113=Left Left"
xmodmap -e "keycode 114=Right"
xmodmap -e "keycode 115=End"
xmodmap -e "keycode 116=Down"
xmodmap -e "keycode 117=Page_Down"
xmodmap -e "keycode 118=Insert"
xmodmap -e "keycode 119=Delete"

I suggest you cut and paste the above into a little script called "fixkeys" or something.

Installing the NX server

sudo zypper install FreeNX
sudo nxsetup --install

When asked, "Do you want to use your own custom KeyPair?" answer yes.

cd /home/share/suse_hacks/nx/
sudo make