<?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>Adrian's Thoughts &#187; Linux</title>
	<atom:link href="http://blog.frith.co.za/tag/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.frith.co.za</link>
	<description>Ramblings about life, university, mathematics, computing, Linux, open source, etc.</description>
	<lastBuildDate>Thu, 19 Mar 2009 10:23:21 +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>Ubuntu on an HP Compaq dx2300 Microtower</title>
		<link>http://blog.frith.co.za/2009/03/19/ubuntu-on-an-hp-compaq-dx2300-microtower/</link>
		<comments>http://blog.frith.co.za/2009/03/19/ubuntu-on-an-hp-compaq-dx2300-microtower/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 10:23:21 +0000</pubDate>
		<dc:creator>adrian</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[University]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[Compaq]]></category>
		<category><![CDATA[dx2300]]></category>
		<category><![CDATA[HP]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Microtower]]></category>
		<category><![CDATA[soundcard]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://blog.frith.co.za/?p=77</guid>
		<description><![CDATA[My new desktop at varsity is, as described in the title, an HP Compaq dx2300 Microtower. First thing I did when I got access to it was, of course, to install Linux &#8211; Ubuntu 8.10 in this case. It&#8217;s a pretty nice machine (although not particularly high-spec) and pretty much everything worked straight away from [...]]]></description>
			<content:encoded><![CDATA[<p>My new desktop at varsity is, as described in the title, an HP Compaq dx2300 Microtower. First thing I did when I got access to it was, of course, to install Linux &#8211; Ubuntu 8.10 in this case. It&#8217;s a pretty nice machine (although not particularly high-spec) and pretty much everything worked straight away from install. The graphics card is Intel, so I&#8217;m not going to be doing any serious gameplaying (<em>this is a work computer, anyway</em>) but it runs Compiz pretty well. Being a desktop, suspend and hibernate aren&#8217;t terribly important, but as it happens they work fine.</p>
<p>The only problem &#8211; and this is the main point of this post &#8211; was with the soundcard (an Intel HDA). The box has three audio outputs: headphone plugs front and back, and a tinny built-in speaker. Under Ubuntu all three outputs were switched on all the time, and it wasn&#8217;t possible to adjust them separately. The purpose of headphones in a shared lab environment is entirely defeated if the built-in speaker is always on! I tried fiddling with all of the multitude of ALSA settings, but nothing worked. It couldn&#8217;t have been a hardware problem, because it did the right thing under Windows.</p>
<p>So, the problem was narrowed down to the audio driver, <code>snd-hda-intel</code> to be specific. Some googling established that changing the <code>model</code> parameter to the module might have some effect on the output selection behaviour. Further searching established that the possible values are listed in <code><a href="http://www.kernel.org/doc/Documentation/sound/alsa/HD-Audio-Models.txt">Documentation/sound/alsa/HD-Audio-Models.txt</a></code> in the kernel source.</p>
<p>To find out what the possible values are, you have to know which codec your card uses. This you can do by running </p>
<blockquote><p><code>cat /proc/asound/card0/codec#0 | grep Codec</code></p></blockquote>
<p>For the dx2300 the result was <code>Realtek ALC888</code>. Indeed, under the list of models for the ALC888, there is one called &#8220;<code>3stack-hp</code>&#8221; for &#8220;HP machines with 3stack&#8221;. Guessing that this was the correct one, I added to <code>/etc/modprobe.d/alsa-base</code> the line </p>
<blockquote><p><code>options snd-hda-intel model=3stack-hp</code></p></blockquote>
<p> and rebooted. Hey presto, suddenly the internal speaker switches off when headphones are plugged in.</p>
<p>tl;dr summary: If you have a dx2300 and you&#8217;re having problems with the audio under Linux, then add the line <code>options snd-hda-intel model=3stack-hp</code> to the file <code>/etc/modprobe.d/alsa-base</code> (at least in Ubuntu; your distro might put module options in a different file).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.frith.co.za/2009/03/19/ubuntu-on-an-hp-compaq-dx2300-microtower/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>HSDPA modem and custom routing</title>
		<link>http://blog.frith.co.za/2009/01/13/hsdpa-modem-and-custom-routing/</link>
		<comments>http://blog.frith.co.za/2009/01/13/hsdpa-modem-and-custom-routing/#comments</comments>
		<pubDate>Tue, 13 Jan 2009 21:40:24 +0000</pubDate>
		<dc:creator>adrian</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[University]]></category>
		<category><![CDATA[hsdpa]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[routing]]></category>
		<category><![CDATA[UCT]]></category>

		<guid isPermaLink="false">http://blog.frith.co.za/?p=58</guid>
		<description><![CDATA[So, for my Christmas present to myself I got a Huawei E220 HSDPA modem &#8211; it&#8217;s one of the Vodafone-branded ones, but I reflashed it with the generic firmware. Anyway, it&#8217;s an awesome thing to have for a geek like me &#8211; I can be connected to the Internet at broadband speeds almost anywhere in [...]]]></description>
			<content:encoded><![CDATA[<p>So, for my Christmas present to myself I got a <a href="http://en.wikipedia.org/wiki/Huawei_E220">Huawei E220</a> HSDPA modem &#8211; it&#8217;s one of the Vodafone-branded ones, but I reflashed it with the generic firmware. Anyway, it&#8217;s an awesome thing to have for a geek like me &#8211; I can be connected to the Internet at broadband speeds almost anywhere in the city. It&#8217;s particularly useful when i&#8217;m on campus, so I can avoid the dog-slow UCT internet connection.</p>
<p>Problem is, I&#8217;d like to stay connected to the UCT network as well so that I don&#8217;t use up my precious* data bundle for UCT services, and this requires a bit of custom routing magic. So I have a script:</p>
<p><code>#!/bin/sh<br />
GATEWAY=137.158.32.97<br />
route add -net 137.158.0.0/16 gw $GATEWAY<br />
route add -net 192.48.253.0/24 gw $GATEWAY<br />
route del default<br />
route add default ppp0</code></p>
<p>137.158.0.0/16 and 192.48.253.0/24 are the UCT netblocks, and 137.158.32.97 is the router on the subnet that I&#8217;m mostly using at the moment. ppp0 is, of course, the name of the interface associated with the HSDPA connection.</p>
<p>The problems with this script currently are that I have to edit it to change the gateway for each subnet that I&#8217;m on, that I have to run it manually each time I connect, and that it doesn&#8217;t restore the original routing when I disconnect. The first and third problems should be reasonably easy to solve, but the second will probably require that I dig into the mysterious world of NetworkManager. <em>(Cue dramatic music.)</em></p>
<p><small>*It&#8217;s ourssss, my preciousss&#8230; they wants to take it from us, the nasssty Vodacom&#8230;</small></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.frith.co.za/2009/01/13/hsdpa-modem-and-custom-routing/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>XRandR &#8211; finally, simple monitor configuration for Linux</title>
		<link>http://blog.frith.co.za/2007/12/06/xrandr-finally-simple-monitor-configuration-for-linux/</link>
		<comments>http://blog.frith.co.za/2007/12/06/xrandr-finally-simple-monitor-configuration-for-linux/#comments</comments>
		<pubDate>Thu, 06 Dec 2007 00:05:00 +0000</pubDate>
		<dc:creator>adrian</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[monitor]]></category>
		<category><![CDATA[X]]></category>
		<category><![CDATA[xrandr]]></category>

		<guid isPermaLink="false">http://blog.frith.co.za/2007/12/06/xrandr-finally-simple-monitor-configuration-for-linux/</guid>
		<description><![CDATA[The most recent Linux distribution releases &#8211; Ubuntu 7.10, Fedora 8 and so on &#8211; are now shipping with version 1.2 of the XRandR extension for the X server. This allows the user to dynamically change resolutions, refresh rates, and &#8211; this is the really impressive thing &#8211; switch monitors on and off on the [...]]]></description>
			<content:encoded><![CDATA[<p>The most recent Linux distribution releases &#8211; Ubuntu 7.10, Fedora 8 and so on &#8211; are now shipping with version 1.2 of <a href="http://www.x.org/wiki/Projects/XRandR">the XRandR extension</a> for the X server. This allows the user to dynamically change resolutions, refresh rates, and &#8211; this is the really impressive thing &#8211; switch monitors on and off on the fly. All of this, without ever having to edit <code>xorg.conf</code>, or restart the X server, or reboot. This was one of the major things that the Linux desktop lacked compared to other major operating systems.</p>
<p>Until very recently, using my external monitor with my laptop required several irritating customisations &#8211; you can see the details in <a href="http://blog.frith.co.za/2006/12/17/ubuntu-widescreen-monitor-radeon-aiglx-beryl/">my earlier post</a>:</p>
<ol>
<li>To have it switch on, and run in Xinerama mode along with my laptop panel, required fiddling with MetaModes and other fiddly settings of the <code>radeon</code> driver.</li>
<li>To drive it at its native resoution (1440&#215;900) i had to add a custom modeline to <code>xorg.conf</code> (except on Fedora, for some reason).</li>
<li>If the X server originally started without the external monitor attached, then it would have to be restarted to detect the monitor once it was attached. And restarting X means having to log out and lose all my application state.</li>
</ol>
<p>XRandR 1.2 has removed all three of these irritations. It requires (almost) no preconfiguration, autodetects all resolutions correctly, and detects monitors when they are plugged in without a restart.</p>
<p>Let&#8217;s take a brief look at some of what XRandR can do: this is basically what I do with it daily. Note that at the moment graphical tools to control XRandR are still under development and none are really at a releaseable state (in my opinion); but now that the infrastructure exists in the X server and the drivers, tools to control it will come soon. What I use here is the command-line tool, sensibly named <code>xrandr</code>.<span id="more-25"></span></p>
<p>Let&#8217;s say I boot the computer without the external monitor plugged in. As you would expect, my desktop is automatically set to the native resolution of the laptop panel (in my case, 1024&#215;768). I can see what resolutions and refresh rates are available:</p>
<blockquote><p><code>$ <em>xrandr -q</em><br />
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 2464 x 1024<br />
VGA-0 disconnected (normal left inverted right x axis y axis)<br />
DVI-0 disconnected (normal left inverted right x axis y axis)<br />
LVDS connected 1024x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm<br />
&nbsp;&nbsp;&nbsp;1024x768       60.0*+   60.0<br />
&nbsp;&nbsp;&nbsp;800x600        60.3<br />
&nbsp;&nbsp;&nbsp;640x480        59.9<br />
S-video disconnected (normal left inverted right x axis y axis)</code></p></blockquote>
<p>This tells me that the only attached monitor is the laptop panel (called LVDS); that it can run at the three different resolutions listed, and at the refresh rates listed next to the resolutions. The &#8220;<code>*</code>&#8221; indicates the mode that is currently in use, and the &#8220;<code>+</code>&#8221; indicates which mode is preferred by the monitor.</p>
<p>If i wanted to, I could switch to some other resolution:</p>
<blockquote><p><code>$ <em>xrandr --output LVDS --mode 800x600</em></code></p></blockquote>
<p>But that looks horrible, so I switch back to the preferred resolution:</p>
<blockquote><p><code>$ <em>xrandr --output LVDS --auto</em></code></p></blockquote>
<p>Now everything&#8217;s back to normal. There are various rotation and reflection options as well, but I won&#8217;t discuss them because (a) they&#8217;re silly, and (b) you can look them up in the man page if you need them.</p>
<p>Here comes the interesting part. Now I plug in my external monitor. Nothing happens immediately; but if I run the query command, there&#8217;s some new information:</p>
<blockquote><p><code>$ <em>xrandr -q</em><br />
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 2464 x 1024<br />
VGA-0 connected (normal left inverted right x axis y axis)<br />
&nbsp;&nbsp;&nbsp;1440x900       59.9 +   75.0     59.9<br />
&nbsp;&nbsp;&nbsp;1280x1024      75.0     59.9<br />
&nbsp;&nbsp;&nbsp;1280x960       74.9<br />
&nbsp;&nbsp;&nbsp;1360x765       59.8<br />
&nbsp;&nbsp;&nbsp;1152x864       74.8     60.0<br />
&nbsp;&nbsp;&nbsp;1024x768       75.1     70.1     65.7     60.0<br />
&nbsp;&nbsp;&nbsp;832x624        74.6<br />
&nbsp;&nbsp;&nbsp;800x600        72.2     75.0     60.3     56.2<br />
&nbsp;&nbsp;&nbsp;640x480        75.0     72.8     66.7     60.0<br />
&nbsp;&nbsp;&nbsp;720x400        70.1<br />
DVI-0 disconnected (normal left inverted right x axis y axis)<br />
LVDS connected 1024x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm<br />
&nbsp;&nbsp;&nbsp;1024x768       60.0*+   60.0<br />
&nbsp;&nbsp;&nbsp;800x600        60.3<br />
&nbsp;&nbsp;&nbsp;640x480        59.9<br />
S-video disconnected (normal left inverted right x axis y axis)</code></p></blockquote>
<p>So I can now see all the modes supported by the external monitor (called VGA-0). I switch the monitor on:</p>
<blockquote><p><code>$ <em>xrandr --output VGA-0 --auto</em></code></p></blockquote>
<p>This switches on the monitor in a sort-of clone mode: the output from the laptop panel is duplicated on the external monitor; but because the external monitor is larger, it appears in the top left, and the desktop size expands to the size of the external monitor. (At the moment, GNOME doesn&#8217;t handle this too well, and the GNOME panel stays in the same place, meaning that it&#8217;s in the middle of what&#8217;s visible on the external monitor.) So now I can switch off the laptop panel:</p>
<blockquote><p><code>$ <em>xrandr --output LVDS --off</em></code></p></blockquote>
<p>(GNOME handles this correctly and moves the panel.)</p>
<p>Now, if you look at the query output above, you&#8217;ll see that the monitor claims that its preferred mode has a refresh rate of 59.9Hz, although it also supports a 75Hz mode at the same resolution. I find the latter mode more friendly on my eyes, so I switch to it:</p>
<blockquote><p><code>$ <em>xrandr --output VGA-0 --mode 1440x900 --rate 75.0</em></code></p></blockquote>
<p>I want to use the extra desktop space available on my laptop panel; but by default it would just be cloning the output of the external monitor, which wouldn&#8217;t help. So I use another option to position the outputs:</p>
<blockquote><p><code>$ <em>xrandr --output LVDS --auto --left-of VGA-0</em></code></p></blockquote>
<p>This places the panel to the left of the external monitor. There are corresponding <code>--right-of</code>, <code>--above</code> and <code>--below</code> options.</p>
<p>Finally, I want to switch off the external monitor so that I can take my laptop away from the desk:</p>
<blockquote><p><code>$ <em>xrandr --output VGA-0 --off</em></code></p></blockquote>
<p>Now I&#8217;m back where I started.</p>
<p>This is all very cool, but there are a couple of cautionary notes. The necessary drivers are only included in very recent distro releases (Ubuntu 7.10 and Fedora 8 in particular). Currently only the open-source Intel, Radeon and NV drivers support XRandR 1.2; neither the ATi nor the NVIDIA proprietary drivers support it. For now, you pretty much have to use the command-line tool &#8211; though that will change quickly. Finally, you sometimes have to set the <code>Virtual</code> option in <code>xorg.conf</code> to indicate the largest possible size of your desktop &#8211; but this is a one-off setting, and I hope that distros will start setting it to a sensible default automatically.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.frith.co.za/2007/12/06/xrandr-finally-simple-monitor-configuration-for-linux/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SCO is bankrupt</title>
		<link>http://blog.frith.co.za/2007/09/17/sco-is-bankrupt/</link>
		<comments>http://blog.frith.co.za/2007/09/17/sco-is-bankrupt/#comments</comments>
		<pubDate>Mon, 17 Sep 2007 14:30:14 +0000</pubDate>
		<dc:creator>adrian</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[bankrupt]]></category>
		<category><![CDATA[Law]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[SCO]]></category>

		<guid isPermaLink="false">http://blog.frith.co.za/?p=23</guid>
		<description><![CDATA[Well, not quite. Remember what I (along with half of the world &#8211; I&#8217;m not claiming any particular brilliance on my part) predicted a month ago? That SCO would file for Chapter 11 bankruptcy protection? Well, it&#8217;s happened. Hopefully we will soon be seeing the last gasps of SCO.
In other news: Microsoft loses anti-trust appeal. [...]]]></description>
			<content:encoded><![CDATA[<p>Well, not quite. Remember what I (along with half of the world &#8211; I&#8217;m not claiming any particular brilliance on my part) <a href="http://blog.frith.co.za/?p=22">predicted a month ago</a>? That SCO would file for Chapter 11 bankruptcy protection? Well, <a href="http://www.groklaw.net/article.php?story=20070914152904577">it&#8217;s happened</a>. Hopefully we will soon be seeing the last gasps of SCO.</p>
<p>In other news: <a href="http://news.bbc.co.uk/2/hi/business/6998272.stm">Microsoft loses anti-trust appeal</a>. All in all, a bad day for IP trolls and monopolists.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.frith.co.za/2007/09/17/sco-is-bankrupt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SCO share price</title>
		<link>http://blog.frith.co.za/2007/08/14/sco-share-price/</link>
		<comments>http://blog.frith.co.za/2007/08/14/sco-share-price/#comments</comments>
		<pubDate>Tue, 14 Aug 2007 18:25:11 +0000</pubDate>
		<dc:creator>adrian</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[SCO]]></category>

		<guid isPermaLink="false">http://blog.frith.co.za/?p=22</guid>
		<description><![CDATA[With regard to the SCO v. Novell ruling, I think this says it all:

SCO lost two-thirds of its value over the weekend after the ruling. It might not be long before they file for Chapter 11 bankruptcy, I imagine.
]]></description>
			<content:encoded><![CDATA[<p>With regard to <a href="http://www.groklaw.net/article.php?story=20070810165237718">the SCO v. Novell ruling</a>, I think this says it all:</p>
<p><a id="p21" rel="attachment" class="imagelink" href="http://blog.frith.co.za/?attachment_id=21" title="SCOX price"><img id="image21" src="http://blog.frith.co.za/wp-content/uploads/2007/08/scox.png" alt="SCOX price" /></a></p>
<p>SCO lost two-thirds of its value over the weekend after the ruling. It might not be long before they file for Chapter 11 bankruptcy, I imagine.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.frith.co.za/2007/08/14/sco-share-price/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CLUG in LinuxFormat!</title>
		<link>http://blog.frith.co.za/2007/07/05/clug-in-linuxformat/</link>
		<comments>http://blog.frith.co.za/2007/07/05/clug-in-linuxformat/#comments</comments>
		<pubDate>Thu, 05 Jul 2007 20:13:59 +0000</pubDate>
		<dc:creator>adrian</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[CLUG]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.frith.co.za/?p=16</guid>
		<description><![CDATA[This is actually quite old news, but I&#8217;ve only got around to blogging it now. CLUG, my local Linux Users Group, was featured as &#8220;Overseas LUG of the month&#8221; in Linux Format magazine&#8217;s May issue:
 (click to expand)
]]></description>
			<content:encoded><![CDATA[<p>This is actually quite old news, but I&#8217;ve only got around to blogging it now. <a href="http://www.clug.org.za/">CLUG</a>, my local Linux Users Group, was featured as &#8220;Overseas LUG of the month&#8221; in <a href="http://www.linuxformat.co.uk/">Linux Format</a> magazine&#8217;s May issue:</p>
<p><a class="imagelink" href="http://blog.frith.co.za/wp-content/uploads/2007/07/clug-lf.jpg" title="CLUG in LF"><img id="image15" src="http://blog.frith.co.za/wp-content/uploads/2007/07/clug-lf.thumbnail.jpg" alt="CLUG in LF" /></a> (click to expand)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.frith.co.za/2007/07/05/clug-in-linuxformat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GPL 3.0</title>
		<link>http://blog.frith.co.za/2007/06/30/gpl-30/</link>
		<comments>http://blog.frith.co.za/2007/06/30/gpl-30/#comments</comments>
		<pubDate>Sat, 30 Jun 2007 21:33:54 +0000</pubDate>
		<dc:creator>adrian</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[FLOSS]]></category>
		<category><![CDATA[Law]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.frith.co.za/?p=13</guid>
		<description><![CDATA[highvoltage has already blogged about it, but I just wanted to remark upon the launch of the GNU GPL version 3.0. Reading those words
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jono.co.za/gplv3">highvoltage has already blogged about it</a>, but I just wanted to remark upon the <a href="http://www.fsf.org/news/gplv3_launched">launch</a> of <a href="http://www.gnu.org/licenses/gpl-3.0.html">the GNU GPL version 3.0</a>. Reading those words</p>
<blockquote><p>This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.</p></blockquote>
<p>was quite disturbing. Not in a bad way; it just felt really weird to see the number 3 there. Ever since I&#8217;ve been involved with free software, the GPL has been at version 2. I can&#8217;t count the number of times I&#8217;ve copied those familiar paragraphs into the beginning of a source file, or that familiar <code>COPYING</code> file into a new project.</p>
<p>Other than that, I&#8217;m quite happy with the new license. Despite the FUD that has been spread about it, it actually seems perfectly reasonable. The new anti-&#8221;tivoisation&#8221; and patent licensing clauses are appropriate to the aims of the FSF. True, they inconvenience the &#8220;corporate open source&#8221; world, which sometimes seems to want to use free software for the convenience while actually avoiding granting users the freedoms we expect. I don&#8217;t see this as a problem.</p>
<p>The biggest problem I do see is that GPLv2 and GPLv3 are mutually incompatible. We already have so much trouble with incompatible licenses between different bits of free software with essentially similar licensing goals and it&#8217;s irritating that we now have another incompatibility to deal with. (On the other hand, GPLv3 is now compatible with the Apache License, which is an improvement.)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.frith.co.za/2007/06/30/gpl-30/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to make ThinkPad volume keys work properly in Kubuntu</title>
		<link>http://blog.frith.co.za/2007/04/02/how-to-make-thinkpad-volume-keys-work-properly-in-kubuntu/</link>
		<comments>http://blog.frith.co.za/2007/04/02/how-to-make-thinkpad-volume-keys-work-properly-in-kubuntu/#comments</comments>
		<pubDate>Sun, 01 Apr 2007 23:45:58 +0000</pubDate>
		<dc:creator>adrian</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[ThinkPad]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://blog.frith.co.za/?p=10</guid>
		<description><![CDATA[I really like Ubuntu. I mean, I really, really like it. But it exhibits one really irritating behaviour on most IBM/Lenovo ThinkPads. You see, ThinkPads (except for some in the R series) have a hardware sound mixer, and the volume control buttons operate the mixer directly in hardware, without any interaction from the operating system. [...]]]></description>
			<content:encoded><![CDATA[<p>I really like Ubuntu. I mean, I <em>really, really</em> like it. But it exhibits one really irritating behaviour on most IBM/Lenovo ThinkPads. You see, ThinkPads (except for some in the R series) have a hardware sound mixer, and the volume control buttons operate the mixer directly in hardware, without any interaction from the operating system. This is unusual; most other laptops have software buttons which the OS must interpret and use to control the software mixer.</p>
<p>Now, on most distributions, I would just run <a href="http://www.nongnu.org/tpb/"><code>tpb</code></a>, and it gives a little on-screen display when I press one of the buttons. Ubuntu, however, is different. It has a special hotkeys subsystem which interprets the button presses on all sorts of laptops and passes them to a generic control program. Unfortunately, this system doesn&#8217;t know that the ThinkPad interprets the keys on its own; so every time you press a volume key, it gets interpreted in hardware <em>and</em> in software. This is really irritating, because the volume jumps in huge steps every time you press the button. And if you change the volume in software, they get out of sync and it all gets really complicated.</p>
<p>The appropriate behaviour, of course, would be to just display a notification without changing the software mixer&#8217;s volume; and I hope the Ubuntu folks will eventually implement this. For the meanwhile, anyway, there is a fix at least for Kubuntu. (Sorry, GNOME users, I don&#8217;t know what the equivalent solution is for you).</p>
<ol>
<li>Install the package <code>kmilo-legacy</code>.</li>
<li>Arrange to have read access to the device <code>/dev/nvram</code>. On Feisty, at least, this required setting up a custom <code>udev</code> rule by creating a file <code>/etc/udev/rules.d/50-user-custom.rules</code> with contents <code>KERNEL=="nvram", MODE="0664"</code> and running <code>chmod 0664 /dev/nvram</code> to fix the permissions without rebooting.</li>
<li>Run <code>kcmshell thinkpad</code>, and then tick the &#8220;Run Thinkpad Buttons KMilo Plugin&#8221; option and untick the &#8220;Change volume in software&#8221; option.</li>
<li>Remove the file <code>/usr/share/services/kmilo/kmilo_generic.desktop</code>. (Or move it somewhere else, or rename it to something that doesn&#8217;t end in <code>.desktop</code>, or whatever else will stop KDE from seeing it.)</li>
<li>Log out and log in again.</li>
<li>Voila!</li>
</ol>
<p>One useful side effect is that you will now get on-screen notifications when the other ThinkPad special buttons &#8211; like the brightness controls, the ThinkLight button, and so on &#8211; are pressed.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.frith.co.za/2007/04/02/how-to-make-thinkpad-volume-keys-work-properly-in-kubuntu/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Another reason I can&#8217;t use Windows</title>
		<link>http://blog.frith.co.za/2007/04/02/another-reason-i-cant-use-windows/</link>
		<comments>http://blog.frith.co.za/2007/04/02/another-reason-i-cant-use-windows/#comments</comments>
		<pubDate>Sun, 01 Apr 2007 22:18:32 +0000</pubDate>
		<dc:creator>adrian</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.frith.co.za/?p=8</guid>
		<description><![CDATA[This is a rant. It&#8217;s, hopefully, not a biased Linux fanboy rant; rather, it is a reasonable description of yet another problem with Microsoft Windows. The problem is CPU scheduling. Windows&#8217; CPU scheduler simply can&#8217;t cope properly with running CPU-intensive processes concurrently with interactive processes. A few days ago, I was in Windows with iTunes [...]]]></description>
			<content:encoded><![CDATA[<p>This is a rant. It&#8217;s, hopefully, not a biased Linux fanboy rant; rather, it is a reasonable description of yet another problem with Microsoft Windows. The problem is CPU scheduling. Windows&#8217; CPU scheduler simply can&#8217;t cope properly with running CPU-intensive processes concurrently with interactive processes. A few days ago, I was in Windows with iTunes ripping a CD and encoding to AAC, and I was trying to surf the web simultaneously. It was impossible; Internet Explorer was completely unresponsive &#8211; it would take several minutes from clicking on the &#8220;new tab&#8221; button to seeing a new tab appear.</p>
<p>Later that day I was doing the same thing, but in Linux &#8211; using Banshee to rip and encode the same CD to AAC (I would use OGG if I didn&#8217;t have an iPod). I was also surfing the web with Epiphany, and there was no noticeable slowdown in the web browser. No doubt the ripping/encoding process took a little longer because of the CPU time provided to other processes; but I imagine that most users would rather have their backround tasks take a little longer in return for being able to carry on using the computer while they run.</p>
<p>This is something where Linux really excels: the scheduler is really <em>very good</em>. Windows&#8217; is simply pathetic, and completely unsuited for an interactive system (which doesn&#8217;t really make sense, since Windows has never been used as a batch system, as far as I know!).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.frith.co.za/2007/04/02/another-reason-i-cant-use-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu + widescreen monitor + radeon + AIGLX + beryl</title>
		<link>http://blog.frith.co.za/2006/12/17/ubuntu-widescreen-monitor-radeon-aiglx-beryl/</link>
		<comments>http://blog.frith.co.za/2006/12/17/ubuntu-widescreen-monitor-radeon-aiglx-beryl/#comments</comments>
		<pubDate>Sun, 17 Dec 2006 15:31:11 +0000</pubDate>
		<dc:creator>adrian</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.frith.co.za/?p=5</guid>
		<description><![CDATA[Wohoot! I&#8217;ve finally managed to get my 1440&#215;900 widescreen monitor working with the open-source radeon (r300) driver instead of ATi&#8217;s proprietary fglrx driver. Turns out I just needed the right &#8220;Device&#8221; section:
Section "Device"
        Identifier      "ATI Technologies, Inc. M22 [Radeon Mobility M300]"
   [...]]]></description>
			<content:encoded><![CDATA[<p>Wohoot! I&#8217;ve finally managed to get my 1440&#215;900 widescreen monitor working with the open-source radeon (r300) driver instead of ATi&#8217;s proprietary fglrx driver. Turns out I just needed the right &#8220;Device&#8221; section:</p>
<blockquote><p><code>Section "Device"<br />
        Identifier      "ATI Technologies, Inc. M22 [Radeon Mobility M300]"<br />
        Driver          "ati"<br />
        BusID           "PCI:1:0:0"<br />
        Option          "DDCMode" "true"<br />
        Option          "MonitorLayout" "LVDS, TMDS"<br />
        Option          "MergedFB" "true"<br />
        Option          "MetaModes" "1024x768+1440x900"<br />
EndSection</code></p></blockquote>
<p>and, especially, a special modeline for the 1440&#215;900 mode:</p>
<blockquote><p><code>Section "Modes"<br />
  Identifier   "Modes"<br />
  Modeline      "1024x768" 76.16 1024 1080 1192 1360 768 769 772 800<br />
  Modeline      "1024x768" 64.11 1024 1080 1184 1344 768 769 772 795<br />
  Modeline      "1440x900" 100.000 1440 1456 1464 1480 900 916 924 940 -hsync -v<br />
sync<br />
EndSection</code></p></blockquote>
<p>and then the right display settings:</p>
<blockquote><p><code>Section "Screen"<br />
        Identifier      "Default Screen"<br />
        Device          "ATI Technologies, Inc. M22 [Radeon Mobility M300]"<br />
        Monitor         "Generic Monitor"<br />
        DefaultDepth    24<br />
        SubSection "Display"<br />
                Depth           24<br />
                Modes           "1440x900" "1024x768"<br />
                Virtual         1440 900<br />
        EndSubSection<br />
EndSection</code></p></blockquote>
<p>Even better, AIGLX compositing <em>just works</em> with the open-source drivers; so after installing Beryl I have all the fancy window effects without the hassle and complication of running the Xgl server that you have to use with the fglrx drivers. Admittedly, 3D is somewhat slower with the open-source drivers than it was with the ATi drivers, but it&#8217;s not as if I use 3D stuff a lot.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.frith.co.za/2006/12/17/ubuntu-widescreen-monitor-radeon-aiglx-beryl/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
