diff --git a/NOX_INSTALL b/NOX_INSTALL
deleted file mode 100644
index cae53f87d81f66830fa00d6cd84b71b451829372..0000000000000000000000000000000000000000
--- a/NOX_INSTALL
+++ /dev/null
@@ -1,25 +0,0 @@
-NOX Install on deb testing:
-
-Install deps:
- sudo apt-get install autoconf automake g++ libtool python  python-twisted swig  libxerces-c2-dev libssl-dev make python-dev libboost-filesystem1.38-dev libboost1.38-dev libboost-test1.38-dev
-
-Get NOX repo:
- git clone git://noxrepo.org/nox
- cd nox
-
-If you don't need all the libraries, just the coreapps (faster build):
- ./boot.sh --apps-core
-If you do need all the libraries:
- ./boot.sh
-
-Build
- mkdir build/
- cd build/
- ../configure --with-python=yes
-
-Run w/pyswitch:
- cd src
- ./nox_core -i ptcp: pyswitch
-
-Kill (not name to kill is different than name to load):
- sudo killall lt-nox_core
\ No newline at end of file
diff --git a/custom/README b/custom/README
index a7e8b517c48e46ea23c8d75909ebdb4d1e253d2c..68f0ce6cf7a3b82f08dff8eb8745ff95516d320e 100644
--- a/custom/README
+++ b/custom/README
@@ -2,8 +2,5 @@ This directory should hold configuration files for custom mininets.
 
 See custom_example.py, which loads the default minimal topology.  The advantage of defining a mininet in a separate file is that you then use the --custom option in mn to run the CLI or specific tests with it.
 
-Each custom file must define a Mininet object for an 'mn' variable.
-
-To start up a mininet with this custom topology, do:
-  sudo mn --custom custom_example.py
-
+To start up a mininet with the provided custom topology, do:
+  sudo mn --custom custom_example.py --topo mytopo
diff --git a/custom/custom_example.py b/custom/topo_2sw_2host.py
similarity index 100%
rename from custom/custom_example.py
rename to custom/topo_2sw_2host.py
diff --git a/mininet/node.py b/mininet/node.py
index e867882455f7f5aebf2c5f7d07da28a0a8be5efd..2d80a1721c3a8eece09fc4b610c31d04b0f60c6a 100644
--- a/mininet/node.py
+++ b/mininet/node.py
@@ -462,9 +462,11 @@ def __init__( self, name, inNamespace=False, noxArgs=None, **kwargs ):
             noxArgs = [ noxArgs ]
         if not noxArgs:
             noxArgs = [ 'packetdump' ]
+ 
+        if 'NOX_CORE_DIR' not in os.environ:
+            exit( 'exiting; please set missing NOX_CORE_DIR env var' )       
         noxCoreDir = os.environ[ 'NOX_CORE_DIR' ]
