<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Jason's Computer Science Blog &#187; Linux</title>
	<atom:link href="http://www.jasonernst.com/category/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jasonernst.com</link>
	<description>By Jason Ernst</description>
	<lastBuildDate>Wed, 28 Jul 2010 18:29:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Tutorial: Ubuntu 10.04 &#8211; Grub 2 with Themes</title>
		<link>http://www.jasonernst.com/2010/05/05/ubuntu-10-04-grub-2-with-themes/</link>
		<comments>http://www.jasonernst.com/2010/05/05/ubuntu-10-04-grub-2-with-themes/#comments</comments>
		<pubDate>Thu, 06 May 2010 03:12:50 +0000</pubDate>
		<dc:creator>Jason Ernst</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Burg]]></category>
		<category><![CDATA[Grub 2.0]]></category>
		<category><![CDATA[Lucid]]></category>
		<category><![CDATA[Ubuntu 10.04]]></category>

		<guid isPermaLink="false">http://www.jasonernst.com/?p=818</guid>
		<description><![CDATA[In this post, I will show you how to install grub 2 with themes so that you can replace the standard text-based grub menu with something that looks a bit nicer. This tutorial will use code which is under development, so it may be best not to use on an important machine. We will actually [...]]]></description>
			<content:encoded><![CDATA[<p>In this post, I will show you how to install grub 2 with themes so that you can replace the standard text-based grub menu with something that looks a bit nicer. This tutorial will use code which is under development, so it may be best not to use on an important machine. We will actually replace grub with something called burg, which is a developmental branch of grub.</p>
<p><span id="more-818"></span></p>
<p>First, enable the repository for burg by editing your /etc/apt/sources.list file to include the following:</p>
<div class="snippet">
<div class="snippet-shell"><code>deb http://ppa.launchpad.net/bean123ch/burg/ubuntu lucid main<br />
deb-src http://ppa.launchpad.net/bean123ch/burg/ubuntu lucid main</code></div>
</div>
<p>Next, (optional) to remove any warnings about gpg signatures, enter the following commands:</p>
<div class="snippet">
<div class="snippet-shell"><code>gpg --keyserver subkeys.pgp.net --recv 55708F1EE06803C5<br />
gpg --export --armor 55708F1EE06803C5 | sudo apt-key add -</code></div>
</div>
<p>Then we need to update apt and install burg:</p>
<div class="snippet">
<div class="snippet-shell"><code>sudo apt-get update<br />
sudo apt-get install burg-pc burg burg-themes</code></div>
</div>
<p>This will prompt you to select several options along the way, so far I&#8217;ve just selected the default options since they seem to be detected from your existing grub install. The important one is to select the correct disk (Note: I&#8217;ve only tested in a non-raid system, so I don&#8217;t know how it will behave with this setup).</p>
<p>On the next restart, we should see a graphical grub menu, something like this:<br />
<center>
<div class="image"><a href="http://www.jasonernst.com/wp-content/uploads/2010/05/graphical-grub.jpg"><img src="http://www.jasonernst.com/wp-content/uploads/2010/05/graphical-grub-300x225.jpg" alt="Ubuntu 10.04 Graphical Grub" title="graphical-grub" width="300" height="225" class="alignnone size-medium wp-image-824" /></a>
<p style="text-align:center;">Ubuntu 10.04 with Graphical Grub Template</p>
</div>
<p></center></p>
<p>By default you will probably get the ubuntu template, and you can change the template by pressing &#8216;t&#8217; during the grub screen. It should also remember which one was last selected.</p>
<p>Note: I have experienced some problems with a fresh install of ubuntu 10.04 and SLI video cards. Burg&#8217;s graphics mode seems to confuse ubuntu and it gets stuck on boot. If this happens, you can boot in recovery mode and install the restricted nvidia driver. Then on next boot everything should be fine.</p>
<p>Note 2: Occasionally, when Ubuntu updates, grub may install over your burg installation. In order to get burg back, you need to issue the following command: &#8220;burg-install /dev/sda&#8221; where /dev/sda is the partition you want to install burg onto. You may also want to &#8220;update-burg&#8221; in order to detect your latest updates.</p>
<p>Sources:<br />
<a href="https://help.ubuntu.com/community/Burg">https://help.ubuntu.com/community/Burg</a><br />
<a href="http://ubuntuforums.org/showthread.php?p=9231199">http://ubuntuforums.org/showthread.php?p=9231199</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonernst.com/2010/05/05/ubuntu-10-04-grub-2-with-themes/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Updated: NS-2.33 and HWMP rev 183 on Intrepid Ibex 8.10</title>
		<link>http://www.jasonernst.com/2009/02/16/ns-233-and-hwmp-rev-183-on-intrepid-ibex-810/</link>
		<comments>http://www.jasonernst.com/2009/02/16/ns-233-and-hwmp-rev-183-on-intrepid-ibex-810/#comments</comments>
		<pubDate>Mon, 16 Feb 2009 19:21:09 +0000</pubDate>
		<dc:creator>Jason Ernst</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Simulation]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Wireless Networks]]></category>
		<category><![CDATA[HWMP]]></category>
		<category><![CDATA[Ibex]]></category>
		<category><![CDATA[Intrepid]]></category>
		<category><![CDATA[Mesh]]></category>
		<category><![CDATA[Networks]]></category>
		<category><![CDATA[NS-2.33]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Wireless]]></category>

		<guid isPermaLink="false">http://www.jasonernst.com/?p=613</guid>
		<description><![CDATA[This post is some quick instructions on how to install ns-2.33 and the hybrid wireless mesh protocol (hwmp) on Ubuntu Intrepid Ibex. More detail will be added later, just for quick reference right now. &#160; Update Ubuntu: sudo apt-get update sudo apt-get upgrade sudo apt-get install libxt-dev Download the NS-2.33 and HWMP All-in-One Package here: [...]]]></description>
			<content:encoded><![CDATA[<p>This post is some quick instructions on how to install ns-2.33 and the hybrid wireless mesh protocol (hwmp) on Ubuntu Intrepid Ibex. More detail will be added later, just for quick reference right now.</p>
<div class="clear">&nbsp;</div>
<p><span id="more-613"></span></p>
<h3>Update Ubuntu:</h3>
<div class="snippet">
<div class="snippet-shell"><code>sudo apt-get update<br />
sudo apt-get upgrade<br />
sudo apt-get install libxt-dev</code></div>
</div>
<h3>Download the NS-2.33 and HWMP All-in-One Package here:</h3>
<p><strong>Updated with new link: *</strong></p>
<div class="snippet">
<div class="snippet-shell"><code>wget https://forge.iitp.ru/ns2/hwmp/ns-2.33_hwmp_rev183.patch.bz2</code></div>
</div>
<h3>Untar the file:</h3>
<div class="snippet">
<div class="snippet-shell"><code>tar xvf ns*.tar.bz2</code></div>
</div>
<h3>Configure and Install NS2</h3>
<div class="snippet">
<div class="snippet-shell"><code>cd ns<br />
./configure<br />
make<br />
sudo make install<br />
</code></div>
</div>
<p>All ready to go. Enjoy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonernst.com/2009/02/16/ns-233-and-hwmp-rev-183-on-intrepid-ibex-810/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>Ns-3.2 on Ubuntu 8.04 Hardy Heron</title>
		<link>http://www.jasonernst.com/2008/11/22/ns-32-on-ubuntu-804-hardy-heron/</link>
		<comments>http://www.jasonernst.com/2008/11/22/ns-32-on-ubuntu-804-hardy-heron/#comments</comments>
		<pubDate>Sat, 22 Nov 2008 18:18:22 +0000</pubDate>
		<dc:creator>Jason Ernst</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Simulation]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[8.04]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[Hardy]]></category>
		<category><![CDATA[Heron]]></category>
		<category><![CDATA[NS-3.2]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Wireless]]></category>

		<guid isPermaLink="false">http://www.jasonernst.com/?p=203</guid>
		<description><![CDATA[For the next stage of my thesis instead of using the well known ns-2 simulator as originally planned, I have opted to instead use ns-3. I have chosen this particular environment because it seems to be designed from the ground up to be a wireless simulation tool while ns-2 was originally designed solely for wired [...]]]></description>
			<content:encoded><![CDATA[<p>For the next stage of my thesis instead of using the well known ns-2 simulator as originally planned, I have opted to instead use ns-3. I have chosen this particular environment because it seems to be designed from the ground up to be a wireless simulation tool while ns-2 was originally designed solely for wired network simulation. I have made some use of ns-2 however, so if you are looking for a guide to getting that working in Ubuntu see my post &#8220;<a href="http://www.jasonernst.com/2008/06/11/ns-233-and-nam-on-ubuntu-804-hardy-heron/">NS-2.33 on Ubuntu 8.04 Hardy Heron</a>&#8220;.  In addition to this, ns-3 no longer uses the tcl scripting language.  Instead the choice of pure c++ or a combination of c++ and python may be used to define the simulation parameters. I prefer this approach because I have no desire to learn tcl and find the c++ ns-3 ot be more intuitive than ns-2. Additionally, this guide will be used as a reference for myself while I learn the ns-3 environment. Check back for regular updates and useful infromation.</p>
<p><span id="more-203"></span></p>
<p>So back to the point of this article, a guide on how to install ns-3.2 on Ubuntu 8.04 Hardy Heron. Ns-3 installation is quite simple since an automatic build tool named waf is used to build the project. Enter the following in the terminal to download, untar and build ns-3.2.<br />
<code><br />
wget http://www.nsnam.org/releases/ns-3.2.tar.bz2<br />
tar -xvf ns-3.2.tar.bz2<br />
./waf -d debug configure<br />
</code>
</p>
<h3>How to start working with NS-3</h3>
<p>So from here on out, all you have to do is use the waf tool for compiling and running your ns3 simulations. There are many example scenarios located in the /examples folder. You can run a simulation with any of the scenarios using the waf command. For example if you wanted to run a scenario file named first.cc you would enter the following command:<br />
<code><br />
./waf --run=first<br />
</code><br />
Notice that you do not need to include the .cc on the filename. If you do happen to misspell the file, ns3 will provide you with a list of all of the scenarios you are able to run. One other important note is that the /scratch folder automatically includes the .cc files as scenarios which you can run. This is likely where you will want to place your new scenarios when working on them. (If you try to put them in the examples folder you will need to edit the wscript file (see <a href="#links">NS3 tutorial</a> on how to do this). On other important thing to note is that ns3 supports improved logging / output compared with ns2 using the pcap file format which can be read using tcpdump or wireshark. These types of files were originally used for packet capturing in real working networks so it makes alot of sense to include this ability in simulation as well.
</p>
<h3>How to display exactly what is going on to the screen (Logging)</h3>
<p>Sometimes when making changes and implementing something new, it is helpful to show everything that is happening on the screen. You can achieve this by entering the following at the linux command line:<br />
<code><br />
export 'NS_LOG=*=level_all|prefix_func|prefix_time'<br />
</code><br />
If you want to restrict the information to only certain parts of the simulation, for example the MAC layer of a wifi AP you could do something like this:<br />
<code><br />
export 'NS_LOG=NqapWifiMac=level_all|prefix_func|prefix_time'<br />
</code><br />
For more information on how to configure the logging to do exactly what you want, see the <a href="http://www.nsnam.org/docs/tutorial.html#SEC42" target="_blank">NS3 Tutorial</a> section on logging.
</p>
<p>If you have turned on logging, you have likely noticed that ns3 generates so much information that it scrolls by way to fast to be of any use. So you will probably want to output the results to a file. For example if you were running the first.cc file again and you have turned on logging you could do this:<br />
<code><br />
./waf --run=first >&#038; first.txt<br />
</code><br />
which would send the logging output to the file first.txt where you could easily read it.
</p>
<h3>Useful Functions</h3>
<p>So far I have found these functions make debugging scenarios easier:<br />
<code><br />
static Vector<br />
GetPosition (Ptr<Node> node)<br />
{<br />
  Ptr<MobilityModel> mobility = node->GetObject<MobilityModel> ();<br />
  return mobility->GetPosition ();<br />
}<br />
</code><br />
<code><br />
static Ipv4Address<br />
GetAddress (Ptr<Node> node, uint32_t interface)<br />
{<br />
  Ptr<Ipv4> ipv4 = node->GetObject<Ipv4> ();<br />
  return ipv4->GetAddress(interface);<br />
}<br />
</code></p>
<h3 id="tips">Tips</h3>
<p>The following are a few important things I&#8217;ve discovered that may save you time when trying to work with ns3 on certain tasks:</p>
<ul>
<li>When simulating an ad-hoc or wireless mesh network using OLSR, make sure you set your mobility model <strong>before</strong> you install the OLSR routing on the nodes. If you do not do this, OLSR may generate link pairs for links which are actually too far away to communicate because before the mobility model is installed on the nodes they are all close enough to communicate.<br/></li>
<li>Also with OLSR, make sure you give OLSR enough time to determine the network topology before you allow the applications to start running on the network. I have read that about 100s of waiting time before starting is enough, however I imagine as the network size grows this may also grow (I have tested with a size of 4&#215;4 and this is enough time &#8211; I will adjust this as I play with the numbers as well)</li>
</ul>
<h3 id="links">Useful Links</h3>
<ul>
<li><a href="http://www.nsnam.org/doxygen-release/index.html" target="blank">NS3 Doxygen Documentation</a></li>
<li><a href="http://www.nsnam.org/docs/tutorial.html" target="_blank">NS3 Tutorial</a></li>
<li><a href="http://www.nsnam.org/docs/release/manual.html" target="_blank">NS3 Manual</a></li>
<li><a href="http://www.nsnam.org/wiki/index.php/Main_Page" target="_blank">NS3 Wiki</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonernst.com/2008/11/22/ns-32-on-ubuntu-804-hardy-heron/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>DD-Wrt Micro on Linksys WRT54Gv6</title>
		<link>http://www.jasonernst.com/2008/08/23/dd-wrt-micro-on-linksys-wrt54gv6/</link>
		<comments>http://www.jasonernst.com/2008/08/23/dd-wrt-micro-on-linksys-wrt54gv6/#comments</comments>
		<pubDate>Sun, 24 Aug 2008 04:28:12 +0000</pubDate>
		<dc:creator>Jason Ernst</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Wireless Networks]]></category>
		<category><![CDATA[DD-WRT54G]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Router]]></category>

		<guid isPermaLink="false">http://www.jasonernst.com/?p=54</guid>
		<description><![CDATA[Today on a whim I decided to pickup a Linksys WRT54Gv6 wireless router from Staples. It was on sale for $20 off and looked like the last one there. I&#8217;ve been looking at the DD-Wrt software for some time since I have an old junky wireless router buried in my closet at home. Unfortunately the [...]]]></description>
			<content:encoded><![CDATA[<div class="thumbnail"><img src="http://www.jasonernst.com/wp-content/uploads/2008/08/linksys-router.gif" alt="WRT54Gv6"/></div>
<p>Today on a whim I decided to pickup a Linksys WRT54Gv6 wireless router from Staples. It was on sale for $20 off and looked like the last one there.  I&#8217;ve been looking at the DD-Wrt software for some time since I have an old junky wireless router buried in my closet at home. Unfortunately the old router I have cannot run DD-Wrt so when I saw this one on sale I thought I&#8217;d give the WRT54G a try.</p>
<p><span id="more-54"></span></p>
<p>Unfortunately, I didn&#8217;t realize I bought the crippled version of the good WRT54G since it now has only 2mb of flash memory rather than the 4mb the earlier versions had. Apparently the best version to get now is the WRT54GL because it contains the most flash memory and is meant for Linux. The version I bought has a proprietary O/S installed on it and I was slightly worried I wouldn&#8217;t be able to get linux on it, but after following some good instructions at the <a href="http://www.scorpiontek.org/portal/content/view/27/36/" target="_blank">Scorpiontek website</a> I managed to get it working really easily. </p>
<p>I&#8217;ve only have the new firmware on the router for a few hours but I already like it alot more than the stuff that it shipped with. Even with the micro version there are far more options to play around with. The most useful so far for me is the client bridge mode. At my girlfriends house, her Access Point (AP) is located down in the basement and we use the net mostly in her room on the second floor.  Until now we had terrible connections up there but in client bridge mode we can make use of the more powerful radio on the AP and plug into it with wires. Seems to be working much more smoothly now than when we had several weaker clients connected in the same room. Perhaps ill try and make some graphs and show if there is an actual difference if I get some time.</p>
<p>Eventually I would like to try to play around with the DD-Wrt source and try to implement some of my wireless mesh ideas in a working device so I&#8217;ll see if i can mange with what I&#8217;ve got here. Additionally, I have a cool looking LCD panel that an electronics friend gave me so I&#8217;ll see if I can get some help hooking that into the router to display some useful information right on the router. I&#8217;ll post any progress I make or pictures of mods on the blog here.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonernst.com/2008/08/23/dd-wrt-micro-on-linksys-wrt54gv6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ns-2.33 (and nam) on Ubuntu 8.04 (Hardy Heron)</title>
		<link>http://www.jasonernst.com/2008/06/11/ns-233-and-nam-on-ubuntu-804-hardy-heron/</link>
		<comments>http://www.jasonernst.com/2008/06/11/ns-233-and-nam-on-ubuntu-804-hardy-heron/#comments</comments>
		<pubDate>Wed, 11 Jun 2008 14:57:54 +0000</pubDate>
		<dc:creator>Jason Ernst</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Simulation]]></category>
		<category><![CDATA[Wireless Networks]]></category>
		<category><![CDATA[8.04]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[Hardy]]></category>
		<category><![CDATA[Heron]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Install]]></category>
		<category><![CDATA[Network]]></category>
		<category><![CDATA[NS-2.33]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Wireless]]></category>

		<guid isPermaLink="false">http://www.jasonernst.com/?p=29</guid>
		<description><![CDATA[Since I have been working with ns2 for the last few months in preparation for my thesis I have decided to write a guide on how to install the most recent version of ns2 on the most recent version of ubuntu (at the time of this writing, Monday June 9th, 2008). I have found many [...]]]></description>
			<content:encoded><![CDATA[<p>Since I have been working with ns2 for the last few months in preparation for my thesis I have decided to write a guide on how to install the most recent version of ns2 on the most recent version of ubuntu (at the time of this writing, Monday June 9th, 2008). </p>
<p>I have found many people already who have had difficulty setting it up so maybe this will be of some help to someone.  For this tutorial I am assuming you have installed the most recent version of Ubuntu (8.04). (At the time of writing)</p>
<p><span id="more-29"></span></p>
<h3>Step 1: Update Ubuntu</h3>
<p>Since it has already been a month or so since Hardy Heron has been released its probably best, if you haven&#8217;t already done so to update Ubuntu. The easiest way I&#8217;ve found is to go to System&gt;&gt;Administration&gt;&gt;Update Manager. Alternatively, you can enter this into the terminal:</p>
<div class="snippet">
<div class="snippet-shell">
<code>sudo apt-get update<br />
sudo apt-get upgrade<br />
</code></div>
</div>
<div class="image" style="float:right;"><a href="http://www.jasonernst.com/wp-content/uploads/2008/06/update.png"><img class="alignnone size-medium wp-image-30" title="Ubuntu - Update" src="http://www.jasonernst.com/wp-content/uploads/2008/06/update-300x187.png" alt="Update Manager - Ubuntu Hardy Heron" width="300" height="187" /></a></div>
<h3>Step 2: Download all of the required pieces to make ns2 work</h3>
<p>Here is a list of archives required for ns2 to work properly (you can download them by clicking the links or just enter all of the commands in the code sections below for automatic download and untar). I saved each archive to the desktop so I could find each one easily but you could use anywhere you like.</p>
<ol class="list">
<li><a title="tcl 8.4.14" href="http://www.jasonernst.com/wp-content/uploads/2008/06/tcl8.4.19-src.tar.gz" target="_self">tcl 8.4.14</a></li>
<li><a title="tk 8.4.14" href="http://www.jasonernst.com/wp-content/uploads/2008/06/tk8.4.19-src.tar.gz" target="_self">tk 8.4.14</a></li>
<li><a title="otcl 1.13" href="http://www.jasonernst.com/wp-content/uploads/2008/06/otcl-src-1.13.tar.gz" target="_self">otcl 1.13</a></li>
<li><a title="tclcl 1.19" href="http://www.jasonernst.com/wp-content/uploads/2008/06/tclcl-src-1.19.tar.gz" target="_self">tclcl 1.19</a></li>
<li><a title="ns-2.33" href="http://www.jasonernst.com/wp-content/uploads/2008/06/ns-2.33.tar.gz" target="_self">ns 2.33</a></li>
<li><a title="nam 1.13" href="http://www.jasonernst.com/wp-content/uploads/2008/06/nam-src-1.13.tar.gz" target="_self">nam 1.13</a></li>
</ol>
<h3>Step 2.5: Install Ubuntu Packages</h3>
<p>Before installing everything else, I have found that it is helpful to get a few packages from the ubuntu repositories or else it wont build correctly. Grab a cup of coffee it might take a while since kdebase-dev is somewhat large. I&#8217;m sure there is a way to do this with fewer packages however I know this works. If anyone figures out exactly which packages are required let me know so I can update this.</p>
<div class="snippet">
<div class="snippet-shell">
<code>sudo apt-get install libx11-dev kdebase-dev</code>
</div>
</div>
<h3>Step 3: Install tcl</h3>
<div class="snippet">
<div class="snippet-shell">
<code >wget http://www.jasonernst.com/wp-content/uploads/2008/06/tcl8.4.19-src.tar.gz<br />
tar xvf tcl8.4.19-src.tar.gz<br />
cd tcl8.4.19/unix<br />
./configure<br />
make<br />
sudo make install<br />
</code></div>
</div>
<h3>Step 4: Install tk</h3>
<div class="snippet">
<div class="snippet-shell">
<code>cd ..<br />
cd ..<br />
wget http://www.jasonernst.com/wp-content/uploads/2008/06/tk8.4.19-src.tar.gz<br />
tar xvf tk8.4.19-src.tar.gz<br />
cd tk8.4.19/unix<br />
./configure<br />
make<br />
sudo make install</code>
</div>
</div>
<h3>Step 5: Install oTcl</h3>
<p><em>Important Note:</em> The &#8216;./configure &#8211;with-tcl=&#8217; portion of the following two code fragments should point to the source files for tcl. If you have been following the guide by copying and pasting the previous commands what we have here will work just fine. Otherwise you will need to change this to point to the correct location of your tcl source files. </p>
<div class="snippet">
<div class="snippet-shell">
<code>cd ..<br />
cd ..<br />
wget http://www.jasonernst.com/wp-content/uploads/2008/06/otcl-src-1.13.tar.gz<br />
tar xvf otcl-src-1.13.tar.gz<br />
cd otcl-1.13<br />
./configure --with-tcl=../tcl*/<br />
make<br />
sudo make install</code>
</div>
</div>
<h3>Step 6: Install tclcl</h3>
<div class="snippet">
<div class="snippet-shell">
<code>cd ..<br />
wget http://www.jasonernst.com/wp-content/uploads/2008/06/tclcl-src-1.19.tar.gz<br />
tar xvf tclcl-src-1.19.tar.gz<br />
cd tclcl-1.19<br />
./configure --with-tcl=../tcl*/<br />
make<br />
sudo make install</code></div>
</div>
<h3>Step 7: Install ns2</h3>
<div class="snippet">
<div class="snippet-shell">
<code>cd ..<br />
wget http://www.jasonernst.com/wp-content/uploads/2008/06/ns-2.33.tar.gz<br />
tar xvf ns-2.33.tar.gz<br />
cd ns-2.33<br />
./configure<br />
make<br />
sudo make install</code>
</div>
</div>
<p>You will likely get alot of warnings for deprecated conversions. Just ignore these or if you really are concerned about them visit the <a href="http://nsnam.isi.edu/nsnam/index.php/Troubleshooting#ns-2_not_building_with_gcc.2Fg.2B.2B_4.3.2">nsnam troubleshooting page</a>. If you want to make sure your version of ns-2 is working correctly after the install you can run the validation test from within the ns2 source directory. You can do this by entering:</p>
<div class="snippet">
<div class="snippet-shell">
<code>./validate</code>
</div>
</div>
<p>You should see that the test output agrees with the reference output. Congratulations you have a working version of ns-2 installed.</p>
<h3>Step 8: (optional) Install nam</h3>
<div class="snippet">
<div class="snippet-shell">
<code>cd ..<br />
wget http://www.jasonernst.com/wp-content/uploads/2008/06/nam-src-1.13.tar.gz<br />
tar xvf nam-src-1.13.tar.gz<br />
cd nam-1.13<br />
./configure<br />
make<br />
sudo make install</code>
</div>
</div>
<p>Note: if you get this error:</p>
<div class="snippet">
<div class="snippet-shell">
<code>error: X11/Xmu/WinUtil.h: No such file or directory</code></div>
</div>
<p>it may be necesary to do this: </p>
<div class="snippet">
<div class="snippet-shell">
<code>sudo apt-get install libxmu-dev</code></div>
</div>
<p>You are now ready to start working with ns2 and nam. If you are like me and working on a new protocol or something you will want to start modifying the ns-2 source code and recompile again so you might want to keep that folder handy. The rest of the source can be safely removed as far as i know. Keep in mind after you have modified the source you will want to do another make install so that when you type ns in your terminal the version you just compiled is used. </p>
<h3>Getting Started with NS2</h3>
<p>These are some quick tips to get you started using ns2 if you are a beginner.</p>
<p>All example files are located in ns/tcl/ex. You can run these scenarios on ns2 using <code>ns filename.tcl</code> The best way to start is probably changing things in these files until you understand what is happening more thoroughly.</p>
<p>The output will usually be a trace file with a similar name: ex) filename.tr. Trace files can usually be viewed with a text-editor program. There are also tools to analyze the trace files and pull stats from them. These may require some tweaking however depending on the format of the trace file. Additionally, a nam output file for visualization may be generated as well. This will usually be named filename.nam. To view the visualization use: <code>nam filename.nam</code></p>
<h3>Useful Links</h3>
<p>I thought it might be useful to add a section on useful links here since this article has become quite popular. If you would like to suggest a link feel free to contact me.</p>
<ul class="list">
<li><a href="http://nsnam.isi.edu/nsnam/index.php/Main_Page">Ns2 Wiki</a></li>
<li><a href="http://isi.edu/nsnam/ns/tutorial/index.html">Marc Greis&#8217; Tutorial</a></li>
<li><a href="http://isi.edu/nsnam/ns/ns-documentation.html">NS Manual</a></li>
<li><a href="http://www-sop.inria.fr/maestro/personnel/Eitan.Altman/COURS-NS/n3.pdf">NS for Beginners</a> (pdf)</li>
<li><a href="http://isi.edu/nsnam/ns/ns-problems.html">Common NS2 Installation Problems</a></li>
<li><a href="http://nsnam.isi.edu/nsnam/index.php/Contributed_Code#Wireless_and_Mobility">NS2 Wireless and Mobility Modules</a></li>
<li><a href="http://www.nabble.com/Network-Simulator-ns-2-f15582.html">NS2 Mailing Lists</a></li>
<li><a href="http://dsn.tm.uni-karlsruhe.de/english/Overhaul_NS-2.php">NS2.33 Wireless MAC and PHY improvements</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonernst.com/2008/06/11/ns-233-and-nam-on-ubuntu-804-hardy-heron/feed/</wfw:commentRss>
		<slash:comments>101</slash:comments>
		</item>
	</channel>
</rss>
