<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
 
 <title type="text" xml:lang="en">Diogo Gomes Blog</title>
 <generator uri="http://jekyllrb.com/">Jekyll</generator>
 <icon>http://images/layout/dgomes.ico</icon>
 <link type="application/atom+xml" href="http://atom.xml" rel="self"/>
 <link type="text" href="http://http://diogogomes.com" rel="alternate"/>
 <updated>2012-04-15T16:26:57+01:00</updated>
 <id>http://diogogomes.com</id>
 <author>
   <name>Diogo Gomes</name>
   <uri>http://diogogomes.com</uri>
 </author>

 
 <entry>
   <title>The Contour ROAM Action Cam</title>
   <link href="http://diogogomes.com/2012/04/15/contour-actioncam"/>
   <published>2012-04-15T15:51:31+01:00</published>
   <id>http://diogogomes.com/2012/04/15/contour-actioncam</id>
   <content type="html">&lt;p&gt;While my blog hasn't been getting any action, I've gotten myself an action cam to record my MTB rides.&lt;/p&gt;

&lt;iframe src=&quot;http://rcm-uk.amazon.co.uk/e/cm?lt1=_blank&amp;bc1=FFFFFF&amp;IS2=1&amp;npa=1&amp;bg1=FFFFFF&amp;fc1=3C3C3C&amp;lc1=7E7E7E&amp;t=diogomblo-21&amp;o=2&amp;p=8&amp;l=as1&amp;m=amazon&amp;f=ifr&amp;ref=tf_til&amp;asins=B005GLFSYQ&quot; style=&quot;width:120px;height:240px;&quot; scrolling=&quot;no&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; frameborder=&quot;0&quot; class=&quot;alignright&quot;&gt;&lt;/iframe&gt;


&lt;p&gt;Two years ago my brother bought a &lt;a href=&quot;http://gdgt.com/drift-innovation/x170/&quot;&gt;Drift x170&lt;/a&gt; and we have since recorded all of our bikes rides. The Drift x170 is a non HD camera, but even so we recorded several hours of video which we still enjoy to watch back today.&lt;/p&gt;

&lt;p&gt;Fast forward to our days. To record video in non HD format is the equivalent of taping music in a magnetic tape in the age of CD's. It was therefore about time to upgrade our videos to HD. And since my brother has recently moved to France, it was up to me to shell out on a new Action Cam to bring along in &lt;a href=&quot;http://www.endomondo.com/teams/525955&quot;&gt;our&lt;/a&gt; MTB rides.&lt;/p&gt;

&lt;iframe src=&quot;http://player.vimeo.com/video/38332357?color=ffffff&quot; width=&quot;300&quot; height=&quot;169&quot; frameborder=&quot;0&quot; class=&quot;alignleft&quot; webkitAllowFullScreen mozallowfullscreen allowFullScreen&gt;&lt;/iframe&gt;


&lt;p&gt;Today's choice are mostly between two brands: Contour and GoPro. Each brand has several offers, but ruling out the most expensive ones, it was either the &lt;a href=&quot;http://contour.com/products/contour-roam&quot;&gt;Contour ROAM&lt;/a&gt; or the &lt;a href=&quot;http://gopro.com/hd-hero-cameras/&quot;&gt;GoPro HD Hero&lt;/a&gt;. Both offers are quite similar technically wise, both record HD with a very decent framerate, and batteries last about the same time. What I found different was the form factor, the Contour can easily be fitted to an helmet without disturbing too much the center of mass (which as my brother learned from the Drift x170, is something that should not be forgotten). Price wise, they are sold in the same price range, but since I found an Amazon sale of the ContourROAM it instantly became the best :)&lt;/p&gt;

&lt;p&gt;The image quality is great. The week I got the camera I immediately took it for a ride on a short route in &lt;a href=&quot;http://www.bioria.com/&quot;&gt;Bio Ria&lt;/a&gt;. You can see the quality of the pictures on the vimeo movie in this post. Furthermore the camera is quite sturdy and has already gotten some rain on. Overall it has been a great purchase so far, and I'm looking forward to record some cool HD videos in the months to come.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://kanal.meo.pt/140777&quot; target=&quot;_blank&quot; title=&quot;Canal n&amp;ordm; 140777 &amp;#8211; Rolando na Ria no MEO Kanal&quot;&gt;&lt;img src=&quot;http://kanal.meo.pt/badges/140777&quot; title=&quot;Canal n&amp;ordm; 140777 &amp;#8211; Rolando na Ria no MEO Kanal&quot; alt=&quot;Canal n&amp;ordm; 140777 &amp;#8211; Rolando na Ria no MEO Kanall&quot; class=&quot;alignright&quot;/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Meanwhile, you can check old videos and some new ones online on &lt;a href=&quot;https://vimeo.com/dgomes/&quot;&gt;Vimeo&lt;/a&gt;, or if your lucky enough to have FTTH MEO service on channel 140777.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Linux kernel 2.6.38.4 for the Iomega iConnect</title>
   <link href="http://diogogomes.com/2011/05/02/iconnect-linux-2-6-38"/>
   <published>2011-05-02T12:21:31+01:00</published>
   <id>http://diogogomes.com/2011/05/02/iconnect-linux-2-6-38</id>
   <content type="html">&lt;p&gt;After a long &lt;a href=&quot;http://diogogomes.com/2011/01/31/binary-kernel-iconnect-rc1&quot;&gt;hiatus&lt;/a&gt;, I'm back with the latest version of the linux kernel (2.6.38.4) for the iomega iconnect.&lt;/p&gt;

&lt;p&gt;This new kernel brings several improvements to the previous ones, since it improves support for Marvell's Kirkwood platform (on which iConnect is built upon) and finally includes in the main kernel the wireless driver for the RaLink RT3090 Wireless 802.11n 1T/1R PCIe which is built in the iConnect.&lt;/p&gt;

&lt;p&gt;Without further due, here are the files:&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;http://dl.dropbox.com/u/991907/iconnect/linux-2.6.38.4-iconnect-modules.tar.gz&quot;&gt;Kernel Modules&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;http://dl.dropbox.com/u/991907/iconnect/uImage-2.6.38.4-iconnect&quot;&gt;Kernel uImage&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;http://dl.dropbox.com/u/991907/iconnect/patch-2.6.38.4-iconnect&quot;&gt;Kernel patch (which can be applied to vanilla 2.6.38.4)&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;http://dl.dropbox.com/u/991907/iconnect/config-2.6.38.4-iconnect&quot;&gt;Kernel configuration used to build the binary kernel above &lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</content>
 </entry>
 
 <entry>
   <title>New Blog Engine</title>
   <link href="http://diogogomes.com/2011/03/08/new-engine"/>
   <published>2011-03-08T00:05:04+00:00</published>
   <id>http://diogogomes.com/2011/03/08/new-engine</id>
   <content type="html">&lt;p&gt;Guess what, I wasn't happy with &quot;just&quot; changing themes... and decided to switch theme again along side with a new blogging engine. Wordpress is great and all, but required me to keep constant attention (keeping up with security updates), and overall performance was lacking (even though I used the great Super Cache plugin).&lt;/p&gt;

&lt;p&gt;Since moving to a low cost &lt;a href=&quot;http://www.bigbrainhost.com/&quot;&gt;VPS provider&lt;/a&gt; (found them through &lt;a href=&quot;http://www.lowendbox.com/&quot;&gt;lowendbox&lt;/a&gt; ) which is capped to 256MB, I've been struggling to keep my resource usage controlled. This has led me to survey alternative blog engines that are less resource savvy than Wordpress running on LAMP, one of such alternatives grab my attention.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://jekyllrb.com/&quot;&gt;Jekyll&lt;/a&gt; is a blog-aware, static site generator in Ruby that generates your blog from plain text files (no DB needed). Since I hadn't messed with Ruby before, I got my excuse to finally jump on the bandwagon.&lt;/p&gt;

&lt;p&gt;Truth be told, the last weeks have been more about CSS3 (and some HTML5) then Ruby and Jekyll. In the process I've forked &lt;a href=&quot;https://github.com/dgomes/bibjekyll&quot;&gt;bibjekyll&lt;/a&gt; in order to generate my CV from my .bib files instead of copy&amp;amp;pasting my papers into the CV page.&lt;/p&gt;

&lt;p&gt;With the new platform up, I hope to dedicate more time (of my non existing one) to other projects that have been left hanging for the last months.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>New Theme</title>
   <link href="http://diogogomes.com/2011/02/14/new-theme-2"/>
   <published>2011-02-14T00:05:04+00:00</published>
   <id>http://diogogomes.com/2011/02/14/new-theme-2</id>
   <content type="html">&lt;p&gt;This blog is now more then 4 years old, and was in dear need of some shake ups...&lt;/p&gt;

&lt;p&gt;It's true that I don't post here that often, with a new semester that started just last week, with a brand new class on Information Systems Infra-Structures that I'm now preparing, with new research projects just kicking in, and of-course with my ~20month year old daughter that requires full attention from everyone in the house, it's been hard to publish new posts that have been lining in the pipeline.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.diogogomes.com/projects/simplefy-wordpress-theme/&quot;&gt;&lt;img class=&quot;alignleft fit_image&quot; title=&quot;Simplefy Screenshot&quot; src=&quot;http://themes.svn.wordpress.org/simplefy/1.0/screenshot.png&quot; alt=&quot;Simplefy Screenshot&quot; /&gt;&lt;/a&gt;Nonetheless, I've started in December (yes that long ago!) working in a new wordpress theme to update this blog. The theme is based on &lt;a href=&quot;http://wordpressinfo.com/2010/12/11/automattic-introduce-wordpress-toolbox-theme/&quot;&gt;Automattic Toolbox&lt;/a&gt; which is a semantic, HTML5, canvas in which I could fit a very simple theme I found at &lt;a href=&quot;http://www.coolwebtemplates.net/&quot;&gt;coolwebtemplates.net&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The theme name is very obvious: &lt;a href=&quot;http://www.diogogomes.com/projects/simplefy-wordpress-theme/&quot;&gt;Simplefy&lt;/a&gt;. It's a trick word with &quot;&lt;em&gt;Simple&lt;/em&gt;&quot; and 5 (of HTML5).&lt;/p&gt;

&lt;p&gt;In addition to the new theme, I've updated the RSS feed url. So please, if you are reading this blog through an RSS please make sure to update the url to http://www.diogogomes.com/feed/.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Binary Kernel and Modules for the Iomega iConnect running Linux Debian</title>
   <link href="http://diogogomes.com/2011/01/31/binary-kernel-iconnect-rc1"/>
   <published>2011-01-31T11:21:31+00:00</published>
   <id>http://diogogomes.com/2011/01/31/binary-kernel-iconnect-rc1</id>
   <content type="html">&lt;p&gt;In the last months after I've published an howto on &lt;a href=&quot;http://www.diogogomes.com/2010/12/23/custom-kerne-iconnect/trackback/&quot;&gt;how to customize the Linux kernel for the Iomega iConnect&lt;/a&gt;, I've been getting lots of comments from people who would like to have a go at installing it, but which are not proficient Linux users.&lt;/p&gt;

&lt;p&gt;In order to assist those situations, I'm hereby making it available binary versions of Linux 2.6.37 configured for the Iomega iConnect, as well as the source code used to compile those binaries.&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;http://dl.dropbox.com/u/991907/iconnect/linux-2.6.37-iconnect-modules.tar.gz&quot;&gt;Kernel Modules&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;http://dl.dropbox.com/u/991907/iconnect/uImage-2.6.37-iconnect&quot;&gt;Kernel uImage&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;http://dl.dropbox.com/u/991907/iconnect/patch-iconnect-2.6.37-rc1&quot;&gt;Kernel patch (which can be applied to vanilla 2.6.37)&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;Kernel config (missing) - when preparing this post I ran a &lt;em&gt;make mrproper&lt;/em&gt; without previously saving the kernel config... damm :( as soon as I find some spare time, I'll reconfigure everything and post the config&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Now for the &quot;extras&quot;:&lt;/p&gt;


&lt;h4&gt;How to compile the wireless card driver (RaLink RT3090 Wireless 802.11n 1T/1R PCIe)&lt;/h4&gt;


&lt;p&gt;The driver is available at &lt;a href=&quot;http://www.ralinktech.com/support.php?s=2&quot;&gt;Ralink's website&lt;/a&gt; (RT3090PCIe) and can be compile with:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;make &lt;span class=&quot;nv&quot;&gt;ARCH&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;arm &lt;span class=&quot;nv&quot;&gt;CROSS_COMPILE&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;../arm-2010q1/bin/arm-none-eabi- &lt;span class=&quot;nv&quot;&gt;LINUX_SRC&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;/usr/src/linux
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;As of the current version of the driver, you will run into some compilation errors. You should activate:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;&lt;span class=&quot;s2&quot;&gt;&amp;quot;cfg80211&amp;quot;&lt;/span&gt;
&lt;span class=&quot;s2&quot;&gt;&amp;quot;EEPROM 93CX6&amp;quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;in kernel config but must disable&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;cfg80211 in os/linux/config.ml &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;HAS_CFG80211_SUPPORT&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;n&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;Hopefully newer versions will fix this issue and AFAIK Linux 2.6.38 will include this driver&lt;/p&gt;

&lt;p&gt;A binary version of the driver (compatible with the previous kernel) is available &lt;a href=&quot;http://dl.dropbox.com/u/991907/iconnect/rt3090sta.ko&quot;&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You also need to place file &lt;em&gt;RT2860STA.dat&lt;/em&gt; (found in the driver tar.gz) into &lt;em&gt;/etc/Wireless/RT2860STA/RT2860STA.dat&lt;/em&gt;&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Customizing a Kernel for the Iomega iConnect</title>
   <link href="http://diogogomes.com/2010/12/23/custom-kerne-iconnect"/>
   <published>2010-12-23T17:41:16+00:00</published>
   <id>http://diogogomes.com/2010/12/23/custom-kerne-iconnect</id>
   <content type="html">&lt;p&gt;If you have followed my &lt;a href=&quot;http://www.diogogomes.com/2010/11/14/debian-install-iconnect/&quot;&gt;previous post&lt;/a&gt; on how to install Debian to the Iomega iConnect Wireless Data Station you have been dying to read this follow-up post on how to take you iConnect to the next level by customizing the kernel and finally controlling the buttons and leds in the device (not to mention making use of the wireless card).&lt;/p&gt;




&lt;h4&gt;Setting up a cross-compile environment&lt;/h4&gt;




&lt;p&gt;First thing you need is to setup an environment in which you will cross compile the kernel and everything else that needs to go into the iConnect. Don't take me wrong here, the iConnect is a great device and all, but it just can't compete with your state of the art laptop/workstation ;)&lt;/p&gt;




&lt;p&gt;In my case I've setup a virtual machine with Ubuntu 10.10 32bits, but any Linux distribution will work as long as it is 32bits&lt;/p&gt;




&lt;p&gt;Second step, was to setup a cross-compiler. The requirement on using a 32bits Linux is related to the cross-compiler I've chosen, which was the Sourcery G++ Lite 2010q1-188 for ARM EABI. You can find it &lt;a href=&quot;http://www.codesourcery.com/sgpp/lite/arm/portal/release1294&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;Next I setup everything in /usr/src. But you can use any other place in your environment, as long as you adapt the PATH's. My /usr/src looks like this:&lt;/p&gt;




&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;user@vm:/usr/src&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;ls
arm-2010q1
arm-2010q1-188-arm-none-eabi-i686-pc-linux-gnu.tar.bz2
EMCLifelineOEMSW-2.2-GPL
EMCLifelineOEMSW-2.2-GPL.zip
linux
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;




&lt;p&gt;In the linux dir you will find the vanilla kernel source code as downloaded from &lt;a href=&quot;http://kernel.org&quot;&gt;kernel.org&lt;/a&gt;&lt;/p&gt;




&lt;h4&gt;Kernel Compile&lt;/h4&gt;


&lt;p&gt;Configuring and compiling the kernel is much like a &quot;normal&quot; one, except for some extra parameters:&lt;/p&gt;




&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;make &lt;span class=&quot;nv&quot;&gt;ARCH&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;arm menuconfig
make -j4 &lt;span class=&quot;nv&quot;&gt;ARCH&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;arm &lt;span class=&quot;nv&quot;&gt;CROSS_COMPILE&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;../arm-2010q1/bin/arm-none-eabi- uImage
make -j4 &lt;span class=&quot;nv&quot;&gt;ARCH&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;arm &lt;span class=&quot;nv&quot;&gt;CROSS_COMPILE&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;../arm-2010q1/bin/arm-none-eabi- modules
make -j4 &lt;span class=&quot;nv&quot;&gt;ARCH&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;arm &lt;span class=&quot;nv&quot;&gt;CROSS_COMPILE&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;../arm-2010q1/bin/arm-none-eabi- &lt;span class=&quot;nv&quot;&gt;INSTALL_MOD_PATH&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;.. modules_install
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;




&lt;p&gt;You will find the kernel (uImage) in /usr/src/linux/arch/arm/boot/uImage and modules in /usr/src/lib. Copy everything into your iConnect (placing uImage in the /boot dir and modules in /lib). Change the uboot parameters to point to your new uImage and you are set!&lt;/p&gt;




&lt;p&gt;You might be wondering which parameters to use in your kernel config. You can find my kernel config &lt;a href=&quot;http://dl.dropbox.com/u/991907/kernel.iomega.iconnect.config&quot;&gt;here&lt;/a&gt; for 2.6.36 with the patches provided by Iomega (read below).&lt;/p&gt;




&lt;h4&gt;Patching the kernel&lt;/h4&gt;


&lt;p&gt;Now that we know how to compile a kernel, lets figure how to control iConnect leds and buttons.&lt;/p&gt;




&lt;p&gt;If you payed any attention to my /usr/src/ listing you have probably noticed the file EMCLifelineOEMSW-2.2-GPL.zip. This file is part of Iomega iConnect Open Source Code which can be found in your drivers CD or downloaded from &lt;a href=&quot;https://iomega-eu-en.custhelp.com/app/answers/detail/a_id/22823&quot;&gt;here&lt;/a&gt; (although I'm not sure which version you will get).&lt;/p&gt;




&lt;p&gt;There are several files inside this package, but the only one of immediate interest to us is kernel dir which contains a kernel config file, the original linux kernel tar.gz and a series of patches which you need to apply to the vanilla kernel source (refer to other websites on how to apply patches to a kernel tree)&lt;/p&gt;




&lt;h4&gt;Controlling your leds/buttons&lt;/h4&gt;




&lt;p&gt; This is way to easy :). Just go to /sys/class/leds and you will find sysfs control files to all your leds. Just play with them! example: &lt;/p&gt;




&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;&lt;span class=&quot;nb&quot;&gt;echo &lt;/span&gt;default-on &amp;gt; /sys/class/leds/power_blue_led/trigger
&lt;span class=&quot;nb&quot;&gt;echo &lt;/span&gt;255 &amp;gt; /sys/class/leds/power_blue_led/brightness
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;Has for the button, you can find it in /sys/class/input/event0/device.&lt;/p&gt;

&lt;p&gt;I haven't done anything yet with the leds or button, but if I do, I will post about it here in the blog.&lt;/p&gt;

&lt;p&gt;Questions ? Drop a comment below.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>... a turn of page</title>
   <link href="http://diogogomes.com/2010/12/01/a-turn-of-page"/>
   <published>2010-12-01T23:31:19+00:00</published>
   <id>http://diogogomes.com/2010/12/01/a-turn-of-page</id>
   <content type="html">&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/lwr/3875141076/&quot; title=&quot;number 3 by Leo Reynolds, on Flickr&quot;&gt;
&lt;img src=&quot;http://farm3.static.flickr.com/2443/3875141076_b354c9ffe9_t.jpg&quot; width=&quot;100&quot; height=&quot;100&quot; alt=&quot;number 3&quot; style=&quot;display:inline&quot;&gt;
&lt;/a&gt;
&lt;a href=&quot;http://www.flickr.com/photos/lwr/4434995682/&quot; title=&quot;number 0 by Leo Reynolds, on Flickr&quot;&gt;
&lt;img src=&quot;http://farm3.static.flickr.com/2723/4434995682_00ce93dc52_t.jpg&quot; width=&quot;100&quot; height=&quot;100&quot; alt=&quot;number 0&quot; style=&quot;display:inline&quot;&gt;
&lt;/a&gt;&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Installing Debian on a Iomega iConnect Wireless Data Station</title>
   <link href="http://diogogomes.com/2010/11/14/debian-install-iconnect"/>
   <published>2010-11-14T17:35:26+00:00</published>
   <id>http://diogogomes.com/2010/11/14/debian-install-iconnect</id>
   <content type="html">&lt;p&gt;Installing Debian on a Iomega iConnect Wireless Data Station is not that difficult but will unavoidably void your warranty. You will need to rip apart the device in order to access the console port.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Requirements:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;Access to the Serial Console through a USB to serial interface such as the &lt;a href=&quot;http://uk.farnell.com/ftdi/ttl-232r-3v3-we/cable-usb-ttl-ser-conv-wire-end/dp/1740365?Ntt=ttl-232R-3v3-we&quot;&gt;FTDI - TTL-232R-3V3-WE&lt;/a&gt; (some soldering required)&lt;/li&gt;
    &lt;li&gt;USB harddisk or stick (harddisk is advisable since stick tend to wear off)&lt;/li&gt;
    &lt;li&gt;Ethernet Connection for debian installation - &lt;strong&gt;Important!!! you MUST use Gigabit Ethernet!!!&lt;/strong&gt; due to a bug in the Debian Install Kernel&lt;/li&gt;
    &lt;li&gt;Linux Host in order to setup the kernel&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;First step is to rip apart the iConnect and reach the serial port as depicted &lt;a href=&quot;http://doip.org/iconnect_console&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;After connecting your host to the iconnect through the usb serial adapter you should be getting a prompt:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;Marvell&amp;gt;&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;In the prompt type:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;setenv mainlineLinux yes
