<?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>M and L Adventures &#187; Tutorials</title>
	<atom:link href="http://www.mandladventures.com/category/tech-stuff/tutorials/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mandladventures.com</link>
	<description>Leading you on the technical adventure</description>
	<lastBuildDate>Thu, 28 Jul 2011 21:45:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>How to Flash Your WRT54GL Firmware from DD-WRT to Tomato</title>
		<link>http://www.mandladventures.com/2008/12/03/how-to-change-your-wrt54gl-firmware-from-dd-wrt-to-tomato/</link>
		<comments>http://www.mandladventures.com/2008/12/03/how-to-change-your-wrt54gl-firmware-from-dd-wrt-to-tomato/#comments</comments>
		<pubDate>Thu, 04 Dec 2008 04:03:02 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[DD-WRT]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[WRT54GL]]></category>

		<guid isPermaLink="false">http://www.mandladventures.com/?p=346</guid>
		<description><![CDATA[**DISCLAIMER**The following instructions are provided without warranty of any kind. Flashing firmware does not come without risk. I will not be held responsible for any resulting equipment failure or otherwise undesirable results. Proceed at your own risk. This tutorial explains how I successfully re-flashed my Linksys WRT54GL version 1.1 to use the Tomato 1.22 firmware [...]
Related post
<strong>Related Posts:</storng><ul>s:<ol>
<li><a href='http://www.mandladventures.com/2007/04/12/how-to-flash-the-wrt54gl-with-dd-wrt-firmware/' rel='bookmark' title='How to Flash the WRT54GL with DD-WRT Firmware'>How to Flash the WRT54GL with DD-WRT Firmware</a></li>
<li><a href='http://www.mandladventures.com/2008/01/19/tomato-firmware-option-for-wrt54gl/' rel='bookmark' title='Tomato Firmware Option for WRT54GL'>Tomato Firmware Option for WRT54GL</a></li>
<li><a href='http://www.mandladventures.com/2008/11/01/tomato-firmware-upgrade-and-demo-video/' rel='bookmark' title='Tomato Firmware Upgrade and Demo Video'>Tomato Firmware Upgrade and Demo Video</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p class="alert"><strong>**DISCLAIMER**</strong><em>The following instructions are provided without warranty of any kind. Flashing firmware does not come without risk. I will not be held responsible for any resulting equipment failure or otherwise undesirable results. Proceed at your own risk.</em></p>
<p><span  class="alignleft"><iframe src="http://rcm.amazon.com/e/cm?lt1=_blank&#038;bc1=FFFFFF&#038;IS2=1&#038;npa=1&#038;bg1=FFFFFF&#038;fc1=000000&#038;lc1=0D78B6&#038;t=wrt54g-20&#038;o=1&#038;p=8&#038;l=as4&#038;m=amazon&#038;f=ifr&#038;ref=ss_til&#038;asins=B000BTL0OA" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></span>This tutorial explains how I successfully re-flashed my Linksys WRT54GL version 1.1 to use the Tomato 1.22 firmware rather than DD-WRT version 23 SP2 VPN firmware (generic) I have been using for the past couple of years. I decided to write this tutorial because lots of sites have instructions on flashing from the default Linksys firmware to Tomato but far fewer sites offer lots of detail on how to flash from other firmware such as DD-WRT.</p>
<p>I have provided directions with enough detail for the non-technical user to feel comfortable with the procedure. To make things faster for the technical users, I have highlighted the major steps. At the bottom of the post, I&#8217;ve included links to related articles I&#8217;ve published if you&#8217;d like to learn more.<span id="more-346"></span></p>
<p>As a bit of background information, I’m used a fully patched (as of November, 2008) Windows Vista Ultimate 64-bit with Service Pack 1 (SP1) Operating System and up-to-date Firefox 3 during the firmware upgrade process. The OS and web browser shouldn’t matter that much, but I thought I share in case you were worried about such things.</p>
<p>Before you begin, <a href="http://www.polarcloud.com/tomato">download</a> the latest version of the Tomato firmware that is suited for most routers. This tutorial walks through flashing to version 1.22. The files are zipped in the great, but uncommon, 7zip format so you&#8217;ll need <a href="http://www.7-zip.org/">7zip</a> or another program that supports the 7zip format to unzip the files. The zip package contains several files, <span class="highlight">you will only need the &#8220;WRT54G_WRT54GL.bin&#8221; file but it is a good idea to checkout the &#8220;readme.&#8221;</span> </p>
<p><span class="highlight">I recommend verifying the MD5SUM hash of the &#8220;WRT54G_WRT54GL.bin&#8221; file to ensure the download wasn&#8217;t corrupt or hasn&#8217;t been comprised.</span> If you don&#8217;t already have a tool to calculate MD5SUMs, I recommend using <a href="http://www.download.com/HashCalc/3000-2250_4-10130770.html">HashCalc</a> although you must manually compare the sums with this tool unlike some other tools. Unfortunately, Polarcloud does not provide the MD5SUM of the download on their site but luckily for you, I calculated the hash of my download. <span class="highlight">The signature of the file should be 866251021d42608c69bff558115f95f8.</span></p>
<p>I recommend printing (or at least saving, not bookmarking, to your hard drive) the following web pages for reference since you will not have Internet access during this process:</p>
<ul>
<li><a href="http://www.mandladventures.com/2008/12/03/how-to-change-your-wrt54gl-firmware-from-dd-wrt-to-tomato/">How to Change Your WRT54GL Firmware from DD-WRT to Tomato</a></li>
<li><a href="http://www.polarcloud.com/tomatofaq">Tomato FAQ</a></li>
<li><a href="http://en.wikibooks.org/wiki/Tomato_Firmware">Tomato Firmware Wikibook</a></li>
<li><a href="http://dd-wrt.com/wiki/index.php/Reset_And_Reboot">Reset and Reboot</a></li>
<li><a href="http://dd-wrt.com/wiki/index.php/Recover_from_a_Bad_Flash">Recover from a Bad Flash</a></li>
</ul>
<p><span class="highlight">It is best to turn off your firewall and anti-virus during this process to ensure that nothing interrupts the firmware flash.</span> An interruption could cause the flash to fail and <a href="http://dd-wrt.com/wiki/index.php/Glossary#Brick">brick</a> your router. If something does go wrong you may be able to <a href="http://dd-wrt.com/wiki/index.php/Recover_from_a_Bad_Flash">recover from a bad flash</a>.</p>
<p><span class="highlight">You should ONLY perform the flash through an Ethernet cable using standard http (not https). Do not do this wirelessly (its best to temporarily disable the wireless adapter on your computer). If your super paranoid or live in an area with unreliable electricity, you should plug your router an PC into an <a href="http://en.wikipedia.org/wiki/Uninterruptible_power_supply">uninterruptible power supply</a> because a power failure during a firmware flash could brick your router. Plug the blue Ethernet (Cat5/RJ45) cable that came with your router into the Network Interface Card (NIC) on the back of your computer and into one of the ports labeled 1, 2, 3, or 4. The &#8220;Internet&#8221; port on your router should be connected to your broadband source (e.g., cable or DSL modem).</span>  <em>Please ignore the extra cable in the picture. It is not needed for the flash to work.</em></p>
<p><center><img src="http://www.mandladventures.com/wp-content/uploads/2007/04/plugs.jpg" alt="Linksys WRT54GL Cable Connections" /></center></p>
<p><span class="highlight">I recommend reviewing all of your DD-WRT settings so you can quickly configure the Tomato firmware to offer similar functionality</span>. I took screenshots of all of the pages where I had non-default settings. I also used the same security settings, including WPA2 password, after I loaded Tomato so that all of my wireless devices would not have to be updated. However, if you have poor wireless security, after flashing to Tomato is the perfect time to implement stronger security. You can reference my <a href="http://www.mandladventures.com/2007/04/21/securing-your-wireless-network/">Securing Your Wireless Network</a> article if you want to learn how to have a really secure wireless network. </p>
<p><span class="highlight">In addition to the screenshots of your settings, it is also a good idea to perform a backup of your DD-WRT configuration.</span> Please note you can only restore this backup on the same model router and firmware with which the backup was made. To perform a backup, go to the &#8220;Administration&#8221; tab and then the &#8220;Backup&#8221; sub-tab. Once there, just click the &#8220;Backup&#8221; button and save the file.</p>
<p><center><img src="http://www.mandladventures.com/wp-content/uploads/2008/12/backup.jpg" alt="Backup" /></center></p>
<p><span class="highlight">The last item that needs to be completed before uploading the new firmware is to reset your DD-WRT firmware to the default settings.</span> A few ways to do this exist. I chose to use the standard web interface because it is easy and should always work. Nonetheless, pressing and holding the reset button on the back of your router for 30 seconds should also work (assuming you have not disabled that feature in your custom firmware). </p>
<p>To reset the router to firmware defaults, go to the internal IP address of your router (most likely 192.168.1.1) and login with the user name and password you setup when you first installed the router (if you have trouble with the login use the reset button method). Once logged in, go to “Administration” tab and the “Factory Defaults” sub-tab. I forgot to write down the exact buttons and also forgot to take a screenshot of this step but I think you just select the “Yes” radio button next to “Restore Factory Defaults” then select “Save Settings.” If that&#8217;s not it exactly, you shouldn&#8217;t have any trouble determining what to select. Be patient and don&#8217;t touch anything because the reset could take a couple of minutes.</p>
<p><span class="highlight">The <a href="http://www.polarcloud.com/tomatofaq#why_doesnt_my_password_work">Tomato FAQ</a> recommends that you Telnet into your router before performing the flash and type the &#8220;nvram get http_passwd&#8221; command to obtain the password that will be used by Tomato after the flash.</span> You cannot just use the DD-WRT password because of a change in the way DD-WRT uses the standard http_passwd variable. I must admit that I did this step but the password I obtained during the Telnet session did not allow me to login. However, as I was writing this tutorial, it occurred to me that I may have obtained the password via Telnet before I reset DD-WRT to the default settings which may explain why the password I obtained did not work.</p>
<p>In order to Telnet into your DD-WRT router, open up the run box by hitting the &#8220;Window&#8221; key and &#8220;R&#8221;. Next type &#8220;cmd&#8221; and hit &#8220;Ok.&#8221; In the command window, type &#8220;telnet 192.168.1.1&#8243; where 192.168.1.1 represents the IP address of your router. You will be prompted for a user name and password. <span class="highlight">The telnet user name is always root even if you login to the web interface with a different user name. The password should be the default DD-WRT password of &#8220;admin&#8221; since you just performed a reset. If not, try your old web login password.</span></p>
<p>Just so you know, Telnet is not enabled in Windows Vista by default but is in XP. To enable Telnet in Vista follow the instructions at <a href="http://www.tech-recipes.com/rx/1793/vista_install_telnet_client/">Tech-Recipes</a> site. Alternatively, you could use a tool like <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html">Putty</a>. </p>
<p><center><img src="http://www.mandladventures.com/wp-content/uploads/2008/12/telnet_dd-wrt.jpg" alt="telnet session" /></center></p>
<p>The screenshot above shows the password command being typed into a Telnet session; it does not show the output of the command (i.e., my password). </p>
<p><span class="highlight">Write down the password provided because you will need it later.</span></p>
<p>The next few steps is where the magic starts to happen. <span class="highlight">Go back to the DD-WRT web interface. You may have to renew the DHCP lease and login again. Since you have reset the firmware to default settings, the user name and password is now &#8220;root&#8221; and &#8220;admin&#8221;, respectively. Once logged in, navigate to the &#8220;Administration&#8221; tab and the &#8220;Firmware Upgrade&#8221; sub-tab.</span></p>
<p><span class="highlight">Next, select the &#8220;Browse&#8221; button and select the &#8220;WRT54G_WRT54GL.bin&#8221; file you downloaded early. Once located, select the &#8220;Open&#8221; button and then the “Upgrade” button. Wait patiently for the upload to complete. Whatever you do, <strong>DO NOT</strong> interrupt it.</span></p>
<p><center><img src="http://www.mandladventures.com/wp-content/uploads/2008/12/firmware_upgrade.jpg" alt="Firmware Upgrade" /></center></p>
<p>After a couple of minutes, you should see a screen that says &#8220;Upgrade successful. Unit is rebooting now. Please wait a moment&#8230;&#8221; </p>
<p><center><img src="http://www.mandladventures.com/wp-content/uploads/2008/12/upgrade-successful.jpg" alt="Upgrade successful" /></center></p>
<p><span class="highlight">Once the reboot completes, you will be prompted to login to the Tomato firmware. This is where you use the &#8220;root&#8221; user name and the password you obtained via Telnet.</span> Don&#8217;t worry if you can&#8217;t login&#8230;the same thing happened to me. The next paragraph has a solution for you.</p>
<p><center><img src="http://www.mandladventures.com/wp-content/uploads/2008/12/authentication_screen.jpg" alt="Login Box" /></center></p>
<p><span class="highlight">Since the Tomato interface did not accept the password I obtained through the Telnet session before the flash, I had to perform a hard reset. To do this you need to hold the reset button on the back of the router while unplugging the router. Continue to hold the reset button as you re-plug in the router. Once the router is plugged in you should continue holding the reset button for 30 seconds to complete the hard reset.</span></p>
<p><span class="highlight">After the hard reset is complete, go back to Firefox and navigate to <a href="http://192.168.1.1">http://192.168.1.1</a>. At the prompt enter in “root” for the user name and “admin” as the password. The Tomato web interface should come up.</span></p>
<p>Once you&#8217;ve logged in, you should see the new Tomato firmware. <span class="highlight">Since you are upgrading from DD-WRT, the <a href="http://www.polarcloud.com/tomatofaq#should_i_reset_the_configurati">Tomato FAQ</a> recommends performing a full reset by navigating to the &#8220;Administration&#8221; section and then the &#8220;Configuration&#8221; sub-section. From there, select &#8220;Erase all data in NVRAM memory (thorough)&#8221; from under the &#8220;Restore Default Configuration&#8221; menu and then hit &#8220;OK.&#8221;</span> If you had to do a hard reset in order to get your login to work, you&#8217;re probably could skip this step but it won&#8217;t hurt to do an additional reset just to be safe.</p>
<p><center><img src="http://www.mandladventures.com/wp-content/uploads/2008/12/restore_default_configuration.jpg" alt="Restore Default Configuration" /></center></p>
<p><span class="highlight">After restoring the default configuration, you need to log back in using with the user name of &#8220;root&#8221; and password of &#8220;admin&#8221;. Once logged in, hit the &#8220;Renew&#8221; button that is on the &#8220;Overview&#8221; page.</span></p>
<p><span class="highlight">After renewing you may need to reboot your computer to get Internet access. Alternatively, in Vista you may type &#8220;Network and Sharing Center&#8221; in the Start Search box. Within the Network and Sharing Center select the red &#8220;X&#8221; between the network on Internet on the map. The Windows Network Diagnostics menu should appear. On that menu select &#8220;Reset the network adapter&#8230;&#8221; option at the bottom. Windows will repair the network and you should see a message that says &#8220;the problem has been resolved.&#8221;</span> </p>
<p><center><img src="http://www.mandladventures.com/wp-content/uploads/2008/12/network_and_sharing_center.jpg" alt="Network and Sharing Center" /></center></p>
<p><span class="highlight">Now that everything is working, don&#8217;t forget to turn your anti-virus and firewall back on. Also, be sure to check out my <a href="http://www.mandladventures.com/2007/04/21/securing-your-wireless-network/">Securing Your Wireless Network</a> article if you want to learn how to have a really secure wireless network. </span></p>
<p><span  class="alignright"><iframe src="http://rcm.amazon.com/e/cm?lt1=_blank&#038;bc1=FFFFFF&#038;IS1=1&#038;npa=1&#038;bg1=FFFFFF&#038;fc1=000000&#038;lc1=0D78B6&#038;t=wrt54g-20&#038;o=1&#038;p=8&#038;l=as4&#038;m=amazon&#038;f=ifr&#038;ref=ss_til&#038;asins=0596101449" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><br />
</span></p>
<p><span class="highlight">Congratulations, you’ve successfully flashed your router!</span> Since you’ve successfully flashed your WRT54G, you may be interested in <a href="http://www.amazon.com/gp/product/0596101449/ref=as_li_ss_tl?ie=UTF8&#038;tag=wrt54g-20&#038;linkCode=as2&#038;camp=217145&#038;creative=399349&#038;creativeASIN=0596101449">Wireless Hacks: Tips &#038; Tools for Building, Extending, and Securing Your Network</a><img src="http://www.assoc-amazon.com/e/ir?t=&#038;l=as2&#038;o=1&#038;a=0596101449&#038;camp=217145&#038;creative=399349" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />.</p>
<p>If you liked this post, consider subscribing to my <a href="http://feeds.feedburner.com/MAndLAdventures">feed</a> and/or sending me something from my <a href="http://www.amazon.com/gp/registry/wishlist/W77D6UZQZW9X">wish list</a>.</p>
<p>Related post<p><strong>Related Posts:</storng></p><ul>s:<ol>
<li><a href='http://www.mandladventures.com/2007/04/12/how-to-flash-the-wrt54gl-with-dd-wrt-firmware/' rel='bookmark' title='How to Flash the WRT54GL with DD-WRT Firmware'>How to Flash the WRT54GL with DD-WRT Firmware</a></li>
<li><a href='http://www.mandladventures.com/2008/01/19/tomato-firmware-option-for-wrt54gl/' rel='bookmark' title='Tomato Firmware Option for WRT54GL'>Tomato Firmware Option for WRT54GL</a></li>
<li><a href='http://www.mandladventures.com/2008/11/01/tomato-firmware-upgrade-and-demo-video/' rel='bookmark' title='Tomato Firmware Upgrade and Demo Video'>Tomato Firmware Upgrade and Demo Video</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.mandladventures.com/2008/12/03/how-to-change-your-wrt54gl-firmware-from-dd-wrt-to-tomato/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Ubuntu HDMI Sound Configuration</title>
		<link>http://www.mandladventures.com/2008/11/03/ubuntu-810-hdmi-sound-configuration/</link>
		<comments>http://www.mandladventures.com/2008/11/03/ubuntu-810-hdmi-sound-configuration/#comments</comments>
		<pubDate>Mon, 03 Nov 2008 11:05:01 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.mandladventures.com/?p=317</guid>
		<description><![CDATA[Very recently, I built my very first PC from the ground up. It was fun but somewhat challenging experience. On my new PC, I&#8217;ve been running Ubuntu 8.10 intrepid ibex. I&#8217;ve really enjoyed using Ibex but getting everything to work the way I want has been a bit of a challenge. One such challenge was [...]
No related posts.]]></description>
			<content:encoded><![CDATA[<p>Very recently, I built my very first PC from the ground up. It was fun but somewhat challenging experience. On my new PC, I&#8217;ve been running <a href="http://www.ubuntu.com/news/ubuntu-8.10-desktop">Ubuntu 8.10 intrepid ibex</a>. I&#8217;ve really enjoyed using Ibex but getting everything to work the way I want has been a bit of a challenge.</p>
<p>One such challenge was getting my HD-TV to play sound while connected via a HDMI cable to my <a href="http://www.amazon.com/gp/product/B001EYPB2S?ie=UTF8&#038;tag=mandladv-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=B001EYPB2S">HIS HD 4850 IceQ4 Turbo</a><img src="http://www.assoc-amazon.com/e/ir?t=mandladv-20&#038;l=as2&#038;o=1&#038;a=B001EYPB2S" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />. After a fair amount of searching and configuration changes, I got it to work.</p>
<p>Since the solution I found was spread across a couple of different forum posting that were not directly related to my problem, I thought I&#8217;d write a short tutorial for others who may run into the same situation as I did.</p>
<p><strong>Install ATI HD 4850  Catalyst Drivers</strong><br />
Before I begin explaining the sound settings, I should also explain the process I used to install the ATI Catalyst drivers. I can&#8217;t remember all the pages I referenced to learn how to install the drivers, so I won&#8217;t be able to give credit to the websites that helped my like I&#8217;d like to. </p>
<p>To install the <a href="http://ati.amd.com/support/drivers/linux/linux-radeon.html">ATI HD 4850 Catalyst drivers</a>, you need to go to System > Administration > Synaptic Package Monitor and install the envyng-core package. <a href="http://albertomilone.com/nvidia_scripts1.html">EnvyNG</a> is an application written in Python which will download the latest ATI or NVIDIA driver or the Legacy driver (for older cards) (according to the model of your card) from ATI or Nvidia&#8217;s website and set it up for you handling dependencies (compilers, OpenGL, etc.) which are required in order to build and use the driver. If you don&#8217;t find the envyng-core package when you search, check to make sure that &#8220;Proprietary drivers for devices (restricted) is checked on the software sources menu.</p>
<p><center><a href="http://www.mandladventures.com/wp-content/uploads/2008/11/screenshot-synaptic-package-manager-large.jpg"><img src="http://www.mandladventures.com/wp-content/uploads/2008/11/screenshot-synaptic-package-manager.jpg" alt="Synaptic Package Manager - EnvyNG" width="500" height="371" /></a></center></p>
<p>Once this package is installed, you should restart you computer. Once you&#8217;ve restarted, the Hardware Drivers application located under System > Administration should find the ATI/AMD proprietary FGLRX graphics driver. This driver should be installed and activated. The driver is required to fully utilize the 3D potential of some ATI  graphics cards, as well as provide 2D acceleration of newer cards. Once installed, it&#8217;s probably a good idea to restart you PC once more.</p>
<p><center><a href="http://www.mandladventures.com/wp-content/uploads/2008/11/screenshot-hardware-drivers.png"><img src="http://www.mandladventures.com/wp-content/uploads/2008/11/screenshot-hardware-drivers.jpg" alt="ATI/AMD proprietary FGLRX graphics driver" /></a></center></p>
<p>With the ATI Catalyst driver installed, you should be able to fully enjoy the <a href="http://http://www.compiz-fusion.org/">Compiz-Fusion</a> effects in Ubuntu 8.10. The driver version I&#8217;m using is 8.54.3 with Catalyst Control Center Version 2.1.</p>
<p><strong>Update System Sound Settings</strong><br />
For your system to play sounds through your graphics card&#8217;s HDMI port, you need to tell Ubuntu to use the graphics card sound system VS your motherboard&#8217;s. This is the intuitive change. Go to System > Preferences >  Sound. On the Devices tab, change all of the options excluding sound capture (e.g., Sound Events, Music and Movies, Audio Conferencing, and Default Mixer Tracks) to HDA ATI HDMI ATI HDMI (ALSA). </p>
<p><center><a href="http://www.mandladventures.com/wp-content/uploads/2008/11/sound_preferences.png"><img src="http://www.mandladventures.com/wp-content/uploads/2008/11/sound_preferences.jpg" alt="Ubuntu Sound Preferences - HDA ATI HDMI ATI HDMI (ALSA)" /></a></center></p>
<p>The next sound change is less intuitive; it requires you to double click on the speaker icon in your top panel to bring up the Volume Control menu. On this menu, change the Device drop down list option to &#8220;HDA ATI HDMI (Alsa mixer) and then select the Preferences button near the bottom right. On the preferences menu, check the IEC958 Switches track to be visible and then close the preferences screen. Back on the Volume Control screen, you should now have an IEC958 option on a Switches tab. Check this option and close the Volume Control menu.</p>
<p><center><a href="http://www.mandladventures.com/wp-content/uploads/2008/11/screenshot-volume-control-hda-ati-hdmi-alsa-mixer.png"><img src="http://www.mandladventures.com/wp-content/uploads/2008/11/screenshot-volume-control-hda-ati-hdmi-alsa-mixer.jpg" alt="HDA ATI HDMI (Alsa mixer) - IEC958" /></a></center></p>
<p>The sound tests available on the System > Preferences >  Sound should now play sounds. If it works, you&#8217;ll be hearing the tests sounds on your TV using only the HDMI out cable on the HD 4850.</p>
<p>I owe a big thank you to the MediaBox Blog posting titled &#8220;<a href="http://www.mediaboxblog.co.uk/blog1.php/2008/08/15/howto-audio-over-hdmi-with-the-hd3200-rs">HOWTO: Audio over HDMI with the HD3200 \ RS780 in Ubuntu</a>&#8221; for these sound setting tips.</p>
<p><strong>VLC Sound Settings</strong><br />
I prefer the <a href="http://www.videolan.org/vlc/">VLC media player</a> over Ibex&#8217;s default <a href="http://www.gnome.org/projects/totem/">Totem movie player</a>. However, in this particular case, Totem played the sounds through my video card without requiring any additional changes while VLC did not.</p>
<p>Finding the appropriate audio settings in VLC proved a bit more challenging than I expected. To save you the time, I&#8217;ll outline exactly what you need to change. Open up VLC preferences by selection preferences from the tools menu.  Near the bottom left of the preferences screen, be sure to select all as the show settings option. </p>
<p>Expand the Audio menu and then the Output modules option. On the Output Modules option, select ALSA audio output form the drop down menu. </p>
<p><center><a href="http://www.mandladventures.com/wp-content/uploads/2008/11/vlc_audio_preferences.png"><img src="http://www.mandladventures.com/wp-content/uploads/2008/11/vlc_audio_preferences.jpg" alt="VLC Output Module ALSA" /></a></center></p>
<p>Then go to the ALSA option under the expanded Output modules section. Here you need to refresh the ALSA Device Name list. Once the list has refreshed, select HDA ATI HDMI: ATI HDMI (hw:1,3) and save all your settings.</p>
<p><center><a href="http://www.mandladventures.com/wp-content/uploads/2008/11/vlc_alsa_preferences.png"><img src="http://www.mandladventures.com/wp-content/uploads/2008/11/vlc_alsa_preferences.jpg" alt="VLC ALSA Preferences" /></a></center></p>
<p>VLC should now also play sounds through an HDMI cable. </p>
<p>For this VLC tip, I owe a big thank you to tie_dyed_sox on the <a href="http://ubuntuforums.org/showthread.php?t=480959">Ubuntu forums</a>.</p>
<p><script type="text/javascript" src="http://www.assoc-amazon.com/s/link-enhancer?tag=mandladv-20&#038;o=1">
</script><br />
<noscript><br />
    <img src="http://www.assoc-amazon.com/s/noscript?tag=mandladv-20" alt="" /><br />
</noscript></p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.mandladventures.com/2008/11/03/ubuntu-810-hdmi-sound-configuration/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>Google Calendar on your Site</title>
		<link>http://www.mandladventures.com/2007/05/07/google-calendar-on-your-site/</link>
		<comments>http://www.mandladventures.com/2007/05/07/google-calendar-on-your-site/#comments</comments>
		<pubDate>Mon, 07 May 2007 12:30:37 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://www.mandladventures.com/?p=220</guid>
		<description><![CDATA[Would you like the ablity to post your an easy to maintain Calendar on your own website? Google&#8217;s Calendar makes it easier than ever. In the past, creating Calendars on web pages was a pain. I&#8217;ve tried a few solutions and looked at a few more. The easy ones weren&#8217;t very good and the complex [...]
Related post
<strong>Related Posts:</storng><ul>s:<ol>
<li><a href='http://www.mandladventures.com/2007/08/29/google-adds-youtube-style-embedded-maps/' rel='bookmark' title='Google Adds YouTube-style Embedded Maps'>Google Adds YouTube-style Embedded Maps</a></li>
<li><a href='http://www.mandladventures.com/2006/05/02/google-sketchup/' rel='bookmark' title='Google SketchUp'>Google SketchUp</a></li>
<li><a href='http://www.mandladventures.com/2006/05/04/google-maps-api/' rel='bookmark' title='Google Maps API Tutorial'>Google Maps API Tutorial</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p>Would you like the ablity to post your an easy to maintain Calendar on your own website? Google&#8217;s Calendar makes it easier than ever. In the past, creating Calendars on web pages was a pain. I&#8217;ve tried a few solutions and looked at a few more. The easy ones weren&#8217;t very good and the complex ones were a pain to work with. At least that was my experience.</p>
<p>If you like how the Calendar below looks and don&#8217;t mind managing the Calendar through Google, then the tutorial below is for you.</p>
<p><iframe src="http://www.google.com/calendar/embed?src=3oegolp6ac56q2931u15ltb5n4%40group.calendar.google.com&amp;title=Your%20Calendar%20Title&amp;chrome=NAVIGATION&amp;wkst=1&amp;hl=en&amp;height=588" style=" border-width:0 " width="480" frameborder="0" height="588"></iframe><br />
Before we can get started you will to <a href="https://www.google.com/accounts/NewAccount">sign up</a> for a Google account if you don&#8217;t already have one. Once you have an account or if you already had one, you need to sign in or goto your <a href="http://www.google.com/calendar">Calendar</a>.</p>
<p>Once you&#8217;ve signed into your Calendar, you must decide if you want to share your main calendar or create a second just for your website. I recommend creating a second one so you can keep personal events separate from events you want others to see. To create a second calendar, expand (if it isn&#8217;t already) the calendar list by clicking the arrow beside Calendar.</p>
<p><img src='http://www.mandladventures.com/wp-content/uploads/2007/05/3_select_calendar.Png' alt='Select Calendar' /></p>
<p>Once expanded, click the plus sign next to My Calendars (My shared Calendar has already been created, so that&#8217;s why you see &#8220;Your Shared Calendar&#8221; in the list of Calendars in the below screen shot).</p>
<p><img src='http://www.mandladventures.com/wp-content/uploads/2007/05/4_expanded_view.Png' alt='Expanded View' /></p>
<p>You will need to fill in the details of your shared calendar. The main setting we&#8217;re concerned with here is to make sure &#8220;Share with Everyone&#8221; is set to &#8220;Share all information on this calendar with everyone&#8221;.</p>
<p><a href='http://www.mandladventures.com/wp-content/uploads/2007/05/1_create_calendar.Png' title='Create Shared Calendar'><img src='http://www.mandladventures.com/wp-content/uploads/2007/05/1_create_calendar_sm.Png' alt='Create Shared Calendar' /></a></p>
<p>When prompted with &#8220;Are you sure you want to share this calendar with everyone?<br />
Public calendars appear in Google Calendar searches.&#8221; select &#8220;Yes.&#8221;</p>
<p><img src='http://www.mandladventures.com/wp-content/uploads/2007/05/2_pubic_warning.Png' alt='Public Viewable Warning' /></p>
<p>Once you&#8217;ve hit the &#8220;Create Calendar&#8221; button, your shared calendar&#8217;s title should appear in the Calendars sidebar. The next step is to click on the little down arrow next to title of the calendar you want to share and select &#8220;Calendar Settings.&#8221;</p>
<p><img src='http://www.mandladventures.com/wp-content/uploads/2007/05/5_calendar_settings.Png' alt='Calendar Settings' /></p>
<p>This will take you back to the Calendar details page. On this page click on the &#8220;HTML&#8221; button in the Calendar Address section. When the dialog box appears, select the &#8220;Configuration Tool&#8221; Link.</p>
<p><a href='http://www.mandladventures.com/wp-content/uploads/2007/05/6_configuration.Png' title='Share HTML via Configuration Tool'><img src='http://www.mandladventures.com/wp-content/uploads/2007/05/6_configuration_sm.Png' alt='Share HTML via Configuration Tool' /></a></p>
<p>The configuration of the Calendar is really up to you, but one thing to watch out for is the Calendar width. Make sure it will fit in the section of your site you would like to embed it in. 480 pixels wide is just right for my site. I happened to know my site&#8217;s content section is around 500 pixels wide. Several ways exist to find the width of the area you&#8217;d like to put the calendar in. Firefox has a cool plug-in called <a href="https://addons.mozilla.org/en-US/firefox/addon/539">MeasureIt</a>. You can also check your <abbr title="Cascading Style Sheets">CSS</abbr> file for the content div. Or you could just do trial an error. Your choice.</p>
<p><a href='http://www.mandladventures.com/wp-content/uploads/2007/05/7_options.Png' title='Shared Calendar Viewing Options'><img src='http://www.mandladventures.com/wp-content/uploads/2007/05/7_options_sm.Png' alt='Shared Calendar Viewing Options' /></a></p>
<p>Once you&#8217;ve got all of the settings the way you like them, hit the &#8220;Update URL&#8221; button. All that&#8217;s left is copy and pasting the generated code into your website where you&#8217;d like the Calendar to appear. Easy as that!</p>
<p><img src='http://www.mandladventures.com/wp-content/uploads/2007/05/8_html.Png' alt='Copy HTML Code' /></p>
<p>I don&#8217;t imagine you&#8217;ll have any problems because I&#8217;ve attempted to make this tutorial very beginners friendly, but if you do feel free to ask questions in the comments below. You can also check out <a href="http://www.google.com/support/calendar/bin/answer.py?answer=41207">Google&#8217;s brief explanation</a> of how to do what I explained above.</p>
<p>What I&#8217;ve explained is a fairly basic way to add a Google Calendar to your own site. This works great for many people who want to manage their Calendar via Google&#8217;s interface and simply display the events on a website. However, the method described above doesn&#8217;t allow you or any of your site visitors to manage the Calendar or interact with it in any way.</p>
<p>If you would like the ability to interact with the Calendar on your site in a way that is similar to actually logging into your Google Calendar, then you need to use the <a href="http://code.google.com/apis/calendar/developers_guide_protocol.html">Google Calendar Data API</a>. This requires quite a bit of programming knowledge and is beyond the scope of this tutorial. I recommend reading Google&#8217;s <a href="http://code.google.com/apis/calendar/developers_guide_protocol.html">API documentation</a> for help with this.</p>
<p>Related post<p><strong>Related Posts:</storng></p><ul>s:<ol>
<li><a href='http://www.mandladventures.com/2007/08/29/google-adds-youtube-style-embedded-maps/' rel='bookmark' title='Google Adds YouTube-style Embedded Maps'>Google Adds YouTube-style Embedded Maps</a></li>
<li><a href='http://www.mandladventures.com/2006/05/02/google-sketchup/' rel='bookmark' title='Google SketchUp'>Google SketchUp</a></li>
<li><a href='http://www.mandladventures.com/2006/05/04/google-maps-api/' rel='bookmark' title='Google Maps API Tutorial'>Google Maps API Tutorial</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.mandladventures.com/2007/05/07/google-calendar-on-your-site/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>How to Flash the WRT54GL with DD-WRT Firmware</title>
		<link>http://www.mandladventures.com/2007/04/12/how-to-flash-the-wrt54gl-with-dd-wrt-firmware/</link>
		<comments>http://www.mandladventures.com/2007/04/12/how-to-flash-the-wrt54gl-with-dd-wrt-firmware/#comments</comments>
		<pubDate>Thu, 12 Apr 2007 23:38:36 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[DD-WRT]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[WRT54GL]]></category>

		<guid isPermaLink="false">http://www.mandladventures.com/?p=191</guid>
		<description><![CDATA[**DISCLAIMER** The following instructions are provided without warranty of any kind. Flashing firmware does not come without risk. I will not be held responsible for any resulting equipment failure or otherwise undesirable results. Proceed at your own risk. This tutorial explains how I successfully flashed my Linksys WRT54GL version 1.1 with the open source DD-WRT [...]
Related post
<strong>Related Posts:</storng><ul>s:<ol>
<li><a href='http://www.mandladventures.com/2008/12/03/how-to-change-your-wrt54gl-firmware-from-dd-wrt-to-tomato/' rel='bookmark' title='How to Flash Your WRT54GL Firmware from DD-WRT to Tomato'>How to Flash Your WRT54GL Firmware from DD-WRT to Tomato</a></li>
<li><a href='http://www.mandladventures.com/2008/01/19/tomato-firmware-option-for-wrt54gl/' rel='bookmark' title='Tomato Firmware Option for WRT54GL'>Tomato Firmware Option for WRT54GL</a></li>
<li><a href='http://www.mandladventures.com/2008/11/01/tomato-firmware-upgrade-and-demo-video/' rel='bookmark' title='Tomato Firmware Upgrade and Demo Video'>Tomato Firmware Upgrade and Demo Video</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p class="alert"><strong>**DISCLAIMER**</strong>  <em>The following instructions are provided without warranty of any kind. Flashing firmware does not come without risk. I will not be held responsible for any resulting equipment failure or otherwise undesirable results. Proceed at your own risk.</em></p>
<p><span  class="alignleft"><iframe src="http://rcm.amazon.com/e/cm?lt1=_blank&#038;bc1=FFFFFF&#038;IS2=1&#038;npa=1&#038;bg1=FFFFFF&#038;fc1=000000&#038;lc1=0D78B6&#038;t=wrt54g-20&#038;o=1&#038;p=8&#038;l=as4&#038;m=amazon&#038;f=ifr&#038;ref=ss_til&#038;asins=B000BTL0OA" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></span><span class="highlight">This tutorial explains how I successfully flashed my Linksys WRT54GL version 1.1 with the open source DD-WRT version 23 SP2 VPN firmware (generic).</span> </p>
<p>Before proceeding, verify your WRT54GL is version 1.1.  Per <a href="http://en.wikipedia.org/wiki/WRT54G#WRT54GL">Wikipedia entry</a> and <a href="http://www.dd-wrt.com/wiki/index.php/Linksys_WRT54G/GL/GS/GX">DD-WRT Wiki</a>), you can tell which version you have by checking the serial number. The serial number should be located on a sticker underneath the router.  The serial number prefix CL7B corresponds to version 1.1 and CL7A corresponds to version 1.0.</p>
<p>Don&#8217;t despair if your router is version 1.0. You can still flash to the DD-WRT firmware. However, the process will be different due to a flash file size limit on the version 1.0 WRT54GL firmware. The main difference is that you will need to flash to a smaller version of the DD-WRT firmware (the mini version) first and then re-flash to the standard, VOIP, or VPN versions.</p>
<p>As a bit of background information, used a fully patched (as of April 6, 2007) Windows XP Pro with Service Pack 2 (SP2) and Internet Explorer 6 during the firmware upgrade process. The OS and web browser shouldn&#8217;t matter, but I have heard reports of Firefox causing some problems with the Flash for some people in the past though others have claimed to use Firefox without any problems.</p>
<p>Before you begin, <a href="http://dd-wrt.com/dd-wrtv2/downloads.php">download</a> the package and version of the DD-WRT firmware best suited to your needs. This tutorial walks through flashing to the open source DD-WRT version 23 SP2 VPN firmware. Once you&#8217;ve downloaded the file, go ahead an unzip the files. The zip package contains several files, <span class="highlight">you will only need the &#8220;DD-WRT.v23_vpn_generic&#8221; file</span>. We&#8217;re going to be using the generic file rather than the wrt54g file because we&#8217;re going to be using the web <abbr title="graphical user interface">GUI</abbr> to upload the file.<span id="more-191"></span></p>
<p><span class="highlight">I recommend verifying the MD5SUM hash of the &#8220;DD-WRT.v23_vpn_generic&#8221; file to ensure the download wasn&#8217;t corrupt or hasn&#8217;t been comprised.</span> If you don&#8217;t already have a tool to calculate MD5SUMs, I currently use <a href="http://www.download.com/HashCalc/3000-2248_4-10130771.html?tag=lst-0-3">HashCalc</a>. I like it because it can calculate many different hash types, not just MD5s. <span class="highlight">The signature of the file should be baf91850d3204fd64b120467425b4a11.</span> If you plan on flashing a different version, you can find of list of signatures on the DD-WRT <a href="http://dd-wrt.com/wiki/index.php/Hashes">hashes page</a>.</p>
<p><span class="highlight">Since you will not have Internet access during this process, I recommend copying the information from the following pages into a document:</span></p>
<ul>
<li><a href="http://www.mandladventures.com/2007/04/12/how-to-flash-the-wrt54gl-with-DD-WRT-firmware/">How to Flash the WRT54GL with DD-WRT Firmware</a></li>
<li><a href="http://dd-wrt.com/wiki/index.php/Installation">Installation</a></li>
<li><a href="http://dd-wrt.com/wiki/index.php/Linksys_WRT54G/GL/GS/GX#WRT54GL">WRT54GL Specific Instructions</a></li>
<li><a href="http://dd-wrt.com/wiki/index.php/Reset_And_Reboot">Reset and Reboot</a></li>
<li><a href="http://dd-wrt.com/wiki/index.php/Recover_from_a_Bad_Flash">Recover from a Bad Flash</a></li>
</ul>
<p><span class="highlight">It is best to turn off your firewall and anti-virus software during this process to ensure that nothing interrupts the firmware flash.</span> An interruption could cause the flash to fail and <a href="http://dd-wrt.com/wiki/index.php/Glossary#Brick">brick</a> your router. If something does go wrong you may be able to <a href="http://dd-wrt.com/wiki/index.php/Recover_from_a_Bad_Flash">recover from a bad flash</a>.</p>
<p><span class="highlight">I almost forgot to mention that you should ONLY perform the flash through an Ethernet cable using standard http (not https). Do not do this wirelessly (for the extremely caution, temporarily disable the wireless adapter on your computer to ensure your connecting through a wired connection). Plug the blue Ethernet (Cat5/RJ45) cable that came with your router into the Network Interface Card (NIC) on the back of your computer and into one of the ports labeled 1, 2, 3, or 4. The &#8220;Internet&#8221; port on your router should be connected to your broadband source (e.g., cable or DSL modem).</span>  <em>Please ignore the extra cable in the picture. It is not needed for the flash to work.</em></p>
<p><img src='http://www.mandladventures.com/wp-content/uploads/2007/04/plugs.jpg' alt='Linksys WRT54GL Cable Connections' /></p>
<p><span class="highlight">The last item that needs to be completed before uploading the new firmware is to reset your Linksys router to the factory defaults.</span> More than one way to do this exists:</p>
<ul>
<li>Selecting reset button within the web interface</li>
<li>Holding the reset button on the back of the router for 30 seconds</li>
</ul>
<p><span class="highlight">To reset the router to firmware defaults, go to the internal IP address of your router (most likely 192.168.1.1) and login with the user name and password you setup when you first installed the router (if you don&#8217;t remember, use the reset button method). Once logged in, go to &#8220;Administration&#8221; tab and the &#8220;Factory Defaults&#8221; sub-tab. Select the &#8220;Yes&#8221; radio button next to &#8220;Restore Factory Defaults&#8221; then select &#8220;Save Settings&#8221;.</span></p>
<p><img src='http://www.mandladventures.com/wp-content/uploads/2007/04/1_linksys_restore.jpg' alt='Linksys Restore' /></p>
<p>If the reset was successful, you will see a page that says &#8220;Settings are successful. You will be returned to the previous page after several seconds.&#8221;</p>
<p><img src='http://www.mandladventures.com/wp-content/uploads/2007/04/2_linksys_reset_confirmation.jpg' alt='Linksys Reset Confirmation' /></p>
<p>Now that everything is setup we can begin the process of actually performing the flash. <span class="highlight">To upload the firmware, navigate to the &#8220;Firmware Upgrade&#8221; sub-tab under the &#8220;Administration&#8221; tab. On this page, select &#8220;Browse&#8221; to go to the place where you saved the &#8220;DD-WRT.v23_vpn_generic&#8221; file. Once located, select open and then the &#8220;Upgrade&#8221; button. Please wait patiently for the upload to complete. Whatever you do, <strong>DO NOT</strong> interrupt it.</span> Walk away for a few minutes if your one of those people who tend to get impatient and cannot resist clicking buttons when things do not seem to be working as quickly as you think they should.</p>
<p><span class="highlight">If all goes as well as expected, you will greeted by a screen that says &#8220;Upgrade is successful&#8221;. Next, click the &#8220;continue&#8221; button. </span> If not successful, simply re-try the same steps or research the <a href="http://dd-wrt.com/wiki/index.php/Main_Page">DD-WRT wiki</a> for more info.</p>
<p><img src='http://www.mandladventures.com/wp-content/uploads/2007/04/3_firmware_upload.jpg' alt='Firmware Upload' /></p>
<p><span class="highlight">Next, you should see is a prompt to login to the new DD-WRT interface. The default user name is &#8220;root&#8221; and the default password is &#8220;admin&#8221;. Be warned, I wasn&#8217;t able to log-in initially even though I got this prompt. I&#8217;ll explain how I got resolved this momentarily. </p>
<p><img src='http://www.mandladventures.com/wp-content/uploads/2007/04/5_dd-wrt_login.jpg' alt='DD-WRT log-in' /></p>
<p>To confirm that your router is working you should <a href="http://en.wikipedia.org/wiki/Ping">ping</a> it. To ping your router, go to &#8220;Start > Run&#8221; in windows. Then type in &#8220;cmd&#8221; and hit &#8220;ok&#8221;. At the command prompt type in &#8220;ping 192.168.1.1&#8243;. If the router is online, you will get a ping response that says Packets Sent = 4, Received = 4, Lost = 0 (0% lost).&#8221;</span></p>
<p><img src='http://www.mandladventures.com/wp-content/uploads/2007/04/6_ping.jpg' alt='Ping' /></p>
<p>Since the DD-WRT web interface didn&#8217;t come up right after the flash, I reset the new DD-WRT firmware back to firmware defaults. <span class="highlight">To do this you need to hold the reset button on the back of the router while unplugging the router. Continue to hold the reset button as you re-plug in the router. Once the router is plugged in you should continue holding the reset button for 30 seconds to complete the hard reset.</span> This procedure is tricky so you may have to try a couple of times to get it exactly right (I did).</p>
<p><span class="highlight">Once reset, go back to Internet Explorer (or your preferred browser) and navigate to 192.168.1.1. At the prompt enter in &#8220;root&#8221; for the user name and &#8220;admin&#8221; as the password. The DD-WRT web interface should come up this time.</span></p>
<p><img src='http://www.mandladventures.com/wp-content/uploads/2007/04/7_dd-wrt_iterface.jpg' alt='DD-WRT Interface' /></p>
<p><span  class="alignright"><iframe src="http://rcm.amazon.com/e/cm?lt1=_blank&#038;bc1=FFFFFF&#038;IS1=1&#038;npa=1&#038;bg1=FFFFFF&#038;fc1=000000&#038;lc1=0D78B6&#038;t=wrt54g-20&#038;o=1&#038;p=8&#038;l=as4&#038;m=amazon&#038;f=ifr&#038;ref=ss_til&#038;asins=0596101449" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></span></p>
<p><span class="highlight">Congratulations, you’ve successfully flashed your router!</span> Since you’ve successfully flashed your WRT54G, you may be interested in <a href="http://www.amazon.com/gp/product/0596101449/ref=as_li_ss_tl?ie=UTF8&#038;tag=wrt54g-20&#038;linkCode=as2&#038;camp=217145&#038;creative=399349&#038;creativeASIN=0596101449">Wireless Hacks: Tips &#038; Tools for Building, Extending, and Securing Your Network</a><img src="http://www.assoc-amazon.com/e/ir?t=&#038;l=as2&#038;o=1&#038;a=0596101449&#038;camp=217145&#038;creative=399349" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />.</p>
<p class="alert">Now that your running DD-WRT firmware, make sure to make use of all the available security features. See my post on <a href="http://www.mandladventures.com/2007/04/21/securing-your-wireless-network/">Securing Your Wireless Connection</a> and other post in the <a href="http://www.mandladventures.com/category/tech-stuff/DD-WRT/">DD-WRT category</a>.</p>
<p>If you liked this post, consider subscribing to my <a href="http://feeds.feedburner.com/MAndLAdventures">feed</a> and/or sending me something from my <a href="http://www.amazon.com/gp/registry/wishlist/W77D6UZQZW9X">wish list</a>.</p>
<p>Related post<p><strong>Related Posts:</storng></p><ul>s:<ol>
<li><a href='http://www.mandladventures.com/2008/12/03/how-to-change-your-wrt54gl-firmware-from-dd-wrt-to-tomato/' rel='bookmark' title='How to Flash Your WRT54GL Firmware from DD-WRT to Tomato'>How to Flash Your WRT54GL Firmware from DD-WRT to Tomato</a></li>
<li><a href='http://www.mandladventures.com/2008/01/19/tomato-firmware-option-for-wrt54gl/' rel='bookmark' title='Tomato Firmware Option for WRT54GL'>Tomato Firmware Option for WRT54GL</a></li>
<li><a href='http://www.mandladventures.com/2008/11/01/tomato-firmware-upgrade-and-demo-video/' rel='bookmark' title='Tomato Firmware Upgrade and Demo Video'>Tomato Firmware Upgrade and Demo Video</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.mandladventures.com/2007/04/12/how-to-flash-the-wrt54gl-with-dd-wrt-firmware/feed/</wfw:commentRss>
		<slash:comments>201</slash:comments>
		</item>
		<item>
		<title>Google Maps API Tutorial</title>
		<link>http://www.mandladventures.com/2006/05/04/google-maps-api/</link>
		<comments>http://www.mandladventures.com/2006/05/04/google-maps-api/#comments</comments>
		<pubDate>Thu, 04 May 2006 14:35:58 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.mandladventures.com/?p=41</guid>
		<description><![CDATA[Before you go through all the complexities of this tutorial, I recommend that you check out a recent Google Maps development I&#8217;ve posted about. I think you&#8217;ll find it quite helpful! In response to a post on the Godbit forum, I created this brief Google Maps API tutorial. I believe every Church website, and every [...]
Related post
<strong>Related Posts:</storng><ul>s:<ol>
<li><a href='http://www.mandladventures.com/2007/08/29/google-adds-youtube-style-embedded-maps/' rel='bookmark' title='Google Adds YouTube-style Embedded Maps'>Google Adds YouTube-style Embedded Maps</a></li>
<li><a href='http://www.mandladventures.com/2007/05/07/google-calendar-on-your-site/' rel='bookmark' title='Google Calendar on your Site'>Google Calendar on your Site</a></li>
<li><a href='http://www.mandladventures.com/2006/05/02/google-sketchup/' rel='bookmark' title='Google SketchUp'>Google SketchUp</a></li>
</ul>]]></description>
			<content:encoded><![CDATA[<p class="alert">Before you go through all the complexities of this tutorial, I recommend that you check out a recent <a href="http://www.mandladventures.com/2007/08/29/google-adds-youtube-style-embedded-maps/">Google Maps development</a> I&#8217;ve posted about. I think you&#8217;ll find it quite helpful!</p>
<p>In response to a post on the <a title="Godbit Forum " href="http://godbit.com/forum/viewtopic.php?id=603">Godbit forum</a>, I created this brief Google Maps API tutorial. I believe every Church website, and every business for that matter, should provide a map and directions. The Google API lets us take that concept to a new level.<br />
<strong>After completion of this tutorial you should be able to:</strong></p>
<ul>
<li>Have your own interactive map (I guess that&#8217;s a given since that is what this tutorial is about)</li>
<lil>Set the default zoom level</li>
<li>Locate your geo coordinates</li>
<li>Center your map on those coordinates</li>
<li>Place a marker on those coordinates</li>
<li>Have a custom pop-up with a form to get To Here and From Here Directions</li>
<li>Know where to go to learn more</li>
</ul>
<p>Want to see an <a title="Map Example" href="http://www.mandladventures.com/tutorials/map_tutorial/map.htm">example</a> before we start? <br />
You can also see this on a site I created at <a title="Vance Auto Sales Location Map Example" href="http://vanceauto.com/location_hours.php">Vance Auto Sales</a>.<br />
<span id="more-41"></span></p>
<p><small><em>Special Note</em>: Google upgraded their API on April 3, 2006. I modified this code before writing this tutorial to use the new API, so all the new version 2 features should be available if you want to add some in. Also, Google does not provide any kind of routing features in the API. So when a user types in the address to get directions, a real Google Map opens in a new window with directions to or from our location.</small></p>
<p><center><iframe src="http://rcm.amazon.com/e/cm?t=mandladv-20&#038;o=1&#038;p=13&#038;l=st1&#038;mode=books&#038;search=Google%20Maps&#038;fc1=000000&#038;lt1=&#038;lc1=3366FF&#038;bg1=FFFFFF&#038;f=ifr" marginwidth="0" marginheight="0" width="468" height="60" border="0" frameborder="0" style="border:none;" scrolling="no"></iframe></center></p>
<p><strong>Step 1-Sign up for a API Key</strong><br />
Before you can place a map on your own site you need to sign up for a <a title="Sign Up for a Google Maps API Key" href="http://www.google.com/apis/maps/signup.html">Google API Key</a>.</p>
<p>To sign up, you&#8217;ll need to provide the URL of the site that will be using the key. The easiest thing to do is provide the top-level directory that will use the key (rather than the absolute address of the page that will be using the map). Doing this ensures that you&#8217;re map will work on any page of your site. For example: I provided <a title="M and L Adventures Top Level Domain" href="http://www.mandladventures.com/">http://www.mandladventures.com/</a> <br />
Leave the page with the key in it open, so you can copy and paste the key in later steps. Remember, if you&#8217;re testing this on a localhost server, and then uploading it to a production server you&#8217;ll need two separate API keys.</p>
<p><strong>Step 2-Locate Your Geo Coordinates</strong><br />
Google doesn&#8217;t provide a geocoding service at this time, so you&#8217;ll find that on your own.<br />
<a title="find the latitude &#038; longitude of any US address - for free" href="http://geocoder.us/">Geocoder.us</a> is what I used. <br />
Simply enter the address you want to find the coordinates for, and write down the latitude and longitude geocoder.us provides. <br />
Geocoder.us is only for United States addresses. If you live somewhere else, search for <a title="Free Geocoders Search results" href="http://www.google.com/search?q=free+geocoder">free geocoders</a>.</p>
<p><strong>Step 3-Create an XML file</strong><br />
This XML file will store all the points you want to mark on the map. This file also provides the text that will appear when the marker is selected. In our example, we only create one marker. If you want more than one marker on the map, add more instances of the of marker in the XML code below.</p>
<pre>
&lt;markers&gt;
  &lt;marker lat=&#34;35.827818&#34; lng=&#34;-86.072576&#34; html=&#34;&amp;lt;b&amp;#47;&amp;gt;First Baptist Church&amp;lt;&amp;#47;b&amp;#47;&amp;gt; &amp;lt;br &amp;#47;&amp;gt; 405 West Main Street, &amp;lt;br &amp;#47;&amp;gt; Woodbury, TN 37190&#34; label=&#34;FBC&#34;&#47;&gt;
&lt;&#47;markers&gt;
</pre>
<p>Change lat=&#8221;35.827818&#8243; to your address&#8217;s latitude. <br />
Change lng=&#8221;-86.072576&#8243; to your address&#8217;s longitude. </p>
<p>Replace &#8220;First Baptist Church&#8221; with the title of your location.<br />
Change 405 West Main Street, &amp;lt;br /&amp;gt; Woodbury, TN 37190 to your address. <br />
Change the label=&#8221;FBC&#8221; to whatever you want. <br />
Save the file as map.xml, and upload it to the same directory where your map page will be. You can change the directory, but you will have to change all the references to map.xml in step 7&#8242;s code to point to a your directory.</p>
<p><em>Remember</em>: XML requires all HTML characters to be escaped.<br />
For your convenience, I included a list of commonly escapeed characters below:</p>
<pre class="normaltext">
&lt; = &amp;lt;
&gt; = &amp;gt;
/ = &amp;#47;
] = &amp;#93;
[ = &amp;#91;
&quot; = &amp;#34;
' = &amp;#39;
</pre>
<p><strong>Step 4-Call the API with your key</strong><br />
Insert the following code in the head section of your web page, placing your API key between key= and &#8221;</p>
<pre>
&lt;script src=&#34;http:&#47;&#47;maps.google.com&#47;maps?file=api&amp;v=2&amp;key=ABQIAAAAbTgUqmDVtw6KNosttYwutxR-kQiDMsqewHdPfI0JvuxAHQRqVhQsEF-filcfK_gQIlIUCIcFhtJH0Q&#34; type=&#34;text&#47;javascript&#34;&gt;&lt;&#47;script&gt;

</pre>
<p><strong>Step 5-Add an onunload event to the body tag</strong></p>
<pre>
&lt;body onunload=&#34;GUnload()&#34;&gt;
</pre>
<p><strong>Step 6-Place the div to contain the map</strong></p>
<pre>
     &lt;div id=&#34;map&#34; style=&#34;width: 550px; height: 450px; border: 1px solid #000000;&#34;&gt;&lt;&#47;div&gt;

	 &lt;!--What to display if JavaScript is disabled in the user&#39;s browser--&gt;
    &lt;noscript&gt;&lt;strong&gt;JavaScript must be enabled in order for you to use Google Maps.&lt;&#47;strong&gt;&lt;br &#47;&gt;
      However, it seems JavaScript is either disabled or not supported by your browser. &lt;br &#47;&gt;
      To view Google Maps, enable JavaScript by changing your browser options, and then
      try again.&lt;br &#47;&gt;&lt;br &#47;&gt;
    &lt;&#47;noscript&gt;
</pre>
<p>Insert this div, where you want to the map to appear.<br />
Change the sytle to fit your needs.</p>
<p><strong>Step 7-Insert the final bit of code</strong><br />
Insert this right before the /body and /html tags at the end of your web page that contains the map.</p>
<pre>
&lt;script type=&#34;text&#47;javascript&#34;&gt;
    &#47;&#47;&lt;!&#91;CDATA&#91;

	&#47;&#47;the original code had a GMapSidebar to pick the markers from, I eliminated the GMapSidebar,
	&#47;&#47;but deleting the code that referenced the bar corrupted the rest of the code
	&#47;&#47;so just ignore references to GMapSidebar, unless you&#39;re really with JavaScript
    if (GBrowserIsCompatible()) {
      &#47;&#47; this variable will collect the html which will eventually be placed in the GMapSidebar
      var GMapSidebar_html = &#34;&#34;;

      &#47;&#47; arrays to hold copies of the markers and html used by the GMapSidebar
      &#47;&#47; because the function closure trick doesnt work there
      var gmarkers = &#91;&#93;;
      var htmls = &#91;&#93;;
      var i = 0;
      &#47;&#47; arrays to hold variants of the info window html with get direction forms open
      var to_htmls = &#91;&#93;;
      var from_htmls = &#91;&#93;;

      &#47;&#47; A function to create the marker and set up the event window
      function createMarker(point,name,html) {
        var marker = new GMarker(point);

        &#47;&#47; The info window version with the &#34;to here&#34; form open (The Directions Form part.)
        to_htmls&#91;i&#93; = html + &#39;&lt;br&gt;Directions: &lt;b&gt;To here&lt;&#47;b&gt; - &lt;a href=&#34;javascript:fromhere(&#39; + i + &#39;)&#34;&gt;From here&lt;&#47;a&gt;&#39; +
           &#39;&lt;br&gt;Start address:&lt;form action=&#34;http:&#47;&#47;maps.google.com&#47;maps&#34; method=&#34;get&#34; target=&#34;_blank&#34;&gt;&#39; +
           &#39;&lt;input type=&#34;text&#34; size=40 maxlength=40 name=&#34;saddr&#34; id=&#34;saddr&#34; value=&#34;&#34; &#47;&gt;&lt;br&gt;&#39; +
           &#39;&lt;input value=&#34;Get Directions&#34; TYPE=&#34;submit&#34;&gt;&#39; +
           &#39;&lt;input type=&#34;hidden&#34; name=&#34;daddr&#34; value=&#34;&#39; + point.lat() + &#39;,&#39; + point.lng() +
                  &#47;&#47; &#34;(&#34; + name + &#34;)&#34; +
           &#39;&#34;&#47;&gt;&#39;;
        &#47;&#47; The info window version with the &#34;to here&#34; form open
        from_htmls&#91;i&#93; = html + &#39;&lt;br&gt;Directions: &lt;a href=&#34;javascript:tohere(&#39; + i + &#39;)&#34;&gt;To here&lt;&#47;a&gt; - &lt;b&gt;From here&lt;&#47;b&gt;&#39; +
           &#39;&lt;br&gt;End address:&lt;form action=&#34;http:&#47;&#47;maps.google.com&#47;maps&#34; method=&#34;get&#34;&#34; target=&#34;_blank&#34;&gt;&#39; +
           &#39;&lt;input type=&#34;text&#34; size=40 maxlength=40 name=&#34;daddr&#34; id=&#34;daddr&#34; value=&#34;&#34; &#47;&gt;&lt;br&gt;&#39; +
           &#39;&lt;input value=&#34;Get Directions&#34; type=&#34;SUBMIT&#34;&gt;&#39; +
           &#39;&lt;input type=&#34;hidden&#34; name=&#34;saddr&#34; value=&#34;&#39; + point.lat() + &#39;,&#39; + point.lng() +
                  &#47;&#47; &#34;(&#34; + name + &#34;)&#34; +
           &#39;&#34;&#47;&gt;&#39;;
        &#47;&#47; The inactive version of the direction info
        html = html + &#39;&lt;br&gt;Directions: &lt;a href=&#34;javascript:tohere(&#39;+i+&#39;)&#34;&gt;To here&lt;&#47;a&gt; - &lt;a href=&#34;javascript:fromhere(&#39;+i+&#39;)&#34;&gt;From here&lt;&#47;a&gt;&#39;;

        GEvent.addListener(marker, &#34;click&#34;, function() {
          marker.openInfoWindowHtml(html);
        });
        &#47;&#47; save the info we need to use later for the GMapSidebar
        gmarkers&#91;i&#93; = marker;
        htmls&#91;i&#93; = html;
        &#47;&#47; add a line to the GMapSidebar html
        GMapSidebar_html += &#39;&lt;a href=&#34;javascript:myclick(&#39; + i + &#39;)&#34;&gt;&#39; + name + &#39;&lt;&#47;a&gt;&lt;br&gt;&#39;;
        i++;
        return marker;
      }

      &#47;&#47; This function picks up the click and opens the corresponding info window
      function myclick(i) {
        gmarkers&#91;i&#93;.openInfoWindowHtml(htmls&#91;i&#93;);
      }

      &#47;&#47; functions that open the directions forms
      function tohere(i) {
        gmarkers&#91;i&#93;.openInfoWindowHtml(to_htmls&#91;i&#93;);
      }
      function fromhere(i) {
        gmarkers&#91;i&#93;.openInfoWindowHtml(from_htmls&#91;i&#93;);
      }

&#47;&#47;*******************************************************************
&#47;&#47;Edit these options to CONFIGURE THE MAP
      &#47;&#47; create the map
      var map = new GMap2(document.getElementById(&#34;map&#34;));
	  &#47;&#47;GLargeMapControl adds large zoom and pan controls on the left,
	  &#47;&#47;you can change it by picking from two of the options described below
	  &#47;&#47;there is a GSmallMapControl for a smaller pan&#47;zoom control
	  &#47;&#47;also there is GSmallZoomControl - a small zoom control (no panning controls)
      map.addControl(new GLargeMapControl());

	  &#47;&#47;this adds the Map, Satellite, and Hybrid buttons, delete line if you don&#39;t want it
      map.addControl(new GMapTypeControl());

	  &#47;&#47;this adds a scale to the bottom left of the map, delete line if you don&#39;t want it
	  map.addControl(new GScaleControl());

	  &#47;&#47;type in the Geo Coordinates and default zoom level below. (Latitude, Longitude), Zoom level);
	  &#47;&#47;these Coordinates set the center of the map, they do not place the marker.
	  &#47;&#47;that is done in the map.xml file. If you want a marker to be centered, type
	  &#47;&#47;the same coordinates here that are used for that marker in the map.xml file
	  &#47;&#47;0 is zoomed all the way out.
      map.setCenter(new GLatLng(35.827818,-86.072576), 12);
&#47;&#47;*******************************************************************

      &#47;&#47; Read the data from map.xml
      var request = GXmlHttp.create();
      request.open(&#34;GET&#34;, &#34;map.xml&#34;, true);
      request.onreadystatechange = function() {
        if (request.readyState == 4) {
          var xmlDoc = request.responseXML;
          &#47;&#47; obtain the array of markers and loop through it
          var markers = xmlDoc.documentElement.getElementsByTagName(&#34;marker&#34;);

          for (var i = 0; i &lt; markers.length; i++) {
            &#47;&#47; obtain the attribues of each marker
            var lat = parseFloat(markers&#91;i&#93;.getAttribute(&#34;lat&#34;));
            var lng = parseFloat(markers&#91;i&#93;.getAttribute(&#34;lng&#34;));
            var point = new GLatLng(lat,lng);
            var html = markers&#91;i&#93;.getAttribute(&#34;html&#34;);
            var label = markers&#91;i&#93;.getAttribute(&#34;label&#34;);
            &#47;&#47; create the marker
            var marker = createMarker(point,label,html);
            map.addOverlay(marker);
          }
          &#47;&#47; put the assembled GMapSidebar_html contents into the GMapSidebar div
          document.getElementById(&#34;GMapSidebar&#34;).innerHTML = GMapSidebar_html;
        }
      }
      request.send(null);
    }

    else {
      alert(&#34;Sorry, the Google Maps API is not compatible with this browser&#34;);
    }

    &#47;&#47; This Javascript is based on code provided by the
    &#47;&#47; Blackpool Community Church Javascript Team
    &#47;&#47; http:&#47;&#47;www.commchurch.freeserve.co.uk&#47;
    &#47;&#47; http:&#47;&#47;www.econym.demon.co.uk&#47;googlemaps&#47;
	&#47;&#47;slight modifications by Matt from http:&#47;&#47;www.mandladventures.com&#47;

    &#47;&#47;&#93;&#93;&gt;
    &lt;&#47;script&gt;
</pre>
<p><strong>Step 8-Configure the map</strong><br />
Edit this section of the code above.</p>
<pre>
&#47;&#47;*******************************************************************
&#47;&#47;Edit these options to CONFIGURE THE MAP
      &#47;&#47; create the map
      var map = new GMap2(document.getElementById(&#34;map&#34;));
	  &#47;&#47;GLargeMapControl adds large zoom and pan controls on the left,
	  &#47;&#47;you can change it by picking to of the options described below
	  &#47;&#47;there is a GSmallMapControl for a smaller pan&#47;zoom control
	  &#47;&#47;also there is GSmallZoomControl - a small zoom control (no panning controls)
      map.addControl(new GLargeMapControl());

	  &#47;&#47;this adds the Map, Satellite, and Hybrid buttons, delete line if you don&#39;t want it
      map.addControl(new GMapTypeControl());

	  &#47;&#47;this adds a scale to the bottom left of the map, delete line if you don&#39;t want it
	  map.addControl(new GScaleControl());

	  &#47;&#47;type in the Geo Coordinates and default zoom level below. (Latitude, Longitude), Zoom level);
	  &#47;&#47;these Coordinates set the center of the map, they do not place the marker.
	  &#47;&#47;that is done in the map.xml file. If you want a marker to be centered, type
	  &#47;&#47;the same coordinates here that are used for that marker in the map.xml file
	  &#47;&#47;0 is zoomed all the way out.
      map.setCenter(new GLatLng(35.827818,-86.072576), 12);
&#47;&#47;*******************************************************************
</pre>
<p>Set the default map center point, and the zoom level.<br />
Change 35.827818 to your latitude<br />
Change -86.072576 to your longitude.<br />
Change 12 to your desired zoom level. 0 is zoomed all the way out.<br />
To delete a control, remove the line of code. <br />
You can change the types of controls used on the map.<br />
For example, some controls can be smaller or bigger, which is useful if you have a small map. I included the alternative control names in the source code comments. For example change GLargeMapControl to GSmallMapControl.</p>
<p><strong>Step 9-Tutorial Complete</strong><br />
Enjoy!</p>
<p><a title="Tutorial Source Code" href="http://www.mandladventures.com/tutorials/map_tutorial/Google_Maps.zip"><img align="left" class="noborder" title="Download Source Code" src="http://www.mandladventures.com/wp-content/uploads/2006/06/package.gif" /></a><br />
<a title="Tutorial Source Code" href="http://www.mandladventures.com/tutorials/map_tutorial/Google_Maps.zip">Download the Source Code</a> used in this tutorial.</p>
<div class="clearer"></div>
<p><strong>To learn more check out these resources:</strong></p>
<ul>
<li>
<a title="Google API Documentation" href="http://www.google.com/apis/maps/documentation/">Google Maps API Version 2 Documentation</a>
	</li>
<li>
<a title="The tutorials" href="http://www.econym.demon.co.uk/googlemaps/index.htm">Good set of Tutorials</a>
        </li>
<li>
<a title="Google Maps API Group" href="http://groups.google.com/group/Google-Maps-API/">Google Maps API Group</a>
        </li>
<li>
<a title="Google Mapki!" href="http://mapki.com/wiki/Main_Page">Google Mapki!</a>
       </li>
</ul>
<p><strong>Big Thanks goes to:</strong></p>
<ul>
<li>
 <a title="Mike Williams" href="http://www.econym.demon.co.uk/">Mike Williams</a> for writing the <a title="The tutorials"  href="http://www.econym.demon.co.uk/googlemaps/index.htm">tutorials</a> I based my code off of</li>
<li>
<a title="Google" href="http://www.google.com/">Google</a> for releasing the API
</li>
<p><center><script type="text/javascript"><!--
  amazon_ad_tag = "mandladv-20";  amazon_ad_width = "468";  amazon_ad_height = "60";  amazon_ad_include = "google+maps";  amazon_ad_categories = "adefg";//--></script><br />
<script type="text/javascript" src="http://www.assoc-amazon.com/s/ads.js"></script></center></p>
<p>Related post<p><strong>Related Posts:</storng></p><ul>s:<ol>
<li><a href='http://www.mandladventures.com/2007/08/29/google-adds-youtube-style-embedded-maps/' rel='bookmark' title='Google Adds YouTube-style Embedded Maps'>Google Adds YouTube-style Embedded Maps</a></li>
<li><a href='http://www.mandladventures.com/2007/05/07/google-calendar-on-your-site/' rel='bookmark' title='Google Calendar on your Site'>Google Calendar on your Site</a></li>
<li><a href='http://www.mandladventures.com/2006/05/02/google-sketchup/' rel='bookmark' title='Google SketchUp'>Google SketchUp</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.mandladventures.com/2006/05/04/google-maps-api/feed/</wfw:commentRss>
		<slash:comments>58</slash:comments>
		</item>
	</channel>
</rss>

