<?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>aaron-kelley.net</title>
	<atom:link href="http://aaron-kelley.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://aaron-kelley.net</link>
	<description>My little corner of the Internet</description>
	<lastBuildDate>Tue, 01 May 2012 19:11:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Plesk: run-parts: /etc/cron.daily/60sa-update exited with return code 1</title>
		<link>http://aaron-kelley.net/blog/2012/04/plesk-run-parts-etc-cron-daily-60sa-update-exited-with-return-code-1/</link>
		<comments>http://aaron-kelley.net/blog/2012/04/plesk-run-parts-etc-cron-daily-60sa-update-exited-with-return-code-1/#comments</comments>
		<pubDate>Mon, 30 Apr 2012 14:41:45 +0000</pubDate>
		<dc:creator>Aaron</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Parallels Plesk]]></category>

		<guid isPermaLink="false">http://aaron-kelley.net/?p=1091</guid>
		<description><![CDATA[Getting a cron error like this from Parallels Plesk Panel? /etc/cron.daily/60sa-update: [: 9: 1: unexpected operator [: 14: 1: unexpected operator run-parts: /etc/cron.daily/60sa-update exited with return code 1 The solution: Open /etc/cron.daily/60sa-update in your favorite text editor and change the top line from &#8220;#!/bin/sh&#8221; to &#8220;#!/bin/bash&#8220;. Credit for this fix goes to this post at Mammuts [...]]]></description>
			<content:encoded><![CDATA[<p>Getting a cron error like this from Parallels Plesk Panel?</p>
<blockquote><p><tt>/etc/cron.daily/60sa-update:<br />
[: 9: 1: unexpected operator<br />
[: 14: 1: unexpected operator<br />
run-parts: /etc/cron.daily/60sa-update exited with return code 1</tt></p></blockquote>
<p>The solution:</p>
<p>Open <tt>/etc/cron.daily/60sa-update</tt> in your favorite text editor and change the top line from &#8220;<tt>#!/bin/sh</tt>&#8221; to &#8220;<tt>#!/bin/bash</tt>&#8220;.</p>
<p>Credit for this fix goes to <a href="http://www.mammuts.es/faq/index.php?action=artikel&amp;cat=5&amp;id=74" target="_blank">this post at Mammuts FAQ</a> (Spanish).</p>
]]></content:encoded>
			<wfw:commentRss>http://aaron-kelley.net/blog/2012/04/plesk-run-parts-etc-cron-daily-60sa-update-exited-with-return-code-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Upgrade from Ubuntu 11.10 &#8220;Oneiric&#8221; to Ubuntu 12.04 LTS &#8220;Precise&#8221; fails with error: &#8220;Couldn&#8217;t configure pre-depend libtinfo5 for libncurses5, probably a dependency cycle.&#8221;</title>
		<link>http://aaron-kelley.net/blog/2012/04/upgrade-from-ubuntu-11-10-oneiric-to-ubuntu-12-04-lts-precise-fails-with-error-couldnt-configure-pre-depend-libtinfo5-for-libncurses5-probably-a-dependency-cycle/</link>
		<comments>http://aaron-kelley.net/blog/2012/04/upgrade-from-ubuntu-11-10-oneiric-to-ubuntu-12-04-lts-precise-fails-with-error-couldnt-configure-pre-depend-libtinfo5-for-libncurses5-probably-a-dependency-cycle/#comments</comments>
		<pubDate>Thu, 26 Apr 2012 20:55:46 +0000</pubDate>
		<dc:creator>Aaron</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://aaron-kelley.net/?p=1085</guid>
		<description><![CDATA[&#8230;Of course, the error doesn&#8217;t come until after a few hours of downloading all of the new packages. Yet another Ubuntu upgrade bug not solved in time for release.  The details are in the bug report here.  I don&#8217;t understand how this bug has been known since February and not fixed in time for release. [...]]]></description>
			<content:encoded><![CDATA[<p>&#8230;Of course, the error doesn&#8217;t come until after a few hours of downloading all of the new packages.</p>
<p>Yet another Ubuntu upgrade bug not solved in time for release.  The details are in the bug report <a href="https://bugs.launchpad.net/ubuntu/+source/apt/+bug/924079" target="_blank">here</a>.  I don&#8217;t understand how this bug has been known since February and not fixed in time for release.</p>
<p>The workaround: Download and install the Ubuntu 12.04 versions of <tt><a href="http://packages.ubuntu.com/precise/libtinfo5" target="_blank">libtinfo5</a></tt>, <tt><a href="http://packages.ubuntu.com/precise/libncurses5" target="_blank">libncurses5</a></tt>, and <tt><a href="http://packages.ubuntu.com/precise/libncursesw5" target="_blank">libncursesw5</a></tt> (in that order).  You will have unresolved dependencies until you install all three, but you should be able to do them one by one with <tt>dpkg -i</tt>.  (Do not just double-click and use the graphical Ubuntu software manager; use <tt>dpkg -i</tt> from the terminal.) After they are installed, run the distribution upgrade like normal.</p>
]]></content:encoded>
			<wfw:commentRss>http://aaron-kelley.net/blog/2012/04/upgrade-from-ubuntu-11-10-oneiric-to-ubuntu-12-04-lts-precise-fails-with-error-couldnt-configure-pre-depend-libtinfo5-for-libncurses5-probably-a-dependency-cycle/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Automatically reset your cable modem when the Internet goes missing — part 2</title>
		<link>http://aaron-kelley.net/blog/2012/02/automatically-reset-your-cable-modem-when-the-internet-goes-missing-part-2/</link>
		<comments>http://aaron-kelley.net/blog/2012/02/automatically-reset-your-cable-modem-when-the-internet-goes-missing-part-2/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 13:20:13 +0000</pubDate>
		<dc:creator>Aaron</dc:creator>
				<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://aaron-kelley.net/?p=1072</guid>
		<description><![CDATA[My previous post was about writing a script to automatically reset a cable modem when the Internet dies.  My cable modem goes nuts from time to time and needs to be reset to get the Internet connection back.  This isn&#8217;t that big a deal, in fact it&#8217;s not an uncommon problem to have; but, I [...]]]></description>
			<content:encoded><![CDATA[<p>My previous post was about writing a script to automatically reset a cable modem when the Internet dies.  My cable modem goes nuts from time to time and needs to be reset to get the Internet connection back.  This isn&#8217;t that big a deal, in fact it&#8217;s not an uncommon problem to have; but, I do access services running at home remotely and I&#8217;d like to have it set up to fix itself whenever this happens.</p>
<p>As noted in my previous post, I discovered that my particular cable modem has a web interface and you can reset it from the web interface.  However, I&#8217;ve already discovered instances where it&#8217;s gone crazy and does not respond to the http reset command, requiring a full power cycle to get things back in order.  Also, some people may not be able to reset the modem from the web interface, so this new method will help them out as well.</p>
<p><span id="more-1072"></span></p>
<p>To reset the cable modem when it will not respond to commands issued through the web interface, I need to be able to perform an automated power cycle.  To do this, I picked up a couple of X10 home automation devices &#8212; specifically, a CM19A, which is a USB device that can transmit X10 commands via RF, and a TM751, which receives RF commands and can be used to turn on and off a connected device.  (I purchased them from <a href="http://www.thehomeautomationstore.com/" target="_blank">here</a> if you are interested.)</p>
<p>To get them to work on Windows, you need to download the ActiveHome SDK.  Go <a href="http://www.activehomepro.com/sdk/sdk-info.html" target="_blank">here</a> and click the link to download the complete package.  After the download, run the installer.  At the end of the install, the installer will prompt you to connect the USB devices so that the driver can be installed.  Go ahead and plug in the CM19A, and it should take care if the driver installation without issue.</p>
<p>The SDK installs a system service called the &#8220;X10 Device Network Service&#8221; which needs to be running for the X10 stuff to work.  The service is set to start automatically but the installer doesn&#8217;t actually start it &#8212; you&#8217;ll need to start it yourself or reboot your machine to get it up and running.</p>
<p>To be able to issue commands to the TM751, you&#8217;ll need a tool to do it with.  The SDK comes with the source to a tool called <tt>ahcmd</tt>, a command-line tool that can be used to issue commands.  Compile it (or <a href="http://aaron-kelley.net/wp-content/uploads/2012/02/ahcmd.zip">download mine</a>), and test it out if you like.  The syntax is like:</p>
<blockquote><p><tt>ahcmd sendrf a1 off<br />
ahcmd sendrf a1 on</tt></p></blockquote>
<p>Of course, the TM751 has a dial on it that allows you to select a letter.  If you set the letter to &#8220;B&#8221; you should use &#8220;<tt>b1</tt>&#8221; instead of &#8220;<tt>a1</tt>&#8221; to control it, etc.</p>
<p>Plug the TM751 into an outlet and the modem into the TM751 and now your computer can power-cycle the modem.  An update to the script that I included in my previous post now power-cycles the modem when the web reset command fails:</p>
<blockquote>
<pre>@ECHO OFF

REM This script checks for an active Internet connection by trying to access
REM five different web sites. If all five checks fail, it will reset the cable
REM modem.

wget --tries=1 --timeout=10 -O - "http://www.google.com/"
IF %ERRORLEVEL%==0 GOTO done
echo Google failed.

wget --tries=1 --timeout=10 -O - "http://www.bing.com/"
IF %ERRORLEVEL%==0 GOTO done
echo Bing failed.

wget --tries=1 --timeout=10 -O - "http://www.yahoo.com/"
IF %ERRORLEVEL%==0 GOTO done
echo Yahoo! failed.

wget --tries=1 --timeout=10 -O - "http://www.facebook.com/"
IF %ERRORLEVEL%==0 GOTO done
echo Facebook failed.

wget --tries=1 --timeout=10 -O - "http://www.twitter.com/"
IF %ERRORLEVEL%==0 GOTO done
echo Twitter failed.

REM If we got here... The Internet appears to be broken.
echo Restarting cable modem. &gt;&gt; C:\Users\Aaron\log\internet-check.log
echo Restarting cable modem.
wget --tries=1 --timeout=60 -O - "http://192.168.100.1/reset.htm?reset_modem=Restart+Cable+Modem"
IF %ERRORLEVEL%==0 GOTO restart

echo Failed to restart cable modem; forcing power cycle. &gt;&gt; C:\Users\Aaron\log\internet-check.log
echo Forcing power cycle.

C:\Users\Aaron\bin\ahcmd.exe sendrf a1 off
sleep 10
C:\Users\Aaron\bin\ahcmd.exe sendrf a1 on

date /T &gt;&gt; C:\Users\Aaron\log\internet-check.log
time /T &gt;&gt; C:\Users\Aaron\log\internet-check.log
echo --- &gt;&gt; C:\Users\Aaron\log\internet-check.log

exit 2

:restart

date /T &gt;&gt; C:\Users\Aaron\log\internet-check.log
time /T &gt;&gt; C:\Users\Aaron\log\internet-check.log
echo --- &gt;&gt; C:\Users\Aaron\log\internet-check.log

exit 1

:done

echo The Internet appears to be working.
exit 0</pre>
</blockquote>
<p>I was planning on connecting both my modem and my router to the TM751, but the outlet on the TM751 does not include the ground connector so my &#8220;octopus&#8221; three-plug adapters will not fit.  It&#8217;s not a big deal, though&#8230; I&#8217;ve had my router for years and I&#8217;ve only ever had to reset it once or twice.  If it causes any trouble in the future, I can always pick up another appliance module that would allow me to control it separately.  (The TM751 transmits the X10 commands it receives over the power line that it is attached to, so a non-RF-capable appliance module should be sufficient for controlling additional devices, if they are all connected to lines that don&#8217;t hamper communication between them.)</p>
<p>Giving credit:  <a href="http://www.evillawngnome.com/2007/06/20/using-x10-home-automation-and-linux-to-manage-your-home-internet-connection/" target="_blank">This blog post</a>, <a href="http://forums.x10.com/index.php?topic=8110.0" target="_blank">this forum thread</a>, and <a href="http://m.lemays.org/projects/x10-cm19a-linux-driver" target="_blank">this article</a> helped me figure this stuff out.  If you use Linux, the information here might help you get a similar solution up and running.</p>
]]></content:encoded>
			<wfw:commentRss>http://aaron-kelley.net/blog/2012/02/automatically-reset-your-cable-modem-when-the-internet-goes-missing-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automatically reset your cable modem when the Internet goes missing</title>
		<link>http://aaron-kelley.net/blog/2012/01/automatically-reset-your-cable-modem-when-the-internet-goes-missing/</link>
		<comments>http://aaron-kelley.net/blog/2012/01/automatically-reset-your-cable-modem-when-the-internet-goes-missing/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 01:48:11 +0000</pubDate>
		<dc:creator>Aaron</dc:creator>
				<category><![CDATA[Networking]]></category>
		<category><![CDATA[Comcast]]></category>

		<guid isPermaLink="false">http://aaron-kelley.net/?p=1067</guid>
		<description><![CDATA[So&#8230;  I have Comcast cable Internet service at home, and a Motorola SB6120 cable modem that I own myself.  I&#8217;m not sure if it is Comcast, the modem, the combination of the two, or something else altogether&#8230; but, every now and then, the modem goes into a funk and the Internet stops working, and the only [...]]]></description>
			<content:encoded><![CDATA[<p>So&#8230;  I have Comcast cable Internet service at home, and a Motorola SB6120 cable modem that I own myself.  I&#8217;m not sure if it is Comcast, the modem, the combination of the two, or something else altogether&#8230; but, every now and then, the modem goes into a funk and the Internet stops working, and the only way to fix it is to power-cycle the modem.</p>
<p>This doesn&#8217;t happen terribly often, maybe once a month or so.  (Occasionally it will happen, say, twice in one week and thus cause me to think about it a little more.)  Power-cycling the modem is not a big deal, but I do access stuff that I have at home remotely, so if the connection dies while I am at work or away someplace, I can&#8217;t fix it until I return home.</p>
<p>It would be great if there was a way for a computer at the house to, say, periodically check and see if the Internet is working and if it is not, somehow reset the modem.  So, I did some searching on the topic, and&#8230; it turns out that it is possible to do this, and in fact, it is pretty simple.</p>
<p><span id="more-1067"></span>What you&#8217;ll need&#8230;</p>
<ul>
<li>A PC at home that is on all of the time.</li>
<li><tt><a href="http://www.gnu.org/software/wget/" target="_blank">wget</a></tt> installed on said PC (Windows version <a href="http://gnuwin32.sourceforge.net/packages/wget.htm" target="_blank">here</a>).</li>
</ul>
<p>All I did was set up a script to fire every five minutes.  This script attempts to load the homepages of Google, Bing, Yahoo!, Facebook, and Twitter.  If all five fail, it will issue a reset command to the modem.</p>
<p>Wait, what?  During my searching I found someone else with Comcast mention that their modem had a web interface accessible at http://192.168.100.1/.  I checked and, sure enough, there is my cable modem talking to me.  On one of the pages, there is a button that you can click to reset it.  I used the Google Chrome developer tools to watch what happens when I click the button, and it is a simple request to:</p>
<ul>
<li>http://192.168.100.1/reset.htm?reset_modem=Restart+Cable+Modem</li>
</ul>
<p>You don&#8217;t even need a username/password to do it.  You can issue it from a scriptable tool like <tt>wget</tt> and it works there too.  There is about a 10-15 second delay from when the command is issued and the modem actually begins its power cycle, and then of course a minute or so while it reconnects.</p>
<p>Caveats&#8230;  For this fix to work, the following must be true:</p>
<ul>
<li>Your modem must have a web-accessible reset button that you can hit with <tt>wget</tt>.  I only have one modem and one ISP to test with, so I don&#8217;t know if it is always this easy to find the reset button, if the URL for the reset command varies from modem to modem, or if all ISPs configure the modem to listen on the same IP address.</li>
<li>If your cable modem is listening on 192.168.100.1, your home network must be on a the subnet other than 192.168.100.x.  Otherwise, you won&#8217;t be able to talk to it (you&#8217;ll probably get your home router instead).</li>
<li>This assumes that the cable modem will respond to the reset request while it is in the funk state.  For me, this seems to be the case.</li>
<li>This also assumes that the intermittent problem lies in the modem (or beyond) and not in the router.  Again, for me, this seems to be the case.</li>
</ul>
<p>Without further ado, my script, as a Windows batch file:</p>
<blockquote>
<pre>@ECHO OFF

REM This script checks for an active Internet connection by trying to access
REM five different web sites.  If all five checks fail, it will reset the cable
REM modem.

wget --tries=1 --timeout=10 -O - "http://www.google.com/"
IF %ERRORLEVEL%==0 GOTO done
echo Google failed.

wget --tries=1 --timeout=10 -O - "http://www.bing.com/"
IF %ERRORLEVEL%==0 GOTO done
echo Bing failed.

wget --tries=1 --timeout=10 -O - "http://www.yahoo.com/"
IF %ERRORLEVEL%==0 GOTO done
echo Yahoo! failed.

wget --tries=1 --timeout=10 -O - "http://www.facebook.com/"
IF %ERRORLEVEL%==0 GOTO done
echo Facebook failed.

wget --tries=1 --timeout=10 -O - "http://www.twitter.com/"
IF %ERRORLEVEL%==0 GOTO done
echo Twitter failed.

REM If we got here...  The Internet appears to be broken.
echo Restarting cable modem...
wget --tries=1 -O - "http://192.168.100.1/reset.htm?reset_modem=Restart+Cable+Modem"
echo Restarting cable modem. &gt;&gt; C:\Users\Aaron\log\internet-check.log
date /T &gt;&gt; C:\Users\Aaron\log\internet-check.log
time /T &gt;&gt; C:\Users\Aaron\log\internet-check.log
echo . &gt;&gt; C:\Users\Aaron\log\internet-check.log

exit 1

:done
echo The Internet appears to be working.
exit 0</pre>
</blockquote>
<p>I try to load five different sites and if they all fail, issue the reset command.  I also write out some log information so that I can see if the script is being effective.  If you want the logging, you probably want to change the path to the log file.</p>
<p>Anyway, I wrote the script about a week ago and, according to the log file, it has already rescued my Internet connection once while I was away.</p>
<p>This script should be easy enough to convert to <tt>bash</tt> for you Linux and Mac OS X folks.</p>
<p><strong>Update: February 22, 2012</strong></p>
<p>My <a href="http://aaron-kelley.net/blog/2012/02/automatically-reset-your-cable-modem-when-the-internet-goes-missing-part-2/">next article</a> describes how to use X10 devices to power-cycle the modem, so it doesn&#8217;t matter if you can reset it from the web interface or not.</p>
]]></content:encoded>
			<wfw:commentRss>http://aaron-kelley.net/blog/2012/01/automatically-reset-your-cable-modem-when-the-internet-goes-missing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Migrating an Ubuntu installation from BIOS to UEFI</title>
		<link>http://aaron-kelley.net/blog/2011/12/migrating-an-ubuntu-installation-from-bios-to-uefi/</link>
		<comments>http://aaron-kelley.net/blog/2011/12/migrating-an-ubuntu-installation-from-bios-to-uefi/#comments</comments>
		<pubDate>Fri, 23 Dec 2011 00:44:21 +0000</pubDate>
		<dc:creator>Aaron</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[GPT]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[UEFI]]></category>

		<guid isPermaLink="false">http://aaron-kelley.net/?p=1056</guid>
		<description><![CDATA[For this article, I am assuming that you are comfortable getting around Linux in general and Ubuntu in particular, and are familar with the ins and outs of disk partitioning. I will be describing the steps that I took to make this happen, but not going into too much detail for each individual step. See [...]]]></description>
			<content:encoded><![CDATA[<p>For this article, I am assuming that you are comfortable getting around Linux in general and Ubuntu in particular, and are familar with the ins and outs of disk partitioning. I will be describing the steps that I took to make this happen, but not going into too much detail for each individual step. See the bottom of this post for some useful links if you&#8217;d like to read up on the topic first. Note that it is very possible to lose your partitions when doing this sort of work so proceed carefully and do not blame me if something goes awry.</p>
<p><span id="more-1056"></span>As far as I know, you need the Linux 3.0 kernel or later to boot via UEFI, which means you&#8217;ll need to be using at least Ubuntu 11.10. All of the current 64-bit Ubuntu (11.10) ISO images seem to boot fine via UEFI, so I booted the desktop disc as a &#8220;live CD&#8221; for many of these operations.</p>
<p>If you have a standard Ubuntu installation, your disk has just two partitions: one for the file system and one for swap space. In my case, these were <tt>/dev/sda1</tt> (ext4) and <tt>/dev/sda5</tt> (swap). The disk itself is partitioned using the MBR method.</p>
<p>To switch to UEFI, you&#8217;ll have to convert the disk&#8217;s partition table from MBR to GPT. This can be done non-destructively using <tt><a href="http://www.rodsbooks.com/gdisk/" target="_blank">gdisk</a></tt>. You can install it from the &#8220;Universe&#8221; repository in Ubuntu (<a href="http://packages.ubuntu.com/oneiric/gdisk" target="_blank">here&#8217;s the package page</a>), if you&#8217;ve booted from the Ubuntu Lice CD, you&#8217;ll have to enable this repository. Once you launch <tt>gdisk</tt> from the terminal, you tell it which disk you&#8217;re interested in (<tt>/dev/sda</tt> in my case) and it will proceed with the conversion from MBR to GPT automatically &#8212; you&#8217;ll just need to tell it to write changes and quit. GPT actually stores two copies of the partition table on the disk, and <tt>gdisk</tt> will want to put one at the front and one at the end. For me, it complained that there was no room after the last partition on my disk to store the second partition table, so I had to open GParted and shrink my swap partition a little.</p>
<p>After the conversion to GPT, you&#8217;ll notice that there are some small gaps between your partitions. The reason for this is explained in more detail <a href="http://www.rodsbooks.com/gdisk/mbr2gpt.html" target="_blank">here</a>, but, you can use GParted to move and resize the partitions to your liking after the conversion is done.</p>
<p>Now, UEFI systems need a special boot partition to hold the UEFI boot loader for your OS, called the EFI system partition, or ESP. (It can actually hold several different boot loaders, making multi-booting considerably more simple than before.) Create a 20 MB FAT16 partition at the start of the disk, and use the GParted flag management to enable the &#8220;boot&#8221; flag. I don&#8217;t think that this new partition necessarily has to be the first one on the disk, but I&#8217;m just copying the partition structure that you get from installing Ubuntu on a UEFI system from scratch. Make sure you use the &#8220;MiB&#8221; alignment option when messing with the partitions to keep them aligned properly if you have an SSD, &#8220;advanced format&#8221; 4K-sector drive, or RAID setup.</p>
<p>After the conversion to GPT, I had two partitions on the disk: <tt>/dev/sda1</tt> (ext4) and <tt>/dev/sda2</tt> (swap). When I added the FAT16 partition at the front, it was labeled <tt>/dev/sda3</tt> even though it was the first partition on the disk.</p>
<p>Now, the conversion to GPT is done and the ESP has been set up. All that&#8217;s left is to reinstall grub so that it can boot your machine. First, install the <tt>grub-efi</tt> package. This will remove the <tt>grub-pc</tt> package, and allow us to install grub without having it freak out because your disk is not partitioned with MBR.</p>
<p>The following commands did it for me&#8230; you may have to adjust them if your partitions are labeled the same as mine.</p>
<blockquote><p><tt>sudo mount /dev/sda1 /mnt # Mount the root filesystem in /mnt<br />
sudo mkdir /mnt/boot/efi # Create a directory to mount the ESP in<br />
sudo mount /dev/sda3 /mnt/boot/efi # Mount the ESP<br />
sudo grub-install --root-directory=/mnt /dev/sda # Run the grub install</tt></p></blockquote>
<p>When you&#8217;re done, you should be able to check the ESP (in <tt>/mnt/boot/efi</tt>) to see that the boot loader has been placed there &#8212; <tt>EFI/ubuntu/grubx64.efi</tt>.</p>
<p>Then, reboot and it boots! Depending on your motherboard&#8217;s UEFI implementation, you may have to point it to the Ubuntu boot loader the first time (<tt>EFI/ubuntu/grubx64.efi</tt>). Also, the first time I booted after the conversion, some errors popped up on the screen but the system still came up properly. Subsequent boots did not have any errors, so I&#8217;m not quite sure what that was about.</p>
<p>Be sure to install the <tt>grub-efi</tt> package on your main system too, so that if an update comes along that requires updating grub, it works properly.  Also, I actually ended up deleting and re-creating the swap partition during this process, so its UUID changed.  You may want to check your <tt>/etc/fstab</tt> file and make sure the UUIDs still match up with your partitions.</p>
<p>Resources:</p>
<ul>
<li><a href="http://www.rodsbooks.com/gdisk/" target="_blank">http://www.rodsbooks.com/gdisk/</a> &#8212; the <tt>gdisk</tt> page has a lot of useful information about GPT/UEFI</li>
<li><a href="http://www.thinkwiki.org/wiki/UEFI_Firmware" target="_blank">http://www.thinkwiki.org/wiki/UEFI_Firmware</a> &#8212; a wiki page that describes the process of installing grub for booting via UEFI</li>
<li><a href="https://gitorious.org/tianocore_uefi_duet_builds/pages/Windows_x64_BIOS_to_UEFI" target="_blank">https://gitorious.org/tianocore_uefi_duet_builds/pages/Windows_x64_BIOS_to_UEFI</a> &#8212; a page which discusses a similar migration for a Windows system, which has some additional useful information</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://aaron-kelley.net/blog/2011/12/migrating-an-ubuntu-installation-from-bios-to-uefi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nokia 2320, CA-50 (download drivers here!!), and lack of PC sync capabilities</title>
		<link>http://aaron-kelley.net/blog/2011/05/nokia-2320-ca-50-drivers-and-lack-of-pc-sync-capabilities/</link>
		<comments>http://aaron-kelley.net/blog/2011/05/nokia-2320-ca-50-drivers-and-lack-of-pc-sync-capabilities/#comments</comments>
		<pubDate>Thu, 26 May 2011 23:02:51 +0000</pubDate>
		<dc:creator>Aaron</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[CA-50]]></category>
		<category><![CDATA[Nokia 2320]]></category>

		<guid isPermaLink="false">http://aaron-kelley.net/?p=1027</guid>
		<description><![CDATA[Just looking for the driver? Click here. So&#8230;  In the not-so-distant past, my smart-ish phone, a Palm Treo 650, kicked the bucket.  Not having the budget or desire to pick up a newer smartphone, I ran off to eBay and picked up an unlocked Nokia 2320.  I plopped in my SIM card and I was [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><em>Just looking for the driver?  Click <a href="http://aaron-kelley.net/wp-content/uploads/2011/05/Nokia-Serial.zip">here</a>.</em></p>
<p>So&#8230;  In the not-so-distant past, my smart-ish phone, a Palm Treo 650, kicked the bucket.  Not having the budget or desire to pick up a newer smartphone, I ran off to eBay and picked up an unlocked Nokia 2320.  I plopped in my SIM card and I was back in business.</p>
<p>Now, the Nokia 2320 doesn&#8217;t really have any connectivity options.  It has no Bluetooth, no infrared, or anything like that.  Nonetheless, I am still interested in being able to transfer data to and from the phone (without using MMS).  Then, maybe I&#8217;d be able to do things like transfer photos to assign to the contacts in my address book, back up my address book in case the phone breaks or gets lost, add a custom ringtone, and so on.  The phone <em>does</em> have a data port, which seems like it would be an option, if only I had the right cable.</p>
<p><span id="more-1027"></span>By the way, here&#8217;s the phone:</p>
<p><img class="aligncenter size-large wp-image-1028" title="IMG_4762" src="http://aaron-kelley.net/wp-content/uploads/2011/05/IMG_4762-800x600.jpg" alt="" width="800" height="600" /></p>
<p>Everything you&#8217;d want in a dumbphone.  Tiny, light yet sturdy, easy to use, and I&#8217;ve gone 3 days without charging it and the battery meter barely dropped at all.</p>
<p>Here are the connectivity ports, located in the top-left corner (looking at it from the front).</p>
<p style="text-align: center;"><img class="aligncenter size-large wp-image-1029" title="IMG_4767" src="http://aaron-kelley.net/wp-content/uploads/2011/05/IMG_4767-800x600.jpg" alt="" width="800" height="600" /></p>
<p>The one on the right is for power.  The one on the left is for a headset.  The one in the middle is the data port.</p>
<p>Well, none of my tiny USB cords fit into that data port, so I searched eBay again and bought a data cable that was listed as compatible with this phone.  Here&#8217;s what I got.</p>
<p style="text-align: center;"><img class="aligncenter size-large wp-image-1030" title="IMG_4768" src="http://aaron-kelley.net/wp-content/uploads/2011/05/IMG_4768-800x600.jpg" alt="" width="800" height="600" /></p>
<p>It looks regular enough.  I first checked to see if it fit my phone&#8217;s data port.  It&#8217;s a little tight, but it did plug right in.  Then, I connected the phone to my PC running Windows 7 64-bit.  What I expected to happen happened: Windows started looking for drivers for my new device and wasn&#8217;t able to find anything.</p>
<p>So, I set out searching the great wide Internet for the software that I would need to have my computer and my phone talk.</p>
<p>Well, it turns out that the cable I bought isn&#8217;t a cable after all, or at least that&#8217;s not all there is to it.  It&#8217;s a USB <em>device</em>.  It is actually a USB-to-serial adapter.  That&#8217;s why the USB plug part of it is so large.  The tiny connector on the other end, and the tiny data port on my phone, those are actually some kind of mini serial connectors.</p>
<p style="text-align: center;"><img class="aligncenter size-large wp-image-1031" title="IMG_4769" src="http://aaron-kelley.net/wp-content/uploads/2011/05/IMG_4769-800x600.jpg" alt="" width="800" height="600" /></p>
<p>So, the driver that Windows couldn&#8217;t find wasn&#8217;t actually for the <em>phone</em>, it was for the CA-50 serial adapter itself.  Anyway, I wasn&#8217;t able to find a driver online for the CA-50, but now that I knew what it was, I was able to locate <em>another</em> one on eBay that came with the driver CD.  It only cost like $2 with free shipping from China, so I picked it up.</p>
<p>Oh, and I am posting the entire contents of the driver CD <a href="http://aaron-kelley.net/wp-content/uploads/2011/05/Nokia-Serial.zip">here</a> in case anyone else is looking for it.  The CD also contains sync software and instructions for getting the stuff set up, which I will touch on as we continue.  It also contains drivers for the CA-42 and CA-45, which I can only assume are similar devices, as well as the DKU-5 and DKU-50.</p>
<p>Not being a new device, there are no 64-bit drivers available.  However, I was able to get it connected to a 32-bit Windows XP VM without any trouble.  I also installed Nokia PC Suite (also included on the CD, though a newer version is available online), and after following the directions included on the CD, which involved making sure that Nokia PC Suite was set up to use the correct COM port, I was able to get Nokia&#8217;s software to see and identify the phone.</p>
<p>Then I got the great error message that Nokia PC Suite does not support this particular phone.  Gah.</p>
<p>Why put a data port on the phone if it doesn&#8217;t do any good?  Well, further research has revealed that this phone is actually pretty similar to the Nokia 2330, which <em>is</em> supported by Nokia PC Suite.  It is so similar, in fact, that it looks like it could be converted to a Nokia 2330 with a firmware flash and minor modifications &#8212; in short, the differences between the two phones are almost entirely in the software.  I have a strong suspicion that if I were able to flash my phone into a Nokia 2330, the PC sync software would work.</p>
<p>That&#8217;s as far as I have gotten so far.  Any pages I have been able to find on flashing the firmware on this phone have been either written in another language or rather poor English.  I don&#8217;t have a clear understanding of what software and equipment I would need to carry out the procedure (though I <em>did</em> manage to obtain a Nokia 2330 firmware image).  So, if you have any information on this, I&#8217;d love to hear from you!  Otherwise, I&#8217;ll update this post with a link to a newer post if and when I make any more forward progress.</p>
]]></content:encoded>
			<wfw:commentRss>http://aaron-kelley.net/blog/2011/05/nokia-2320-ca-50-drivers-and-lack-of-pc-sync-capabilities/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Grub prompt after upgrade to Ubuntu 11.04</title>
		<link>http://aaron-kelley.net/blog/2011/04/grub-prompt-after-upgrade-to-ubuntu-11-04/</link>
		<comments>http://aaron-kelley.net/blog/2011/04/grub-prompt-after-upgrade-to-ubuntu-11-04/#comments</comments>
		<pubDate>Fri, 29 Apr 2011 17:32:29 +0000</pubDate>
		<dc:creator>Aaron</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://aaron-kelley.net/?p=1013</guid>
		<description><![CDATA[I upgraded a couple of machines to Ubuntu 11.04, and after the reboot, they just booted up to a grub prompt.  Like this (except an older version of grub reported): My reading seems to indicate that this happens if you upgrade from Ubuntu 10.10 which itself had been upgraded from Ubuntu 10.04, and grub was [...]]]></description>
			<content:encoded><![CDATA[<p>I upgraded a couple of machines to Ubuntu 11.04, and after the reboot, they just booted up to a grub prompt.  Like this (except an older version of grub reported):</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-1018" title="grub" src="http://aaron-kelley.net/wp-content/uploads/2011/04/grub.png" alt="" width="640" height="480" /></p>
<p><span id="more-1013"></span>My reading seems to indicate that this happens if you upgrade from Ubuntu 10.10 which itself had been upgraded from Ubuntu 10.04, and grub was never reinstalled.</p>
<p>I think it is completely ridiculous that this bug made it all the way to the Ubuntu 11.04 final release &#8212; leaving the system unbootable after an upgrade is a disaster.</p>
<p>The easiest way to fix it is to boot from the Ubuntu 11.04 alternate install CD.  Choose the option to &#8220;Repair a broken system.&#8221;  Go through the prompts and choose which disk has your root file system.</p>
<p>After this, you may have the option to just reinstall grub &#8212; if so, do it, and reboot, and your system should be fine.</p>
<p>If that&#8217;s not an option, choose to start a recovery shell using your root filesystem and then run the commands</p>
<blockquote><p><tt>grub-install /dev/sda<br />
update-grub</tt></p></blockquote>
<p>(possibly adjusting for where your root disk is).  Then reboot and the machine should boot.</p>
<p>If it still doesn&#8217;t, go back to the recovery shell and see if your /boot directory is empty (aside from the &#8220;grub&#8221; directory).  This happened to me on a machine that was set up with LVM.  The /boot folder is actually stored on a different partition and you have to mount it before grub can set itself up right.  Here&#8217;s the commands&#8230;</p>
<blockquote><p><tt>rm -Rf /boot/*<br />
mount /dev/sda1 /boot<br />
grub-install /dev/sda<br />
update-grub</tt></p></blockquote>
<p>Of course, these may need to be adjusted depending on which disk needs grub and which partition contains /boot.  You can use the GUI partition editor on the Live CD to check.</p>
<p>Now, hopefully your machine can boot up.  What a mess.  :-\</p>
<p><strong>Update: May 12, 2011</strong></p>
<p>dzsi posts another way to recover from this situation in the comments below.  This method does not require booting from a CD.</p>
<p>Note that in the commands that follow, &#8220;X&#8221;, &#8220;Y&#8221;, and &#8220;Z&#8221; should be replaced with numbers/letters that represent your boot disk.</p>
<p>At the grub prompt, issue these commands:</p>
<blockquote><p><tt>set root=(hdX,Y)<br />
linux /vmlinuz root=/dev/sdZ ro<br />
initrd /initrd.img<br />
boot</tt></p></blockquote>
<p>Your machine should boot up.  Start a terminal and issue these commands:</p>
<blockquote><p><tt>sudo grub-install /dev/sdZ<br />
sudo update-grub</tt></p></blockquote>
<p>This should fix grub so that you do not have any boot trouble anymore</p>
]]></content:encoded>
			<wfw:commentRss>http://aaron-kelley.net/blog/2011/04/grub-prompt-after-upgrade-to-ubuntu-11-04/feed/</wfw:commentRss>
		<slash:comments>39</slash:comments>
		</item>
		<item>
		<title>OpenSSL on Windows &#8212; Unable to load config info from c:/openssl0.9.8o/ssl/openssl.cnf</title>
		<link>http://aaron-kelley.net/blog/2011/04/openssl-on-windows-unable-to-load-config-info-from-copenssl0-9-8osslopenssl-cnf/</link>
		<comments>http://aaron-kelley.net/blog/2011/04/openssl-on-windows-unable-to-load-config-info-from-copenssl0-9-8osslopenssl-cnf/#comments</comments>
		<pubDate>Sat, 23 Apr 2011 18:32:24 +0000</pubDate>
		<dc:creator>Aaron</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[OpenSSL]]></category>

		<guid isPermaLink="false">http://aaron-kelley.net/?p=1011</guid>
		<description><![CDATA[This is an error message that pops up when trying to do an operation using OpenSSL running on Windows.  It appears, best as I can gather, that the path to OpenSSL&#8217;s config file is hard-coded into the executable, and it won&#8217;t be able to find it if it is not in the expected place.  In [...]]]></description>
			<content:encoded><![CDATA[<p>This is an error message that pops up when trying to do an operation using OpenSSL running on Windows.  It appears, best as I can gather, that the path to OpenSSL&#8217;s config file is hard-coded into the executable, and it won&#8217;t be able to find it if it is not in the expected place.  In this case, I was using the copy of OpenSSL bundled with the Windows version of the Apache web server, but I imagine the error message may show up with other Windows distributions of OpenSSL as well.</p>
<p>The solution is to add an environment variable, <tt>OPENSSL_CONF</tt>, and set it to the complete path to an OpenSSL config file.  (In this case, again, it is located in Apache&#8217;s <tt>conf</tt> directory.)  Then, restart your command prompt instance and all should be good.</p>
]]></content:encoded>
			<wfw:commentRss>http://aaron-kelley.net/blog/2011/04/openssl-on-windows-unable-to-load-config-info-from-copenssl0-9-8osslopenssl-cnf/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>6 GB of RAM in the Inspiron 1720</title>
		<link>http://aaron-kelley.net/blog/2011/02/6-gb-of-ram-in-the-inspiron-1720/</link>
		<comments>http://aaron-kelley.net/blog/2011/02/6-gb-of-ram-in-the-inspiron-1720/#comments</comments>
		<pubDate>Tue, 01 Feb 2011 12:17:29 +0000</pubDate>
		<dc:creator>Aaron</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Dell Hardware]]></category>
		<category><![CDATA[Memory]]></category>

		<guid isPermaLink="false">http://aaron-kelley.net/?p=956</guid>
		<description><![CDATA[So, I have a nearly 3-year-old Inspiron 1720 laptop from Dell that serves as my main PC. This machine still has a couple of years of service left in it. I run VMware at work all day and of course I would want to have plenty of system memory to avoid hard disk paging activity [...]]]></description>
			<content:encoded><![CDATA[<p>So, I have a nearly 3-year-old Inspiron 1720 laptop from Dell that serves as my main PC.  This machine still has a couple of years of service left in it.</p>
<p>I run VMware at work all day and of course I would want to have plenty of system memory to avoid hard disk paging activity under this high memory load.  According to Dell, <a href="http://www.dell.com/us/en/dfh/notebooks/inspnnb_172x/pd.aspx?refid=inspnnb_172x&amp;cs=22&amp;s=dfh" target="_blank">the maximum memory capacity of this machine is 4 GB</a> (2 GB in each of two slots).  However, <a href="http://forum.notebookreview.com/dell-inspiron-dell-studio/305464-inspiron-1720-6gb-ram-tested.html" target="_blank">others have discovered that 6 GB works fine in the machine</a>, so there is no problem installing a 4 GB module along with a 2 GB module.  However, installing two 4 GB modules for a total of 8 GB does not work, as <a href="http://en.community.dell.com/support-forums/laptop/f/3518/p/19263780/19447825.aspx" target="_blank">there is a bug in the BIOS that will keep the machine from booting</a>.</p>
<p>I decided that 4 GB is not enough for my workload so I went for the upgrade to 6 GB.  It worked fine.  However, I wonder, to you lose any performance by going to 6 GB?  Of course, in this configuration you have a mismatched pair of RAM modules.  Does stuff like dual-channel access still work?</p>
<p><span id="more-956"></span>Here are screen shots from <a href="http://www.cpuid.com/softwares/cpu-z.html" target="_blank">CPU-Z</a> regarding the memory configuration from <em>before</em> the memory upgrade.  This is the Inspiron 1720 with two 2 GB modules installed.  As you can see, the system is in dual-channel mode with a CAS latency of 5.</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-961" title="mem1-1" src="http://aaron-kelley.net/wp-content/uploads/2011/02/mem1-1.png" alt="" width="447" height="433" /></p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-962" title="mem1-2" src="http://aaron-kelley.net/wp-content/uploads/2011/02/mem1-2.png" alt="" width="447" height="433" /></p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-963" title="mem1-3" src="http://aaron-kelley.net/wp-content/uploads/2011/02/mem1-3.png" alt="" width="447" height="433" /></p>
<p>And, Windows ranks the memory performance at a quite respectable 5.9.</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-964" title="mem1-4" src="http://aaron-kelley.net/wp-content/uploads/2011/02/mem1-4.png" alt="" width="800" height="654" /></p>
<p>After the memory upgrade, the memory speed and performance is the same!  Wonderful.</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-965" title="mem2-1" src="http://aaron-kelley.net/wp-content/uploads/2011/02/mem2-1.png" alt="" width="447" height="433" /></p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-966" title="mem2-2" src="http://aaron-kelley.net/wp-content/uploads/2011/02/mem2-2.png" alt="" width="447" height="433" /></p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-967" title="mem2-3" src="http://aaron-kelley.net/wp-content/uploads/2011/02/mem2-3.png" alt="" width="447" height="433" /></p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-968" title="mem2-4" src="http://aaron-kelley.net/wp-content/uploads/2011/02/mem2-4.png" alt="" width="800" height="654" /></p>
<p><em>Conclusion:</em><br />
The Inspiron 1720 works just fine with this above-spec amount of memory.  No performance penalty for using mismatched modules.</p>
]]></content:encoded>
			<wfw:commentRss>http://aaron-kelley.net/blog/2011/02/6-gb-of-ram-in-the-inspiron-1720/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Physical interfaces disappearing from the VMware &#8220;Bridge&#8221; network interface after resume from hibernate or sleep</title>
		<link>http://aaron-kelley.net/blog/2011/01/physical-interfaces-disappearing-from-the-vmware-bridge-network-interface-after-resume-from-hibernate-or-sleep/</link>
		<comments>http://aaron-kelley.net/blog/2011/01/physical-interfaces-disappearing-from-the-vmware-bridge-network-interface-after-resume-from-hibernate-or-sleep/#comments</comments>
		<pubDate>Sat, 22 Jan 2011 22:22:11 +0000</pubDate>
		<dc:creator>Aaron</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[VMware Workstation]]></category>

		<guid isPermaLink="false">http://aaron-kelley.net/?p=952</guid>
		<description><![CDATA[I&#8217;ve been having an issue where my physical ethernet interface would disappear from the choices of interfaces to bridge to in VMware Workstation for Windows whenever I hibernate my machine.  This is a little annoying, as I have a VM that I would like attached to the physical network. The easy solution to this problem [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been having an issue where my physical ethernet interface would disappear from the choices of interfaces to bridge to in VMware Workstation for Windows whenever I hibernate my machine.  This is a little annoying, as I have a VM that I would like attached to the physical network.</p>
<p>The easy solution to this problem is to open up the virtual network editor and click on the &#8220;Restore Defaults&#8221; button.  This reinstalls the VMware network components and sets everything back up like it would be if your install was brand new.  However, it&#8217;s annoying to have to do this every time I power up the machine.</p>
<p>continuum over at the <a href="http://communities.vmware.com/thread/297952" target="_blank">VMware Communities message boards</a> pointed me towards the solution — restarting the hidden &#8220;<tt>vmnetbridge</tt>&#8221; service also does the trick.  However, again, it&#8217;s annoying to have to do this every time the machine is powered on.</p>
<p>I tried writing a batch file to restart the service and scheduling that to execute at power on but I couldn&#8217;t find an appropriate trigger to have the Windows task scheduler execute it.</p>
<p>So, I wrote a system service in C# that hangs out in the background and restarts the <tt>vmnetbridge</tt> service whenever the machine wakes up from hibernate or sleep.  This handles the problem brilliantly — no effort required after the service is installed, but the VMware &#8220;Bridge&#8221; interface keeps working as expected.  You can download it from its new project page, <a href="/projects/vmnetbridgefix/">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://aaron-kelley.net/blog/2011/01/physical-interfaces-disappearing-from-the-vmware-bridge-network-interface-after-resume-from-hibernate-or-sleep/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

