<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Aberration</title>
	
	<link>http://tomasz.sterna.tv</link>
	<description>technology babbling</description>
	<lastBuildDate>Wed, 01 Feb 2012 19:19:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/tomaszsterna" /><feedburner:info uri="tomaszsterna" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Give old ‘make’ some flare</title>
		<link>http://feedproxy.google.com/~r/tomaszsterna/~3/EB0WZEP3hqA/</link>
		<comments>http://tomasz.sterna.tv/2012/02/give-old-make-some-flare/#comments</comments>
		<pubDate>Wed, 01 Feb 2012 19:19:47 +0000</pubDate>
		<dc:creator>Tomasz Sterna</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[make]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://tomasz.sterna.tv/?p=839</guid>
		<description><![CDATA[This is a &#8216;make&#8217; wrapper I use to make my life easier. It notifies me with desktop notification of failed build and of successful build that took longer than 30 seconds (and I got bored watching &#8220;The Matrix&#8221;). It requires colormake and notify-send installed and is activated by: alias make=make-wrapper #!/bin/bash MINIMUM=30 START=$SECONDS time colormake [...]]]></description>
			<content:encoded><![CDATA[<p>This is a &#8216;make&#8217; wrapper I use to make my life easier.</p>
<p>It notifies me with desktop notification of failed build and of successful build that took longer than 30 seconds (and I got bored watching &#8220;The Matrix&#8221;). It requires <em>colormake</em> and <em>notify-send</em> installed and is activated by:</p>
<blockquote><p><code>alias make=make-wrapper</code></p></blockquote>
<p><span id="more-839"></span><br />
<code>#!/bin/bash<br />
MINIMUM=30</p>
<p>START=$SECONDS<br />
time colormake $*</p>
<p>ERR=$?<br />
case $ERR in<br />
0)<br />
  [[ $(($SECONDS - $START)) -gt $MINIMUM ]] &#038;&#038; notify-send -t 3000 -u critical -i gtk-ok "make $1 OK"<br />
  ;;<br />
141)<br />
  tput setaf 1<br />
  echo "make stopped by ^C"<br />
  tput sgr0<br />
  ;;<br />
*)<br />
  notify-send -u critical -i gtk-dialog-error "make $1 FAILED:$ERR"<br />
  ;;<br />
esac<br />
exit $ERR<br />
</code></p>
<p><small><a href="http://tomasz.sterna.tv/2012/02/give-old-make-some-flare/">Give old &#8216;make&#8217; some flare</a> &copy;, <a rel="license" href=""></a>.</small></p>
<p><a href="http://feedads.g.doubleclick.net/~a/NrWgPSI_Nw4BF7S4wNsvRJmNKxw/0/da"><img src="http://feedads.g.doubleclick.net/~a/NrWgPSI_Nw4BF7S4wNsvRJmNKxw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/NrWgPSI_Nw4BF7S4wNsvRJmNKxw/1/da"><img src="http://feedads.g.doubleclick.net/~a/NrWgPSI_Nw4BF7S4wNsvRJmNKxw/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/tomaszsterna/~4/EB0WZEP3hqA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tomasz.sterna.tv/2012/02/give-old-make-some-flare/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://tomasz.sterna.tv/2012/02/give-old-make-some-flare/</feedburner:origLink></item>
		<item>
		<title>How to restore GNOME 2 look to GNOME 3 desktop</title>
		<link>http://feedproxy.google.com/~r/tomaszsterna/~3/4BT9JL9NusY/</link>
		<comments>http://tomasz.sterna.tv/2011/12/how-to-restore-gnome-2-look-to-gnome-3-desktop/#comments</comments>
		<pubDate>Thu, 01 Dec 2011 22:25:43 +0000</pubDate>
		<dc:creator>Tomasz Sterna</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[gnome shell]]></category>
		<category><![CDATA[gnome2]]></category>
		<category><![CDATA[gnome3]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://tomasz.sterna.tv/?p=827</guid>
		<description><![CDATA[If you don&#8217;t find the default GNOME 3 Shell appealing and would like to get back your GNOME 2 desktop, you can do it without any hassle. It&#8217;s actually one checkbox &#8211; few clicks away. But a checkbox very well hidden by GNOME Shell designers. Just click your name in the top-right corner and select [...]]]></description>
			<content:encoded><![CDATA[<p>If you don&#8217;t find the default GNOME 3 Shell appealing and would like to get back your GNOME 2 desktop, you can do it without any hassle.<br />
It&#8217;s actually one checkbox &#8211; few clicks away. But a checkbox very well hidden by GNOME Shell designers.</p>
<p>Just click your name in the top-right corner and select &#8220;System Settings&#8221;. The system settings window will appear.<br />
<a href="http://tomasz.sterna.tv/uploads/2011/12/gnome3-system-settings.png"><img src="http://tomasz.sterna.tv/uploads/2011/12/gnome3-system-settings-300x292.png" alt="" title="gnome3-system-settings" width="300" height="292" class="aligncenter size-medium wp-image-828" /></a></p>
<p>There select &#8220;System Info&#8221;. (Yes&#8230; System Info) and there select &#8220;Graphics&#8221; tab. (Yes&#8230; Graphics)<br />
<a href="http://tomasz.sterna.tv/uploads/2011/12/gnome-3-fallback-mode.png"><img src="http://tomasz.sterna.tv/uploads/2011/12/gnome-3-fallback-mode-300x227.png" alt="" title="gnome-3-fallback-mode" width="300" height="227" class="aligncenter size-medium wp-image-829" /></a></p>
<p>Now all you need is to switch ON the &#8220;Forced Fallback Mode&#8221; and relogin.<span id="more-827"></span></p>
<p>After login you will be greeted with familiar two panel desktop with defaultish look. Panels work as always, with one exception &#8211; every widget is locked in place by default. To customize it you need to right-click it holding <em>Alt</em> button. And they may be aligned to the left, center or to the right of the panel &#8211; just by dragging them where you want with the middle mouse button, holding <em>Alt</em> of course. Try it by dragging the clock to the right position where it belongs. Right-clicking the panel (holding <em>Alt</em> button, remember) gives you the standard menu to customize the panel, add widgets and create new panels.</p>
<p>If you run Ubuntu, you can even get Unity&#8217;s Indicator Applets on the panel. See <a href="http://www.webupd8.org/2011/11/indicator-applet-ported-to-gnome-3-can.html" title="Indicator Applet Ported To GNOME 3"></a> article for instructions.<br />
<a href="https://lh6.googleusercontent.com/-VY3ZkgyabZ0/Tru5HNZP3kI/AAAAAAAAAf8/XixhXrkv--Y/s1024/Zrzut%2Bekranu%2B2011-11-10%2B12%253A43%253A28.png"><img alt="GNOME 3 desktop without Gnome Shell" src="https://lh6.googleusercontent.com/-VY3ZkgyabZ0/Tru5HNZP3kI/AAAAAAAAAf8/XixhXrkv--Y/s1024/Zrzut%2Bekranu%2B2011-11-10%2B12%253A43%253A28.png" title="GNOME 3 desktop without Gnome Shell" class="aligncenter" width="500" height="280" /></a></p>
<p><small><a href="http://tomasz.sterna.tv/2011/12/how-to-restore-gnome-2-look-to-gnome-3-desktop/">How to restore GNOME 2 look to GNOME 3 desktop</a> &copy;, <a rel="license" href=""></a>.</small></p>
<p><a href="http://feedads.g.doubleclick.net/~a/meYWEGI_maGe64XyVBVRsBYDb2w/0/da"><img src="http://feedads.g.doubleclick.net/~a/meYWEGI_maGe64XyVBVRsBYDb2w/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/meYWEGI_maGe64XyVBVRsBYDb2w/1/da"><img src="http://feedads.g.doubleclick.net/~a/meYWEGI_maGe64XyVBVRsBYDb2w/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/tomaszsterna/~4/4BT9JL9NusY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tomasz.sterna.tv/2011/12/how-to-restore-gnome-2-look-to-gnome-3-desktop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://tomasz.sterna.tv/2011/12/how-to-restore-gnome-2-look-to-gnome-3-desktop/</feedburner:origLink></item>
		<item>
		<title>Mer – What is it all about?</title>
		<link>http://feedproxy.google.com/~r/tomaszsterna/~3/FDfY_cOrWH0/</link>
		<comments>http://tomasz.sterna.tv/2011/10/mer-what-is-it-all-about/#comments</comments>
		<pubDate>Mon, 03 Oct 2011 21:25:26 +0000</pubDate>
		<dc:creator>Tomasz Sterna</dc:creator>
				<category><![CDATA[Cordia]]></category>
		<category><![CDATA[Maemo]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[cordia]]></category>
		<category><![CDATA[cordia hd]]></category>
		<category><![CDATA[distribution]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[meego]]></category>
		<category><![CDATA[mer]]></category>

		<guid isPermaLink="false">http://tomasz.sterna.tv/?p=823</guid>
		<description><![CDATA[With the recent Mer Project announcement, there are a lot of people confused what Mer is about. Let me try to explain. Mer picks up the idea of MeeGo Core, and provides a very stripped down, mobile devices oriented Linux distribution. But this distribution is vendor oriented. Not end-user oriented. Mer&#8217;s goal is to provide [...]]]></description>
			<content:encoded><![CDATA[<p>With the recent <a href="http://www.mail-archive.com/meego-dev@meego.com/msg10749.html" title="Mer Announcement" target="_blank">Mer Project announcement</a>, there are a lot of people confused what Mer is about. Let me try to explain.</p>
<p>Mer picks up the idea of MeeGo Core, and provides a very stripped down, mobile devices oriented Linux distribution. But this distribution is vendor oriented. Not end-user oriented. Mer&#8217;s goal is to provide a base that vendors can build on and create end-user oriented products.</p>
<p>There are two kinds of vendors. Ones providing a &#8220;hardware adaptation&#8221; and ones providing &#8220;user experience&#8221;.</p>
<p>Hardware adaptation lies below Mer, and makes Mer run on a specific hardware. Let it be an Intel CPU based PC or Netbook or an ARM SoC based mobile device or any other esoteric hardware.</p>
<p>User Experience vendor provides a layer on top of Mer, interacting with a live human user. This may be the MeeGo Tablet UX, MeeGo Netbook UX, Plasma Active, <a href="http://cordiahd.org/" title="Cordia Hildon-Desktop" target="_blank">Cordia HD</a>, MeeGo IVI or any other User Interface.</p>
<p>This allows for many combinations and decouples the effort. Of course you can be both hardware adaptation and user experience vendor, building a complete Product.</p>
<p>Have fun in the spirit of openness.</p>
<p><small><a href="http://tomasz.sterna.tv/2011/10/mer-what-is-it-all-about/">Mer &#8211; What is it all about?</a> &copy;, <a rel="license" href=""></a>.</small></p>
<p><a href="http://feedads.g.doubleclick.net/~a/yfYpaWOukJ6MFSKZ5a6Y9K1gYVg/0/da"><img src="http://feedads.g.doubleclick.net/~a/yfYpaWOukJ6MFSKZ5a6Y9K1gYVg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/yfYpaWOukJ6MFSKZ5a6Y9K1gYVg/1/da"><img src="http://feedads.g.doubleclick.net/~a/yfYpaWOukJ6MFSKZ5a6Y9K1gYVg/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/tomaszsterna/~4/FDfY_cOrWH0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tomasz.sterna.tv/2011/10/mer-what-is-it-all-about/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://tomasz.sterna.tv/2011/10/mer-what-is-it-all-about/</feedburner:origLink></item>
		<item>
		<title>Cordia Tab kernel tale</title>
		<link>http://feedproxy.google.com/~r/tomaszsterna/~3/6PgFXN5I50g/</link>
		<comments>http://tomasz.sterna.tv/2011/09/cordia-tab-kernel-tale/#comments</comments>
		<pubDate>Mon, 26 Sep 2011 16:04:02 +0000</pubDate>
		<dc:creator>Tomasz Sterna</dc:creator>
				<category><![CDATA[Cordia]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[cordia]]></category>
		<category><![CDATA[cordia tab]]></category>
		<category><![CDATA[gpl]]></category>
		<category><![CDATA[gpl violation]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[violation]]></category>

		<guid isPermaLink="false">http://tomasz.sterna.tv/?p=817</guid>
		<description><![CDATA[The Cordia Tab project has hit a major roadblock and it seems we are stuck. I&#8217;ve spent a few months searching for a tablet device manufacturer in Shenzhen, willing to release the source of the Linux kernel used on the device. Finally the manufacturer of the Dreambook W7 tablet agreed to provide the source. So [...]]]></description>
			<content:encoded><![CDATA[<p>The Cordia Tab project has hit a major roadblock and it seems we are stuck.</p>
<p>I&#8217;ve spent a few months searching for a tablet device manufacturer in Shenzhen, willing to release the source of the Linux kernel used on the device. Finally the manufacturer of the <em>Dreambook W7</em> tablet agreed to provide the source. So I got sample devices and started experimenting. I got MeeGo 1.1 to run successfully even using the binary kernel the Android runs on. So I decided to go public with the Cordia Tab project and get interested people around, waiting for the kernel source.</p>
<p>September 13th the news hit, that the manufacturer won&#8217;t release the kernel source and they are basically blackmailing us to either order a copious amount of the devices upfront or pay a few thousands USD &#8220;ransom&#8221; that will be returned after ordering even more tablets. Conditions impossible to meet for a community project with virtually no funding.</p>
<p>Searching for other manufacturers brought the same result as my previous attempts &#8211; every single manufacturer doesn&#8217;t care a button for GPL conditions and keeps the modified Linux kernel secret. Little wonder, as even giants like Dell fail to comply.</p>
<p>We cannot use the binary kernel provided for the Android build, as it lacks crucial features like devtmpfs and cgroups support. More importantly it locks us from any future upgrades &#8211; we need to be able to forward-port features to newer kernels.</p>
<p>Well&#8230; I will keep looking for the hardware, but for a moment I just got back to working on Cordia HD software, waiting to see what the future would come up with.</p>
<p><small><a href="http://tomasz.sterna.tv/2011/09/cordia-tab-kernel-tale/">Cordia Tab kernel tale</a> &copy;, <a rel="license" href=""></a>.</small></p>
<p><a href="http://feedads.g.doubleclick.net/~a/RdJ6xMzoP7ZHGoq_7ltb8s0zUdk/0/da"><img src="http://feedads.g.doubleclick.net/~a/RdJ6xMzoP7ZHGoq_7ltb8s0zUdk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/RdJ6xMzoP7ZHGoq_7ltb8s0zUdk/1/da"><img src="http://feedads.g.doubleclick.net/~a/RdJ6xMzoP7ZHGoq_7ltb8s0zUdk/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/tomaszsterna/~4/6PgFXN5I50g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tomasz.sterna.tv/2011/09/cordia-tab-kernel-tale/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://tomasz.sterna.tv/2011/09/cordia-tab-kernel-tale/</feedburner:origLink></item>
		<item>
		<title>Ayatana AppMenu under openSUSE</title>
		<link>http://feedproxy.google.com/~r/tomaszsterna/~3/zvovAsvQqcY/</link>
		<comments>http://tomasz.sterna.tv/2011/05/ayatana-appmenu-under-opensuse/#comments</comments>
		<pubDate>Tue, 03 May 2011 23:47:24 +0000</pubDate>
		<dc:creator>Tomasz Sterna</dc:creator>
				<category><![CDATA[openSUSE]]></category>
		<category><![CDATA[ayatana]]></category>
		<category><![CDATA[obs]]></category>
		<category><![CDATA[opensuse]]></category>
		<category><![CDATA[port]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[unity]]></category>

		<guid isPermaLink="false">http://tomasz.sterna.tv/?p=807</guid>
		<description><![CDATA[A lot of Ayatana components are already packaged for openSUSE in GNOME:Ayatana OBS Project. There is one missing piece there though. Appmenu for GTK+ requires patched GTK+ and openSUSE:Update brought a newer, not patched version, so appmenu-gtk with indicator-appmenu does not work. I branched the updated GTK+ to my OBS project and ported required changes. [...]]]></description>
			<content:encoded><![CDATA[<p>A lot of Ayatana components are already packaged for openSUSE in <a href="https://build.opensuse.org/project/show?project=GNOME%3AAyatana">GNOME:Ayatana OBS Project</a>. There is one missing piece there though. Appmenu for GTK+ requires patched GTK+ and openSUSE:Update brought a newer, not patched version, so appmenu-gtk with indicator-appmenu does not work.</p>
<p>I branched the updated GTK+ to <a href="https://build.opensuse.org/project/show?project=home%3Asmoku%3Aunity">my OBS project</a> and ported required changes. After updating my GTK+ with freshly built one AppMenu started working. Mandatory screenshot follows.</p>
<p><span id="more-807"></span><a href="http://tomasz.sterna.tv/uploads/2011/05/zrzut_ekranu.png"><img src="http://tomasz.sterna.tv/uploads/2011/05/zrzut_ekranu-300x168.png" alt="" title="Ayatana AppMenu and Indicators on openSUSE" width="300" height="168" class="aligncenter size-medium wp-image-808" /></a></p>
<p>My repository bases on GNOME:Ayatana, so you will need both to install:</p>
<pre>
# zypper ar http://download.opensuse.org/repositories/GNOME:/Ayatana/openSUSE_11.4/GNOME:Ayatana.repo
# zypper ar http://download.opensuse.org/repositories/home:/smoku:/unity/GNOME_Ayatana_openSUSE_11.4/home:smoku:unity.repo
# zypper install appmenu-gtk indicator-appmenu
</pre>
<p>Next add &#8216;Indicator Application Menu&#8217; applet to your panel and relogin.</p>
<p>You may want to install other indicators and add them to panel:</p>
<pre>
# zypper search indicator-
</pre>
<p><small><a href="http://tomasz.sterna.tv/2011/05/ayatana-appmenu-under-opensuse/">Ayatana AppMenu under openSUSE</a> &copy;, <a rel="license" href=""></a>.</small></p>
<p><a href="http://feedads.g.doubleclick.net/~a/4X-Q_HYUNYP1yopn1UYit-jJKl8/0/da"><img src="http://feedads.g.doubleclick.net/~a/4X-Q_HYUNYP1yopn1UYit-jJKl8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/4X-Q_HYUNYP1yopn1UYit-jJKl8/1/da"><img src="http://feedads.g.doubleclick.net/~a/4X-Q_HYUNYP1yopn1UYit-jJKl8/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/tomaszsterna/~4/zvovAsvQqcY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tomasz.sterna.tv/2011/05/ayatana-appmenu-under-opensuse/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://tomasz.sterna.tv/2011/05/ayatana-appmenu-under-opensuse/</feedburner:origLink></item>
		<item>
		<title>Home directory encryption++ under openSUSE</title>
		<link>http://feedproxy.google.com/~r/tomaszsterna/~3/aP4PQ2Bd6qc/</link>
		<comments>http://tomasz.sterna.tv/2011/04/home-directory-encryption-under-opensuse/#comments</comments>
		<pubDate>Wed, 27 Apr 2011 02:01:13 +0000</pubDate>
		<dc:creator>Tomasz Sterna</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[openSUSE]]></category>
		<category><![CDATA[advanced]]></category>
		<category><![CDATA[cryptconfig]]></category>
		<category><![CDATA[cryptsetup]]></category>
		<category><![CDATA[disk]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[home]]></category>
		<category><![CDATA[luks]]></category>
		<category><![CDATA[manual]]></category>
		<category><![CDATA[mmc]]></category>
		<category><![CDATA[opensuse]]></category>
		<category><![CDATA[physical key]]></category>
		<category><![CDATA[steroids]]></category>

		<guid isPermaLink="false">http://tomasz.sterna.tv/?p=790</guid>
		<description><![CDATA[While setting up a new laptop I decided it&#8217;s finally time to encrypt my $HOME. I don&#8217;t want to encrypt the whole /home partition, because I don&#8217;t like to watch the boot process of my computer waiting for the moment it wants to mount it and asks me for the disk encryption password. Then wait [...]]]></description>
			<content:encoded><![CDATA[<p>While setting up a new laptop I decided it&#8217;s finally time to encrypt my $HOME.</p>
<p>I don&#8217;t want to encrypt the whole /home partition, because I don&#8217;t like to watch the boot process of my computer waiting for the moment it wants to mount it and asks me for the disk encryption password. Then wait some more and enter the user password. I want to use just one password for both and let the login process do the magic for me.</p>
<p>Actually getting this setup under <a href="http://www.opensuse.org/">openSUSE</a> is as easy as going to <em>YaST -&gt; User management -&gt; Your user -&gt; Edit -&gt; Details</em> and checking &#8220;Use encrypted home directory&#8221; checkbox. But I didn&#8217;t go this way for three reasons:</p>
<ul>
<li>I wanted to have my encryption key on a separate device (explanation at the next paragraph)</li>
<li>I wanted to have a strong grip on what is going on under the hood in case of emergency (ie. system crash recovery)</li>
<li>The automagic GUI simply did not work in my case ;-)</li>
</ul>
<p>My laptop has an MMC reader, so I wanted to utilize <a href="http://home.coming.dk/index.php/encrypted_home_partition_using_luks_pam_">Jaervosz idea of having disk encryption keys in my pocket</a> every time I need to leave the computer unattended. This gives a very good physical keys analogy. Also might be useful in countries <a href="http://xkcd.com/538/">you are required by law to reveal your password</a> to certain services. It&#8217;s easily verifiable that you gave the real password by logging to the machine. But you cannot be expected to reveal key file content of the MMC that got &#8220;damaged&#8221; or lost. (Of course it&#8217;s crucial to have a backup of the MMC content in some safe place.) I use a small (256MB) and quite fast (Class 4) MicroSD card I had spare left after a mobile phone.</p>
<p>Let&#8217;s start with an easy bit and encrypt swap first. I&#8217;m not that paranoid to fear of data leaking through swap, but this gives a nice checkpoint before following with putting your crucial $HOME data into a box you may be unable to open later. ;-)</p>
<p><span id="more-790"></span>Install some packages you will need:</p>
<pre>
# zypper install cryptsetup cryptconfig pam_mount
</pre>
<p>Put one line in <tt>/etc/crypttab</tt> file:</p>
<pre>
swap /dev/sda5 /dev/urandom swap,cipher=aes-cbc-essiv:sha256
</pre>
<p>and replace swap device entry in your <tt>/etc/fstab</tt> with <tt>/dev/mapper/swap</tt> like this:</p>
<pre>
/dev/mapper/swap   swap   swap   defaults   0 0
[...]
</pre>
<p>Add <tt>boot.crypto</tt> script to boot level:</p>
<pre>
# chkconfig --add boot.crypto
boot.crypto   0:off  1:off  2:off  3:off  4:off  5:off  6:off  B:on
</pre>
<p>Now reboot. You should have a <tt>/dev/mapper/swap</tt> encrypted device being used as swap:</p>
<pre>
# ls /dev/mapper
control  swap
# swapon -s
Filename		Type		Size		Used	Priority
/dev/mapper/swap	partition	10490408	0	-1
</pre>
<p>Congratulations. You may now follow with encrypting your real data.</p>
<p>Setting up LUKS encrypted loop device, pam_mount configs, etc. may be a bit cumbersome while doing everything by hand. Fortunately there is a tool to ease the pain &#8211; enter <tt>cryptconfig</tt>. It has a lot of tools off which we need to use only few.</p>
<p>First mount MMC on <tt>/mmc</tt> directory:</p>
<pre>
# mkdir /mmc
# mount /dev/mmcblk0p1 /mmc
</pre>
<p>Next you need to create an encrypted disk image file with associated key file. Unfortunately when I wanted to create a properly big image, <tt>cryptconfig</tt> complained that it won&#8217;t fit on my partition so I ended up creating a small one and enlarging it after. (BTW, You may want to use your own username instead of &#8220;user&#8221; ;-) Use your user password when asked for.</p>
<pre>
# cryptconfig create-image --key-file /mmc/user-home.key /home/user.img 20000
# cryptconfig enlarge-image --key-file /mmc/user-home.key /home/user.img 200000
</pre>
<p>Next add pam_mount to PAM and create its configuration file:</p>
<pre>
# cryptconfig pm-enable --key-file /mmc/user-home.key user
</pre>
<p>Next you need to tweak pam_mount configuration. I don&#8217;t want to mount <tt>/mmc</tt> content via <tt>fstab</tt> because that would make my laptop unbootable with MMC removed. Instead I engage pam_mount to do this for me. Add the following line just before the last line mounting your home in <tt>/etc/security/pam_mount.conf.xml</tt> file:</p>
<pre>
&lt;volume fstype="auto" user="user" path="/dev/mmcblk0p1" mountpoint="/mmc"/&gt;
</pre>
<p>But having a removable device connected and not present in <tt>fstab</tt> may cause that Volume Manager will want to mount it under removable <tt>/media</tt>. To mitigate this, add the following line to <tt>/etc/fstab</tt>:</p>
<pre>
/dev/mmcblk0p1   /mmc   auto   noauto   0 0
</pre>
<p>That&#8217;s it. You have completed the setup. Now you just need to fix your home directory image content permissions (it&#8217;s just an empty filesystem owned by root) and transfer your data.</p>
<p>Kill your current X session by tapping Ctrl-Alt-Backspace twice or reboot again. Log in to your account and you should see your desktop environment complaining it has no access to your home directory. Good &#8211; this means your encrypted home directory was mounted properly. Let&#8217;s fix it.</p>
<p>Switch to text mode console (Ctrl-Alt-F1), login as root and fix your home directory permissions:</p>
<pre>
# chown -R user:users ~user
</pre>
<p>Next the tricky part &#8211; transferring your data:</p>
<pre>
# mount -o bind /home /mnt
# rsync -rvaP /mnt/user/ /home/user/
</pre>
<p>After killing X again log in and verify that your desktop works correctly. After that you may cleanup by removing <tt>/mnt/user</tt> content:</p>
<pre>
# rm -rf /mnt/smoku/*
# rm -rf /mnt/smoku/.[a-zA-Z0-9]*
# umount /mnt
</pre>
<p>Congratulations. You have an encrypted home directory mounted on login, using a &#8220;physical key&#8221; in a form of a Memory Card. Reboot. :-)</p>
<p>P.S. You may want to make some other areas like <tt>/tmp</tt> inaccessible to anyone getting hands on your computer. I solved it by mounting <tt>/tmp</tt> with <tt>tmpfs</tt>. But that&#8217;s something for a different article.</p>
<p><small><a href="http://tomasz.sterna.tv/2011/04/home-directory-encryption-under-opensuse/">Home directory encryption++ under openSUSE</a> &copy;, <a rel="license" href=""></a>.</small></p>
<p><a href="http://feedads.g.doubleclick.net/~a/zSeiea693dsctyaopjHYfjppNUs/0/da"><img src="http://feedads.g.doubleclick.net/~a/zSeiea693dsctyaopjHYfjppNUs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/zSeiea693dsctyaopjHYfjppNUs/1/da"><img src="http://feedads.g.doubleclick.net/~a/zSeiea693dsctyaopjHYfjppNUs/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/tomaszsterna/~4/aP4PQ2Bd6qc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tomasz.sterna.tv/2011/04/home-directory-encryption-under-opensuse/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://tomasz.sterna.tv/2011/04/home-directory-encryption-under-opensuse/</feedburner:origLink></item>
		<item>
		<title>Lua 5.1.4-3 for CentOS with fixed io.popen</title>
		<link>http://feedproxy.google.com/~r/tomaszsterna/~3/6ZjQAzYhkAI/</link>
		<comments>http://tomasz.sterna.tv/2011/04/lua-5-1-4-3-for-centos-with-fixed-io-popen/#comments</comments>
		<pubDate>Sun, 10 Apr 2011 16:31:31 +0000</pubDate>
		<dc:creator>Tomasz Sterna</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[io.popen]]></category>
		<category><![CDATA[Lua]]></category>
		<category><![CDATA[luarocks]]></category>

		<guid isPermaLink="false">http://tomasz.sterna.tv/?p=785</guid>
		<description><![CDATA[Today I needed to install luarocks on a CentOS 4 machine to get some additional Lua packages and I got hit by: Your version of Lua does not support io.popen, which is required by LuaRocks. Please check your Lua installation. Which is strange, because I had a fresh install of lua-5.1.4-2.el4.rf from RpmForge. Rebuilding the [...]]]></description>
			<content:encoded><![CDATA[<p>Today I needed to install luarocks on a CentOS 4 machine to get some additional Lua packages and I got hit by:<br />
<code><br />
Your version of Lua does not support io.popen,<br />
which is required by LuaRocks. Please check your Lua installation.<br />
</code><br />
Which is strange, because I had a fresh install of <tt>lua-5.1.4-2.el4.rf</tt> from RpmForge.</p>
<p>Rebuilding the package didn&#8217;t help, so I started investigation. It turned out that the lua package SPEC &#8220;fixed&#8221; the CFLAGS= line in Makefile incorrectly, omitting $(MYCFLAGS) variable which is crucial to set POSIX support on Linux, thus most of POSIX support (ie. popen) was just skipped.</p>
<p>You will find fixed Lua and built LuaRocks packages at: <a href="http://codex.xiaoka.com/pub/packages/redhat/">http://codex.xiaoka.com/pub/packages/redhat/</a>. Added bonus: Lua is patched to 5.1.4-3.</p>
<p><small><a href="http://tomasz.sterna.tv/2011/04/lua-5-1-4-3-for-centos-with-fixed-io-popen/">Lua 5.1.4-3 for CentOS with fixed io.popen</a> &copy;, <a rel="license" href=""></a>.</small></p>
<p><a href="http://feedads.g.doubleclick.net/~a/BMb9cGsjNazzZnAz8gAh3EoPBiI/0/da"><img src="http://feedads.g.doubleclick.net/~a/BMb9cGsjNazzZnAz8gAh3EoPBiI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/BMb9cGsjNazzZnAz8gAh3EoPBiI/1/da"><img src="http://feedads.g.doubleclick.net/~a/BMb9cGsjNazzZnAz8gAh3EoPBiI/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/tomaszsterna/~4/6ZjQAzYhkAI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tomasz.sterna.tv/2011/04/lua-5-1-4-3-for-centos-with-fixed-io-popen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://tomasz.sterna.tv/2011/04/lua-5-1-4-3-for-centos-with-fixed-io-popen/</feedburner:origLink></item>
		<item>
		<title>Cordia on Ideapad</title>
		<link>http://feedproxy.google.com/~r/tomaszsterna/~3/a2IVyjTuXt4/</link>
		<comments>http://tomasz.sterna.tv/2011/02/cordia-on-ideapad/#comments</comments>
		<pubDate>Thu, 24 Feb 2011 10:39:20 +0000</pubDate>
		<dc:creator>Tomasz Sterna</dc:creator>
				<category><![CDATA[Announcement]]></category>
		<category><![CDATA[Cordia]]></category>
		<category><![CDATA[cordia]]></category>
		<category><![CDATA[desktop]]></category>
		<category><![CDATA[hildon]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Maemo]]></category>
		<category><![CDATA[meego]]></category>
		<category><![CDATA[mobile]]></category>

		<guid isPermaLink="false">http://tomasz.sterna.tv/?p=779</guid>
		<description><![CDATA[After a lot of hard work, Cordia Project has finally some tangible results. Cordia on Ideapad &#169;, .]]></description>
			<content:encoded><![CDATA[<p>After a lot of hard work, <a href="http://codex.xiaoka.com/wiki/cordia:start">Cordia Project</a> has finally some tangible results.</p>
<p><object width="510" height="320"><param name="movie" value="http://www.youtube.com/v/s9f_qIsqdxg?fs=1&amp;hl=pl_PL&amp;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/s9f_qIsqdxg?fs=1&amp;hl=pl_PL&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="510" height="320"></embed></object></p>
<p><small><a href="http://tomasz.sterna.tv/2011/02/cordia-on-ideapad/">Cordia on Ideapad</a> &copy;, <a rel="license" href=""></a>.</small></p>
<p><a href="http://feedads.g.doubleclick.net/~a/A53-3upD4E-FBIczxQXPTNhWzWQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/A53-3upD4E-FBIczxQXPTNhWzWQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/A53-3upD4E-FBIczxQXPTNhWzWQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/A53-3upD4E-FBIczxQXPTNhWzWQ/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/tomaszsterna/~4/a2IVyjTuXt4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tomasz.sterna.tv/2011/02/cordia-on-ideapad/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://tomasz.sterna.tv/2011/02/cordia-on-ideapad/</feedburner:origLink></item>
		<item>
		<title>Bienvenidos openSUSE</title>
		<link>http://feedproxy.google.com/~r/tomaszsterna/~3/E0PCZ9vF3dE/</link>
		<comments>http://tomasz.sterna.tv/2011/01/bienvenidos-opensuse/#comments</comments>
		<pubDate>Mon, 03 Jan 2011 18:02:04 +0000</pubDate>
		<dc:creator>Tomasz Sterna</dc:creator>
				<category><![CDATA[Mix]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://tomasz.sterna.tv/?p=762</guid>
		<description><![CDATA[Hearing many good things about openSUSE at the MeeGo Conference and being a user of their technologies (MeeGo uses OBS &#8211; openSUSE Build Service extensively), I decided to give openSUSE another shot and installed it a few days after I got back to Madrid, replacing Ubuntu &#8211; long time main system on my laptop. It [...]]]></description>
			<content:encoded><![CDATA[<p>Hearing many good things about <a href="http://www.opensuse.org/">openSUSE</a> at the MeeGo Conference and being a user of their technologies (MeeGo uses OBS &#8211; openSUSE Build Service extensively), I decided to give openSUSE another shot and installed it a few days after I got back to Madrid, replacing Ubuntu &#8211; long time main system on my laptop.</p>
<p>It was over a month ago and, oh boy, was it a good change! :-) Last time I tried SuSE several years ago I was hit by RPM-hell badly, reverted to Gentoo and never looked back. Then I grew to binary packages distribution and switched to Ubuntu.</p>
<p>When Nokia decided to ditch Maemo and its Debian based underlying technologies I wasn&#8217;t happy. Then I needed to package some things for my MeeGo ports, met <a href="https://build.opensuse.org/">OBS</a> and was amazed how great tool it is. Then I realized how good packaging tool RPM became during the years.</p>
<p>Having openSUSE as my main system gives me the solid base of stable and well tested system and access to bleeding edge software in the areas I want. <a href="https://build.opensuse.org/">OBS</a> builds the most <a href="https://build.opensuse.org/project/show?project=GNOME%3ASTABLE%3A2.30">recent GNOME</a> or web servers not only for the running (Factory) distribution but for the stable trees too. So I have the flexibility of mixed stable+experimental system I was used to running Gentoo, without the hassle of building it myself.</p>
<p>There is one more thing &#8211; openSUSE developers does not feel that they know better than the upstream developers and does not ditch features users are expecting to find in their desktop environment, replacing them with <a href="https://launchpad.net/indicator-applet">custom, unstable and incompatible thingies</a>. You still have this vanilla feeling using openSUSE &#8211; with just a bit of chameleon branding sprinkled here and there.</p>
<p><small><a href="http://tomasz.sterna.tv/2011/01/bienvenidos-opensuse/">Bienvenidos openSUSE</a> &copy;, <a rel="license" href=""></a>.</small></p>
<p><a href="http://feedads.g.doubleclick.net/~a/2t-y2UqrgEDoSDKxViWiXt0piT4/0/da"><img src="http://feedads.g.doubleclick.net/~a/2t-y2UqrgEDoSDKxViWiXt0piT4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/2t-y2UqrgEDoSDKxViWiXt0piT4/1/da"><img src="http://feedads.g.doubleclick.net/~a/2t-y2UqrgEDoSDKxViWiXt0piT4/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/tomaszsterna/~4/E0PCZ9vF3dE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tomasz.sterna.tv/2011/01/bienvenidos-opensuse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://tomasz.sterna.tv/2011/01/bienvenidos-opensuse/</feedburner:origLink></item>
		<item>
		<title>MeeGo for Archos Generation 7</title>
		<link>http://feedproxy.google.com/~r/tomaszsterna/~3/4ycxmfeetro/</link>
		<comments>http://tomasz.sterna.tv/2010/12/meego-for-archos-generation-7/#comments</comments>
		<pubDate>Tue, 28 Dec 2010 15:37:41 +0000</pubDate>
		<dc:creator>Tomasz Sterna</dc:creator>
				<category><![CDATA[Cordia]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Archos]]></category>
		<category><![CDATA[ARM]]></category>
		<category><![CDATA[meego]]></category>
		<category><![CDATA[porting]]></category>

		<guid isPermaLink="false">http://tomasz.sterna.tv/?p=764</guid>
		<description><![CDATA[After the Snapdragon fiasco I sold my Dell Streak and started working on MeeGo port for Archos 5it. Porting the MeeGo Core was very easy. I already had experience with building MeeGo images, so the only thing to get was Archos specific knowledge. openAOS is a very good resource and I had SDE firmware with [...]]]></description>
			<content:encoded><![CDATA[<p>After <abbr title="No GLES libraries makes MeeGo port impossible" style="border-bottom: 1px dashed darkred">the Snapdragon fiasco</abbr> I sold my <a href="http://codex.xiaoka.com/wiki/meego:streak">Dell Streak</a> and started working on <a href="http://codex.xiaoka.com/wiki/meego:archos">MeeGo port for Archos 5it</a>.</p>
<p>Porting the MeeGo Core was very easy. I already had experience with building MeeGo images, so the only thing to get was Archos specific knowledge. <a href="http://www.openaos.org/">openAOS</a> is a very good resource and I had <a href="http://www.archos.com/products/ta/archos_5it/dualos.html">SDE firmware</a> with openAOS multi-bootloader installed in few hours. It took me a few hours more preparing Archos specific firmware and configuration packages and building the image. Also the device kernel needed a little fix to build fine under CodeSourcery toolchain. And there I had it &#8211; <a href="http://codex.xiaoka.com/pub/meego/archos/">MeeGo Core on Archos</a> running omapfb X11 driver.</p>
<p><span id="more-764"></span>The next thing required for MeeGo is the 3D acceleration. The UI uses it for nice animations and will not work without one. Unfortunately the SGX bundle for the stock device did not work for me at all. Besides that, BuBu that got it working reported problems with scrambled font rendering.</p>
<p>So I decided to try another approach. <a href="http://repo.meego.com/MeeGo/builds/trunk/daily/non-oss/repos/armv7l/packages/armv7l/">MeeGo non-oss repository</a> has the SGX driver and GLES libraries available for N900 and Beagleboard. Archos 5it uses the same OMAP3430 with PowerVR as N900 so it should be able to use the MeeGo provided binaries. The only thing missing in Archos kernel was the DRI2 kernel level glue layer for PoverVR. So I decided to backport drivers/gpu/pvr from recent MeeGo 2.6.35.3 Linux kernel to Archos provided 2.6.27.10. It required support for OMAP clock notifications, so I backported these too. Using <a href="http://gitorious.org/~smoku/archos-buildroots/smokus-gen7">my kernel</a> and modules I was able to get fbdev-sgx X11 driver and GLES acceleration up and running.</p>
<p>Next step was building MeeGo Handset UI image to test the now-working Core.<br />
<object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/JI87fg1BgZI?fs=1&amp;hl=pl_PL&amp;rel=0&amp;color1=0x5d1719&amp;color2=0xcd311b"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/JI87fg1BgZI?fs=1&amp;hl=pl_PL&amp;rel=0&amp;color1=0x5d1719&amp;color2=0xcd311b" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>
<p>My Archos kernel binary and MeeGo Core image with SGX acceleration working is available at <a href="http://codex.xiaoka.com/pub/meego/archos/">http://codex.xiaoka.com/pub/meego/archos/</a></p>
<p><small><a href="http://tomasz.sterna.tv/2010/12/meego-for-archos-generation-7/">MeeGo for Archos Generation 7</a> &copy;, <a rel="license" href=""></a>.</small></p>
<p><a href="http://feedads.g.doubleclick.net/~a/LDOWAtAVcMdGVWA9y8RmssCVhLU/0/da"><img src="http://feedads.g.doubleclick.net/~a/LDOWAtAVcMdGVWA9y8RmssCVhLU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/LDOWAtAVcMdGVWA9y8RmssCVhLU/1/da"><img src="http://feedads.g.doubleclick.net/~a/LDOWAtAVcMdGVWA9y8RmssCVhLU/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/tomaszsterna/~4/4ycxmfeetro" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://tomasz.sterna.tv/2010/12/meego-for-archos-generation-7/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://tomasz.sterna.tv/2010/12/meego-for-archos-generation-7/</feedburner:origLink></item>
	</channel>
</rss>

