<?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>Christian&#039;s blog</title>
	<atom:link href="http://blog.barfoo.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.barfoo.org</link>
	<description>The usual IT babble</description>
	<lastBuildDate>Thu, 02 Sep 2010 04:45:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1-alpha</generator>
		<item>
		<title>Run a command on a list of Fibre-Channel switches (fc-switch-commands.pl)</title>
		<link>http://blog.barfoo.org/2010/08/26/run-a-command-on-a-list-of-fibre-channel-switches-fc-switch-commands-pl/</link>
		<comments>http://blog.barfoo.org/2010/08/26/run-a-command-on-a-list-of-fibre-channel-switches-fc-switch-commands-pl/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 16:44:14 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://blog.barfoo.org/?p=3526</guid>
		<description><![CDATA[Up till now, we did have a bunch of shell and perl scripts doing this work. Today, as I was looking for some stuff to do, I found them and decided rewriting it, so you wouldn&#8217;t need a shell script to call the perl worker script &#8230; This is pretty much the result! #!/usr/bin/perl #]]></description>
			<content:encoded><![CDATA[<p>Up till now, we did have a bunch of shell and perl scripts doing this work. Today, as I was looking for some stuff to do, I found them and decided rewriting it, so you wouldn&#8217;t need a shell script to call the perl worker script &#8230; This is pretty much the result!</p>
<pre class="syntax perl5">#!/usr/bin/perl

# This script runs a batch of commands on a list of FC-switches. For example:
# fc-switch-commands.pl statsclear | configupload | supportsave

use strict;
use warnings;
use Net::Telnet;

our( @san_fabric1_core, @san_fabric1_edge_1, @san_fabric1_edge_2 );
our( @san_fabric2_core, @san_fabric2_edge_1, @san_fabric2_edge_2 );
our( @switches );
our( $ftp_host, $ftp_username, $ftp_password );
our( $telnet );
our( $i, $version, @debug );

@san_fabric1_core = ( &quot;10.144.20.50&quot;, &quot;admin&quot;, &quot;JuNxJFSAS!&quot;, 'san_fabric1_core' );
@san_fabric1_edge_1 = ( &quot;10.144.20.51&quot;, &quot;admin&quot;, &quot;JuNxJFSAS!&quot;, 'san_fabric1_edge_1' );
@san_fabric1_edge_2 = ( &quot;10.144.20.52&quot;, &quot;admin&quot;, &quot;JuNxJFSAS!&quot;, 'san_fabric1_edge_2' );
@san_fabric2_core = ( &quot;10.144.20.60&quot;, &quot;admin&quot;, &quot;JuNxJFSAS!&quot;, 'san_fabric2_core' );
@san_fabric2_edge_1 = ( &quot;10.144.20.61&quot;, &quot;admin&quot;, &quot;JuNxJFSAS!&quot;, 'san_fabric2_edge_1' );
@san_fabric2_edge_2 = ( &quot;10.144.20.62&quot;, &quot;admin&quot;, &quot;JuNxJFSAS!&quot;, 'san_fabric2_edge_2' );

$ftp_host = '10.144.20.45';
$ftp_username = 'brocade_cfg';
$ftp_password = 'JuNxJPFC!';

@switches = ( \@san_fabric1_core, \@san_fabric2_core,
              \@san_fabric1_edge_1, \@san_fabric1_edge_2,
              \@san_fabric2_edge_1, \@san_fabric2_edge_2 );

@debug = ( Dump_Log =&gt; 'dump.log', Output_Log =&gt; 'out.log', Input_Log =&gt; 'in.log' );

$telnet = new Net::Telnet(Timeout=&gt;240, Errmode=&gt;'die',
                          Prompt =&gt; '/.*\:admin&gt; $/is', @debug);

for ($i = 0; $i &lt; $#switches + 1; $i++) {
  $telnet-&gt;open($switches[$i][0]);
  $telnet-&gt;login($switches[$i][1], $switches[$i][2]);

  if ( $ARGV[0] eq &quot;statsclear&quot; ) {
    $telnet-&gt;cmd(&quot;statsclear&quot;);
  } elsif ( $ARGV[0] eq &quot;configupload&quot; ) {
    # Check the FabricOS version, as Brocade decided to break compatiblity with
    # earlier firmware versions w/ v6 (at least configupload)
    $telnet-&gt;cmd(&quot;firmwareshow&quot;);
    $version = $telnet-&gt;lastline;
    $version =~ s/\s+|\s+$//g;

    if ( $version =~ &quot;v6&quot; ) {
      $telnet-&gt;cmd(&quot;configupload -all -ftp \&quot;$ftp_host\&quot;,\&quot;$ftp_username\&quot;,\&quot;$switches[$i][3].cfg\&quot;,\&quot;$ftp_password\&quot;&quot;);
    } else {
      $telnet-&gt;cmd(&quot;configupload \&quot;$ftp_host\&quot;,\&quot;$ftp_username\&quot;,\&quot;$switches[$i][3].cfg\&quot;,\&quot;$ftp_password\&quot;&quot;);
    }
  } elsif ( $ARGV[0] eq &quot;supportsave&quot; ) {
    $telnet-&gt;cmd(&quot;supportsave -n -u \&quot;$ftp_username\&quot; -p \&quot;$ftp_password\&quot; -h \&quot;$ftp_host\&quot; -d \&quot;supportsave/$switches[$i][3]\&quot; -l ftp&quot;);
  }

  $telnet-&gt;close();
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.barfoo.org/2010/08/26/run-a-command-on-a-list-of-fibre-channel-switches-fc-switch-commands-pl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SAN reporting</title>
		<link>http://blog.barfoo.org/2010/08/20/san-reporting/</link>
		<comments>http://blog.barfoo.org/2010/08/20/san-reporting/#comments</comments>
		<pubDate>Fri, 20 Aug 2010 14:34:52 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://blog.barfoo.org/?p=3115</guid>
		<description><![CDATA[We do have some customers, who get charged on a monthly basis for their SAN usage. We already had &#8220;reporting&#8221; in place, but that wasn&#8217;t very flexible. So I went ahead and rewrote the current reporting script from scratch, and this is what I&#8217;ve come up with: #/bin/bash svc_sshkey=&#34;~/.ssh/svc-id_dsa&#34; svc_addr=&#34;10.144.0.150&#34; svc_user=&#34;admin&#34; if [ -z $1]]></description>
			<content:encoded><![CDATA[<p>We do have some customers, who get charged on a monthly basis for their SAN usage. We already had &#8220;reporting&#8221; in place, but that wasn&#8217;t very flexible. So I went ahead and rewrote the current reporting script from scratch, and this is what I&#8217;ve come up with:</p>
<pre class="syntax brush-bash-script">#/bin/bash

svc_sshkey=&quot;~/.ssh/svc-id_dsa&quot;
svc_addr=&quot;10.144.0.150&quot;
svc_user=&quot;admin&quot;

if [ -z $1 ] ; then
  echo &quot;Please rerun this script with some kind of filter value&quot;
  echo &quot;(for example '$0 NAS')&quot;
  exit 1
else
  filter=$1
fi

IFS=&quot;
&quot;

DISK=&quot;$( ssh -i $svc_sshkey -l $svc_user $svc_addr svcinfo lsvdisk -nohdr -bytes -delim : \
          | egrep -i &quot;V.*$filter&quot; | cut -d: -f2,8 | sort )&quot;

# Get a unique list of systems
SYSTEMS=&quot;$( echo $DISK | sed &quot;s, ,\n,g&quot; | cut -d\  -f1 | sed 's,^V,,' | cut -d_ -f1 | sort -u )&quot;

for system in $SYSTEMS ; do
  VDISKS=&quot;$( echo $DISK | sed &quot;s, ,\n,g&quot; | grep $system | sed &quot;s,:,: ,&quot; )&quot;
  SYSTEM_TOTAL=&quot;$( echo $DISK | sed &quot;s, ,\n,g&quot; | grep $system | cut -d: -f2 | awk '{SUM += $1} END { printf &quot;%.2f&quot;, SUM }' )&quot;
  for vdisk in $VDISKS ; do
    NAME=&quot;$( echo $vdisk | cut -d: -f1 )&quot;
    SIZE=&quot;$( echo $vdisk | cut -d: -f2 | sed &quot;s,^ ,,&quot; )&quot;
    GB_SIZE=&quot;$( echo &quot;$SIZE / 1024 / 1024 / 1024&quot; | bc )&quot;
    if [ $GB_SIZE -eq 0 ] ; then
      GB_SIZE=&quot;$( echo &quot;scale=2; $SIZE / 1024 / 1024 / 1024&quot; | bc )&quot;
      GB_SIZE=&quot;${GB_SIZE/./0.}&quot;
    fi
    echo &quot;$NAME: ${GB_SIZE/./,} GB&quot;
  done
  SUB_TOTAL_SYSTEM=&quot;$( echo &quot;scale=2; $SYSTEM_TOTAL / 1024 / 1024 / 1024&quot; | bc )&quot;
  echo &quot;SUB TOTAL: ${SUB_TOTAL_SYSTEM/./,} GB&quot;
  echo
done

TOTAL=&quot;$( echo $DISK | sed &quot;s, ,\n,g&quot; | cut -d: -f2  | awk '{SUM += $1} END { printf &quot;%.2f&quot;, SUM }' )&quot;
TOTAL=&quot;$( echo &quot;scale=2; $TOTAL / 1024 / 1024 / 1024&quot; | bc ) GB&quot;

echo &quot;------------------------------------------------&quot;
echo $TOTAL

exit 0</pre>
<p>I gotta say, once again I learned a lot &#8230; two <a href="http://www.sunsite.ualberta.ca/Documentation/Gnu/gawk-3.1.0/html_chapter/gawk_14.html#SEC192">new</a> <a href="http://www.commandlinefu.com/commands/view/1497/using-awk-to-sumcount-a-column-of-numbers.">things</a> about awk!</p>
<p>I know the report itself doesn&#8217;t look <strong>*that*</strong> pretty, but it serves a purpose!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.barfoo.org/2010/08/20/san-reporting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>me + flying = chaos!</title>
		<link>http://blog.barfoo.org/2010/07/26/me-flying-chaos/</link>
		<comments>http://blog.barfoo.org/2010/07/26/me-flying-chaos/#comments</comments>
		<pubDate>Mon, 26 Jul 2010 08:40:19 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[GermanWings]]></category>
		<category><![CDATA[IATA: RLG]]></category>
		<category><![CDATA[IATA: STR]]></category>
		<category><![CDATA[IATA: TXL]]></category>

		<guid isPermaLink="false">http://blog.barfoo.org/?p=3127</guid>
		<description><![CDATA[It&#8217;s been one of these days (yeah, I know &#8230; AGAIN). I was scheduled to depart from Stuttgart (STR) to Rostock &#8211; Laage (RLG) on 16:45 on Sunday. Well, if you know me, I did actually miss that flight the check-in for that flight by 15 minutes. 15 FUCKING minutes! Immediately called my Taxi (that]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been one of these days (yeah, I know &#8230; <strong>AGAIN</strong>). I was scheduled to depart from Stuttgart (STR) to Rostock &#8211; Laage (RLG) on 16:45 on Sunday. Well, if you know me, I did actually miss <span style="text-decoration: line-through;">that flight</span> the check-in for that flight by 15 minutes. 15 <strong>FUCKING </strong>minutes! Immediately called my Taxi (that is my parents) and told them to turn around, since they already had left to collect me from the airport ..</p>
<p>I walked back outside, through the revolving door, and while inside the door decided to get back to the ticketing counter. I ended up booking another flight (paying another 30€ for the chanced flight), and landed three hours later in Berlin Tegel (TXL). Thanks to my parents (which collected me from Tegel, and spared me the three hour train travel &#8212; like I did back in February), I was finally home around 1:00AM the next day &#8230;</p>
<p>But guess what, another lesson(s) learnt!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.barfoo.org/2010/07/26/me-flying-chaos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Displaying Windows Architecture with bginfo</title>
		<link>http://blog.barfoo.org/2010/06/18/displaying-windows-architecture-with-bginfo/</link>
		<comments>http://blog.barfoo.org/2010/06/18/displaying-windows-architecture-with-bginfo/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 15:22:08 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[bginfo]]></category>
		<category><![CDATA[WMI]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://blog.barfoo.org/?p=3111</guid>
		<description><![CDATA[On all our servers in the basement, we do have bginfo installed, in order to quickly get certain information. Now as I was struggling with a big Service Pack roll out, I looked into making bginfo also display the OS architecture. But apparently it isn&#8217;t that easy &#8230; At least bginfo doesn&#8217;t provide it by]]></description>
			<content:encoded><![CDATA[<p>On all our servers in the basement, we do have <a href="http://technet.microsoft.com/de-de/sysinternals/bb897557.aspx">bginfo</a> installed, in order to quickly get certain information. Now as I was struggling with a big Service Pack roll out, I looked into making bginfo also display the OS architecture. But apparently it isn&#8217;t that easy &#8230; At least bginfo doesn&#8217;t provide it by default.</p>
<p>After (yet another hour in front of Google), I finally found what I was <a href="http://stackoverflow.com/questions/1413409/how-to-determine-os-platform-with-wmi">looking for</a>. At first I didn&#8217;t limit the query on a specific CPU, but that turned out to be shitty (x32 being displayed twice, once for each CPU). But after limiting it to DeviceID=&#8217;CPU0&#8242; it works like a charm <img src='http://blog.barfoo.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.barfoo.org/2010/06/18/displaying-windows-architecture-with-bginfo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vuvuzela&#8217;s should be banned!</title>
		<link>http://blog.barfoo.org/2010/06/13/vuvuzelas-should-be-banned/</link>
		<comments>http://blog.barfoo.org/2010/06/13/vuvuzelas-should-be-banned/#comments</comments>
		<pubDate>Sun, 13 Jun 2010 20:32:01 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[FIFA]]></category>
		<category><![CDATA[South America]]></category>

		<guid isPermaLink="false">http://blog.barfoo.org/?p=3108</guid>
		<description><![CDATA[It&#8217;s just past the first game of our national team, and the vuvuzela&#8217;s are actually getting on my nerves. It&#8217;s not really the vuvuzela&#8217;s per se, it&#8217;s just this one kid running around with it all day long. At first I was like &#8220;wtf kind of animal is this ?&#8221; Until I saw him running]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s just past the first game of our national team, and the vuvuzela&#8217;s are actually getting on my nerves. It&#8217;s not really the vuvuzela&#8217;s per se, it&#8217;s just this one kid running around with it all day long. At first I was like &#8220;wtf kind of animal is this ?&#8221; Until I saw him running around with this weird instrument &#8230;</p>
<p style="text-align: center;"><img class="aligncenter" title="Vuvuzela's should be banned!" src="http://upload.wikimedia.org/wikipedia/commons/3/37/Vuvuzela_red.jpg" alt="Vuvuzela" width="518" height="96" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.barfoo.org/2010/06/13/vuvuzelas-should-be-banned/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AutoYAST and custom swap partitioning</title>
		<link>http://blog.barfoo.org/2010/06/03/autoyast-and-custom-swap-partitioning/</link>
		<comments>http://blog.barfoo.org/2010/06/03/autoyast-and-custom-swap-partitioning/#comments</comments>
		<pubDate>Thu, 03 Jun 2010 18:34:24 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[AutoYaST]]></category>
		<category><![CDATA[SLES10]]></category>
		<category><![CDATA[swap]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://blog.barfoo.org/?p=3061</guid>
		<description><![CDATA[Well, we&#8217;ve been discussing our swap partitioning the last few days at work, and I finally got around to implementing it. Again, it proved to be kinda hard, basically because AutoYAST decides to do things differently. After trying different things, I came up with this: &#60;rule&#62; &#60;memsize&#62; &#60;match&#62;32767&#60;/match&#62; &#60;match_type&#62;greater&#60;/match_type&#62; &#60;/memsize&#62; &#60;result&#62; &#60;profile&#62;system/swap/32G.xml&#60;/profile&#62; &#60;continue config:type=&#34;boolean&#34;&#62;false&#60;/continue&#62; &#60;dont_merge]]></description>
			<content:encoded><![CDATA[<p>Well, we&#8217;ve been discussing our swap partitioning the last few days at work, and I finally got around to implementing it. Again, it proved to be kinda hard, basically because AutoYAST decides to do things differently. <span id="more-3061"></span>After trying different things, I came up with this:</p>
<pre class="syntax xml">
		&lt;rule&gt;
			&lt;memsize&gt;
				&lt;match&gt;32767&lt;/match&gt;
				&lt;match_type&gt;greater&lt;/match_type&gt;
			&lt;/memsize&gt;
			&lt;result&gt;
				&lt;profile&gt;system/swap/32G.xml&lt;/profile&gt;
				&lt;continue config:type=&quot;boolean&quot;&gt;false&lt;/continue&gt;
				&lt;dont_merge config:type=&quot;list&quot;&gt;
					&lt;element&gt;partition&lt;/element&gt;
				&lt;/dont_merge&gt;
			&lt;/result&gt;
		&lt;/rule&gt;

		&lt;rule&gt;
			&lt;memsize&gt;
				&lt;match&gt;16383&lt;/match&gt;
				&lt;match_type&gt;greater&lt;/match_type&gt;
			&lt;/memsize&gt;
			&lt;result&gt;
				&lt;profile&gt;system/swap/16G.xml&lt;/profile&gt;
				&lt;continue config:type=&quot;boolean&quot;&gt;false&lt;/continue&gt;
				&lt;dont_merge config:type=&quot;list&quot;&gt;
					&lt;element&gt;partition&lt;/element&gt;
				&lt;/dont_merge&gt;
			&lt;/result&gt;
		&lt;/rule&gt;

		&lt;rule&gt;
			&lt;memsize&gt;
				&lt;match&gt;8191&lt;/match&gt;
				&lt;match_type&gt;greater&lt;/match_type&gt;
			&lt;/memsize&gt;
			&lt;result&gt;
				&lt;profile&gt;system/swap/8G.xml&lt;/profile&gt;
				&lt;continue config:type=&quot;boolean&quot;&gt;false&lt;/continue&gt;
				&lt;dont_merge config:type=&quot;list&quot;&gt;
					&lt;element&gt;partition&lt;/element&gt;
				&lt;/dont_merge&gt;
			&lt;/result&gt;
		&lt;/rule&gt;

		&lt;rule&gt;
			&lt;memsize&gt;
				&lt;match&gt;4095&lt;/match&gt;
				&lt;match_type&gt;greater&lt;/match_type&gt;
			&lt;/memsize&gt;
			&lt;result&gt;
				&lt;profile&gt;system/swap/4G.xml&lt;/profile&gt;
				&lt;continue config:type=&quot;boolean&quot;&gt;false&lt;/continue&gt;
				&lt;dont_merge config:type=&quot;list&quot;&gt;
					&lt;element&gt;partition&lt;/element&gt;
				&lt;/dont_merge&gt;
			&lt;/result&gt;
		&lt;/rule&gt;

		&lt;rule&gt;
			&lt;memsize&gt;
				&lt;match&gt;2047&lt;/match&gt;
				&lt;match_type&gt;greater&lt;/match_type&gt;
			&lt;/memsize&gt;
			&lt;result&gt;
				&lt;profile&gt;system/swap/2G.xml&lt;/profile&gt;
				&lt;continue config:type=&quot;boolean&quot;&gt;false&lt;/continue&gt;
				&lt;dont_merge config:type=&quot;list&quot;&gt;
					&lt;element&gt;partition&lt;/element&gt;
				&lt;/dont_merge&gt;
			&lt;/result&gt;
		&lt;/rule&gt;

		&lt;rule&gt;
			&lt;memsize&gt;
				&lt;match&gt;1023&lt;/match&gt;
				&lt;match_type&gt;greater&lt;/match_type&gt;
			&lt;/memsize&gt;
			&lt;result&gt;
				&lt;profile&gt;system/swap/1G.xml&lt;/profile&gt;
				&lt;continue config:type=&quot;boolean&quot;&gt;false&lt;/continue&gt;
				&lt;dont_merge config:type=&quot;list&quot;&gt;
					&lt;element&gt;partition&lt;/element&gt;
				&lt;/dont_merge&gt;
			&lt;/result&gt;
		&lt;/rule&gt;

		&lt;rule&gt;
			&lt;memsize&gt;
				&lt;match&gt;1023&lt;/match&gt;
				&lt;match_type&gt;lower&lt;/match_type&gt;
			&lt;/memsize&gt;
			&lt;result&gt;
				&lt;profile&gt;system/swap/default.xml&lt;/profile&gt;
				&lt;continue config:type=&quot;boolean&quot;&gt;false&lt;/continue&gt;
				&lt;dont_merge config:type=&quot;list&quot;&gt;
					&lt;element&gt;partition&lt;/element&gt;
				&lt;/dont_merge&gt;
			&lt;/result&gt;
		&lt;/rule&gt;
</pre>
<p>The content of a profile looks like this:</p>
<pre class="syntax xml">
	&lt;partitioning config:type=&quot;list&quot;&gt;
		&lt;drive&gt;
			&lt;partitions config:type=&quot;list&quot;&gt;
				&lt;partition&gt;
					&lt;create config:type=&quot;boolean&quot;&gt;true&lt;/create&gt;
					&lt;crypt_fs config:type=&quot;boolean&quot;&gt;false&lt;/crypt_fs&gt;
					&lt;filesystem config:type=&quot;symbol&quot;&gt;swap&lt;/filesystem&gt;
					&lt;filesystem_id config:type=&quot;integer&quot;&gt;130&lt;/filesystem_id&gt;
					&lt;format config:type=&quot;boolean&quot;&gt;true&lt;/format&gt;
					&lt;loop_fs config:type=&quot;boolean&quot;&gt;false&lt;/loop_fs&gt;
					&lt;mount&gt;swap&lt;/mount&gt;
					&lt;mountby config:type=&quot;symbol&quot;&gt;device&lt;/mountby&gt;
					&lt;partition_id config:type=&quot;integer&quot;&gt;130&lt;/partition_id&gt;
					&lt;partition_nr config:type=&quot;integer&quot;&gt;2&lt;/partition_nr&gt;
					&lt;resize config:type=&quot;boolean&quot;&gt;false&lt;/resize&gt;
					&lt;size&gt;16G&lt;/size&gt;
				&lt;/partition&gt;
			&lt;/partitions&gt;
		&lt;/drive&gt;
	&lt;/partitioning&gt;
</pre>
<p>So basically what I did, was creating different classes, and depending on the size of the available RAM, AutoYAST selects the profile.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.barfoo.org/2010/06/03/autoyast-and-custom-swap-partitioning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SLES10 not installing boot loader in MBR</title>
		<link>http://blog.barfoo.org/2010/06/03/sles10-not-installing-boot-loader-in-mbr/</link>
		<comments>http://blog.barfoo.org/2010/06/03/sles10-not-installing-boot-loader-in-mbr/#comments</comments>
		<pubDate>Thu, 03 Jun 2010 18:15:23 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[AutoYaST]]></category>
		<category><![CDATA[grub]]></category>
		<category><![CDATA[SLES10]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://blog.barfoo.org/?p=3055</guid>
		<description><![CDATA[Well, as I mentioned in my earlier post, I had some trouble during the week. I was having issues with SLES10 installations not finishing during the bootloader installation phase. After trying out different flavors (as in 10SP2 x64/x86, &#8230;), and not having any luck with this, I went searching on Google as a last effort]]></description>
			<content:encoded><![CDATA[<p>Well, <a href="http://blog.barfoo.org/2010/06/03/reset-master-boot-record-mbr/">as I mentioned in my earlier post</a>, I had some trouble during the week. I was having issues with SLES10 installations not finishing during the bootloader installation phase. After trying out different flavors (as in 10SP2 x64/x86, &#8230;), and not having any luck with this, I went searching on Google as a last effort try. Guess what, yet again Google <a href="http://www.issociate.de/board/post/489385/Configuring_grub.html">helped me out</a>!</p>
<p>It was pretty simple. Putting <span class="cmd">/dev/cciss/c0d0</span> into <span class="cmd">/boot/grub/device.map</span> as <span class="cmd">(hd0)</span> made the <span class="cmd">grub-installer</span> finish. Now, figuring out how to transfer those information during the installation proved difficult. I was just about to give up, while reading through the <a href="http://www.suse.com/~ug/autoyast_doc/index.html">AutoYAST documentation</a>, <a href="http://www.suse.com/~ug/autoyast_doc/CreateProfile.Bootloader.html#id348398">when it struck me</a>. There is even an extra chapter for this stuff, so simply putting the following into my profile solved my issues:</p>
<pre class="syntax xml">	&lt;bootloader&gt;
		&lt;device_map config:type=&quot;list&quot;&gt;
			&lt;device_map_entry&gt;
				&lt;firmware&gt;hd0&lt;/firmware&gt;
				&lt;linux&gt;/dev/cciss/c0d0&lt;/linux&gt;
			&lt;/device_map_entry&gt;
		&lt;/device_map&gt;
	&lt;/bootloader&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.barfoo.org/2010/06/03/sles10-not-installing-boot-loader-in-mbr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>distributions.barfoo.org going away</title>
		<link>http://blog.barfoo.org/2010/06/03/distributions-barfoo-org-going-away/</link>
		<comments>http://blog.barfoo.org/2010/06/03/distributions-barfoo-org-going-away/#comments</comments>
		<pubDate>Thu, 03 Jun 2010 17:50:46 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[RPMs]]></category>

		<guid isPermaLink="false">http://blog.barfoo.org/?p=3046</guid>
		<description><![CDATA[Since I didn&#8217;t have any time to actually maintain my own repository of RPMs, as well as I don&#8217;t have any need for the RPMs contained within (simply I don&#8217;t use them at work anymore), the whole shebang is going away! I know a few people actually still use it, so I&#8217;m gonna put in]]></description>
			<content:encoded><![CDATA[<p>Since I didn&#8217;t have any time to actually maintain my own repository of RPMs, as well as I don&#8217;t have any need for the RPMs contained within (simply I don&#8217;t use them at work anymore), the whole shebang is going away!</p>
<p>I know a few people actually still use it, so I&#8217;m gonna put in a disclaimer and let some time pass before completely removing it. Just be warned, it&#8217;s going away! Again:</p>
<h1>distributions.barfoo.org is going away!</h1>
]]></content:encoded>
			<wfw:commentRss>http://blog.barfoo.org/2010/06/03/distributions-barfoo-org-going-away/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reset Master Boot Record (MBR)</title>
		<link>http://blog.barfoo.org/2010/06/03/reset-master-boot-record-mbr/</link>
		<comments>http://blog.barfoo.org/2010/06/03/reset-master-boot-record-mbr/#comments</comments>
		<pubDate>Thu, 03 Jun 2010 17:49:15 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://blog.barfoo.org/?p=3044</guid>
		<description><![CDATA[Since I&#8217;ve been playing with my AutoYAST setup for the last few days, working out the kinks (for example SLES10 not being able to install into the MBR), I needed a way to zap the MBR (as in remove grub to see whether or not the installation would install a new loader). So after quickly]]></description>
			<content:encoded><![CDATA[<p>Since I&#8217;ve been playing with my AutoYAST setup for the last few days, working out the kinks (for example SLES10 not being able to install into the MBR), I needed a way to zap the MBR (as in remove grub to see whether or not the installation would install a new loader). So after quickly googling, I found <a href="http://linuxgazette.net/issue63/okopnik.html">this</a>:</p>
<pre class="syntax brush-bash"> dd if=/dev/zero of=/dev/hda bs=512 count=1</pre>
<p>That actually does the trick. The loader as well as the partition table are gone after wards!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.barfoo.org/2010/06/03/reset-master-boot-record-mbr/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>VMware Consolidated Backup and TRANSPORT_MODE=&#8221;hotadd&#8221;</title>
		<link>http://blog.barfoo.org/2010/03/18/vmware-consolidated-backup-and-transport_modehotadd/</link>
		<comments>http://blog.barfoo.org/2010/03/18/vmware-consolidated-backup-and-transport_modehotadd/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 17:03:38 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[TSM]]></category>
		<category><![CDATA[vCB]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://blog.barfoo.org/?p=3015</guid>
		<description><![CDATA[As the title says, I&#8217;ve been playing with vCB (inside a VM) and the TSM integration with newer (&#62;6.0) clients for work. Result of all this work should be a feasibility study. We&#8217;re currently thinking about replacing our VMware server(s) with ESXi. But as most of you know, if you install ESXi, you simply can&#8217;t]]></description>
			<content:encoded><![CDATA[<p>As the title says, I&#8217;ve been playing with vCB (inside a VM) and the TSM integration with newer (&gt;6.0) clients for work. Result of all this work should be a feasibility study. We&#8217;re currently thinking about replacing our VMware server(s) with ESXi. But as most of you know, if you install ESXi, you simply can&#8217;t install anything (well, you can .. on ~100KB of disk space, which is compared to a TSM client weighing roughly 120MB nothing!). As we would like the possibility to backup VMs on image-level, I went looking at solutions.</p>
<ol>
<li>VMware Data Recovery</li>
<li>VMware Consolidated Backup</li>
<li>vRanger, &#8230;&#8230;</li>
</ol>
<p>As I was looking for something that wouldn&#8217;t cost us any money (thus excluding the third), I took a look at vDR and vCB. One point I do have to give to vDR is, that it&#8217;s damn fast. Only bad thing about vDR is that it doesn&#8217;t integrate at all with TSM, and it ain&#8217;t supported to install a TSM client inside the vDR VM. So vDR was also done for.</p>
<p>Only remaining thing was vCB. I remember way back when TSM didn&#8217;t support vCB directly, at which time it was *quite* the hassle to configure. But with newer TSM clients (as in the newer 6.x ones), IBM decided to integrate support for it. Which makes setting things up quite easy. You may think at least.</p>
<p>Since I wanted to use &#8220;hotadd&#8221; as transport mode for the vmdk&#8217;s (which is basically creating a snapshot of the vmdk and assigning that snapshot to the vCB VM), I did have to tinker around with some JavaScript files in <span class="cmd">%ProgramFiles%\VMware\VMware Consolidated Backup</span>. Sure, it isn&#8217;t supported by VMware (which is a bit lame since they announced the EOL for vCB with the upcoming vSphere version), but I didn&#8217;t want to open a support request. I&#8217;m lazy, yep:</p>
<p>Change <span class="cmd">DEFAULT_TRANSPORT_MODE</span> in <span class="cmd">utils.js</span> from &#8220;<em>san</em>&#8221; to &#8220;<em>hotadd</em>&#8220;. But apparently this only solved the backup method for vmdk-level, but not for file-level backups. The file-level is still gonna use nbd (network block device), which kinda sucks since the backup is going out via network.</p>
<p>After doing that, the hotadd mode is still gonna fail, since apparently the denoted &#8220;<em>VMware Consolidated Backup User</em>&#8221; (<em>vcb-user</em> in my case) also needs permissions onto the datastore. The permissions the handbook sets for the user are okay, you just need to apply that role to your datastore(s) containing the VMs you want to backup too! Otherwise <span class="cmd">vcbMounter</span> is gonna fail with a rather cryptic error telling you that it doesn&#8217;t have sufficient rights to create a linked clone.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.barfoo.org/2010/03/18/vmware-consolidated-backup-and-transport_modehotadd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Server 2003: taskmgr giving &#8220;Logon failure&#8221;</title>
		<link>http://blog.barfoo.org/2010/02/25/windows-server-2003-taskmgr-giving-logon-failure/</link>
		<comments>http://blog.barfoo.org/2010/02/25/windows-server-2003-taskmgr-giving-logon-failure/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 17:58:22 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[PATH]]></category>
		<category><![CDATA[taskmgr]]></category>
		<category><![CDATA[Windows Server 2003]]></category>

		<guid isPermaLink="false">http://blog.barfoo.org/?p=3005</guid>
		<description><![CDATA[I had myself a lot of fun today. I ended up patching a Windows Server 2003 x64 SP1, where the Task Manager wouldn&#8217;t start anymore. It simply failed (or in case of right clicking on the task bar wouldn&#8217;t even appear), so I went downstairs and pulled a hard disk out of the RAID1 array,]]></description>
			<content:encoded><![CDATA[<p>I had myself a lot of fun today. I ended up patching a Windows Server 2003 x64 SP1, where the Task Manager wouldn&#8217;t start anymore. It simply failed (or in case of right clicking on the task bar wouldn&#8217;t even appear), so I went downstairs and pulled a hard disk out of the RAID1 array, just to be sure.</p>
<p><a href="http://blog.barfoo.org/wp-content/uploads/2010/02/weird-windows-error.png"><img class="aligncenter size-thumbnail wp-image-3006" title="Really weird Windows error" src="http://blog.barfoo.org/wp-content/uploads/2010/02/weird-windows-error-450x303.png" alt="Really weird Windows error" width="450" height="303" /></a>I went ahead, installed SP2 (as you can see on the above picture) while having the jitters. Also installed the VirusScan I was scheduled to install, and the system came back online. Phewww.</p>
<p>After my maintainance window was over, I looked into this issue a bit deeper. First tried copying over a taskmgr.exe (both 32bit and 64bit) from another Windows Server 2003 x64 SP2 system with no luck. The next step, was looking at PATH. As it turns out it has something to do with that &#8230;.</p>
<pre class="syntax brush-plain">C:\&gt;echo %PATH%
C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem
C:\&gt;taskmgr
The system cannot execute the specified program.
C:\&gt;set PATH=C:\WINDOWS\SysWOW64;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem
C:\&gt;taskmgr
C:\&gt;</pre>
<p>As you can see, after fixing up the PATH environment variable, it works apparently .. Weirdly though, this issue doesn&#8217;t come up on another (identical) system, same PATH modifications, main difference: calling taskmgr.exe from the Run dialog works .. while it doesn&#8217;t on this particular system.</p>
<p>*Shrug* Gonna have to talk to my SAP guys tommorrow &#8230; <img src='http://blog.barfoo.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.barfoo.org/2010/02/25/windows-server-2003-taskmgr-giving-logon-failure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VMware vSphere: Safely remove network controller</title>
		<link>http://blog.barfoo.org/2010/02/19/vmware-vsphere-safely-remove-network-controller/</link>
		<comments>http://blog.barfoo.org/2010/02/19/vmware-vsphere-safely-remove-network-controller/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 17:54:55 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[hotplug]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[vSphere]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://blog.barfoo.org/?p=2996</guid>
		<description><![CDATA[Well, it&#8217;s another day another fight. As we started migrating our VM&#8217;s from the old VMware ESX farms to the new environment, and upgraded the hardware suddenly the network devices were hot-plug-able, thus they did turn up in the &#8220;Safely Remove&#8221; dialog. I myself don&#8217;t have any trouble with that. The trouble I do have]]></description>
			<content:encoded><![CDATA[<p>Well, it&#8217;s another day another fight. As we started migrating our VM&#8217;s from the old VMware ESX farms to the new environment, and upgraded the hardware suddenly the network devices were hot-plug-able, thus they did turn up in the &#8220;Safely Remove&#8221; dialog.</p>
<p>I myself don&#8217;t have any trouble with that. The trouble I do have is the people working with those VM&#8217;s and their possibly hazardous &#8220;uuuh, what&#8217;s this ? I don&#8217;t need this! &lt;click-click, network-device unplugged&gt;&#8221;</p>
<p>So I went googling (why isn&#8217;t that a dictionary term by now ?) and <a href="http://www.vmwareinfo.com/2009/11/vsphere-disable-device-hot-plug-on.html">found</a> <a href="http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&#038;cmd=displayKC&#038;externalId=1012225">something</a>. Simple solution is to disable the hot plugging of hardware in the VM&#8217;s settings.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.barfoo.org/2010/02/19/vmware-vsphere-safely-remove-network-controller/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>VBscript: Query remote OS and SP info (continued)</title>
		<link>http://blog.barfoo.org/2010/02/15/vbscript-query-remote-os-and-sp-info-continued/</link>
		<comments>http://blog.barfoo.org/2010/02/15/vbscript-query-remote-os-and-sp-info-continued/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 20:34:34 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Service Pack]]></category>
		<category><![CDATA[Vbscript]]></category>
		<category><![CDATA[Windows Server 2003]]></category>
		<category><![CDATA[WMI]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://blog.barfoo.org/?p=2975</guid>
		<description><![CDATA[After some more crunching on my VBscript, I think I finally have a working script that runs through a csv-list I point it to and walk onto each system (by ip-address only sadly) and query the os and the Service Pack that is installed. The CSV may look like this: Hostname;IP;Model;Description;OS;Service-Pack;BL;Priority epimetheus;10.0.0.2;VMware guest;File-Server hades;10.0.0.1;VMware guest;Core-Router]]></description>
			<content:encoded><![CDATA[<p>After some more crunching on <a href="http://blog.barfoo.org/2010/02/12/vbscript-query-remote-os-and-sp-info/">my VBscript</a>, I think I finally have a working script that runs through a csv-list I point it to and walk onto each system (by ip-address only sadly) and query the os and the Service Pack that is installed. The CSV may look like this:</p>
<pre>Hostname;IP;Model;Description;OS;Service-Pack;BL;Priority
epimetheus;10.0.0.2;VMware guest;File-Server
hades;10.0.0.1;VMware guest;Core-Router</pre>
<p>After saving that one, and running a <span class="cmd">cscript //NoLogo win_sp_level.vbs</span> you should find a completed list like this:</p>
<pre>Hostname;IP;Model;Description;OS;Service-Pack;BL;Priority
epimetheus;10.0.0.2;VMware guest;File-Server;Windows Server 2003 Standard x64 Edition; SP1;;
hades;10.0.0.1;VMware guest;Core-Router;Windows Server 2003 Enterprise Edition; SP0;;</pre>
<p>The final script looks like this:</p>
<pre class="syntax brush-vb">On Error Resume Next

Set objFSO = CreateObject(&quot;Scripting.FileSystemOBject&quot;)

If objFSO.FileExists(&quot;Rollout_SP2.csv&quot;) = 0 Then
  CleanUp()
  Wscript.Quit
End If

Set CSVin = objFSO.OpenTextFile(&quot;Rollout_SP2.csv&quot;, 1)
CSVin_read = CSVin.ReadLine

Set objFile = objFSO.CreateTextFile(&quot;Rollout_SP2_result.csv&quot;)
Set objFile = nothing
Set CSVout = objFSO.OpenTextFile(&quot;Rollout_SP2_result.csv&quot;, <img src='http://blog.barfoo.org/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' />
CSVout.WriteLine(&quot;Hostname;IP;Model;Description;OS;Service-Pack;BL;Priority&quot;)

Do While CSVin.AtEndofStream &lt;&gt; True

  Dim os, servicepack
  Dim user, password

  os = nothing
  servicepack = nothing
  user = vars(1) &amp; &quot;\chrischie&quot;
  password = &quot;hah-this-password-is-easy&quot;

  current_line = CSVin.ReadLine
  vars = Split(current_line, &quot;;&quot;)

  Set objSWbemLocator = CreateObject(&quot;WbemScripting.SWbemLocator&quot;)
  Set objSWbemServices = objSWbemLocator.ConnectServer _
    (vars(1), &quot;root\cimv2&quot;, user, password, &quot;MS_409&quot;,, 128)

  objSWbemServices.Security_.ImpersonationLevel = 3

  Set colOperatingSystems = objSWbemServices.ExecQuery _
    (&quot;Select * from Win32_OperatingSystem&quot;)

  ' The set returns an Err.Number of 91 on success
  ' Don't ask me why though.
  If Err.Number &lt;&gt; 91 Then
    CSVout.WriteLine(vars(0) &amp; &quot;;&quot; &amp; vars(1) &amp; &quot;;&quot; &amp; vars(2) &amp; &quot;;&quot; &amp; vars(3) &amp; &quot;;NA;SP?;;&quot;)
  Else
    For Each objOperatingSystem in colOperatingSystems
      os = objOperatingSystem.Caption
      servicepack = objOperatingSystem.ServicePackMajorVersion
    Next
    CSVout.WriteLine(vars(0) &amp; &quot;;&quot; &amp; vars(1) &amp; &quot;;&quot; &amp; vars(2) &amp; &quot;;&quot; &amp; vars(3) _
	                 &amp; &quot;;&quot; &amp; os  &amp; &quot;; SP&quot; &amp; servicepack &amp; &quot;;;&quot;)
  End If
Loop</pre>
<p><del datetime="2010-02-16T11:41:10+00:00">The only thing I still need to improve is the error handling (as in notify when a system is being skipped due to RPC being unavailable).</del></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.barfoo.org/2010/02/15/vbscript-query-remote-os-and-sp-info-continued/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Converting TIVSM RPMs to deb</title>
		<link>http://blog.barfoo.org/2010/02/15/converting-tivsm-rpms-to-deb/</link>
		<comments>http://blog.barfoo.org/2010/02/15/converting-tivsm-rpms-to-deb/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 23:29:29 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Lucid Lynx]]></category>
		<category><![CDATA[TSM]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://blog.barfoo.org/?p=2944</guid>
		<description><![CDATA[We received a preinstalled customer server the other day, for which we had declared &#8220;as-is&#8221; support only, since it is running Lucid Lynx. Now today, I started getting the TSM client to work. Was kinda weird, since at first dsmc was reporting something like this: # ./dsmc: no such file or directory After fiddling with]]></description>
			<content:encoded><![CDATA[<p>We received a preinstalled customer server the other day, for which we had declared &#8220;as-is&#8221; support only, since it is running Lucid Lynx. Now today, I started getting the TSM client to work. Was kinda weird, since at first dsmc was reporting something like this:</p>
<p><span class="cmd"># ./dsmc: no such file or directory</span></p>
<p>After fiddling with it a bit more, here are the control files, as well as the prerm and postinst-scripts for TIVSM-API, TIVSM-API64 and TIVSM-BA:</p>
<p><strong>tivsm-api/debian/control</strong>:</p>
<pre lang="text">Source: tivsm-api
Section: non-free
Priority: extra
Maintainer: root <root@localhost>

Package: tivsm-api
Architecture: all
Depends: ${shlibs:Depends}
Description: IBM Tivoli Storage Manager API</pre>
<p><strong>tivsm-api/debian/tivsm-api.postinst</strong>:</p>
<pre class="syntax brush-bash-script">for library in /opt/tivoli/tsm/client/api/bin/*.so; do
        ln -s $library /usr/lib/${library##*/}
done

# Automatically added by dh_makeshlibs
if [ &quot;$1&quot; = &quot;configure&quot; ]; then
        ldconfig
fi
# End automatically added section</pre>
<p><strong>tivsm-api/debian/tivsm-api.prerm</strong>:</p>
<pre class="syntax brush-bash-script">for library in /opt/tivoli/tsm/client/api/bin/*.so; do
        rm -f /usr/lib/${library##*/}
done</pre>
<p><strong>tivsm-api64/debian/control</strong>:</p>
<pre lang="text">Source: tivsm-api64
Section: non-free
Priority: extra
Maintainer: root <root@localhost>

Package: tivsm-api64
Architecture: amd64
Depends: ${shlibs:Depends}
Description: IBM Tivoli Storage Manager API</pre>
<p><strong>tivsm-api64/debian/postinst</strong>:</p>
<pre class="syntax brush-bash-script">for library in /opt/tivoli/tsm/client/api/bin64/*.so; do
        ln -s $library /usr/lib64/${library##*/}
done

# Automatically added by dh_makeshlibs
if [ &quot;$1&quot; = &quot;configure&quot; ]; then
        ldconfig
fi
# End automatically added section</pre>
<p><strong>tivsm-api64/debian/prerm</strong>:</p>
<pre class="syntax brush-bash-script">for library in /opt/tivoli/tsm/client/api/bin64/*.so; do
        rm -f /usr/lib64/${library##*/}
done

# Automatically added by dh_makeshlibs
if [ &quot;$1&quot; = &quot;configure&quot; ]; then
        ldconfig
fi
# End automatically added section</pre>
<p><strong>tivsm-ba/debian/control</strong>:</p>
<pre lang="text">Source: tivsm-ba
Section: non-free
Priority: extra
Maintainer: root <root@localhost>

Package: tivsm-ba
Architecture: any
Depends: ${shlibs:Depends}, lib32stdc++6 [amd64], libc6-i386 [amd64], lib32gcc1 [amd64]
Description: IBM Tivoli Storage Manager Client</pre>
<p><strong>tivsm-ba/debian/tivsm-ba.postinst</strong>:</p>
<pre class="syntax brush-bash-script">ln -s /opt/tivoli/tsm/client/lang/EN_US /opt/tivoli/tsm/client/ba/bin/EN_US

for binary in dsmadmc dsmagent dsmc dsmcad dsmj dsmswitch dsmtca dsmtrace; do
        ln -s /opt/tivoli/tsm/client/ba/bin/$binary /usr/bin/$binary
done</pre>
<p><strong>tivsm-ba/debian/tivsm-ba.prerm</strong>:</p>
<pre class="syntax brush-bash-script">rm -f /opt/tivoli/tsm/client/ba/bin/EN_US

for binary in dsmadmc dsmagent dsmc dsmcad dsmj dsmswitch dsmtca dsmtrace; do
        rm -f /usr/bin/$binary
done</pre>
<p>All that was left to do, was simply adding a <strong>-n</strong> to the <span class="cmd">dh_makeshlibs</span> call in each packages <span class="cmd">debian/rules</span> file, otherwise <span class="cmd">dh_makeshlibs</span> would overwrite my shiny postinst/prerm actions!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.barfoo.org/2010/02/15/converting-tivsm-rpms-to-deb/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Flying home with GermanWings</title>
		<link>http://blog.barfoo.org/2010/02/14/flying-home-with-germanwings/</link>
		<comments>http://blog.barfoo.org/2010/02/14/flying-home-with-germanwings/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 17:32:48 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[GermanWings]]></category>
		<category><![CDATA[IATA: RLG]]></category>
		<category><![CDATA[IATA: STR]]></category>
		<category><![CDATA[Rostock-Laage]]></category>

		<guid isPermaLink="false">http://blog.barfoo.org/?p=2955</guid>
		<description><![CDATA[Last month I had this epiphany to fly home for a visit on my mothers birthday. Well, the idea was great but the implementation kinda sucks. I started my trip around 12am from work to Stuttgart. Initially I had much more fear of the trip down to Stuttgart, since I have to drive on the]]></description>
			<content:encoded><![CDATA[<p>Last month I had this epiphany to fly home for a visit on my mothers birthday. Well, the idea was great but the implementation kinda sucks.</p>
<p>I started my trip around 12am from work to Stuttgart. Initially I had much more fear of the trip down to Stuttgart, since I have to drive on the A8 (which is kinda infamous for huge traffic jams), but as it turned out; those fears were without reason. It took me an hour to get to Stuttgart, which is fairly normal.</p>
<p>I was at the airport at 2pm, which was still an hour till my flight would leave. So I waited another hour (I bought myself a book in preparation) until it was 2:55pm (that&#8217;s the original boarding time).</p>
<p>At that time, they announced that the plane would be approximately an hour late, since it got stuck in the snow in Warsaw. Okay, I waited another half hour, until they announced that the plane just landed and we could hopefully begin boarding within the next 15 minutes or so.</p>
<p>After another half an hour, finally everyone finished boarding and we were rolling to the runway. After about an hour in the air, the captain announced we would be over Rostock, but we&#8217;d be in a holding pattern, because the ground crew in Rostock is trying to prepare the runway for the landing.</p>
<p>After ten minutes, he announced yet again, we would be flying circles for another 15 minutes (which were like 40 minutes), after which he announced we&#8217;d be flying circles for another 15 minutes (which again were half an hour). He then explained that the ground crew in Rostock is yet again trying to de-ice the runway in order to make it possible, so the plane can safely land (I figure, a Airbus A319 needs one hell of a long strip to land and brake on ice with about 75t).</p>
<p>So after circling for another 15 minutes, he announced with regrets, that the ground crew wasn&#8217;t able to de-ice and de-snow the runway in order to make a safe landing. He also informed us, that we would be diverted to Berlin-Schönefeld and that we&#8217;d get more information once we are on the ground.</p>
<p>As we were touching down and rolling into parking position, he announced that we either had the possibility to be carried to Rostock via bus (that is a charter bus), or be on our own. For that, I do have to say the following: Berlin is about 190km afar, plus the autobahn was icy that night.</p>
<p>He also announced that we&#8217;d get more information at the check-in booth. So 159 angry people went bothering the people at the check-in booth (which were kinda stressed out). They handed every person a Deutsche Bahn ticket with another sheet of photo-copied paper, that did hold the travelling information.</p>
<p>In the end, I was home around 1:30am, where I planned on being home at 7pm. Just nice. I&#8217;m just praying, that they&#8217;re actually gonna fly from Rostock today, since tomorrow just is another workday.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.barfoo.org/2010/02/14/flying-home-with-germanwings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VBscript: Query remote OS and SP info</title>
		<link>http://blog.barfoo.org/2010/02/12/vbscript-query-remote-os-and-sp-info/</link>
		<comments>http://blog.barfoo.org/2010/02/12/vbscript-query-remote-os-and-sp-info/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 20:42:46 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Service Pack]]></category>
		<category><![CDATA[Vbscript]]></category>
		<category><![CDATA[Windows Server 2003]]></category>
		<category><![CDATA[WMI]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://blog.barfoo.org/?p=2953</guid>
		<description><![CDATA[As I wrote on Thursday, I am battling with Windows Server 2003. Now I got a list out of our change management database, which sadly ain&#8217;t that accurate. So in order to get reliable information about the target systems (in order to do some accurate planning), I ended up writing a small vbscript which simply]]></description>
			<content:encoded><![CDATA[<p>As I wrote <a href="http://blog.barfoo.org/2010/02/11/windows-server-2003-sp1-wsus-and-security-updates/">on Thursday</a>, I am battling with Windows Server 2003. Now I got a list out of our change management database, which sadly ain&#8217;t that accurate. So in order to get reliable information about the target systems (in order to do some accurate planning), I ended up writing a small vbscript which simply takes the hostname on the command line (<span class="cmd">cscript //NoLogo win_sp_level.vbs 10.0.0.5</span>) and returns a csv-like element.</p>
<p>We may have to tune the script a bit more for our use, but it should show the basic functions I need.</p>
<pre class="syntax brush-javascript">Dim hostname, os, servicepack

hostname = WScript.Arguments.Item(0)

strComputer = hostname
Set objSWbemLocator = CreateObject(&quot;WbemScripting.SWbemLocator&quot;)
Set objSWbemServices = objSWbemLocator.ConnectServer _
   (strComputer, &quot;root\cimv2&quot;, hostname &amp;amp; &quot;\chrischie&quot;, &quot;hah-this-password-is-easy&quot;)
objSWbemServices.Security_.ImpersonationLevel = 3

Set colOperatingSystems = objSWbemServices.ExecQuery _
   (&quot;Select * from Win32_OperatingSystem&quot;)

For Each objOperatingSystem in colOperatingSystems
   os = objOperatingSystem.Caption
   servicepack = objOperatingSystem.ServicePackMajorVersion
Next

Wscript.Echo hostname &amp; &quot;;&quot; &amp; os &amp; &quot;; SP&quot; &amp; servicepack &amp; &quot;;&quot;</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.barfoo.org/2010/02/12/vbscript-query-remote-os-and-sp-info/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Windows Server 2003 SP1, WSUS and Security Updates</title>
		<link>http://blog.barfoo.org/2010/02/11/windows-server-2003-sp1-wsus-and-security-updates/</link>
		<comments>http://blog.barfoo.org/2010/02/11/windows-server-2003-sp1-wsus-and-security-updates/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 22:32:56 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Service Pack 1]]></category>
		<category><![CDATA[Windows Server 2003]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[WSUS]]></category>

		<guid isPermaLink="false">http://blog.barfoo.org/?p=2946</guid>
		<description><![CDATA[Recently, we found some systems (sadly, customer systems) that  weren&#8217;t getting any Security Updates anymore. Much more sadly, them is running Windows Server 2003, and as you know Security Updates are pretty important for Windows Systems. At the time of finding this, I had no clue as to why the were not getting any updates.]]></description>
			<content:encoded><![CDATA[<p>Recently, we found some systems (sadly, customer systems) that  weren&#8217;t getting any Security Updates anymore. Much more sadly, them is running Windows Server 2003, and as you know Security Updates are pretty important for Windows Systems.</p>
<p>At the time of finding this, I had no clue as to why the were not getting any updates. At first we thought it had something to do with the WSUS server, so I upgraded the WSUS 3.0 SP1 to SP2. Since that didn&#8217;t solve nothing, I went searching for a internal VM, that showed the same symptoms and I quickly found one.</p>
<p>After cloning said VM (since that one is running in the production environment), a bit of hacking on it (you know, disabling the network of the VM, switching IP and Hostname, running NewSID, &#8230;) I went cracking at the problem.</p>
<p>Stopped the Windows Update Service, cleaned the <span class="cmd">%WINDIR%\SoftwareDistribution</span>, and started the Windows Update Service again; triggered a <span class="cmd">wuauclt.exe /detectnow /reportnow</span>. Yet again the same result. &#8220;0 updates detected&#8221;. Shite.</p>
<p>Went ahead, and tried what Microsoft in their &#8220;<em>If you have trouble with Windows Update</em>&#8221; <a href="http://support.microsoft.com/kb/971058">knowledge base article</a>, but then again. Same result.</p>
<p>Another try, was simply reinstalling the Windows Update Agent, which also resulted in the same old &#8230; &#8220;0 updates detected&#8221;</p>
<p>Due to some discussion with my co-workers, I ended up clicking through a Microsoft KB for a recently released patch. What I found, was that any newer update I looked at, only had &#8220;Windows Server 2003 with Service Pack 2&#8243; listed as download element. Shite.</p>
<p>Somehow, I stumbled over a link (in the same KB article) <a href="http://support.microsoft.com/common/international.aspx?RDPATH=dm;en-us;lifecycle">detailing the Support Lifecycle</a> for Service Packs in general, as well as the <a href="http://support.microsoft.com/gp/lifesupsps#Servers">Lifecycle announcements for each Service Pack</a>.</p>
<p>End of the story and solution to my problem basically is, Microsoft terminated the Lifecycle for Windows Server 2003 SP1 on 14.04.2009, which is the target date after which Security and Critical Updates are no longer issued for systems running SP1.</p>
<p>In the end, I don&#8217;t really blame them, since SP2 was already released in 2007. But what I would&#8217;ve expected is some kind of press release or a public note, that Security releases are gonna end. Another construction area identified, more work for me!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.barfoo.org/2010/02/11/windows-server-2003-sp1-wsus-and-security-updates/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Samsung NC10 Anynet (HAT2DE), Ubuntu Karmic Koala and UMTS</title>
		<link>http://blog.barfoo.org/2010/01/07/samsung-nc10-anynet-hat2de-ubuntu-karmic-koala-and-umts/</link>
		<comments>http://blog.barfoo.org/2010/01/07/samsung-nc10-anynet-hat2de-ubuntu-karmic-koala-and-umts/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 11:55:25 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Karmic Koala]]></category>
		<category><![CDATA[Samsung NC10]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[UMTS]]></category>

		<guid isPermaLink="false">http://blog.barfoo.org/?p=2926</guid>
		<description><![CDATA[My little brother bought himself this fancy netbook (it&#8217;s okay I guess, only the keyboard takes getting used to). A few days after he bought it, he told me he wanted something different on it than the shipped Windows XP. At first, I favored a normal Ubuntu 9.10 Desktop. While thats okay, it simply isn&#8217;t]]></description>
			<content:encoded><![CDATA[<p>My little brother bought himself this fancy netbook (it&#8217;s okay I guess, only the keyboard takes getting used to). A few days after he bought it, he told me he wanted something different on it than the shipped Windows XP.</p>
<p>At first, I favored a normal Ubuntu 9.10 Desktop. While thats okay, it simply isn&#8217;t the right thing for a netbook. Why ? For example, if the programs bar is larger than the vertical desktop resolution, it gets kinda tiring to work with this thing.</p>
<p>Took me (and him) a while to notice that, but in the end I put the Netbook Remix of Karmic on this sweet little thing. Only trouble he had, was that while everything worked out of the box (even the Digital Motion Camera at the top end of the screen), his UMTS didn&#8217;t. That&#8217;s kinda shitty, since he bought this thing, in order to get online, even if he is at a hotel without actual internet connection (that is no DSL or LAN connectivity).</p>
<p>He already bothered the guys at his local T-Mobile shop, which told him he had to send it in to Samsung for repairs, since they don&#8217;t do warranty claims (which iirc they have to do, according to the HGB). Anyway, he sent the box my way, for me to take a look at it first, to avoid paying 70€ for a damn quotation for the repair of the defect UMTS modem.</p>
<p>Turns out (as so often), it was just a simple software bug. The <a href="http://www.aptgetupdate.de/2009/12/17/ubuntu-9-10-karmic-und-das-umts-problem/">guy over at aptgetupdate</a>, was kind enough to document the steps necessary to install a nightly build of NetworkManager (which Karmic uses to connect to any kind of network), which fixes this issue. As a proof, I&#8217;m writing this here blog post via the UMTS connection of the netbook!</p>
<p>For myself, here are the exact steps, in case I ever need to repeat them:</p>
<pre class="syntax brush-bash-script">
cat &lt;&lt; EOF | sudo tee /etc/apt/sources.list.d/nm-nightly.list
deb http://ppa.launchpad.net/network-manager/trunk/ubuntu karmic main
EOF

sudo apt-key adv --keyserver=wwwkeys.de.pgp.net \
    --recv-key 248DD1EEBC8EBFE8
sudo aptitude update; sudo aptitude full-upgrade
sudo service network-manager restart</pre>
<p>That&#8217;s it, that enables UMTS connections again.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.barfoo.org/2010/01/07/samsung-nc10-anynet-hat2de-ubuntu-karmic-koala-and-umts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VMware Data Recovery</title>
		<link>http://blog.barfoo.org/2010/01/05/vmware-data-recovery/</link>
		<comments>http://blog.barfoo.org/2010/01/05/vmware-data-recovery/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 17:11:35 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Data Recovery]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://blog.barfoo.org/?p=2919</guid>
		<description><![CDATA[I&#8217;ve been tinkering with VMware&#8217;s Data Recovery for the last two weeks (as in configured it some time before Christmas) and had it running all that time. I have to say the integration into the vCenter Client GUI is amazing, I&#8217;d love to see that for VCB also. The Changed Block Tracking is a neat]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been tinkering with VMware&#8217;s Data Recovery for the last two weeks (as in configured it some time before Christmas) and had it running all that time. I have to say the integration into the vCenter Client GUI is amazing, I&#8217;d love to see that for VCB also. The <a href="http://itknowledgeexchange.techtarget.com/virtualization-pro/what-is-changed-block-tracking-in-vsphere/">Changed Block Tracking</a> is a neat way to minimize the amount backup data as well as your backup window (which is nearly zero anyhow due to vDR using snapshots).</p>
<p>What I don&#8217;t like about Data Recovery is the fact that you ain&#8217;t <span style="text-decoration: line-through;">allowed</span> supported to install any kind of backup agent inside. I  was looking into Data Recovery because I wanted to replace VCB&#8217;s functionality with something tightly integrated, that even our, well lets say &#8212; not so vCenter centered workers &#8212; could use (restoring a VM with vDR is real easy, just three clicks and you got a previous version of your VM &#8212; even if it has been deleted).</p>
<p>I guess, we do have to stick to Consolidated Backup for now, until VMware redesigns vDR or polishes VCB.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.barfoo.org/2010/01/05/vmware-data-recovery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HOWTO: Installing XBMC on a Acer Revo R3600 with Ubuntu Jaunty/Karmic</title>
		<link>http://blog.barfoo.org/2010/01/02/howto-installing-xbmc-on-a-acer-revo-r3600-with-ubuntu-jauntykarmic/</link>
		<comments>http://blog.barfoo.org/2010/01/02/howto-installing-xbmc-on-a-acer-revo-r3600-with-ubuntu-jauntykarmic/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 18:38:25 +0000</pubDate>
		<dc:creator>Christian</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Jaunty Jackalope]]></category>
		<category><![CDATA[Karmic Koala]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[XBMC]]></category>

		<guid isPermaLink="false">http://blog.barfoo.org/?p=2882</guid>
		<description><![CDATA[Yesterday out of a sudden, the sound on my Acer Revo stopped working. Don&#8217;t ask me why, I didn&#8217;t update anything in between New Years eve and today. Just no sound. Tried removing my .asoundrc, tried rebooting, tried powering off; but nothing worked. Since the Revo was running Jaunty Jackalope, I decided to reinstall the]]></description>
			<content:encoded><![CDATA[<p>Yesterday out of a sudden, the sound on my Acer Revo stopped working. Don&#8217;t ask me why, I didn&#8217;t update anything in between New Years eve and today. Just no sound. Tried removing my <span class="cmd">.asoundrc</span>, tried rebooting, tried powering off; but nothing worked.</p>
<p>Since the Revo was running Jaunty Jackalope, I decided to reinstall the box (yeah, yet again) &#8212; but this time with Karmic Koala. Took this <a href="http://xbmc.org/forum/showthread.php?t=53812">forums post</a> and this <a href="http://www.springydevelopment.co.uk/2009/11/08/minimal-install-of-xbmc-on-ubuntu-karmic-koala/">blog entry</a> as pointer (ie what needed to be installed), and started from there. And guess what &#8230; after finishing all that, changing the settings in XBMC &#8212; tada sound works. After finishing, I turned the box off and then back on, booted to the &#8220;old&#8221; installation &#8212; guess what .. Sound is working again. I really don&#8217;t have a single clue as to why the heck the sound stopped working and the started working without any doing, but I&#8217;m glad <img src='http://blog.barfoo.org/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> </p>
<p><span id="more-2882"></span>As a pointer to myself, here&#8217;s a complete list of commands that need to be done to get a working installation of XBMC. Requirement for this is a minimal installation of Jaunty Jackalope/Karmic Koala.</p>
<pre lang="bash"># I need to blacklist the internal WLAN device, since I'm using an external one
cat << EOF | sudo tee -a /etc/modprobe.d/blacklist-ath_pci.conf
blacklist ath5k
EOF
# Also need to blacklist the not working RAlink drivers
cat << EOF | sudo tee /etc/modprobe.d/blacklist-ralink.conf
# The below drivers don't work with the Atheros AR5001
# (Linksys WUSB600N)
blacklist rt2800usb
blacklist rt2x00usb
EOF

# Add the necessary PPA's
cat << EOF | sudo tee -a /etc/apt/sources.list.d/xbmc.list
deb http://ppa.launchpad.net/nvidia-vdpau/ppa/ubuntu karmic main
deb-src http://ppa.launchpad.net/nvidia-vdpau/ppa/ubuntu karmic main
deb http://ppa.launchpad.net/team-xbmc-svn/ppa/ubuntu karmic main
deb-src http://ppa.launchpad.net/team-xbmc-svn/ppa/ubuntu karmic main
EOF
# Add the GPG keys to the APT keyring
sudo apt-key adv --keyserver keyserver.ubuntu.com \
                 --recv-keys 64234534 40618B66 CEC06767 318C7509 \
                             91E7EE5E 64234534
sudo aptitude update
# Install necessary prerequisites (like nvidia-glx
# for VDPAU rendering)
# debhelper needs to be added, otherwise dkms is gonna fail.
# I need nvidia-glx-180 because the -190 apparently brings
# a large framedrop (as in I'm getting 18 FPS instead of 24)
sudo aptitude install nvidia-glx-180 debhelper linux-sound-base \
                      alsa-base alsa-utils
# unmute the Master an PCM channels with alsamixer. Press ESC to quit
sudo alsamixer
sudo alsactl store 0
# Install XBMC as standalone (i.e. no desktop environment like GNOME)
sudo aptitude install xbmc-standalone

# Configure the Xserver
sudo nvidia-xconfig

# Add the init-script (no need for fancy tty login stuff)
cat << EOF | sudo tee -a /etc/init.d/xbmc
#!/bin/sh
### BEGIN INIT INFO
# Provides:          inputlirc
# Required-Start:    \$network
# Required-Stop:     \$network \$remote_fs
# Should-Start:      \$syslog udev
# Should-Stop:       \$syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Starts XBMC standalone
### END INIT INFO

PATH=/usr/sbin:/usr/bin:/sbin:/bin

test -d /var/run || exit 0

test -x /usr/bin/xbmc || exit 0

. /lib/lsb/init-functions

case "\$1" in
  start)
        xinit /usr/bin/xbmc --standalone &#038;
        ;;
  stop)
        killall xbmc &#038;>/dev/null
        ;;
esac
exit 0
EOF
sudo update-rc.d xbmc defaults

# Install usplash, configure our resolution and
# regenerate the initramfs
sudo aptitude install usplash usplash-theme-ubuntu
cat << EOF | sudo tee -a /etc/usplash.conf
resx=1920
resy=1080
EOF
sudo update-initramfs -u

# Install lirc
sudo aptitude install lirc inputlirc lirc-modules-source
cat << EOF | sudo tee -a /etc/lirc/lircd.conf
#
# this config file was automatically generated
# using lirc-0.7.1pre2(any) on Mon Jul  4 22:11:52 2005
#
# contributed by
#
# brand:                       Technisat
# model no. of remote control: TTS35AI
# devices being controlled by this remote: Skystar 2.6D
#

begin remote

  name  Technisat_TTS35AI.conf
  bits           13
  flags RC5|CONST_LENGTH
  eps            30
  aeps          100

  one           882   803
  zero          882   803
  plead         905
  gap          112766
  toggle_bit      2

      begin codes
          Power                    0x1A8C
          Mute                     0x1A8D
          1                        0x1281
          2                        0x1A82
          3                        0x1283
          4                        0x1A84
          5                        0x1285
          6                        0x1A86
          7                        0x1287
          8                        0x1A88
          9                        0x1289
          0                        0x1A80
          -/--                     0x128A
          A/B                      0x1AA3
          Red                      0x0AAB
          Green                    0x02AC
          Yellow                   0x0AAD
          Blue                     0x02AE
          Ok                       0x0A97
          Up                       0x12A0
          Down                     0x1AA1
          Left                     0x1291
          Right                    0x1A90
          SFI                      0x12AF
          Back                     0x1AA2
          Info                     0x028F
#          Prog+                    0x1AA0
#          Prog-                    0x12A1
          TV/Radio                 0x0293
#          Volume+                  0x1A90
#          Volume-                  0x1291
          Menu                     0x0A92
          Hilfe                    0x1A8F
          TXT                      0x12BC
          STOP                     0x1AA9
          EXT                      0x12B8
          HILFE2                   0x0AB6
      end codes

end remote
EOF
sudo sed -i -e 's,REMOTE="",REMOTE="TechnoTrend USB IR receiver",' \
       -e 's,REMOTE_MODULES="",REMOTE_MODULES="lirc_serial",' \
       -e 's,REMOTE_DEVICE="",REMOTE_DEVICE="/dev/lirc0",' \
       -e 's,START_LIRCD="false",START_LIRCD="true",' \
       /etc/lirc/hardware.conf
sudo sed -i -e 's,EVENTS="",EVENTS="/dev/input/by-id/usb-Formosa21_USB_IR_Receiver-event-mouse",' \
       -e 's,OPTIONS="",OPTIONS="-g -m 0",' /etc/default/inputlirc

cat << EOF | sudo tee /usr/share/xbmc/system/scrapers/video/nfo-file-scaper.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- Forces XBMC to gather the settings, that are on disk
         (ie no downloading of content information -->
<scraper framework="1.0" date="2010-01-02" name="NFO File Scarper" content="movies" language="en" />
EOF

# Reboot the system
sudo reboot</pre>
<p>Now we just need to configure the audio output to pipe everything through HDMI. For that change the settings in <strong>Settings -> System -> Audio Output</strong> like this:</p>
<p><a href="http://blog.barfoo.org/wp-content/uploads/2010/01/xbmc-settings-system-audio-output.png"><img src="http://blog.barfoo.org/wp-content/uploads/2010/01/xbmc-settings-system-audio-output-450x253.png" alt="XBMC Audio Output Settings" title="XBMC Audio Output Settings" width="450" height="253" class="aligncenter size-thumbnail wp-image-2889" /></a></p>
<p>Or if you like messing with <span class="cmd">~/.xbmc/userdata/guisettings.xml</span>:</p>
<pre lang="xml">    <audiooutput>
        <ac3passthrough>false</ac3passthrough>
        <audiodevice>alsa:plug:hdmi</audiodevice>
        <customdevice></customdevice>
        <custompassthrough></custompassthrough>
        <downmixmultichannel>true</downmixmultichannel>
<dtspassthrough>false</dtspassthrough>
        <mode>1</mode>
<passthroughdevice>alsa:hdmi</passthroughdevice>
        <sep1></sep1>
        <sep2></sep2>
        <sep3></sep3>
    </audiooutput>
</pre>
<p>As for the changed device names of the input device (ie <span class="cmd">usb-Formosa21_USB_IR_Receiver-event-ir</span> (Jaunty) vs. <span class="cmd">usb-Formosa21_USB_IR_Receiver-event-mouse</span> (Karmic), just take the <span class="cmd">Lircmap.xml</span> from <a href="http://blog.barfoo.org/wp-content/uploads/2009/06/Lircmap.xml">here</a>, and change the remote-Line accordingly.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.barfoo.org/2010/01/02/howto-installing-xbmc-on-a-acer-revo-r3600-with-ubuntu-jauntykarmic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