setenv arcNumber 1682
saveenv
reset
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;Take note! You must &lt;strong&gt;really&lt;/strong&gt; &lt;em&gt;saveenv&lt;/em&gt; and &lt;em&gt;reset&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Next we will load the debian &lt;strong&gt;lenny&lt;/strong&gt; install environment either through USB or TFTP (this procedure is based on the procedure published &lt;a href=&quot;http://www.cyrius.com/debian/kirkwood/openrd/install.html&quot;&gt;here&lt;/a&gt; used for the OpenRD). Links to the debian uInitrd and uImage are available &lt;a href=&quot;http://www.cyrius.com/debian/kirkwood/openrd/install.html&quot;&gt;here&lt;/a&gt;. I provide you here 2 alternatives, you can use a USB stick formated using ext2 or you can download the initrd and kernel through TFTP by setting up a TFTP server in your host (e.g. atftpd), please use only &lt;strong&gt;ONE&lt;/strong&gt; of the options.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;==USB==&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;usb start
ext2load usb 0:1 0x01100000 /uInitrd
ext2load usb 0:1 0x00800000 /uImage
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;==TFTP==&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;dhcp
setenv serverip 192.168.1.100
tftpboot 0x01100000 uInitrd
tftpboot 0x00800000 uImage
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;After loading the kernel and Initrd into memory we configure the boot arguments to the debian installer&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;setenv bootargs &lt;span class=&quot;nv&quot;&gt;console&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;ttyS0,115200n8 base-installer/initramfs-tools/driver-policy&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;most
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;Last we boot the kernel + Initrd&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;bootm 0x00800000 0x01100000
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;You should be able to use the debian installer without any troubles, as it is no different from the x86 installer. In the end it will nonetheless fail to install the kernel and boot loader, but don't panic :)&lt;/p&gt;

&lt;p&gt;After install, we still need to setup the kernel and initrd.&lt;/p&gt;

&lt;p&gt;Mount the USB disk into which you just installed Debian, in your Linux host.&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;mount /dev/sdb1 /mnt
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;(or whatever device your usb disk/boot partition is on)&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;apt-get uboot-mkimage
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;(this only works in debian based linux distributions)&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;&lt;span class=&quot;nb&quot;&gt;cd&lt;/span&gt; /mnt/
mkimage -A arm -O linux -T kernel  -C none -a 0x00008000 -e 0x00008000 &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
-n Linux-2.6.29-2 -d vmlinuz-2.6.29-2-kirkwood uImage
mkimage -A arm -O linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
-n initramfs -d initrd.img-2.6.29-2-kirkwood uInitrd
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;You can now unmount the USB device from your host and get back to your iConnect.&lt;/p&gt;

&lt;p&gt;At the uBoot prompt type:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;setenv bootargs_console &lt;span class=&quot;s1&quot;&gt;&amp;#39;console=ttyS0,115200 mtdparts=orion_nand:0xc0000@0x0(uboot),0x20000@0xa0000(env),0x300000@0x100000(zImage),0x300000@0x540000(initrd),0x1f400000@0x980000(boot) root=/dev/sda2 rootdelay=10 3&amp;#39;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;This line currently setups the MTD device (in case you want to use it in the future) and delays boot in order to give the kernel time to detect the external USB device where the root filesystem lies.&lt;/p&gt;

&lt;p&gt;In order to have a backup solution in the improbable case that a kernel doesn't boot we setup a bootcmd that downloads a kernel from a TFTP daemon running at 192.168.1.100&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;setenv bootcmd_tftp &lt;span class=&quot;s1&quot;&gt;&amp;#39;set ipaddr 192.168.1.101; set serverip 192.168.1.100; tftpboot 0x00800000 uImage&amp;#39;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;The previously line will have as a drawback, your system will take longer to boot (much longer, &amp;gt;20sec) as it will have to timeout trying to retrieve the kernel through TFTP.&lt;/p&gt;

&lt;p&gt;Last the lines that will boot your kernel:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;setenv bootcmd_usb &lt;span class=&quot;s1&quot;&gt;&amp;#39;usb start; ext2load usb 0:1 0x00800000 /uImage&amp;#39;&lt;/span&gt;
setenv bootcmd &lt;span class=&quot;s1&quot;&gt;&amp;#39;setenv bootargs $(bootargs_console); run bootcmd_tftp; bootm 0x00800000; run bootcmd_usb; bootm 0x00800000; reset&amp;#39;&lt;/span&gt;
saveenv
reset
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;Now that we have debian lenny installed moving to squeeze is a &quot;normal&quot; procedure. You need to update your /etc/apt/sources.list and issue:&lt;/p&gt;

&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;bash&quot;&gt;apt-get update
apt-get dist-upgrade
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;p&gt;That is it! Your system should be up and running. If you run into any problem drop a comment.&lt;/p&gt;

&lt;p&gt;In my next post, I'll describe how to cross-compile to the iConnect and how to build a custom kernel specifically targeted at the iConnect.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Low Power Home Server</title>
   <link href="http://diogogomes.com/2010/11/10/low-power-home-server"/>
   <published>2010-11-10T01:26:44+00:00</published>
   <id>http://diogogomes.com/2010/11/10/low-power-home-server</id>
   <content type="html">&lt;p&gt;For a long time I've searched for a way to replace my aging &lt;a href=&quot;http://gdgt.com/asus/wl-500g/&quot;&gt;ASUS WL500gx&lt;/a&gt; which looks like the WL500g but packs 2 USB2.0 ports and has extra  RAM (64MB).&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/images/2010/11/WL500g-Deluxe-Small.jpg&quot;&gt;&lt;img class=&quot;size-thumbnail wp-image-2852 alignright&quot; title=&quot;WL500g Deluxe&quot; src=&quot;/images/2010/11/WL500g-Deluxe-Small-150x150.jpg&quot; alt=&quot;WL500g Deluxe&quot; width=&quot;150&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The ASUS has been my home server for a long time now (&amp;gt;5 years), providing me with a reliable SSH server through which I can proxy my Internet usage whenever I'm in a public space, with a small webserver in which I keep Internet and Power Usage statistics and for a brief period of time was my printing server (it was replaced first by an &lt;a href=&quot;http://www.apple.com/airportexpress/&quot;&gt;Apple Airport Express&lt;/a&gt;, and more recently by &lt;a href=&quot;http://www.zon.pt/zonhub/&quot;&gt;ZON's HUB&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;The number one requirement I set was &lt;strong&gt;Power Efficiency:&lt;/strong&gt; the new device power consumption must be so low that I should not be able to notice it on my monthly bill.&lt;/p&gt;

&lt;p&gt;Second requirement was that it should &lt;strong&gt;pack enough ports&lt;/strong&gt; to connect anything to it without the need to add extra USB HUB's which are always clumsy (namely HD, webcam's, arduino's :))&lt;/p&gt;

&lt;p&gt;Third requirement was that it must be possible to do &lt;a href=&quot;http://www.apple.com/macosx/what-is-macosx/time-machine.html&quot;&gt;Apple's &lt;strong&gt;Time-Machine&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; backup's&lt;/strong&gt; into the server quickly (either through Ethernet or Wi-Fi).&lt;/p&gt;

&lt;p&gt;Last requirement was that it needed to be &lt;strong&gt;silent&lt;/strong&gt; (I'm running the server in the living room, and when I'm watching something I don't like to ask myself if the noise that is going on is coming from the TV or from the home-server).&lt;/p&gt;

&lt;p&gt;The challenge was set, and I read plenty review online about NAS appliances, feature packed Media Centers and DIY mini ITX computers. They were all great in some aspect, but they also missed one or other of my requirements.&lt;/p&gt;

&lt;p&gt;From all of them, one subclass did grab my attention: &lt;a href=&quot;http://en.wikipedia.org/wiki/Plug_computer&quot;&gt;plug computers&lt;/a&gt;. This subclass of devices fitted perfectly into my requirements, so the trouble now was to pick which one to choose.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.amazon.co.uk/gp/product/B00358V5IK?ie=UTF8&amp;tag=diogomblo-21&amp;linkCode=as2&amp;camp=1634&amp;creative=6738&amp;creativeASIN=B00358V5IK&quot;&gt;&lt;img class=&quot;alignleft&quot; style=&quot;border: 0px initial initial;&quot; title=&quot;Iomega iConnect Wireless Data Station&quot; src=&quot;/images/2010/11/31LxC+Nsv8L._SL160_.jpg&quot; border=&quot;0&quot; alt=&quot;Iomega iConnect Wireless Data Station&quot; width=&quot;160&quot; height=&quot;107&quot; /&gt;&lt;/a&gt;&lt;img src=&quot;http://www.assoc-amazon.co.uk/e/ir?t=diogomblo-21&amp;l=as2&amp;o=2&amp;a=B00358V5IK&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;There are several vendors and models of plug computers from &lt;a href=&quot;http://www.pogoplug.com/&quot;&gt;Pogoplug&lt;/a&gt;, &lt;a href=&quot;http://www.plugcomputer.org/&quot;&gt;Sheevaplug&lt;/a&gt;, &lt;a href=&quot;http://www.tonidoplug.com/&quot;&gt;Tonidoplug&lt;/a&gt; to other vendors that don't even mention the fact that their products are actually plug computers, based on the hardware on which they are designed.&lt;/p&gt;

&lt;p&gt;That is exactly the case of the &lt;a href=&quot;http://go.iomega.com/en/products/network-storage-desktop/wireless-data-station/network-hard-drive-iconnect/?partner=4740&quot;&gt;Iomega iConnect&lt;/a&gt; Wireless Data Station (iConnect for shorts), which shares exactly the same hardware platform then the Sheevaplug. I got mine from amazon uk at unbeatable price (~70 pounds) which is far less then any of the similar products.&lt;/p&gt;

&lt;p&gt;But lets get to what matters, the technical specs:&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;Marvell 6281 CPU (ARMv5TE) at 1.0GHz with 256MB RAM and 512MB Flash (Hynix NAND)&lt;/li&gt;
    &lt;li&gt;1 x RJ45 10/100/1000Mbps (GbE) Ethernet port - Marvell-643xx&lt;/li&gt;
    &lt;li&gt;Wireless (802.11b/g/n) - RaLink RT3090 Wireless 802.11n 1T/1R PCIe&lt;/li&gt;
    &lt;li&gt;4 x USB 2.0 ports (to connect external HDD, printers)&lt;/li&gt;
    &lt;li&gt;External Power Adapter (important since it minimizes the chances of overheating)&lt;/li&gt;
    &lt;li&gt;Power consumption – 5 Watts \o/ (I've devices that consume more than this while on standby!)&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Overall I'm very satisfied with the &lt;strong&gt;hardware&lt;/strong&gt; I purchased. Unfortunately I cannot say the same about the software... Although it is based on OSS (Linux Debian 5.0) the amount of garbage that is installed and the utterly ugly web interface are major turn downs. Therefore my first task was to &quot;upgrade&quot; the iConnect to a proper Linux install.&lt;/p&gt;

&lt;p&gt;In the next post I'll describe how to install Debian Squeeze into the Iomega iConnect.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Open Source Software in an Academic Environment</title>
   <link href="http://diogogomes.com/2010/10/19/oss-academic-environment"/>
   <published>2010-10-19T14:18:00+01:00</published>
   <id>http://diogogomes.com/2010/10/19/oss-academic-environment</id>
   <content type="html">&lt;p&gt;For long I've been an evangelist of OSS in the &lt;a href=&quot;http://www.ua.pt&quot;&gt;University of Aveiro&lt;/a&gt;. First through my involvement in the foundation of &lt;a href=&quot;http://glua.ua.pt&quot;&gt;GLUA&lt;/a&gt; and more recently through &lt;a href=&quot;http://code.ua.pt/&quot;&gt;CodeUA&lt;/a&gt;. In the last 7 years I've participated in &lt;a href=&quot;http://hng.av.it.pt/members/dgomes&quot;&gt;several EU projects &lt;/a&gt;in which I've always promoted the use of OSS and the release of code developed in the projects through OSS licenses.&lt;/p&gt;

&lt;p&gt;Today I was able to go a step further, since I was invited to do be part of a discussion panel at the &lt;a href=&quot;http://ec.europa.eu/information_society/events/cf/fnc6/item-display.cfm?id=3774&quot;&gt;Future Networks 6th FP7 Concertation Plenary Meeting&lt;/a&gt; where the subject was Open Source &amp;amp; Research. In this panel I was representing the Academic view of OSS. The presentation is available at:&lt;/p&gt;

&lt;div id=&quot;__ss_5488704&quot; style=&quot;width: 425px;&quot;&gt;&lt;strong&gt;&lt;a title=&quot;Open Source &amp;amp;amp; Research&quot; href=&quot;http://www.slideshare.net/shlak/open-source-amp-research&quot;&gt;Open Source &amp;amp;amp; Research&lt;/a&gt;&lt;/strong&gt;&lt;object id=&quot;__sse5488704&quot; classid=&quot;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&quot; width=&quot;425&quot; height=&quot;355&quot; codebase=&quot;http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0&quot;&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot; /&gt;&lt;param name=&quot;src&quot; value=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=ossfuturenetworkfp7-1287489841-phpapp01&amp;amp;rel=0&amp;amp;stripped_title=open-source-amp-research&amp;amp;userName=shlak&quot; /&gt;&lt;param name=&quot;name&quot; value=&quot;__sse5488704&quot; /&gt;&lt;param name=&quot;allowfullscreen&quot; value=&quot;true&quot; /&gt;&lt;embed id=&quot;__sse5488704&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;425&quot; height=&quot;355&quot; src=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=ossfuturenetworkfp7-1287489841-phpapp01&amp;amp;rel=0&amp;amp;stripped_title=open-source-amp-research&amp;amp;userName=shlak&quot; name=&quot;__sse5488704&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;div style=&quot;padding: 5px 0 12px;&quot;&gt;View more &lt;a href=&quot;http://www.slideshare.net/&quot;&gt;presentations&lt;/a&gt; from &lt;a href=&quot;http://www.slideshare.net/shlak&quot;&gt;Diogo Gomes&lt;/a&gt;.&lt;/div&gt;
&lt;/div&gt;

</content>
 </entry>
 
 
</feed>

