Stanford farmshare with NX: Unterschied zwischen den Versionen
Niki (Diskussion | Beiträge) |
Niki (Diskussion | Beiträge) |
||
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | + | '''Update''': NX (in particular FreeNX) is out-dated and very buggy. Successful reconnects are a matter of luck. | |
− | # Windows seamlessly integrate into client desktop | + | Found something much better: http://xpra.org/ |
− | # connection is persistent (when connection gets lost) | + | |
+ | Caveats: Little bit slower than NX (same as X forwarding). | ||
+ | |||
+ | I issued a ticket, everything needed for xpra should be installed on corn now. | ||
+ | |||
+ | = Server (corn, ...) = | ||
+ | |||
+ | == One-Time setup == | ||
+ | |||
+ | Cython is too old in raring. Solution: Download xpra-0.7.8.tar.bz2 | ||
+ | |||
+ | Then | ||
+ | tar xvjf xpra-0.7.8.tar.bz2 | ||
+ | cd xpra-0.7.8 | ||
+ | ./setup.py install --home=install | ||
+ | mkdir -p ~/lib ~/bin | ||
+ | cp -r install/bin/* ~/bin | ||
+ | cp -r install/lib/* ~/lib | ||
+ | |||
+ | Add to .cshrc: | ||
+ | setenv PYTHONPATH `ls -d ~/lib*/python` | ||
+ | set path=( $site_path ~/bin ~ ) | ||
+ | |||
+ | == Starting server == | ||
+ | |||
+ | Re-login, choose a random 16 integer (e.g. 138 - this will be the virtual screen) and: | ||
+ | |||
+ | screen | ||
+ | xpra start --no-daemon --socket-dir=/tmp/xpra :138 | ||
+ | |||
+ | * AFS does not allow the socket to be created, therefore socket directory is /tmp/xpra (or sth. else in tmp) | ||
+ | |||
+ | Press CTRL+ALT+N for a new screen window | ||
+ | |||
+ | Start the application you like (e.g. Cadence). | ||
+ | The display must be set to the above value: | ||
+ | |||
+ | setenv DISPLAY :138 | ||
+ | cd ~/EE315B/opus | ||
+ | virtuoso | ||
+ | |||
+ | Cadence starts now in a virtual screen. | ||
+ | SSH session can be closed with CTRL+ALT+D (detaches screen) and logout. | ||
+ | |||
+ | == Advanced way == | ||
+ | |||
+ | Alternatively to the previous section, the server can be started as follows. Mainly, this keeps AFS/Kerberos tokens for a long time so that the server can be used for a long period of time. | ||
+ | |||
+ | Login via ssh. Then: | ||
+ | pagsh | ||
+ | kinit | ||
+ | aklog | ||
+ | screen | ||
+ | keeptoken | ||
+ | source /tmp/.krbhold_nhammler.sh | ||
+ | |||
+ | Finally, I created a startup script for my application (Cadence) which is ~/EE315B/cad.sh: | ||
+ | #!/bin/tcsh | ||
+ | setenv EE315B_WORKDIR /afs/ir.stanford.edu/users/n/h/nhammler/EE315B | ||
+ | source /usr/class/ee315b/DOT.cshrc | ||
+ | cd $EE315B_WORKDIR/opus | ||
+ | echo Now starting virtuoso ... | ||
+ | virtuoso | ||
+ | |||
+ | Finally, the xpra server can be started: | ||
+ | |||
+ | xpra --socket-dir=/tmp/xpra --exit-with-children --no-daemon --start-child=~/EE315B/cad.sh start :138 | ||
+ | |||
+ | and screen detached via CTRL+D and SSH connection can be closed. | ||
+ | |||
+ | More details on keeping AFS credentials can be found on https://itservices.stanford.edu/service/afs/learningmore/tokens | ||
+ | |||
+ | = Client = | ||
+ | |||
+ | Need an X server (e.g. cygwin, xming, ...) | ||
+ | |||
+ | Virtual desktop can be forwarded to local screen by logging in via SSH (enable X forwarding) and: | ||
+ | |||
+ | xpra attach --socket-dir=/tmp/xpra :138 | ||
+ | |||
+ | Session, network etc. can be closed/killed now, it continues to run in background. | ||
+ | Just repeat the step to get session again. | ||
+ | |||
+ | The whole stuff can be automated using shell script on server side, batch script on client side and configure plink to use GSSAPI (incl. credential delegation). Cadence/session can then be started without entering a password! | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | <strike> | ||
+ | Yaaaay! Nomachine NX combines the advantages of both VNC and F forwarding. Summarized all Features of this approach: | ||
+ | |||
+ | # Windows seamlessly integrate into client desktop (as if Cadence, MATLAB etc. would run locally), similar as X forwarding | ||
+ | # connection is persistent (when connection gets lost), as for VNC | ||
+ | # No problems with clipboard | ||
+ | # Access to local devices (not tried) | ||
Awesome! | Awesome! | ||
Unfortunately the FreeNX package is outdated and buggy, but after 2 hours work I got it running | Unfortunately the FreeNX package is outdated and buggy, but after 2 hours work I got it running | ||
+ | |||
+ | [[Datei:cadence-with-nx.png|768px]] | ||
= Client side (Windows) = | = Client side (Windows) = | ||
Zeile 32: | Zeile 128: | ||
https://github.com/Fabianx/freenx/blob/master/freenx-utils/nxpublickey/nxssh-4US.c | https://github.com/Fabianx/freenx/blob/master/freenx-utils/nxpublickey/nxssh-4US.c | ||
+ | Everything should work. Cadence needs some fonts (too lazy to find out which exactly), so it's recommended to install these add-on packages from: https://www.nomachine.com/NX-3-5-0-Download-Package&Prod_Id=3835: | ||
+ | |||
+ | * nxfonts-100dpi-3.5.0-1.exe | ||
+ | * nxfonts-misc-3.5.0-1.exe | ||
+ | * nxfonts-others-3.5.0-1.exe | ||
+ | * nxfonts-75dpi-3.5.0-1.exe | ||
+ | |||
+ | |||
+ | Finally, save the complete config into an nxs file (e.g., can be found in %USERPROFILE%\.nx\*.nxs) and create a shortcut. This either starts Cadence as if it would be called locally (or resumes all windows if the connection was lost). | ||
+ | |||
+ | My example: | ||
+ | * General -> Desktop Unix/Custom -> Settings -> Run the following command: /afs/ir/users/n/h/nhammler/EE315B/cad.sh | ||
+ | * ~/EE315B/cad.sh contains: | ||
+ | |||
+ | #!/bin/tcsh | ||
+ | |||
+ | setenv EE315B_WORKDIR /afs/ir.stanford.edu/users/n/h/nhammler/EE315B | ||
+ | source /usr/class/ee315b/DOT.cshrc | ||
+ | cd $EE315B_WORKDIR/opus | ||
+ | |||
+ | echo Now starting virtuoso ... | ||
+ | |||
+ | virtuoso | ||
+ | '''Important''': Use a particular corn (e.g. corn05.stanford.edu) to avoid load balancing | ||
= Server side (corn) = | = Server side (corn) = | ||
Zeile 73: | Zeile 193: | ||
* http://mail.kde.org/pipermail/freenx-knx/2012-March/009541.html | * http://mail.kde.org/pipermail/freenx-knx/2012-March/009541.html | ||
* http://wiki.centos.org/HowTos/FreeNX | * http://wiki.centos.org/HowTos/FreeNX | ||
+ | </strike> |
Aktuelle Version vom 4. Jänner 2014, 00:08 Uhr
Update: NX (in particular FreeNX) is out-dated and very buggy. Successful reconnects are a matter of luck.
Found something much better: http://xpra.org/
Caveats: Little bit slower than NX (same as X forwarding).
I issued a ticket, everything needed for xpra should be installed on corn now.
Server (corn, ...)
One-Time setup
Cython is too old in raring. Solution: Download xpra-0.7.8.tar.bz2
Then
tar xvjf xpra-0.7.8.tar.bz2 cd xpra-0.7.8 ./setup.py install --home=install mkdir -p ~/lib ~/bin cp -r install/bin/* ~/bin cp -r install/lib/* ~/lib
Add to .cshrc:
setenv PYTHONPATH `ls -d ~/lib*/python` set path=( $site_path ~/bin ~ )
Starting server
Re-login, choose a random 16 integer (e.g. 138 - this will be the virtual screen) and:
screen xpra start --no-daemon --socket-dir=/tmp/xpra :138
- AFS does not allow the socket to be created, therefore socket directory is /tmp/xpra (or sth. else in tmp)
Press CTRL+ALT+N for a new screen window
Start the application you like (e.g. Cadence). The display must be set to the above value:
setenv DISPLAY :138 cd ~/EE315B/opus virtuoso
Cadence starts now in a virtual screen. SSH session can be closed with CTRL+ALT+D (detaches screen) and logout.
Advanced way
Alternatively to the previous section, the server can be started as follows. Mainly, this keeps AFS/Kerberos tokens for a long time so that the server can be used for a long period of time.
Login via ssh. Then:
pagsh kinit aklog screen keeptoken source /tmp/.krbhold_nhammler.sh
Finally, I created a startup script for my application (Cadence) which is ~/EE315B/cad.sh:
#!/bin/tcsh setenv EE315B_WORKDIR /afs/ir.stanford.edu/users/n/h/nhammler/EE315B source /usr/class/ee315b/DOT.cshrc cd $EE315B_WORKDIR/opus echo Now starting virtuoso ... virtuoso
Finally, the xpra server can be started:
xpra --socket-dir=/tmp/xpra --exit-with-children --no-daemon --start-child=~/EE315B/cad.sh start :138
and screen detached via CTRL+D and SSH connection can be closed.
More details on keeping AFS credentials can be found on https://itservices.stanford.edu/service/afs/learningmore/tokens
Client
Need an X server (e.g. cygwin, xming, ...)
Virtual desktop can be forwarded to local screen by logging in via SSH (enable X forwarding) and:
xpra attach --socket-dir=/tmp/xpra :138
Session, network etc. can be closed/killed now, it continues to run in background. Just repeat the step to get session again.
The whole stuff can be automated using shell script on server side, batch script on client side and configure plink to use GSSAPI (incl. credential delegation). Cadence/session can then be started without entering a password!
Yaaaay! Nomachine NX combines the advantages of both VNC and F forwarding. Summarized all Features of this approach:
- Windows seamlessly integrate into client desktop (as if Cadence, MATLAB etc. would run locally), similar as X forwarding
- connection is persistent (when connection gets lost), as for VNC
- No problems with clipboard
- Access to local devices (not tried)
Awesome! Unfortunately the FreeNX package is outdated and buggy, but after 2 hours work I got it running
Client side (Windows)
Download the old (3.5) version of the NX client for Windows: https://www.nomachine.com/NX-3-5-0-Download-Package&Prod_Id=3835
rename:
c:\Program Files (x86)\NX Client for Windows\bin\nxssh.exe
to
c:\Program Files (x86)\NX Client for Windows\bin\mxssh.exe
download nxssh.exe from http://prdownload.berlios.de/freenx/nxssh.exe and copy it to c:\Program Files (x86)\NX Client for Windows\bin\
Connection settings:
Server: @corn07.stanford.edu Port: 22 Desktop: Unix, Custom Login: nhammler@U:/afs/ir/users/n/h/nhammler/NX4U/bin/nxserver-usermode Password: [SUNET password]
- The "@" in front of the host name activates the nxssh wrapper (executes FreeNX usermode)
- The "U:" after the username executes usermode nxserver
- The path afterwards points to the nxserver-usermode binary
See source code: https://github.com/Fabianx/freenx/blob/master/freenx-utils/nxpublickey/nxssh-4US.c
Everything should work. Cadence needs some fonts (too lazy to find out which exactly), so it's recommended to install these add-on packages from: https://www.nomachine.com/NX-3-5-0-Download-Package&Prod_Id=3835:
- nxfonts-100dpi-3.5.0-1.exe
- nxfonts-misc-3.5.0-1.exe
- nxfonts-others-3.5.0-1.exe
- nxfonts-75dpi-3.5.0-1.exe
Finally, save the complete config into an nxs file (e.g., can be found in %USERPROFILE%\.nx\*.nxs) and create a shortcut. This either starts Cadence as if it would be called locally (or resumes all windows if the connection was lost).
My example:
- General -> Desktop Unix/Custom -> Settings -> Run the following command: /afs/ir/users/n/h/nhammler/EE315B/cad.sh
- ~/EE315B/cad.sh contains:
#!/bin/tcsh setenv EE315B_WORKDIR /afs/ir.stanford.edu/users/n/h/nhammler/EE315B source /usr/class/ee315b/DOT.cshrc cd $EE315B_WORKDIR/opus echo Now starting virtuoso ... virtuoso
Important: Use a particular corn (e.g. corn05.stanford.edu) to avoid load balancing
Server side (corn)
First steps based on http://openfacts2.berlios.de/wikien/index.php/BerliosProject:FreeNX_-_Howto
- Download NX4U (http://sourceforge.net/projects/freenx.berlios/files/)
- untar to ~/NX4U
- edit NX4U/bin/nxloadconfig:
NX_DIR=$HOME/NX4U
- edit etc/node.conf:
ENABLE_USERMODE_AUTHENTICATION="1" ENABLE_PASSDB_AUTHENTICATION="0" ENABLE_SSH_AUTHENTICATION="0" COMMAND_MD5SUM="md5sum"
The last line is the most important one; it causes nxserver to fail without any useful messages. Hints found in: http://mail.kde.org/pipermail/freenx-knx/2012-March/009541.html
- install libXpm libraries:
corn is a 64 bit system but nx requires the 32 bit version of this library. Download libxpm4_3.5.10-1_i386.deb from: http://packages.ubuntu.com/de/raring/i386/libxpm4/download
and copy (with Midnight Commander - can open deb files) CONTENTS/usr/lib/i386-linux-gnu/*.* to NX4U/lib
Links
- http://openfacts2.berlios.de/wikien/index.php/BerliosProject:FreeNX_-_Howto
- http://openfacts2.berlios.de/wikien/index.php/BerliosProject:FreeNX_-_FAQ/Server
- http://blog.felipe-alfaro.com/2009/01/18/freenx-usermode-authentication-and-mac-os-x/
- http://mail.kde.org/pipermail/freenx-knx/2008-August/007324.html
- http://www.rrzn.uni-hannover.de/anl-nx-client.html
- http://www.rrzn.uni-hannover.de/anl-nx-linserv.html
- http://www-flc.desy.de/flc/flcwiki/J%C3%B6rgenSamson/NXClientUsermode
- http://mail.kde.org/pipermail/freenx-knx/2012-March/009541.html
- http://wiki.centos.org/HowTos/FreeNX