<?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>linux instead</title>
	<atom:link href="http://www.linuxinstead.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.linuxinstead.com/blog</link>
	<description>Kevs IT related ramblings</description>
	<lastBuildDate>Tue, 15 May 2012 08:14:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Compile Node.js on Debian and Ubuntu Linux</title>
		<link>http://www.linuxinstead.com/blog/2012/04/29/compile-node-js-on-debian-linux/</link>
		<comments>http://www.linuxinstead.com/blog/2012/04/29/compile-node-js-on-debian-linux/#comments</comments>
		<pubDate>Sun, 29 Apr 2012 15:33:41 +0000</pubDate>
		<dc:creator>Kev</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Node.js]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[compile]]></category>
		<category><![CDATA[debian]]></category>

		<guid isPermaLink="false">http://www.linuxinstead.com/blog/?p=462</guid>
		<description><![CDATA[Building Node.js on Linux is fairly simple, as there are few dependencies. This is how I did it on Debain 6 (Squeeze). At the time of writing the current release of Node.js was 0.6.15. You&#8217;ll need to adjust the intructions below to reflect the version you&#8217;re building. Update: I have also successfully tested these instructions [...]]]></description>
			<content:encoded><![CDATA[<p>Building Node.js on Linux is fairly simple, as there are few dependencies. This is how I did it on Debain 6 (Squeeze). At the time of writing the current release of Node.js was 0.6.15. You&#8217;ll need to adjust the intructions below to reflect the version you&#8217;re building.</p>
<p>Update: I have also successfully tested these instructions with node.js 0.6.17 on Ubuntu 12.04.</p>
<p><span id="more-462"></span></p>
<ul>
<li>Download the Node.js source, e.g. <code>wget http://nodejs.org/dist/v0.6.15/node-v0.6.15.tar.gz</code></li>
</ul>
<ul>
<li> Extract the files: <code>tar -xvf node-v0.6.15.tar.gz</code></li>
</ul>
<ul>
<li> cd into the newly extracted node.js folder: <code>cd node-v0.6.15</code></li>
</ul>
<ul>
<li> If you don&#8217;t have the essential build tools install then you&#8217;ll need to install them. As root run <code>apt-get install build-essential</code></li>
</ul>
<ul>
<li> We&#8217;ll also need to build in SSL support, so let&#8217;s install the openssl libs: as root run <code>apt-get install libssl-dev</code></li>
</ul>
<p>At this point we can run ./configure and proceed with the node.js build. You&#8217;ll see that configure will report that openssl is not found, but the build will still work. This is because configure uses pks-config to check for openssl. If the this bothers you then run (as root) <code>apt-get install pkg-config</code> and ./configure will then find openssl.</p>
<p>Right, that&#8217;s the pre-compile stuff done, lets get on and compile node.js! From this point it&#8217;s all standard Linux build commands: ./configure, make and make install. So&#8230;</p>
<ul>
<li>run <code>./configure</code> (can be either root or a regular user)</li>
</ul>
<ul>
<li> Then <code>make</code> (again, either as root or a regular user)</li>
</ul>
<ul>
<li> and finally, as root run <code>make install</code> to install node into the system folders.</li>
</ul>
<p>All done, so lets just check Node.js has been successfully installed. Type <code>node --version</code></p>
<p>Now all you need to do is start writing some event driven JavaScript code&#8230; Over to you!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxinstead.com/blog/2012/04/29/compile-node-js-on-debian-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Extracting SSH keys from a Java keystore (jks) file</title>
		<link>http://www.linuxinstead.com/blog/2011/09/23/extracting-ssh-keys-from-a-java-keystore-jks-file/</link>
		<comments>http://www.linuxinstead.com/blog/2011/09/23/extracting-ssh-keys-from-a-java-keystore-jks-file/#comments</comments>
		<pubDate>Fri, 23 Sep 2011 19:18:51 +0000</pubDate>
		<dc:creator>Kev</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[java keystore]]></category>
		<category><![CDATA[private key]]></category>
		<category><![CDATA[public key]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[ssl]]></category>

		<guid isPermaLink="false">http://www.linuxinstead.com/blog/?p=453</guid>
		<description><![CDATA[I needed to extract/generate a public ssh key from a java keystore so that the Java application could SFTP some files using public key authentication. The problem was that I couldn&#8217;t find any way of converting an ssl public key to an ssh public key. It seems that although ssl and ssh private keys are [...]]]></description>
			<content:encoded><![CDATA[<p>I needed to extract/generate a public ssh key from a java keystore so that the Java application could SFTP some files using public key authentication.</p>
<p>The problem was that I couldn&#8217;t find any way of converting an ssl public key to an ssh public key. It seems that although ssl and ssh private keys are compatible, the public keys are not.<span id="more-453"></span></p>
<p>No problem I thought, I&#8217;ll just generate the ssh key from the private key held within the java keystore (jks file). Hmm, it seems that the keytool utility does not have such ability, nor will it allow you to extract the private key.</p>
<p>Okay, so a quick google search later I discover a couple of freeware tools that can extract the private key from a java keystore. Great! I thought&#8230; until I found that our company wasn&#8217;t too keen on using freeware tools to support a production process&#8230; Bah!</p>
<p>It took me a fair amount of head scratching and experimentation to figure out a method that uses only the keytool utility and ssh-keygen. Both ship with most Linux distros (keytool also ships with Java), so no-one should object to using them, should they?</p>
<p>Anyway, here are the commands I used to generate an ssh public key from a private ssl key held within a java keystore.</p>
<p>Convert keystore from jks to pkcs12 format:<br />
<code>keytool -v -importkeystore -srckeystore keystore.jks -srcalias MYKEY -srcstorepass MY_STORE_PASSWORD -srckeypass MY_KEY_PASSWORD -destkeystore keystore.p12 -destalias MYKEY -deststorepass MY_STORE_PASSWORD -destkeypass MY_KEY_PASSWORD -deststoretype PKCS12</code></p>
<p>Extract private key from pkcs12 keystore:<br />
<code>openssl pkcs12 -in keystore.p12 -out key.pem -passin pass:MY_STORE_PASSWORD -passout pass:MY_STORE_PASSWORD</code></p>
<p>Set permissions so ssh-keygen won&#8217;t balk:<br />
<code>chmod 600 key.pem</code></p>
<p>Extract public key in ssh format:<br />
<code>ssh-keygen -P MY_STORE_PASSWORD -y -f key.pem &gt; sshkey.pub</code></p>
<p>Check the public key!<br />
<code>cat sshkey.pub</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxinstead.com/blog/2011/09/23/extracting-ssh-keys-from-a-java-keystore-jks-file/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Deleted root@localhost account in MySQL</title>
		<link>http://www.linuxinstead.com/blog/2011/07/02/deleted-rootlocalhost-account-in-mysql/</link>
		<comments>http://www.linuxinstead.com/blog/2011/07/02/deleted-rootlocalhost-account-in-mysql/#comments</comments>
		<pubDate>Sat, 02 Jul 2011 07:54:12 +0000</pubDate>
		<dc:creator>Kev</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.linuxinstead.com/blog/?p=444</guid>
		<description><![CDATA[Like the fool I am, whilst messing about with user privileges in phpMyAdmin I managed to delete the root account. Suddenly I found myself with no access to any of my databases It took a while to figure out how to re-create the root@localhost user, so here&#8217;s how I did it. Shut down mysql server [...]]]></description>
			<content:encoded><![CDATA[<p>Like the fool I am, whilst messing about with user privileges in phpMyAdmin I managed to delete the root account. Suddenly I found myself with no access to any of my databases <img src='http://www.linuxinstead.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>It took a while to figure out how to re-create the root@localhost user, so here&#8217;s how I did it.<span id="more-444"></span></p>
<ol>
<li>Shut down mysql server</li>
<li>Start the msql server up with skip-grant-tables option</li>
<li>Log in to mysql</li>
<li>Change to the mysql database</li>
<li>Create the root user</li>
<li>Re-start mysql server</li>
</ol>
<p>For those that like a cut n paste approach, these are the commands:</p>
<ol>
<li><code>service mysqld stop</code></li>
<li><code>mysqld_safe --skip-grant-tables &amp;</code></li>
<li><code>mysql</code></li>
<li><code>use mysql</code></li>
<li><code>create user root@localhost;</code></li>
<li><code>GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' with grant option;</code></li>
<li><code>commit;</code></li>
<li><code>FLUSH PRIVILEGES;</code></li>
<li><code>exit</code></li>
<li><code>service mysqld restart</code></li>
</ol>
<p>You can confirm that the root account has been created (or is indeed missing!) by listing entries on the user table:<br />
<code>use mysql;<br />
select Host,User from user;</code></p>
<p>Good luck!<br />
Kev.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxinstead.com/blog/2011/07/02/deleted-rootlocalhost-account-in-mysql/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>K9COPY crashing on Ubuntu 10.10</title>
		<link>http://www.linuxinstead.com/blog/2011/03/27/k9copy-crashing-on-ubuntu-10-10/</link>
		<comments>http://www.linuxinstead.com/blog/2011/03/27/k9copy-crashing-on-ubuntu-10-10/#comments</comments>
		<pubDate>Sun, 27 Mar 2011 18:58:19 +0000</pubDate>
		<dc:creator>Kev</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[dvd]]></category>

		<guid isPermaLink="false">http://www.linuxinstead.com/blog/?p=437</guid>
		<description><![CDATA[I recently gave K9COPY a try, it&#8217;s supposed to be the Linux equivalent of DVDshrink for Windows. It certainly looked the part, but when I ran it with a disk I wanted to back up it ran for a short while and then crashed Looking at the output of dmesg revealed that the disk was [...]]]></description>
			<content:encoded><![CDATA[<p>I recently gave K9COPY a try, it&#8217;s supposed to be the Linux equivalent of DVDshrink for Windows. It certainly looked the part, but when I ran it with a disk I wanted to back up it ran for a short while and then crashed <img src='http://www.linuxinstead.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </p>
<p>Looking at the output of dmesg revealed that the disk was having trouble reading the encrypted disk:<br />
<code>[235.097347] sr 5:0:0:0: [sr0] Add. Sense: Read of scrambled sector without authentication<span id="more-437"></span></code></p>
<p>It was at this point I realised that I had not yet installed the restricted media packages (also needed to play DVD films). So&#8230;<br />
<code>sudo apt-get update &amp;&amp; sudo apt-get install libdvdread4<br />
sudo /usr/share/doc/libdvdread4/install-css.sh</code></p>
<p>&#8220;That should do it&#8221; I thought! But no luck, it still didn&#8217;t work. I searched synaptic and installed some other packages that looked like they should help but still nothing&#8230; The disk would not play or back-up.</p>
<p>In the end deleted the contents of <code>~/.dvdcss</code> and amazingly, it worked!</p>
<p>So if you&#8217;ve followed the Ubuntu instructions and still can&#8217;t play or back up a movie DVD then you might want to give this a try. I&#8217;m posting it here because it&#8217;s not an obvious solution and I&#8217;m sure I wont remember it next time I re-install my system.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxinstead.com/blog/2011/03/27/k9copy-crashing-on-ubuntu-10-10/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Xen 4.1 released</title>
		<link>http://www.linuxinstead.com/blog/2011/03/25/xen-4-1-released/</link>
		<comments>http://www.linuxinstead.com/blog/2011/03/25/xen-4-1-released/#comments</comments>
		<pubDate>Fri, 25 Mar 2011 20:34:40 +0000</pubDate>
		<dc:creator>Kev</dc:creator>
				<category><![CDATA[Xen virtualization]]></category>

		<guid isPermaLink="false">http://www.linuxinstead.com/blog/?p=428</guid>
		<description><![CDATA[Today saw the release of Xen 4.1. Major changes include support for greater than 255 CPUs, a new credit scheduler and CPU pools. However, the most significant change to those that use Xen will be the new XL toolstack which replaces XM/XEND and will ultimately replace xcp&#8217;s xapi and libvirt. There&#8217;s no need to panic [...]]]></description>
			<content:encoded><![CDATA[<p>Today saw the release of Xen 4.1. Major changes include support for greater than 255 CPUs, a new credit scheduler and CPU pools.</p>
<p>However, the most significant change to those that use Xen will be the new XL toolstack which replaces XM/XEND and will ultimately replace xcp&#8217;s xapi and libvirt.<span id="more-428"></span></p>
<p>There&#8217;s no need to panic just yet though because XM is still included in Xen 4.1 and sits alongside XL.</p>
<p>Further details can be found in the Xen 4.1 release notes:<br />
<a href="http://blog.xen.org/index.php/2011/03/25/xen-4-1-releases/">http://blog.xen.org/index.php/2011/03/25/xen-4-1-releases/</a></p>
<p>It&#8217;s good to see Xen moving forward and continuing to converge with Linux mainline kernel. What I&#8217;d really like to see though, is a pre-built up to date Xen Distro and a decent web based management front end. Now <em>that</em> would cause sleepless nights over at VMware HQ&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxinstead.com/blog/2011/03/25/xen-4-1-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ffmpeg freeview to pal-dvd audio fix</title>
		<link>http://www.linuxinstead.com/blog/2011/02/12/ffmpeg-freeview-to-pal-dvd-audio-fix/</link>
		<comments>http://www.linuxinstead.com/blog/2011/02/12/ffmpeg-freeview-to-pal-dvd-audio-fix/#comments</comments>
		<pubDate>Sat, 12 Feb 2011 10:54:28 +0000</pubDate>
		<dc:creator>Kev</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[dvd]]></category>
		<category><![CDATA[ffmpeg]]></category>

		<guid isPermaLink="false">http://www.linuxinstead.com/blog/?p=417</guid>
		<description><![CDATA[I was converting a TV show I&#8217;d  to DVD format using ffmpeg, but the resulting file had the wrong audio channel. At first I thought it had no audio at all, but then I noticed it had a voice over occasionally explaining what was happening; &#8220;so-n-so has just entered the room&#8230;&#8221;. It appears that ffmpeg [...]]]></description>
			<content:encoded><![CDATA[<p>I was converting a TV show I&#8217;d  to DVD format using ffmpeg, but the resulting file had the wrong audio channel. At first I thought it had no audio at all, but then I noticed it had a voice over occasionally explaining what was happening; &#8220;so-n-so has just entered the room&#8230;&#8221;.</p>
<p>It appears that ffmpeg had selected the wrong audio stream. For some reason, it had had selected the second audio stream instead of the first. The fix is simple enough, you can manually set the streams to use with the -map option. The command below works well for UK freeview.<span id="more-417"></span></p>
<p><code>ffmpeg -i "input.mpg" -y -target pal-dvd -map 0.0:0.0 -map 0.1:0.1 -ac 2 -aspect 16:9 output.mpg</code></p>
<p>You&#8217;ll notice there are two -map parameters. The first one, <strong>-map 0.0:0.0</strong> is for the video stream (almost always the fist stream). The second one, <strong> -map 0.1:0.1</strong> maps the second stream (the first audio stream, remember the first stream is the video) to the second stream (1st audio stream) of the output file. This fixes the audio problem&#8230; well almost!</p>
<p>The next problem I found was that the audio was in mono. This is fixed by telling ffmpeg there are two audio channels wit the parameter <strong>-ac 2</strong>.</p>
<p>How do you know which audio channel to set? The easiest way is to run ffmpeg without the -map option and note the streams it gives in the summary before it starts displaying it&#8217;s progress. You can then ctrl-c to quit. Example output shown below:</p>
<blockquote><p>Duration: 02:03:57.24, start: 89212.169567, bitrate: 2944 kb/s<br />
Program 1<br />
Stream #0.0[0x200]: Video: mpeg2video, yuv420p, 704&#215;576 [PAR 16:11 DAR 16:9], 15000 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc<br />
<strong>Stream #0.1[0x28a](eng): Audio: mp2, 48000 Hz, 2 channels, s16, 192 kb/s</strong><br />
Stream #0.2[0x294](eng): Audio: mp2, 48000 Hz, 1 channels, s16, 64 kb/s<br />
Stream #0.3[0x401](eng): Subtitle: dvbsub<br />
Stream #0.4[0x87b]: Data: 0x000b<br />
Stream #0.5[0x943]: Data: 0x000b</p></blockquote>
<p>So it you were to see that the stereo audio is stream 0.3 for example, you&#8217;d then use <strong>-map 0.0:0.0 -map 0.3:0.1</strong> to map it to stream 0.1 of the output file. The first -map is still needed to specify the video, you&#8217;ll get an error without it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxinstead.com/blog/2011/02/12/ffmpeg-freeview-to-pal-dvd-audio-fix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XEN DOM0 support in mainline kernel at last!</title>
		<link>http://www.linuxinstead.com/blog/2011/02/03/xen-dom0-in-mainline-kernel/</link>
		<comments>http://www.linuxinstead.com/blog/2011/02/03/xen-dom0-in-mainline-kernel/#comments</comments>
		<pubDate>Thu, 03 Feb 2011 19:56:03 +0000</pubDate>
		<dc:creator>Kev</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Xen virtualization]]></category>

		<guid isPermaLink="false">http://www.linuxinstead.com/blog/?p=410</guid>
		<description><![CDATA[The XEN developers ad community have been trying fr years to get DOM0 support into the Linux mainline kernel. On January 5th 2011 it finally happened when Linux kernel 2.6.37 was released. Okay, so it&#8217;s only basic support at this stage, but it does represent a significant milestone in the hypervisors history. DOM0 is the [...]]]></description>
			<content:encoded><![CDATA[<p>The XEN developers ad community have been trying fr years to get DOM0 support into the Linux mainline kernel. On January 5th 2011 it finally happened when Linux kernel 2.6.37 was released.</p>
<p>Okay, so it&#8217;s only basic support at this stage, but it does represent a significant milestone in the hypervisors history.<span id="more-410"></span></p>
<p>DOM0 is the first domain (virtual machine) started by the XEN hypervisor and has privileged access to the computer hardware and drivers.</p>
<p>DOMU support was added to mainline kernel some time ago through the PARAVIRT_OPS API. However until now the DOM0 had to use a specially modified version of the Linux kernel.</p>
<p>So what? I hear you ask&#8230; Well the hope is that with DOM0 support available in the stock kernel, Linux distributions will start adding XEN virtualization as an option to along side KVM etc. Combined with all the advantages of having the latest kernel in DOM0, such as disk mirroring, really could deliver enterprise class computing in a cheap, open and community driven package. Now there&#8217;s a thought&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxinstead.com/blog/2011/02/03/xen-dom0-in-mainline-kernel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing Android 2.1 onto T-Mobile Pulse</title>
		<link>http://www.linuxinstead.com/blog/2010/11/20/installing-android-2-1-onto-t-mobile-pulse/</link>
		<comments>http://www.linuxinstead.com/blog/2010/11/20/installing-android-2-1-onto-t-mobile-pulse/#comments</comments>
		<pubDate>Sat, 20 Nov 2010 21:08:38 +0000</pubDate>
		<dc:creator>Kev</dc:creator>
				<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://www.linuxinstead.com/blog/?p=386</guid>
		<description><![CDATA[This short guide takes you through the steps needed to install a custom Android 2.1 ROM onto the original T-Mobile Pulse. The official T-Mobile Android 2.1 ROM was removed from T-Mobiles website because it had a few bugs, the worst of which meant that you&#8217;d lose the odd text message. However the latest &#8216;custom&#8217; ROMS [...]]]></description>
			<content:encoded><![CDATA[<p>This short guide takes you through the steps needed to install a custom Android 2.1 ROM onto the original T-Mobile Pulse.</p>
<p>The official T-Mobile Android 2.1 ROM was removed from T-Mobiles website because it had a few bugs, the worst of which meant that you&#8217;d lose the odd text message. However the latest &#8216;custom&#8217; ROMS appear to have fixed these problems.<span id="more-386"></span></p>
<p>I upgraded my phone using the FLB 1.7 ROM and various guides over at the Modaco forums (<a href="http://www.modaco.com" target="_blank">www.modaco.com</a>). This is a simple step by step guide of how I upgraded my phone. You might want to also check with the forums for additional information, especially <a href="http://android.modaco.com/content/t-mobile-pulse-pulse-modaco-com/311809/the-ultimate-pulse-owners-guide/" target="_blank">this thread</a>.</p>
<p>First off, some background information.</p>
<ul>
<li>As far as I know this guide will only work with the original pulse; the Huawei U8220. Take the battery out to check the model number of your phone.</li>
<li>The Pulse has a limited amount of memory which is not enough to run Android 2.1 (this was part of the problem with the official t-mobile release). To fix this you need to run a swap partition on your SD memory card.</li>
<li>A class 6 SD card is recommended, however I have this working with a class 4 card.</li>
<li>I have an 8GB class 4 card in my phone, but you can get away with using a 1GB card, just make sure its a class 4 or higher for it to be fast enough to run swap.</li>
</ul>
<p><span style="color: #ff0000"><strong>BIG FAT WARNING<br />
Installing a custom ROM on your phone will almost certainly invalidate your warranty.</strong><strong><br />
It is also possible that you could brick your phone.<br />
The instructions below are simply a blog of what I did to <em>my</em> phone. There are no guarantees that they will work on <em>your</em> phone. So if you follow these instructions and bad things happen to your phone, don’t blame me!<br />
Remember, the risk of making your phone completely useless is <em>yours</em> not mine.<br />
END OF BIG FAT WARNING</strong></span></p>
<p>The basic stages we&#8217;re going to perform for upgrading are:</p>
<ol>
<li>Install the official T-Mobile 2.1 ROM. This is needed because this upgrade modifies the phones internal partition sizes. The custom ROM won&#8217;t work with the original Android 1.5 sizes.</li>
<li>Install a custom recovery boot image</li>
<li>Install the custom Android 2.1 ROM</li>
<li>Configure the ROM to use SWAP and run apps from the SD card.</li>
</ol>
<p>First off, download the software needed onto your PC.<br />
<a href="http://support.t-mobile.co.uk/library/TMOBILE/handsets/Pulse/Android%202.1/Pulse%20Android21.zip">Official T-Mobile Android 2.1 update</a><br />
<a href="http://www.linuxinstead.com/blog/wp-content/uploads/2010/11/1.5.2-pulse-amonrarecovery.zip">Recovery boot image</a><br />
<a href="http://www.flibblesan.co.uk/android/flbmod/flbmod_v1.7.zip">FLB 1.7 Custom ROM (aka custom Android 2.1)</a><br />
<a href="http://flibblesan.co.uk/android/flbmod/flbmod_v1.7_termfix.zip">Fixed terminal emulator</a></p>
<p><strong>Back up anything you need to keep from your phone. e.g. sync your contacts with google etc. Copy anything you need to keep from your SD card to your PC because your card will be wiped during the upgrade.</strong></p>
<p>Note: If you have been running a custom 1.5 ROM with A2SD, it&#8217;s best to re-partition your SD card back to a single FAT32 partition before you start the upgrade. The easiest way to do this is to put your SD card into a card reader and use Gparted.</p>
<p>Right, now you&#8217;ve backed up everything you need, lets start the upgrade&#8230;</p>
<p>Stage1, apply the t-mobile official 2.1 update.</p>
<ol>
<li>Unzip the Official 2.1 ROM and copy the <strong>DLOAD</strong> folder onto the root of your SD card. By root I mean don&#8217;t put it in any sub-folder on the SD card.</li>
<li>With the SD card back in the phone and the phone powered off, hold down the buttons &#8216;red end call&#8217; + &#8216;volume up&#8217; + &#8216;power&#8217; and wait for the preparing update message.</li>
<li>Confirm that you want to update and then wait for the update to complete. At the end of the update you&#8217;ll get a message saying the phone will restart. For me the phone just hung. If this happens simply remove and re-insert the the battery</li>
<li>Confirm that the 2.1 update has worked, but don&#8217;t go mad and install apps etc because you&#8217;ll be wiping the phone again in a moment.</li>
</ol>
<p>Stage 2 &#8211; Install recovery boot image.</p>
<ol>
<li>Unzip the recovery image onto you PC and navigate to the folder. Make the file install-recovery-linux.sh executable (i.e. <strong>chmod +x install-recovery-linux.sh</strong>)</li>
<li>With your phone powered off hold down the buttons &#8216;red end call&#8217; + &#8216;volume down&#8217; + &#8216;power&#8217;. The screen should go blue.</li>
<li>Connect the USB cable to the phone and PC</li>
<li>On the PC as root run install-recovery-linux.sh (e.g. in ubuntu cd to the folder  containing the superboot files and type sudo  ./install-recovery-linux.sh). When you get the successful message you can reboot the phone (i.e. remove/re-insert the battery. You&#8217;ll probably have to remove the USB cable too).</li>
</ol>
<p>Stage3 &#8211; Install the custom FLB Android 2.1 ROM</p>
<ol>
<li>Boot into the recovery menu by holding down the buttons &#8216;red end call&#8217; + &#8216;menu&#8217; + &#8216;power&#8217; and wait until the recovery menu appears (after 10 seconds or so).</li>
<li>Plug the USB cable into the phone and PC.</li>
<li>Using the track-ball scroll down to the option &#8216;USB toggle&#8217; and press the track-ball to select.</li>
<li>The SD card should now mount on your Linux PC. Copy the custom rom zip file (flbmod_v1.7.zip) to the root of the sd card. Don&#8217;t unzip it, just copy the zip file.</li>
<li>Once the zip file has been copied, press the green button to toggle the USB back to off.</li>
<li>Use the track-ball and select the &#8216;Wipe&#8217; option. Choose the First option (Factory reset) and confirm. Once the wipe has completed return to the main menu (with the &#8216;home&#8217; button).<br />
<strong> </strong></li>
<li><strong> </strong>Now select &#8216;Flash ZIP from  SD card&#8217;. Select the custom rom you wish to flash, confirm and then wait for the installation to complete.</li>
<li>Return to the main menu and select &#8216;Partition SD card&#8217;.</li>
<li>Using the &#8216;volume up/down&#8217; buttons to change the sizes and &#8216;green&#8217; to confirm set the swap to either 32 or 64mb. I went for 64mb (don&#8217;t go any bigger because it will slow the phone down). Then a suitable size for the ext2 partition. The ext2 partition is where the apps will be installed. 512mb is OK, 1024 is better if you have a big enough SD card!</li>
<li>Return to the main menu end select the &#8216;reboot&#8217; option.</li>
<li>Be patient! it takes ages for the phone to start up on the first reboot!</li>
</ol>
<p>Stage 4 &#8211; Configure the ROM to use the SD card for apps.</p>
<p><span style="color: #ff0000">Although there are apps to SD (a2sd) options in the recovery menu, you should not use them. They are for an older version of a2sd and will cause problems if used on the version included in the Android 2.1 ROM.</span></p>
<ol>
<li>Open the terminal emulator app. When I did this the app crashed with a force close. If this happens to you then you&#8217;ll need to install the fixed version you downloaded earlier. Copy the file to the FAT32 (data) partition of your SD card (this can be done from the USB option in the recovery menu or in the usual Android fashion)  and navigate to it using es file explorer from the installed apps menu. You can unzip and then navigate to &#8230;fixterm/system/app and tap on Term.apk and install it.</li>
<li>In the terminal emulator app type <strong>su -</strong> to switch to the root user.</li>
<li>Now type <strong>a2sd check</strong> to list all the current settings. If you scroll through the output you should see that swap is running, but the apps and dalvik cache are on the internal storage.</li>
<li>To move the apps to the SD card type <strong>a2sd reinstall</strong>. Your phone will then reboot to apply the settings (again, the first boot takes a while)</li>
<li>To move the dalvik cache to the SD card type <strong>a2sd cachesd</strong>. Again, your phone will restart to apply the settings. Please note that unless you have a very fast SD card (class 6+) you should leave the cache on the internal memory. If you have the cache on the SD card and need to move it back to the internal storage type a2sd nocache. <span style="color: #ff0000">Warning: There is another setting, a2sd cachepart. <strong>DO NOT</strong> USE THIS SETTING! it will stop your phone from booting and you&#8217;ll have to wipe your phone and start again.</span></li>
<li>That&#8217;s it. You should now be able to enjoy Android 2.1 on your Pulse. I recommend that you now boot into the recovery menu and make a nandroid backup of your phone before&#8230;</li>
</ol>
<p>Extra.</p>
<p>After using the above upgrade for a short while I noticed my phone would slow down after about 10-15 minutes of heavy use. This appears to be because pages are being moved to/from swap in high volume. To fix this I reduced the swappiness from the default of 60% down to 20% with the command <strong>a2sd swappy20</strong> (as root in terminal emulator app) I also set the memory &#8216;task killer&#8217; setting to moderate with the command <strong>a2sd lowmem-moderate</strong>. Then manually restarted the phone.</p>
<p>Tip: to check the current value of swappiness type <strong>cat /proc/sys/vm/swappiness</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxinstead.com/blog/2010/11/20/installing-android-2-1-onto-t-mobile-pulse/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Reducing the size of mp3 files</title>
		<link>http://www.linuxinstead.com/blog/2010/11/07/reducing-the-size-of-mp3-files/</link>
		<comments>http://www.linuxinstead.com/blog/2010/11/07/reducing-the-size-of-mp3-files/#comments</comments>
		<pubDate>Sun, 07 Nov 2010 13:56:42 +0000</pubDate>
		<dc:creator>Kev</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[lame]]></category>
		<category><![CDATA[mp3]]></category>

		<guid isPermaLink="false">http://www.linuxinstead.com/blog/?p=366</guid>
		<description><![CDATA[If you&#8217;ve ever had a collection of mp3 files that you want to burn to CD for playback in the car or archiving etc, you&#8217;ll likely know how annoying it can be when the collection of mp3 files is just a bit too big to fit on a CD. You end up having to remove [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve ever had a collection of mp3 files that you want to burn to CD for playback in the car or archiving etc, you&#8217;ll likely know how annoying it can be when the collection of mp3 files is just a bit too big to fit on a CD. You end up having to remove a couple of tracks&#8230; While this is probably OK for music (there&#8217;s always a couple of tracks I&#8217;d skip anyway), it&#8217;s not so good for audio books and the like.</p>
<p>One answer to the problem is to reduce the size of the mp3 files themselves. Be warned though that<span id="more-366"></span> this is not without a down side. Shrinking the mp3 will reduce it&#8217;s sound quality. This is less likely to be a problem for audio books, but you might not want to do this for music.</p>
<p>The program lame is good for this sort of thing. You give it an mp3 file, specify a new (lower) bitrate and an output file and you get a new, smaller mp3.</p>
<p><code>lame --mp3input -b 80 input.mp3 output.mp3</code></p>
<p>But what if you have a folder full of files? You could type the above command for each file, but that&#8217;s going to be a pain. The simple command below fill loop through a folder of mp3 files converting each one and placing it into a sub folder named converted. To use the command &#8216;as is&#8217; you&#8217;ll need to create the sub folder first and run the command from within the folder that contains your mp3&#8242;s.</p>
<p><code>for file in *.mp3 ; do lame --mp3input -b 80 "$file" ./converted/"$file" ; done</code></p>
<p>The -b option specifies the bit rate. The smaller the number the smaller the file (and lower quality). An average music track tends to be encoded at between 128 and 256, when audio books are generally lower. Obviously you should check what rate the mp3 is before deciding on a new bit rate. In gnome (Ubuntu) this is easy by right clicking the file and selecting &#8216;properties&#8217;, and then the &#8216;audio&#8217; tab.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxinstead.com/blog/2010/11/07/reducing-the-size-of-mp3-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to pronounce Linux</title>
		<link>http://www.linuxinstead.com/blog/2010/11/02/how-to-pronounce-linux/</link>
		<comments>http://www.linuxinstead.com/blog/2010/11/02/how-to-pronounce-linux/#comments</comments>
		<pubDate>Tue, 02 Nov 2010 23:01:05 +0000</pubDate>
		<dc:creator>Kev</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linus Torvalds]]></category>

		<guid isPermaLink="false">http://www.linuxinstead.com/blog/?p=339</guid>
		<description><![CDATA[Okay, so I often hear people (mainly at work) pronouncing Linux incorrectly, with an emphasis on the letter &#8216;I&#8217;, as you would in the word &#8216;light&#8217; for example. Although this may sound more professional it really isn&#8217;t. I don&#8217;t know why it winds me up, but I do have to bite my tongue to stop [...]]]></description>
			<content:encoded><![CDATA[<p>Okay, so I often hear people (mainly at work) pronouncing Linux  incorrectly, with an emphasis on the letter &#8216;I&#8217;, as you would in the  word &#8216;light&#8217; for example.<span id="more-339"></span></p>
<p>Although this may <em>sound</em> more professional it really isn&#8217;t. I  don&#8217;t know why it winds me up, but I do have to bite my tongue to stop  myself from correcting people and sounding like the office nerd (which,  now I think about it I probably am!).</p>
<p>So, to settle the matter one and for all, here is a clip of Linus  Torvalds pronouncing Linux just as it should be, with a short &#8216;i&#8217;&#8230;</p>
<p><object width="500" height="400"><param name="movie" value="http://www.youtube.com/v/5IfHm6R5le0?fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/5IfHm6R5le0?fs=1" type="application/x-shockwave-flash" width="500" height="400" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxinstead.com/blog/2010/11/02/how-to-pronounce-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

