X-Win 32
Version | 9.4 (6.1 no longer licensed as of 2/2008) |
---|---|
Download | OIT |
Cost | Free |
Manufacturer | StarNet |
Pundit Updated | 8/3/2009 |
X-Win 32 is a program that will allow you to receive and display X-Windows information from other computers. It is especially useful for doing work from your dorm room (or Krzyzewskiville) when the program you need to run lives on OIT's cluster system.
IMPORTANT NOTE: use version 9.4. The license should be floating node.
Contents
Requirements
You must be using a Windows-based PC. You will also need some form of terminal program (for example, PuTTY, SSH Secure Shell, or FSecure).
Configuration and Use
As of Spring, 2008, only Version 9.X is available and licensed for Duke students from the OIT site. All previous configurations for X-Win have thus been removed from this site. Also, while there are several different ways of using X-Win to connect, the method given below is useful in that it will not only work on campus but also over internet connections not at Duke. It is therefore the configuration recommended to Pratt students. Note, however, that off-campus students will experience a slower connection than those on-campus.
To begin, you should download the program from the OIT site and install.
The first time you run it, the program will "Welcome" you. As nice a thought as that is, go ahead and select "Don't show this again" and hit the close button. Then, you will need to enter the most current license key, which is included in the text file Key.rtf in the download.
- If X-Win does ask for this, you will be entering a Floating Node license.
- If X-Win does not ask for this itself, it is likely using an older license. Go to the X-Win icon in the lower right of the task bar, right-click, go to Support, and then Licenses. Click the Add button, and when asked, copy and paste the text from the Key.rtf file into the window. When you get back to the License Monitor, select the license that is in use and it should state that the license is good for a while. Then close that window.
Once the license is in, you will generally want to:
- Open X-Win32.
- Cancel out of the Welcome screen if you didn't banish it earlier.
- Open a terminal window using PuTTY, SSH Secure Shell or FSecure. For the host, choose one of the machines you added to the security list in the step above.
- If you are using PuTTY, make sure that you checked the Connection->SSH->X11Enable X11 forwarding or Connection->SSH->Tunnels Enable X11 forwarding box before connecting. If you did, you do not have to use the setenv command to set the DISPLAY environment.
- If you are using a terminal program that does not allow automatic port forwarding, once you are connected in the terminal window, type setenv DISPLAY $REMOTEHOST\:0.0 - this should tell the oit computer you are on to send information to your computer. NOTE this step will not work correctly if you are using a router. See the next section for information on that!
- See if things are working by typing xterm (xterm opens a terminal window - it opens fast and you can close it once it works)
This version of X-Win defaults to allowing connections from all computers. This may or may not be a good thing. If you would like to restrict your screen to "trusted" computers only, right-click the X-Win icon and select X-Config. Go to security and choose to Allow by Address "Only allow these host addresses." You will then need to add the addresses for those machines you will allow to send graphics to your screen (for example, hudson11.oit.duke.edu
).
X-Win 32 with Routers
If you are using a router, your computer is likely receiving an address from that router. The port-forwarding method above will work with a router. If you are using PuTTY or FSecure or SSH you should be all set, even with a router.
If, however, you are using a terminal program that does not allow forwarding and need to use the setenv method, note that the REMOTEHOST above will actually be the router and not your computer. And unless your router has a screen (and, really, even then), sending graphics to your router will not help. So you need to tell your router to forward all the graphical information to your particular address. Which means the following:
- Figure out your local machine's address and the router address. The easiest way to do this is:
- Go to Start->Run
- Type cmd in the Run window
- Type ipconfig in the command window
- The IP Address is your local machine's address
- The Default Gateway is your router's address as seen from your computer
- Figure out the administrative login and password for your router. The address will generally be something like 192.168.0.1 or 192.168.1.1. The username and password depends on the manufacturer. It's usually something cute like nothing for the login name and admin for the password. Unless you changed it - then you are on your own.
- Figure out how to forward the contents of port 6000 to your local machine address as seen from your router (probably the 192.168.something.something that showed up as the IP Address above).
- Follow the steps in Configuration and Use II above.
Note that some routers will release their addresses, especially if the power goes out or you reset the router. Your computer may not always get the same address from the router, so if you had X-Win 32 working once and now it doesn't, do the Start->Run->cmd->ipconfig trick and make sure you are forwarding port 6000 to the correct machine.
Macintosh Users
X-Win 32 does not work on Macs - use the X11R6 terminal program instead.
Troubleshooting
Display 1 or higher, instead of 0, issue
Still working on this one. For some people, the following works:
- Start X-Win 32. Confirm for yourself that it's still saying "Display 1" or something larger by hovering over the icon at lower right (if it's 0 - problem solved!)
- ctrl-alt-delete, and pull up the Task List and then Processes
- Right-click the xwin process, and end process tree
- Roll over the X-Win icon at lower right to make it disappear
- Start X-Win 32. Hopefully, it is Display 0 now.
If not, try this:
- Start X-Win 32. Confirm for yourself that it's still saying "Display 1" or something larger by hovering over the icon at lower right (if it's 0 - problem solved!)
- ctrl-alt-delete, and pull up the Task List and then Processes
- Be careful at this point not to roll over the X-Win icon at lower right
- Re-start x-win 32. Now roll over the X-Win icons. One should go away, and the other will be Display 2. Possibly even 3.
- Shut down and re-start your computer
- Once re-started, start x-win while simultaneously thinking happy thoughts...
If worse comes to, you can work in a "single window" environment:
- Start X-Win 32.
- Right-click the X-Win icon and go to "X-Config"
- In "Window," select "Single Window" - then at the bottom of X-Config, Apply and OK
- Right-click the X-Win icon and exit X-Win
- Start X-Win 32 - there will be a big gray window into which X-Win will place graphics from the other computer.
xterm works; MATLAB crashes
Sometimes, MATLAB needs a buddy, apparently... If xterm works but MATLAB crashes the X11 connection-
- Restart X-Win 32; MATLAB probably took it out when it crashed
- Type
xterm &
to get an xterm running. Do not close it. - Type
matlab &
. Secure that its friend xterm will be along for the ride, MATLAB should now work
152.16 Only
If X-Win reports that it can only accept connections from 152.16, you need to use the other license value in the license file.
- Open X-Win
- Open xconfig (right-click X icon and select xconfig)
- Select the license tab
- If you still have the downloaded zip file from OIT, open it and open the license file. If not, download it as linked above and...open the license file. Use the 152.3 license
- Apply and hit OK
- Close X-Win by right-clicking the X icon and selecting close
- Restart X-Win
Firewalls and Routers
If you are totally sure you did everything correctly, X-Win 32 is running, X-Config has the OIT machine you connected to on its security list, you are not on a router (or if you are you have compensated for it), and you are sure you issued the setenv command correctly, then you likely have a firewall issue and need to figure out how to allow incoming traffic on port 6000 through.
Here are the instructions on how to do this if you have Trend Micro PC-cillin Internet Security. You may have to modify this process slightly depending on your firewall software.
- Open the main virus protection console
- Click the "Network Security" tab
- Select which profile you are using and then click "Edit"
- Click the "Exceptions" tab
- Click "Add"
- Select "incoming" as your connection and "allow" as your action
- Select "Specified Port(s)" and Type "6000"
- Click "Okay"
For the Windows Firewall, follow basically the same process AND make sure the "Block all connections" or "Ignore Exceptions" or something with that kind of wording is not checked.
Problems with the setenv command
These will only happen if you are not using port forwarding:
REMOTEHOST: Undefined variable.
If you type the setenv DISPLAY $REMOTEHOST\:0.0
line and the computer replies
REMOTEHOST: Undefined variable.
you will need to connect to a different OIT machine. You probably logged onto teer1.oit.duke.edu.
Can't open display
If the computer replies
Can't open display: blah.blah.duke.edu :0.0
note the extra space between the edu and the :0.0; that means you put a space after the slash during setenv (i.e. you said $REMOTEHOST\ :0.0 instead of $REMOTEHOST\:0.0)
Questions
Post your questions by editing the discussion page of this article. Edit the page, then scroll to the bottom and add a question by putting in the characters *{{Q}}, followed by your question and finally your signature (with four tildes, i.e. ~~~~). Using the {{Q}} will automatically put the page in the category of pages with questions - other editors hoping to help out can then go to that category page to see where the questions are. See the page for Template:Q for details and examples.