-        if not noxCoreDir:
-            raise Exception( 'please set NOX_CORE_DIR env var\n' )
+
         Controller.__init__( self, name,
             controller=noxCoreDir + '/nox_core',
             cargs='--libdir=/usr/local/lib -v -i ptcp: ' +
diff --git a/util/deb/install_kernel.sh b/util/deb/install_kernel.sh
new file mode 100755
index 0000000000000000000000000000000000000000..41e931281e58e9654cf24f1ce549c09ba83bc1b7
--- /dev/null
+++ b/util/deb/install_kernel.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+#Brandon Heller (brandonh@stanford.edu)
+#Install custom kernel on Debian Lenny
+
+#The easy approach: download pre-built linux-image and linux-headers packages:
+wget http://www.stanford.edu/~brandonh/linux-headers-2.6.29.6-custom_2.6.29.6-custom-10.00.Custom_i386.deb
+wget http://www.stanford.edu/~brandonh/linux-image-2.6.29.6-custom_2.6.29.6-custom-10.00.Custom_i386.deb
+
+#Install custom linux headers and image:
+sudo dpkg -i linux-image-2.6.29.6-custom_2.6.29.6-custom-10.00.Custom_i386.deb linux-headers-2.6.29.6-custom_2.6.29.6-custom-10.00.Custom_i386.deb
+
+#The default should be the new kernel. Otherwise, you may need to modify /boot/grub/menu.lst to set the default to the entry corresponding to the kernel you just installed.
+
+#Reduce boot screen opt-out delay. Modify timeout in /boot/grub/menu.lst to 1:
+sudo sed -i -e 's/^timeout.*$/timeout         1/' /boot/grub/menu.lst"
\ No newline at end of file
diff --git a/util/deb/install_kernel_2.sh b/util/deb/install_kernel_2.sh
new file mode 100755
index 0000000000000000000000000000000000000000..6bd057652f42826d6ccdbe398261331fe88f9432
--- /dev/null
+++ b/util/deb/install_kernel_2.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+#Brandon Heller (brandonh@stanford.edu)
+#Clean up custom kernel on Debian Lenny (part 2)
+
+#To save disk space, remove previous kernel
+sudo apt-get -y remove linux-image-2.6.26-2-686
+
+#Also remove downloaded packages:
+rm linux-headers-2.6.29.6-custom_2.6.29.6-custom-10.00.Custom_i386.deb linux-image-2.6.29.6-custom_2.6.29.6-custom-10.00.Custom_i386.deb
\ No newline at end of file
diff --git a/util/deb/install_mn_deps.sh b/util/deb/install_mn_deps.sh
new file mode 100755
index 0000000000000000000000000000000000000000..834044fa85d6e902b725939c14f9b4083ac9a625
--- /dev/null
+++ b/util/deb/install_mn_deps.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+#Brandon Heller (brandonh@stanford.edu)
+#Install Mininet deps on Debian Lenny
+
+#Install dependencies:
+sudo apt-get install -y screen psmisc xterm ssh iperf iproute python-setuptools
+
+#Get the source, with the customtopos branch (for now, this should be removed shortly):
+git clone git@yuba.stanford.edu:mininet.git
+cd ~/mininet
+git checkout -b customtopos origin/customtopos
+
+#Add sysctl parameters as noted in the INSTALL file to increase kernel limits to support larger setups:
+sudo su -c "cat /home/mininet/mininet/sysctl_addon >> /etc/sysctl.conf"
+
+#Load sysctl settings:
+sudo sysctl -p
+
+#Reboot to ensure you start with higher limits and verify that the IPv6 module is not loaded, plus there's an unknown issue where you need to reboot before the kernel datapath will get added (sorry).
+sudo reboot
+
diff --git a/util/deb/install_nox.sh b/util/deb/install_nox.sh
new file mode 100755
index 0000000000000000000000000000000000000000..b1ef8575399ba3cbe60b96b1c7a9bfa147d275e6
--- /dev/null
+++ b/util/deb/install_nox.sh
@@ -0,0 +1,22 @@
+#!/bin/sh
+#Brandon Heller (brandonh@stanford.edu)
+#Install NOX on Debian Lenny
+
+#Install NOX deps:
+sudo apt-get -y install autoconf automake g++ libtool python python-twisted swig libboost1.35-dev libxerces-c2-dev libssl-dev make
+
+#Install NOX optional deps:
+sudo apt-get install -y libsqlite3-dev python-simplejson
+
+#Install NOX:
+git clone git://noxrepo.org/noxcore
+cd noxcore
+./boot.sh
+mkdir build
+cd build
+../configure --with-python=yes
+make
+#make check
+
+#Add NOX_CORE_DIR env var;; modify ~/.bashrc:
+sudo sed -i -e 's|# for examples$|&\ncomplete -cf sudo|' ~/.bashrc
\ No newline at end of file
diff --git a/util/deb/install_of.sh b/util/deb/install_of.sh
new file mode 100755
index 0000000000000000000000000000000000000000..81d2f3c40e37d45dc3a6f5a609013fbbcefb65b6
--- /dev/null
+++ b/util/deb/install_of.sh
@@ -0,0 +1,47 @@
+#!/bin/sh
+#Brandon Heller (brandonh@stanford.edu)
+#Install OpenFlow and tools on Debian Lenny
+
+#The following will cause a full OF install, with both user and kernel switch, dissector, tests, and everything.
+
+#The instructions below are an abbreviated version from [[http://www.openflowswitch.org/wk/index.php/Debian_Install][ !OpenFlow Debian install instructions]], modified to use Debian Lenny rather than unstable.
+
+sudo apt-get install -y git-core automake m4 pkg-config libtool make libc6-dev autoconf autotools-dev gcc
+git clone git://openflowswitch.org/openflow.git
+cd ~/openflow
+
+#Switch to a temporary branch that should work on Debian Lenny.
+git checkout -b debianfix origin/debianfix
+
+#Install deps:
+sudo regress/scripts/install_deps.pl
+
+#Resume the install:
+git fetch
+git checkout -b release/0.8.9 origin/release/0.8.9
+./boot.sh
+./configure --with-l26=/lib/modules/`uname -r`
+make
+sudo make install
+
+#Modify /etc/rc.local to auto-add the ofdatapath kmod on boot, as well as auto-add the tun module (used by user-space datapath to create a local switch port):
+sudo sed -i -e 's|# By default this script does nothing.|&\nmodprobe tun\ninsmod /home/mininet/openflow/datapath/linux-2.6/ofdatapath.ko|' /etc/rc.local
+
+#Run both commands now, before trying mininet:
+sudo modprobe tun
+sudo insmod /home/mininet/openflow/datapath/linux-2.6/ofdatapath.ko
+
+#Install dissector:
+sudo apt-get install -y wireshark libgtk2.0-dev
+cd ~/openflow/utilities/wireshark_dissectors/openflow
+make
+sudo make install
+
+#Remove avahi-daemon, which may cause unwanted discovery packets to be sent during tests, near link status changes:
+sudo apt-get remove -y avahi-daemon
+
+#Disable IPv6.  Add to /etc/modprobe.d/blacklist.conf:
+sudo sh -c "echo -e 'blacklist net-pf-10\nblacklist ipv6' > /etc/modprobe.d/blacklist.conf"
+
+#Enable command auto completion using sudo; modify ~/.bashrc:
+sudo sed -i -e 's|# for examples$|&\ncomplete -cf sudo|' ~/.bashrc
diff --git a/util/deb/install_ovs.sh b/util/deb/install_ovs.sh
new file mode 100755
index 0000000000000000000000000000000000000000..a9ea88d503d53630789de349a36bf111d3cf2bcc
--- /dev/null
+++ b/util/deb/install_ovs.sh
@@ -0,0 +1,32 @@
+#!/bin/sh
+#Brandon Heller (brandonh@stanford.edu)
+#Install OVS on Debian Lenny
+
+#The following files were useful for the install process:
+#OVS INSTALL file:
+#http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=blob_plain;f=INSTALL.Linux;hb=HEAD
+
+#OVS OpenFlow INSTALL file:
+#http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=blob_plain;f=INSTALL.OpenFlow;hb=HEAD
+
+#OVS README file:
+#http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=blob_plain;f=README;hb=HEAD
+
+#Install Autoconf 2.63 from source (a more recent version than that in the Deb repositories is required).  This should be the only extra dependency.
+cd ~/
+wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.63.tar.bz2
+tar xjf autoconf-2.63.tar.bz2
+cd autoconf-2.63/
+./configure
+make
+sudo make install
+cd ~/
+rm -rf autoconf*
+
+#Install OVS:
+git clone git://openvswitch.org/openvswitch
+cd openvswitch
+./boot.sh
+./configure --with-l26=/lib/modules/`uname -r`/build
+make
+sudo make install
\ No newline at end of file
diff --git a/util/deb/install_tools.sh b/util/deb/install_tools.sh
new file mode 100755
index 0000000000000000000000000000000000000000..07d3740759dd9b53afd0cb6d9ea4920308bc1326
--- /dev/null
+++ b/util/deb/install_tools.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+#Brandon Heller (brandonh@stanford.edu)
+#Install extra tools on Debian Lenny
+
+#Install tcpdump and tshark, cmd-line packet dump tools.  Also install gitk,
+#a graphical git history viewer. 
+sudo apt-get install -y tcpdump tshark gitk
diff --git a/sysctl_addon b/util/sysctl_addon
similarity index 100%
rename from sysctl_addon
rename to util/sysctl_addon