<?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>Pervasive Code &#187; Ubuntu</title>
	<atom:link href="http://www.pervasivecode.com/blog/category/ubuntu/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pervasivecode.com/blog</link>
	<description>Jamie Flournoy's Software Development Blog</description>
	<lastBuildDate>Wed, 01 Feb 2012 06:11:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Patch to make Ubuntu&#8217;s GNU Screen bash completion work better</title>
		<link>http://www.pervasivecode.com/blog/2012/02/01/patch-to-make-ubuntus-gnu-screen-bash-completion-work-better/</link>
		<comments>http://www.pervasivecode.com/blog/2012/02/01/patch-to-make-ubuntus-gnu-screen-bash-completion-work-better/#comments</comments>
		<pubDate>Wed, 01 Feb 2012 06:11:00 +0000</pubDate>
		<dc:creator>Jamie Flournoy</dc:creator>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.pervasivecode.com/blog/?p=258</guid>
		<description><![CDATA[If you make a screen with a name using screen -S foo and then try and reattach later using screen -R f&#60;tab&#62; it doesn&#8217;t work. It only completes the full name as seen in screen -ls which starts with the PID of the detached screen, like 9972.foo. Not very convenient. Why can&#8217;t it just complete [...]]]></description>
			<content:encoded><![CDATA[<p>If you make a screen with a name using <code>screen -S foo</code> and then try and reattach later using <code>screen -R f&lt;tab&gt;</code> it doesn&#8217;t work. It only completes the full name as seen in <code>screen -ls</code> which starts with the PID of the detached screen, like <code>9972.foo</code>. Not very convenient. Why can&#8217;t it just complete using the name you gave it?</p>
<p><a href="http://alioth.debian.org/tracker/?func=detail&#038;atid=413095&#038;aid=311540&#038;group_id=100114">Someone else solved this problem three years ago</a> but nobody accepted their patch, and now /etc/bash_completion.d/screen has been overhauled and the patch no longer applies.</p>
<p>I updated the patch so it works and <a href="https://bugs.launchpad.net/ubuntu/+source/bash-completion/+bug/924676">resubmitted it to Ubuntu</a>.</p>
<p>If you don&#8217;t wanna wait, grab the code from <a href="https://gist.github.com/1715383">this gist</a> and do this:</p>
<pre>sudo patch /etc/bash_completion.d/screen screen.patch</pre>
<p>This will probably work on Debian too since that&#8217;s where the completion script came from.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pervasivecode.com/blog/2012/02/01/patch-to-make-ubuntus-gnu-screen-bash-completion-work-better/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Managing autossh via monit</title>
		<link>http://www.pervasivecode.com/blog/2011/01/04/managing-autossh-via-monit/</link>
		<comments>http://www.pervasivecode.com/blog/2011/01/04/managing-autossh-via-monit/#comments</comments>
		<pubDate>Tue, 04 Jan 2011 06:19:35 +0000</pubDate>
		<dc:creator>Jamie Flournoy</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[OpenSSH]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.pervasivecode.com/blog/?p=234</guid>
		<description><![CDATA[SSH port forwarding is so useful that sometimes you want to daemonize it, to create encrypted tunnels that never go away. But it&#8217;s not trivial to do this. Fortunately it is possible with a little fiddling, and I did it using monit.

I have two servers, let&#8217;s call them A and B, and I want to [...]]]></description>
			<content:encoded><![CDATA[<p>SSH port forwarding is so useful that sometimes you want to daemonize it, to create encrypted tunnels that never go away. But it&#8217;s not trivial to do this. Fortunately it is possible with a little fiddling, and I did it using monit.<br />
<span id="more-234"></span><br />
I have two servers, let&#8217;s call them A and B, and I want to connect via ssh from A to B all the time, reconnecting as needed to deal with network problems, reboots, or other reasons why the connection might drop. A program called autossh does most of this, but doesn&#8217;t handle reboots. So since I already have monit set up to watch other daemons and keep them from going crazy, I set up a monit configuration to manage autossh. All of this runs on server A; server B just has sshd and a mail server that&#8217;s going to try to deliver mail to localhost:2525 to get mail to server A.</p>
<p>The monit configuration stanza (in monitrc) looks like this:</p>
<pre>check process mailtunnel with pidfile /var/run/autossh.pid
  start program = "/root/start_mailtunnel.sh"
  stop program = "/root/stop_mailtunnel.sh"
  if changed pid then alert
  if failed host localhost port 2525 protocol smtp with timeout 30 seconds then alert
  if 3 restarts within 5 cycles then timeout</pre>
<p>start_mailtunnel.sh looks like this:</p>
<pre>#!/bin/sh
export AUTOSSH_PIDFILE=/var/run/autossh.pid
/usr/bin/autossh -N mailtunnel &#038;</pre>
<p>And that -N is the key to making ssh happily connect and not run a remote shell, which would want a tty on stdin. That&#8217;s how you tell it to just be a port-forwarding connection.</p>
<p>The ssh mailtunnel config just has some port forwarding rules, and &#8220;ExitOnForwardFailure yes&#8221;.</p>
<p>Finally, stop_mailtunnel.sh looks like this:</p>
<pre>#!/bin/sh
test -e /var/run/autossh.pid &#038;&#038; kill `cat /var/run/autossh.pid`</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.pervasivecode.com/blog/2011/01/04/managing-autossh-via-monit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unix tip: kill -STOP and kill -CONT</title>
		<link>http://www.pervasivecode.com/blog/2010/04/03/unix-tip-kill-stop-and-kill-cont/</link>
		<comments>http://www.pervasivecode.com/blog/2010/04/03/unix-tip-kill-stop-and-kill-cont/#comments</comments>
		<pubDate>Sun, 04 Apr 2010 01:31:44 +0000</pubDate>
		<dc:creator>Jamie Flournoy</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.pervasivecode.com/blog/?p=194</guid>
		<description><![CDATA[Pretty much every Unix user knows about the kill command, and most know about &#8216;kill -KILL&#8217; aka &#8216;kill -9&#8242;.
But do you know about kill -STOP and kill -CONT?

I&#8217;m not sure of the exact mechanism (kernel vs. user process) but everything I&#8217;ve used it on on a Mac OS X machine has responded to it in [...]]]></description>
			<content:encoded><![CDATA[<p>Pretty much every Unix user knows about the kill command, and most know about &#8216;kill -KILL&#8217; aka &#8216;kill -9&#8242;.</p>
<p>But do you know about kill -STOP and kill -CONT?<br />
<span id="more-194"></span><br />
I&#8217;m not sure of the exact mechanism (kernel vs. user process) but everything I&#8217;ve used it on on a Mac OS X machine has responded to it in the same way. So you may find a process that doesn&#8217;t do this, but I haven&#8217;t found one.</p>
<p>Basically <code>kill -STOP 1234</code> will pause the process with pid 1234, and <code>kill -CONT 1234</code> will resume it. It&#8217;s as if you can sleep individual applications instead of your entire computer.</p>
<p>It&#8217;s simple, but you can probably imagine why this would be useful. Want to keep Firefox with 45 tabs open, but you&#8217;re not using it for a while and you want to save battery life? Pause it. Pretty much anything like &#8220;I don&#8217;t want to quit and then re-launch this but I wish it wasn&#8217;t using a bunch of CPU time while it idles&#8221; is a good candidate.</p>
<p>Remember that this means your app my time out when it is resumed, as if you had slept your laptop. So network connections it had open when you paused it may be broken when you resume it. So pausing Terminal.app with a bunch of open ssh connections to remote servers isn&#8217;t going to work too well.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pervasivecode.com/blog/2010/04/03/unix-tip-kill-stop-and-kill-cont/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Karmic on Xen with Bad /etc/fstab = PAIN</title>
		<link>http://www.pervasivecode.com/blog/2010/02/07/karmic-on-xen-with-bad-etcfstab-pain/</link>
		<comments>http://www.pervasivecode.com/blog/2010/02/07/karmic-on-xen-with-bad-etcfstab-pain/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 00:32:20 +0000</pubDate>
		<dc:creator>Jamie Flournoy</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[servers]]></category>

		<guid isPermaLink="false">http://www.pervasivecode.com/blog/?p=156</guid>
		<description><![CDATA[Argh! I spent about 5 hours yesterday troubleshooting a failed Ubuntu Jaunty -> Karmic (9.04->9.10) upgrade. It worked fine until I rebooted and then failed to boot. Here&#8217;s how I fixed it.

It failed to boot, saying this:

One or more mounts listed in /etc/fstab cannot yet be mounted
/ : waiting for /dev/xvda1
/tmp : waiting for (null)
/swap [...]]]></description>
			<content:encoded><![CDATA[<p>Argh! I spent about 5 hours yesterday troubleshooting a failed Ubuntu Jaunty -> Karmic (9.04->9.10) upgrade. It worked fine until I rebooted and then failed to boot. Here&#8217;s how I fixed it.<br />
<span id="more-156"></span><br />
It failed to boot, saying this:<br />
<code><br />
One or more mounts listed in /etc/fstab cannot yet be mounted<br />
/ : waiting for /dev/xvda1<br />
/tmp : waiting for (null)<br />
/swap : waiting for /dev/xvda9<br />
</code></p>
<p>I tried a lot of stuff and finally solved it. My solution is on the Ubuntu Forum, here: <a href="http://ubuntuforums.org/showpost.php?p=8789500&#038;postcount=37">One or more of the mounts listed in /etc/fstab/ cannot yet be mounted (Karmic)</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pervasivecode.com/blog/2010/02/07/karmic-on-xen-with-bad-etcfstab-pain/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu 9.10 (Jaunty Jackalope) upgrade notes</title>
		<link>http://www.pervasivecode.com/blog/2010/02/06/ubuntu-910-jaunty-jackalope-upgrade-notes/</link>
		<comments>http://www.pervasivecode.com/blog/2010/02/06/ubuntu-910-jaunty-jackalope-upgrade-notes/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 04:24:57 +0000</pubDate>
		<dc:creator>Jamie Flournoy</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[servers]]></category>

		<guid isPermaLink="false">http://www.pervasivecode.com/blog/?p=154</guid>
		<description><![CDATA[Once again Ubuntu Linux proves itself to be easy to upgrade. Going from 9.04 to 9.10 (one release newer, since their numbering is bsaed on dates) was easy, but included the standard sprinkling of manual re-customization that I&#8217;ve come to expect from Debian based systems.

I did the Network Upgrade for Servers.
I had to re-customize these [...]]]></description>
			<content:encoded><![CDATA[<p>Once again Ubuntu Linux proves itself to be easy to upgrade. Going from 9.04 to 9.10 (one release newer, since their numbering is bsaed on dates) was easy, but included the standard sprinkling of manual re-customization that I&#8217;ve come to expect from Debian based systems.<br />
<span id="more-154"></span><br />
I did the <a href="https://help.ubuntu.com/community/KarmicUpgrades#Network%20Upgrade%20for%20Ubuntu%20Servers%20%28Recommended%29">Network Upgrade for Servers</a>.</p>
<p>I had to re-customize these files since I&#8217;m not running with 100% default configuration:</p>
<p>/etc/monit/monit<br />
/etc/monit/monitrc<br />
/etc/dovecot/dovecot.conf<br />
/etc/apache2/apache2.conf<br />
/etc/php/apache2/php.ini</p>
<p>I basically did a manual diff side by side in Emacs and copied my changes over into the new config files. Reboot, no problems. Nice.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pervasivecode.com/blog/2010/02/06/ubuntu-910-jaunty-jackalope-upgrade-notes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu 8.10 and 9.04 (Intrepid Ibex and Jaunty Jackalope) upgrade notes</title>
		<link>http://www.pervasivecode.com/blog/2009/05/30/ubuntu-jaunty-jackalope-upgrade-notes/</link>
		<comments>http://www.pervasivecode.com/blog/2009/05/30/ubuntu-jaunty-jackalope-upgrade-notes/#comments</comments>
		<pubDate>Sat, 30 May 2009 22:54:18 +0000</pubDate>
		<dc:creator>Jamie Flournoy</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[servers]]></category>
		<category><![CDATA[xen]]></category>

		<guid isPermaLink="false">http://www.pervasivecode.com/blog/?p=96</guid>
		<description><![CDATA[I&#8217;m at WordCamp San Francisco today and decided that running a year old version of WordPress (on a year old version of Ubuntu Linux) was undesirable. So, with the confidence that comes from many relatively easy Ubuntu OS upgrades, I charged ahead. For (I think) the second time ever, things went badly. Here&#8217;s what I [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m at <a href="http://2009.sf.wordcamp.org/">WordCamp San Francisco</a> today and decided that running a year old version of WordPress (on a year old version of <a href="http://www.ubuntu.com/">Ubuntu Linux</a>) was undesirable. So, with the confidence that comes from many relatively easy Ubuntu OS upgrades, I charged ahead. For (I think) the second time ever, things went badly. Here&#8217;s what I did and how I fixed it.<br />
<span id="more-96"></span><br />
First, I had to figure out what release of Ubuntu was currently installed:<br />
<code>lsb_release -a</code></p>
<p>I was on &#8220;hardy&#8221;, a.k.a. the <a href="https://wiki.ubuntu.com/HardyHeron/">Hardy Heron</a> release, a.k.a. Ubuntu 8.04 LTS.</p>
<p>I had not bothered to install <a href="https://wiki.ubuntu.com/IntrepidIbex/">Ubuntu 8.10 / &#8220;Intrepid Ibex&#8221;</a> because I didn&#8217;t have a reason to when it was release. I now wanted to upgrade to <a href="https://wiki.ubuntu.com/JauntyJackalope">Ubuntu 9.04 &#8220;Jaunty Jackalope&#8221;</a> which has <a href="http://wordpress.org/">WordPress</a> 2.7.1, the current release (as of today).</p>
<p>The way to upgrade from 8.04 to 9.04 is to upgrade to 8.10 first. So I did that:</p>
<p><a href="https://help.ubuntu.com/community/IntrepidUpgrades#Network%20Upgrade%20for%20Ubuntu%20Servers%20(Recommended)">Intrepid Upgrades: Network Upgrade for Ubuntu Servers</a> worked really well. I had to do a little bit of manual file merging as usual (I still don&#8217;t understand why dpkg can&#8217;t merge changes from the old file into a new file) but that was it. Easy!</p>
<p>When I rebooted the VPS, it kernel panicked: can&#8217;t mount the root filesystem. Oh crap. /dev/xvda1 is missing? Really? I told the VPS to hard reboot and it came up fine. But that&#8217;s a little scary. (I think this is something more related to my VPS hosting provider than Ubuntu, but I haven&#8217;t yet upgraded my laptop VMWare Ubuntu VPS&#8217;s yet so I&#8217;m not sure.)</p>
<p>The second stage didn&#8217;t go so well. I did the same sort of simple upgrade: the Jaunty <a href="http://www.ubuntu.com/getubuntu/upgrading#Network%20Upgrade%20for%20Ubuntu%20Servers%20%28Recommended%29">Network Upgrade for Ubuntu Servers</a> instructions are the same as the ones for Intrepid. Upgrade, edit a couple of config files, reboot. Kernel panic again, same reason, reboot. Should work, right?</p>
<p>It booted, but had no network access. I was able to log in via my VPS hosting provider&#8217;s SSH remote console feature, so I was able to see that /etc/init.d/networking was failing to start. It was the same problem that&#8217;s described in <a href="http://www.fs3.ph/article/ubuntu-904-in-an-openvz-ve">Ubuntu 9.04 in an OpenVZ VE</a>. Adding that one line to <code>/etc/init.d/networking</code> fixed the problem. Reboot, all better.</p>
<p>So if you&#8217;re doing this upgrade on a VPS, make sure you&#8217;ve added that little 1-line hack after you do the Jaunty upgrade and before you reboot.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pervasivecode.com/blog/2009/05/30/ubuntu-jaunty-jackalope-upgrade-notes/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ubuntu Linux 8.04 &#8220;Hardy Heron&#8221; Upgrade Report</title>
		<link>http://www.pervasivecode.com/blog/2008/09/08/ubuntu-linux-804-hardy-heron-upgrade-report/</link>
		<comments>http://www.pervasivecode.com/blog/2008/09/08/ubuntu-linux-804-hardy-heron-upgrade-report/#comments</comments>
		<pubDate>Tue, 09 Sep 2008 01:50:48 +0000</pubDate>
		<dc:creator>Jamie Flournoy</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.pervasivecode.com/blog/?p=81</guid>
		<description><![CDATA[Painless! I&#8217;m actually starting to expect it to work without hitches now.
There are a couple of config file changes that need babysitting but none of them was difficult; I really do wish it would automatically do a three way merge between its old package version, the new version, and my version, and just assume &#8220;yes&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>Painless! I&#8217;m actually starting to expect it to work without hitches now.</p>
<p>There are a couple of config file changes that need babysitting but none of them was difficult; I really do wish it would automatically do a three way merge between its old package version, the new version, and my version, and just assume &#8220;yes&#8221; if they merge cleanly.</p>
<p>Instructions are trivial: see <a href="https://help.ubuntu.com/community/HardyUpgrades#Network%20Upgrade%20for%20Ubuntu%20Servers%20(Recommended)">Hardy Upgrades: Network Upgrade for Ubuntu Servers (Recommended)</a>.</p>
<p>This also works fine on Xen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pervasivecode.com/blog/2008/09/08/ubuntu-linux-804-hardy-heron-upgrade-report/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Athlon64 3500+ to Opteron 175 upgrade notes</title>
		<link>http://www.pervasivecode.com/blog/2008/03/01/athlon64-3500-to-opteron-175-upgrade-notes/</link>
		<comments>http://www.pervasivecode.com/blog/2008/03/01/athlon64-3500-to-opteron-175-upgrade-notes/#comments</comments>
		<pubDate>Sun, 02 Mar 2008 00:36:42 +0000</pubDate>
		<dc:creator>Jamie Flournoy</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[photos]]></category>
		<category><![CDATA[raid]]></category>
		<category><![CDATA[servers]]></category>
		<category><![CDATA[vmware]]></category>

		<guid isPermaLink="false">http://www.pervasivecode.com/blog/2008/03/01/athlon64-3500-to-opteron-175-upgrade-notes/</guid>
		<description><![CDATA[In short, gain with minimal pain, a couple of small hitches. I went single-core to dual-core with a drop-in replacement CPU and it was almost as easy as replacing the batteries in a flashlight.

My main home server is getting old. It was bought in September of 2004, and featured an Athlon64 3500+ processor, 1GB of [...]]]></description>
			<content:encoded><![CDATA[<p>In short, gain with minimal pain, a couple of small hitches. I went single-core to dual-core with a drop-in replacement CPU and it was almost as easy as replacing the batteries in a flashlight.</p>
<p><span id="more-61"></span></p>
<p>My main home server is getting old. It was bought in September of 2004, and featured an Athlon64 3500+ processor, 1GB of RAM, and a heap of hard disks. It&#8217;s still very fast as a file server, and has 3GB RAM now, so other responsibilities (backups, virus and spam filtering of email, etc.) are handled quite quickly too. However, I&#8217;m starting to do more server virtualization for work purposes (test environments with various OS and app configurations) on this server, so I figured it&#8217;d be nice to catch up to a more recent CPU that had multiple cores.</p>
<p>The Socket 939 processor line from AMD is almost phased out now. Upgrading to a new Socket AM2 CPU would mean a new motherboard, and based on the churn in the PC industry, that might lead to some serious cascading upgrades.</p>
<p>For example, the motherboard in this system died a couple of years ago, and it turned out that the PC industry switched to a new type of power connector, so I ended up having to also buy a new power supply also. At the same time, I had to rearrange hard disks because some were attached via a pair of PCI ATA-133 cards, but there were only 3 PCI slots on the new motherboard, and I also had a 3ware 8006-LP (SATA RAID) card, and a video card, fighting for room in those 3 slots. Fun!</p>
<p>The PC enthusiast solution to this sort of problem is apparently to buy a shiny new computer every year, full of brand new parts that match. That would be simple, but would cost about five times as much as what I&#8217;ve done. I was keen to keep the cascade of surprise upgrades to a minimum, which meant trying to stay with Socket 939, and maintaining the same clock rate.</p>
<p>Luckily the Opteron 175 fit the bill exactly: 2.2GHz, Socket 939, dual core, and about $150. That&#8217;s right in my price range for a non-critical but noticeable speed upgrade.</p>
<p>I bought it from Newegg, who by the way rock utterly. It showed up promptly and I opened it up, and&#8230; ugh. A new style of plug for the heatsink fan? Hmm, can I use the old heatsink? Maybe&#8230; but the new one looks much fancier. (The new one is on the left and the old one is on the right.)</p>
<p><img src="/images/socket939/new_and_old_heatsinks.jpg" width="492" height="369" /></p>
<p>Note the <a href="http://en.wikipedia.org/wiki/Heat_pipe">heat pipe</a>:</p>
<p><img src="/images/socket939/new_heatsink_side.jpg" width="256" height="192" /></p>
<p>It was pretty obvious what the copper tubing was for, but I didn&#8217;t know about the cool capillary circulation aspect (no pump!) nor that this had become mainstream technology for low-end coolers. Nifty.</p>
<p>Also notice that the new one (in the first photo alongside the old one) has pre-applied thermal paste. It&#8217;s the light gray square in the middle. I wiped most of the paste off of the old one, in anticipation of maybe needing to re-apply new paste and use it again due to the 3 vs. 4 pin problem.</p>
<p>Some reading about this plug switchover led me to believe that the 4th pin was optional and that the new plug was designed to fit into old-style plugs as needed. I tried it and it worked fine.</p>
<p>Here&#8217;s the socket with no CPU in it; you can see the white 3-pin connector labeled &#8220;CPU FAN&#8221; in the upper right corner.</p>
<p><img src="/images/socket939/socket_939_empty.jpg" width="433" height="569" /></p>
<p>And here is a close-up of the 4-pin cable plugged into the 3-pin connector, overhanging a large screw. Note that the right side of the plug has two plastic ridges designed to force you to plug it in the right way. Clever!</p>
<p><img src="/images/socket939/after_installation.jpg" width="333" height="457" /></p>
<p>Still, if you fail to plug the CPU fan in and the CPU overheats and dies, you void your warranty, so I&#8217;m glad I checked before just plugging it in and hoping it&#8217;d work.</p>
<p>I thought about the conventional wisdom, which is first that &#8220;box coolers&#8221; (the CPU coolers that come in the box with CPUs from the manufacturer) are lame, and second that overclocking an Opteron 175 works well. Given that I have no intention of overclocking this thing, I figured that the box cooler would be fine.</p>
<p>After I put the server back together, I ran two instances of <code>burnK7</code> (from the <a href="http://packages.ubuntu.com/gutsy/cpuburn">cpuburn package</a>) for a little over an hour, to keep both cores super busy. <code>burnK7</code>&#8217;s mission in life is to make your CPU temperature as hot as possible. The temperature never exceeded 57C for either core, compared to an idle temperature of 37C. The ambient temperature was 69F, and the case is not particularly fancy (2 fans in, 1 out, plus one in the power supply), so I&#8217;d have to say that the box cooler and preinstalled thermal paste are fine.</p>
<p>Overclockers may disagree and favor fancier coolers, but from experience I know that in this server, the hard disks are more likely to overheat on a hot day. I added an external desk fan to this server&#8217;s rack last year to resolve that problem, which was caused mainly by poor external air circulation.</p>
<p>A couple of things went more easily than I had expected. First, when researching this upgrade I found that (at least for Ubuntu Gutsy, possibly for other Linux releases or distros) there regular AMD64 kernel has SMP support. So, no OS tweaking was required to support the Opteron 175&#8217;s dual cores. Second, VMware Server recognized the second CPU and used both CPUs when I ran some tests on two uniprocessor virtual servers. Interestingly, <code>/proc/cpuinfo</code> on a virtualized Linux server shows the right CPU name for what is a dual-core CPU, but only lists one core, which matches the VMware configuration for that virtual server.</p>
<p>VMware did complain in a couple of cases about the different CPU feature set, when resuming suspended VMs. You can dismiss the message and run the VM, and that works, but it warns each time in my case because they are set up as locked snapshots (always restoring from the point where it was originally suspended, before the CPU upgrade).</p>
<p>This is minor, and the fix to make the warnings go away is quick: resume the VM from the old snapshot (dismissing the warning message), unlock the snapshot, make a new snapshot, lock that, and suspend (or power off) the VM. Now when you resume it in the future the warning will not appear. That&#8217;s simple to do, but it wasn&#8217;t 100% seamless, so I thought I&#8217;d mention it. I am glad that there was a warning, though; that would have helped if there had been an actual problem caused by the CPU change. In my opinion VMware does exactly the right thing.</p>
<p>So, all in all this was a very pleasant upgrade; quick, cheap, and effective (for server workloads which parallelize easily, this server is almost twice as fast as before).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pervasivecode.com/blog/2008/03/01/athlon64-3500-to-opteron-175-upgrade-notes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Upgrading to Ubuntu 7.10 &#8220;Gutsy Gibbon&#8221; on Xen</title>
		<link>http://www.pervasivecode.com/blog/2008/02/12/upgrading-to-ubuntu-710-gutsy-gibbon-on-xen/</link>
		<comments>http://www.pervasivecode.com/blog/2008/02/12/upgrading-to-ubuntu-710-gutsy-gibbon-on-xen/#comments</comments>
		<pubDate>Tue, 12 Feb 2008 23:02:17 +0000</pubDate>
		<dc:creator>Jamie Flournoy</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[xen]]></category>

		<guid isPermaLink="false">http://www.pervasivecode.com/blog/2008/02/12/upgrading-to-ubuntu-710-gutsy-gibbon-on-xen/</guid>
		<description><![CDATA[I have a VPS hosted at RimuHosting.com. I waited a while (3 months) for bugs to be squashed before upgrading it to Ubuntu Linux 7.10 (&#8220;Gutsy Gibbon&#8221;). There was one new issue.
BTW, my non-Rimu home server was the first thing I updated. Notes are here.
The only Xen wrinkle is that you need the libc6-xen package. [...]]]></description>
			<content:encoded><![CDATA[<p>I have a VPS hosted at RimuHosting.com. I waited a while (3 months) for bugs to be squashed before upgrading it to Ubuntu Linux 7.10 (&#8220;Gutsy Gibbon&#8221;). There was one new issue.</p>
<p>BTW, my non-Rimu home server was the first thing I updated. Notes are <a href="http://www.pervasivecode.com/blog/2007/12/28/ubuntu-linux-710-gutsy-gibbon-upgrade-report/">here</a>.</p>
<p>The only Xen wrinkle is that you need the <code>libc6-xen</code> package. I don&#8217;t know if that&#8217;s in Feisty or not. In my case I experienced a slew of scary Segmentation Fault errors in the package configuration stage. I found <a href="http://www.unixshell.com/forum/showpost.php?s=f92ba4537077b59a864833c94d6cd724&#038;p=8458&#038;postcount=6">:this post</a> which contains a solution for the problem. But if possible you might want to try installing that package before upgrading. If that doesn&#8217;t work, just use the method described in that post.</p>
<p>After doing that and running <code>dpkg --configure -a</code>, it was okay. It did complain about AppArmor and being unable to do something with modules, but that seems to be not germane to Xen so I ignored it and rebooted, and everything seems fine.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pervasivecode.com/blog/2008/02/12/upgrading-to-ubuntu-710-gutsy-gibbon-on-xen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu Linux 7.10 &#8220;Gutsy Gibbon&#8221; Upgrade Report</title>
		<link>http://www.pervasivecode.com/blog/2007/12/28/ubuntu-linux-710-gutsy-gibbon-upgrade-report/</link>
		<comments>http://www.pervasivecode.com/blog/2007/12/28/ubuntu-linux-710-gutsy-gibbon-upgrade-report/#comments</comments>
		<pubDate>Fri, 28 Dec 2007 19:37:13 +0000</pubDate>
		<dc:creator>Jamie Flournoy</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[raid]]></category>
		<category><![CDATA[servers]]></category>
		<category><![CDATA[vmware]]></category>

		<guid isPermaLink="false">http://www.pervasivecode.com/blog/2007/12/28/ubuntu-linux-710-gutsy-gibbon-upgrade-report/</guid>
		<description><![CDATA[A few weeks ago I updated to the latest version of Ubuntu Linux. This is the 7.10 (meaning October 2007) release, called &#8220;Gutsy Gibbon&#8221;. I encountered a couple of serious issues early on, but now that these are resolved things are running well. I&#8217;ll describe the issues and solutions so that anyone else encountering them [...]]]></description>
			<content:encoded><![CDATA[<p>A few weeks ago I updated to the latest version of Ubuntu Linux. This is the 7.10 (meaning October 2007) release, called &#8220;Gutsy Gibbon&#8221;. I encountered a couple of serious issues early on, but now that these are resolved things are running well. I&#8217;ll describe the issues and solutions so that anyone else encountering them can easily overcome them.<br />
<span id="more-54"></span></p>
<p>I used the instructions on the <a href="https://help.ubuntu.com/community/GutsyUpgrades?highlight=%28upgrade%29#head-f2435a45758bb5836f8e5b87e90045463f8c6ec7">GutsyUpgrades</a> page of the Ubuntu help wiki, under the heading &#8220;Network upgrade for Ubuntu servers (recommended)&#8221;. This is the command-line way of doing things, which is appropriate for administering a remote server via SSH. There are two steps: install the updater, and run the updater. That&#8217;s pretty slick.</p>
<p>Unfortunately as usual with Debian based releases there are many cases (a dozen or so) where the simple act of updating a package from an old version to a new version causes the installer to plead for human guidance. I find it irritating that if you change the default configuration at all, it cannot simply merge your changes into the new config file and continue. You have to do that manually. This is tedious, but not a really big issue.</p>
<p>In my case I had to manually merge apache2.conf, php.ini, and dovecot.conf because I had made a single line change in each file.</p>
<p>Upon reboot there were vast numbers of error messages, which I ultimately determined to have been caused by <a href="https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.22/+bug/115616">this issue</a>. Removing <code>evms</code> solved the problem, and now there&#8217;s a <a href="https://wiki.ubuntu.com/Evms">special page about <code>evms</code> and why it&#8217;s no longer supported</a>. Based on my reading of that page I suspect that there may be a new version of the Gutsy Gibbon updater that actually helps you by suggesting that you get rid of <code>evms</code> proactively to prevent this problem. Nice! Anyway my fix was simply to wait until the system had booted (slowly, with lots of error messages) and to carefully type in <code>apt-get remove evms</code> which I couldn&#8217;t even see as I typed because of the flood of error messages. Once that was done that problem went away completely.</p>
<p>I had a separate problem which was that the kernel has re-named the devices for my hard disks, which made a couple of my drives appear not to be recognized by the system. I use Linux Software RAID for a single mirrored volume, and for some reason it couldn&#8217;t use the volume UUID to figure out where the drives had gone. After recompiling a custom kernel using <a href="http://ubuntuforums.org/showthread.php?t=311158">these excellent instructions</a> to try and resolve <a href="https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.22/+bug/157909">this issue</a> (which turned out to be a red herring), I found out that I was on the wrong track. (But I also found out that it only takes 56 minutes to compile a kernel on my server, which isn&#8217;t too bad.) I read dmesg extremely carefully and figured out what had happened. Some work with mdadm told the software RAID manager how to find the components of my RAID mirror and all was well with that. My understanding is that since /etc/fstab includes UUIDs now, drives moving around shouldn&#8217;t cause problems like this, so maybe this is a problem specific to the Software RAID system. Other drives moved but were located and mounted properly, with no need for manual intervention.</p>
<p>Finally, I had to update to VMWare Server 1.0.4, which is the first version that supports the kernel included with Gutsy Gibbon (2.6.22-14-server).</p>
<p>Now that all this is behind me I can say that for servers it&#8217;s a decent update; I have no experience with it as a desktop. If you have any doubts you can probably skip this one and wait for the next <a href="https://wiki.ubuntu.com/LTS">LTS</a> release. But if you do plan to upgrade, just make sure to remove <code>evms</code> first and look in the /dev/sd_ range for any hard drives that seem to have disappeared.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pervasivecode.com/blog/2007/12/28/ubuntu-linux-710-gutsy-gibbon-upgrade-report/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

