Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
emulab
emulab-devel
Commits
dc30a578
Commit
dc30a578
authored
Jul 20, 2004
by
Russ Fish
Browse files
Refine the Windows install directions; move two sections earlier; minor additions.
parent
8f3b3852
Changes
1
Hide whitespace changes
Inline
Side-by-side
www/hyperviewer/index.html
View file @
dc30a578
...
...
@@ -10,6 +10,13 @@
<h3>
Table of Contents:
</h3>
<ol>
<li><a
href=
"#intro"
>
Introduction
</a></li>
<li><a
href=
"file:///.a/nfast/users/fish/flux/testbed/www/hyperviewer/index.html#platforms"
>
Supported
platforms, release notes
<br>
</a></li>
<li><a
href=
"file:///.a/nfast/users/fish/flux/testbed/www/hyperviewer/index.html#dependencies"
>
Package
dependencies
</a></li>
<li><a
href=
"#install"
>
Installing hypview
</a></li>
<ol
style=
"list-style-type: lower-alpha;"
>
<li><a
href=
"#getting_unix"
>
Getting and unpacking the Emulab
...
...
@@ -24,8 +31,6 @@ program from sources (Unix/Linux)</a></li>
<li><a
href=
"#building_windows"
>
Building the Emulab HyperViewer
client
program from sources (Windows)
</a></li>
<li><a
href=
"#platforms"
>
Supported platforms
</a></li>
<li><a
href=
"#dependencies"
>
Package dependencies
</a></li>
</ol>
<li><a
href=
"#run"
>
Running hypview as a script
</a></li>
<li><a
href=
"#gui"
>
The hypview Graphical User Interface
</a></li>
...
...
@@ -40,6 +45,25 @@ topologies for Emulab experiments. In detail, we have wrapped the
HyperViewer in a wxGlade Python graphical user
interface, and connected it to the Emulab database via XML-RPC over SSH.
<br>
<br>
<span
style=
"font-style: italic; font-weight: bold;"
>
hypview
</span>
supports interactive three-dimensional exploration of experiment
network topologies, and scales to very large topologies.
Here is
a before-and-after view of a moderate-sized network with 541
nodes.
First is the static 2D Graphviz view, using an algorithm
which is perfectly adequate for smaller topologies.
Then a
snapshot
from hypview of the same topology, where more detail is apparent.
Interactively, it is easy to reach out from the high-detail area in the
center of the sphere to look more closely into the compressed areas
near the center of the sphere.
<br>
<br>
<div
style=
"margin-left: 40px;"
><a
href=
"graphviz_biglan.jpg"
><img
style=
"border: 2px solid ; width: 320px; height: 348px;"
alt=
""
title=
"Click for full-size image."
src=
"graphviz_biglan_small.jpg"
></a><a
href=
"graphviz_biglan.jpg"
>
</a><a
href=
"gui_top2.jpg"
><img
align=
"top"
style=
"border: 2px solid ; width: 380px; height: 326px;"
alt=
""
src=
"gui_top_small2.jpg"
title=
"Click for full-size image."
></a></div>
<br>
The
<a
href=
"http://graphics.stanford.edu/papers/h3cga/"
>
HyperViewer
</a>
software was developed by
<a
href=
"http://graphics.stanford.edu/%7Emunzner"
>
Tamara Munzner at
...
...
@@ -53,7 +77,9 @@ library</a> which calls OpenGL for drawing. See her short <a
further description, particularly
<a
href=
"http://graphics.stanford.edu/papers/h3cga/html/cga.html#hypmotionfig"
>
Figure
3
</a>
which shows Hyperbolic motion over a 30,000 element
Unix file system.
<br>
Unix file system.
The drawing and picking algorithms are designed
to produce a constant frame-rate by doing the most visible features
first, and hence scales to 100,000-node graphs.
<br>
<a
href=
"http://graphics.stanford.edu/papers/h3cga/html/cga.html#hypmotionfig"
><img
style=
"border: 2px solid ; width: 149px; height: 150px;"
...
...
@@ -72,6 +98,126 @@ tilings</a>.<br>
title=
"Click for full-size image"
src=
"LW436-thumb.jpg"
></a><br>
<br>
<hr
style=
"width: 100%; height: 2px;"
><br>
<h3><a
name=
"platforms"
></a>
Supported platforms, release notes:
</h3>
<ul>
<li><b>
FreeBSD
</b>
- The first target system.
</li>
</ul>
<ul>
<ul>
<li>
There is a bug in the
<span
style=
"font-weight: bold;"
>
ATI
Radeon
</span>
DRI graphics card driver which "tatters" bitmap
text so labels on nodes in the HyperViewer are unreadable.
</li>
<ul>
<li>
A temporary work-around which doesn't require restarting X is
to rename
<span
style=
"font-weight: bold;"
>
/dev/dri/card0
</span>
or
change its mode to prevent access.
This will still throw an X
"BadMatch" error_code 8 request_code 156 minor_code 5 when used
remotely, though.
</li>
<li>
A better work-around is to comment out the
<span
style=
"font-weight: bold;"
>
Load "dri"
</span>
line in the
<span
style=
"font-weight: bold;"
>
/etc/XF86Config
</span>
file and restart
X.
You will get a normal warning message when starting up any
OpenGL program such as HyperViewer:
<br>
</li>
</ul>
</ul>
</ul>
<pre
style=
"margin-left: 160px;"
>
Xlib:
extension "XFree86-DRI" missing on display ":0.0".
</pre>
<ul>
<ul>
<li>
The
<span
style=
"font-weight: bold;"
>
nVidia
</span>
OpenGL
drivers on the FreeBSD 4.10 machines have another problem.
Mike
encountered an X 'GLXBadDrawable' error_code 160 request_code 144
minor_code 11.
As a result, our current 4.10 build uses the Mesa
OpenGL with no DRI, since DRI isn't supported on the nVidia
cards.
You will get a normal warning message:
<br>
<pre>
Xlib:
extension "XFree86-DRI" missing on display ":0.0".
</pre>
</li>
</ul>
<li><b>
Windows
</b>
- Initial version.
</li>
</ul>
<ul>
<ul>
<li>
Picking of graph nodes is not working yet due to a PyOpenGL
bug.
However, you can pick graph edges. which is equivalent to
picking the node the edge leads to.
</li>
</ul>
</ul>
<ul>
<ul>
<li>
It busy-loops too much on Windows.
I'll try to tame that.
<br>
</li>
</ul>
</ul>
<ul>
<ul>
<li>
You connect to XMLRPC on boss.emulab.net via SSH to retrieve
experiments from the database.
On Windows, you can use either the
<a
href=
"http://www.chiark.greenend.org.uk/%7Esgtatham/putty/"
>
PuTTY
</a>
"plink" command line program or the
<a
href=
"http://www.cygwin.com/"
>
Cygwin
</a>
OpenSSH "ssh" program.
<br>
</li>
</ul>
</ul>
<div
style=
"margin-left: 80px;"
>
In either case, the proper directory
has to be on your PATH environment variable, and you have to have an
SSH key generated and loaded:
</div>
<ul>
<ul>
<ul>
<li>
For PuTTY: generate a dsa key for SSH 2 in putty-keygen; load
it into pageant; and paste the ssh-dss string into Insert Key under
Edit SSH Keys on your "My Emulab" page after logging in at
<a
href=
"https://www.emulab.net"
>
https://www.emulab.net
</a>
.
(PuTTY
includes a good online manual.)
</li>
</ul>
</ul>
</ul>
<ul>
<ul>
<ul>
<li>
For OpenSSH: use ssh-keygen if necessary; start an ssh-agent
and load the key with:
</li>
</ul>
</ul>
</ul>
<pre
style=
"margin-left: 160px;"
>
eval `ssh-agent -s`
<br>
ssh-add .ssh/id_dsa
<br></pre>
<div
style=
"margin-left: 120px;"
>
Paste the id_dsa.pub into the Emulab
page as above, and do the following once to get boss.emulab.net put
into your .ssh/known_hosts file:
<br>
</div>
<pre
style=
"margin-left: 160px;"
>
ssh boss.emulab.net
</pre>
<ul>
</ul>
<ul>
<li><b>
Linux
</b>
- Pretty much untested.
<br>
</li>
<ul>
<li>
Edit the GNUMakefile to select CPU=linux before building,
</li>
<li>
and also select the include of Makefile.linuxwxpy in
hypviewer/Makefile.main .
<br>
</li>
</ul>
</ul>
<ul>
<li>
Please send problem reports to
<a
href=
"mailto:fish@cs.utah.edu"
>
Russ
Fish
</a>
.
<br>
</li>
</ul>
<h4><a
name=
"dependencies"
></a>
Package dependencies:
</h4>
<div
style=
"margin-left: 40px;"
>
It needs wxPython, which on Unix
requires Python 2.3, wx_GTK2, GTK-x11, Pango, and glib, as well as glX
and
OpenGL.
On Windows, the distributions of Python, wxPython, and
PyOpenGL are
self-contained.
<br>
<br>
Plus wxGlade on top of wxPython if you want to modify the GUI design.
<br>
</div>
<br>
<hr
style=
"width: 100%; height: 2px;"
>
<div
style=
"margin-left: 40px;"
></div>
<br>
<h3><a
name=
"install"
></a>
Installing hypview
</h3>
<h4><a
name=
"getting_unix"
></a>
Getting and unpacking the Emulab
HyperViewer
...
...
@@ -142,41 +288,60 @@ HyperViewer
client program (Windows):
<br>
</h4>
<ul>
<li>
You first need to download and install the Windows versions of
<li>
You first need Python, wxWindows, and PyOpenGL.
The easy
way is to get it all packaged together in
<a
href=
"http://www.emulab.net/downloads/Python22-wxWindows-PyOpenGL.exe"
>
one
exe file
</a>
, and unpack to the location of your choice.
The
download size is 25 meg and installed it becomes 56 meg.
The
default unpack location is C:\, in which case you can also unpack
<a
href=
"http://www.emulab.net/downloads/Python22-wxWindows-shortcuts.exe"
>
these
shortcuts
</a>
into your Start Menu/Programs folder for the effect of a
normal installation.
<br>
</li>
</ul>
<ul>
<li>
Another approach is to download and install the official Windows
versions of
the following :
</li>
<ul>
<li><a
href=
"http://www.python.org/ftp/python/2.2.3/Python-2.2.3.exe"
>
Python
2.2
</a>
,
<a
href=
"http://www.python.org/"
>
(Python home page)
</a><br>
2.2
</a>
,
<a
href=
"http://www.python.org/"
>
(Python home page)
</a>
, 8
-
>
30 meg, User or Admin install.
<br>
</li>
<li><a
href=
"http://prdownloads.sourceforge.net/wxpython/wxPythonWIN32-2.4.2.4u-Py22.exe"
>
wxWindows
2.4.2
</a>
,
<a
href=
"http://www.wxpython.org/"
>
(wxWindows home page)
</a><br>
2.4.2
</a>
,
<a
href=
"http://www.wxpython.org/"
>
(wxWindows home page)
</a>
,
8 -
>
21 meg, User or Admin install, requires reboot.
<br>
</li>
<li><a
href=
"http://prdownloads.sourceforge.net/pyopengl/PyOpenGL-2.0.0.44.win32-py2.2.exe?download"
>
PyOpenGL
2.0.0.44
</a>
,
<a
href=
"http://pyopengl.sourceforge.net/"
>
(PyOpenGL
home page)
</a></li>
home page)
</a>
, 1.5 -
>
5 meg, Admin install only.
<br>
</li>
</ul>
</ul>
<div
style=
"margin-left: 40px;"
>
Verify that it's all working by running
<ul>
<li>
Verify that it's all working by running
Start/Programs/wxPython 2.4/wxPython DEMO.
Click the [+] to open
the "Objects using an external library" branch, click wxGLCanvas, then
the Cube and/or Cone buttons on the Demo tab.
An OpenGL canvas
window should pop up.
Moving
<br>
</div>
window should pop up.
Clicking and moving the mouse in the canvas
rotates the object.
<br>
</li>
</ul>
<ul>
<li>
T
here is a self-extracting WinZip exe for
<a
<li>
For hyperviewer, t
here is a self-extracting WinZip exe for
<a
href=
"http://www.emulab.net/downloads/hyperviewer-Win32.exe"
>
Windows
2000 and XP
</a>
now.
There is a top-level hyperviewer directory in
the exe, so
2000 and XP
</a>
.
There is a top-level hyperviewer directory in
the exe, so
just unpack into the directory of your choice.
<br>
</li>
</ul>
<ul>
<li>
Test by running hypview.bat in the hyperviewer directory and
feeding it BigLan.hyp or ts600.hyp.
You can double-click it and
use the File/Open menu command, or in a command shell
, do this
:
<br>
use the File/Open menu command, or
do this
in a command shell:
<br>
<pre
style=
"margin-left: 40px;"
><big>
cd hyperviewer
</big></pre>
</li>
</ul>
...
...
@@ -226,10 +391,18 @@ included in the WinZip self-extracting exe file. You will need to
install Developer Studio 6 with Visual C++ and the Platform SDK (which
includes OpenGL.)
VC++ and OpenGL documentation is on the MSDN
library disks.
<ul>
<li>
Move the source files that are in the
<span
style=
"font-weight: bold;"
>
win32
</span>
subdirectory up into the main
directory, if that has not already been done.
These are the
-DWIN32 versions of the files generated by SWIG, and Python library
files that are missing from the Windows version of Python.
<br>
</li>
</ul>
<ul>
<li>
To rebuild the hypviewer C++ library and the _hv.dll that gets
loaded
into Python, open the hv.dsw workspace in Developer Studio and hit F7.
<br>
into Python, open the hv.dsw workspace in Developer Studio
,
and hit F7.
<br>
</li>
</ul>
<ul>
...
...
@@ -247,125 +420,9 @@ things. You can get it from <a
the ROADMAP file if you want to know more about internals.
</li>
</ul>
There are a couple of example files included:
<pre><big>
cd hyperviewer
<br>
hypview.bat BigLan.hyp
</big><big><br>
hypview.bat ts600.hyp
</big></pre>
<pre
style=
"margin-left: 80px;"
><big>
cd hyperviewer
<br>
hypview.bat BigLan.hyp
</big><big><br>
hypview.bat ts600.hyp
</big></pre>
<div
style=
"margin-left: 80px;"
>
</div>
<h4><a
name=
"platforms"
></a>
Supported platforms:
</h4>
<ul>
<li>
FreeBSD - The first target system.
</li>
</ul>
<ul>
<ul>
<li>
There is a bug in the
<span
style=
"font-weight: bold;"
>
ATI
Radeon
</span>
DRI graphics card driver which "tatters" bitmap
text so labels on nodes in the HyperViewer are unreadable.
</li>
<ul>
<li>
A temporary work-around which doesn't require restarting X is
to rename
<span
style=
"font-weight: bold;"
>
/dev/dri/card0
</span>
or
change its mode to prevent access.
This will still throw an X
"BadMatch" error_code 8 request_code 156 minor_code 5 when used
remotely, though.
</li>
<li>
A better work-around is to comment out the
<span
style=
"font-weight: bold;"
>
Load "dri"
</span>
line in the
<span
style=
"font-weight: bold;"
>
/etc/XF86Config
</span>
file and restart
X.
You will get a normal warning message when starting up any
OpenGL program such as HyperViewer:
<br>
</li>
</ul>
</ul>
</ul>
<pre
style=
"margin-left: 160px;"
>
Xlib:
extension "XFree86-DRI" missing on display ":0.0".
</pre>
<ul>
<ul>
<li>
The
<span
style=
"font-weight: bold;"
>
nVidia
</span>
OpenGL
drivers on the FreeBSD 4.10 machines have another problem.
Mike
encountered an X 'GLXBadDrawable' error_code 160 request_code 144
minor_code 11.
As a result, our current 4.10 build uses the Mesa
OpenGL with no DRI, since DRI isn't supported on the nVidia
cards.
You will get a normal warning message:
<br>
<pre>
Xlib:
extension "XFree86-DRI" missing on display ":0.0".
</pre>
</li>
</ul>
<li>
Windows - The initial version is out.
</li>
</ul>
<ul>
<ul>
<li>
Picking of graph nodes is not working yet due to a PyOpenGL
bug.
However, you can pick graph edges. which is equivalent to
picking the node the edge leads to.
</li>
</ul>
</ul>
<ul>
<ul>
<li>
It busy-loops too much on Windows.
I'll try to tame that.
<br>
</li>
</ul>
</ul>
<ul>
<ul>
<li>
You connect to XMLRPC on boss.emulab.net via SSH to retrieve
experiments from the database.
On Windows, you can use either the
<a
href=
"http://www.chiark.greenend.org.uk/%7Esgtatham/putty/"
>
PuTTY
</a>
"plink" command line program or the
<a
href=
"http://www.cygwin.com/"
>
Cygwin
</a>
OpenSSH "ssh" program.
<br>
</li>
</ul>
</ul>
<div
style=
"margin-left: 80px;"
>
In either case, the proper directory
has to be on your PATH environment variable, and you have to have an
SSH key generated and loaded:
</div>
<ul>
<ul>
<ul>
<li>
For PuTTY: generate a dsa key for SSH 2 in putty-keygen; load
it into pageant; and paste the ssh-dss string into Insert Key under
Edit SSH Keys on your "My Emulab" page after logging in at
<a
href=
"https://www.emulab.net"
>
https://www.emulab.net
</a>
.
(PuTTY
includes a good online manual.)
</li>
</ul>
</ul>
</ul>
<ul>
<ul>
<ul>
<li>
For OpenSSH: use ssh-keygen if necessary; start an ssh-agent
and load the key with:
</li>
</ul>
</ul>
</ul>
<pre
style=
"margin-left: 160px;"
>
eval `ssh-agent -s`
<br>
ssh-add .ssh/id_dsa
<br></pre>
<div
style=
"margin-left: 120px;"
>
Paste the id_dsa.pub into the Emulab
page as above, and do the following once to get boss.emulab.net put
into your .ssh/known_hosts file:
<br>
</div>
<pre
style=
"margin-left: 160px;"
>
ssh boss.emulab.net
</pre>
<ul>
</ul>
<ul>
<li>
Linux - Pretty much untested.
<br>
</li>
<ul>
<li>
Edit the GNUMakefile to select CPU=linux before building,
</li>
<li>
and also select the include of Makefile.linuxwxpy in
hypviewer/Makefile.main .
<br>
</li>
</ul>
</ul>
<ul>
<li>
Please send problem reports to
<a
href=
"mailto:fish@cs.utah.edu"
>
Russ
Fish
</a>
.
<br>
</li>
</ul>
<h4><a
name=
"dependencies"
></a>
Package dependencies:
</h4>
<div
style=
"margin-left: 40px;"
>
It needs wxPython, which on Unix
requires Python 2.3, wx_GTK2, GTK-x11, Pango, and glib, as well as glX
and
OpenGL.
On Windows, Python, wxPython, and PyOpenGL are
self-contained.
<br>
<br>
Plus wxGlade on top if you want to modify the GUI.
<br>
</div>
<br>
<hr
style=
"width: 100%; height: 2px;"
>
<div
style=
"margin-left: 40px;"
></div>
<h3><a
name=
"run"
></a>
Running hypview as a script
<br>
...
...
@@ -373,8 +430,9 @@ Plus wxGlade on top if you want to modify the GUI.<br>
Running hypview with any dash argument such as -h produces the
following usage
summary:
<br>
(Use the hypview script on Unix/Linux or Cygwin/BASH;
hypview.bat
on Windows.)
<br>
(Use the
<span
style=
"font-weight: bold;"
>
hypview
</span>
script on
Unix/Linux or Cygwin/BASH;
<span
style=
"font-weight: bold;"
>
hypview.bat
</span>
in Windows cmd shells.)
<br>
<pre
style=
"margin-left: 40px;"
><big>
Hyperviewer usage:
</big></pre>
<pre
style=
"margin-left: 40px;"
><big>
No args - Starts up the GUI.
Use the File/Open menu item to read a topology.
</big></pre>
<pre
style=
"margin-left: 40px;"
><big>
One arg - A .hyp file name.
Read it in and start the GUI, e.g.:
</big></pre>
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment