<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"><id>tag:blogger.com,1999:blog-5606041637705531621</id><updated>2012-11-21T13:14:22.497+01:00</updated><category term="ruby" /><category term="arm" /><category term="virtualization" /><category term="selinux" /><category term="installation" /><category term="documentation" /><category term="apple" /><category term="omap" /><category term="development" /><category term="community" /><category term="amiga" /><category term="github" /><category term="fedora" /><category term="blug" /><category term="openvz" /><category term="upgrade" /><category term="jekyll" /><category term="stream computing" /><category term="rpm" /><category term="rhel" /><category term="redhat" /><category term="yum" /><category term="nokia" /><category term="scratchbox" /><category term="final release" /><category term="git" /><category term="markdown" /><category term="family" /><category term="beijing" /><category term="debian" /><category term="x86_64" /><category term="consultancy" /><category term="kvm" /><category term="c++" /><category term="xen" /><category term="libvirt" /><category term="vps" /><category term="linux" /><category term="packages" /><category term="colinux" /><category term="alt.net" /><category term="n900" /><category term="centos" /><category term="meego" /><category term="object orientation" /><category term="test release" /><category term="opensuse" /><category term="php" /><category term="wifi" /><category term="vmware" /><category term="howto" /><category term="opencl" /><category term="voip" /><category term="linode" /><category term="geek" /><category term="maemo" /><category term="linuxtoy" /><category term="mips" /><category term="ulrich drepper" /><category term="qemu" /><category term="ubuntu" /><category term="mono" /><category term="chinese" /><category term="bugzilla" /><category term="freeswitch" /><title type="text">Gerard Braad</title><subtitle type="html">F/OSS &amp;amp; IT Consultant on Openness and Interoperability</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.gbraad.nl/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.gbraad.nl/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default?start-index=26&amp;max-results=25" /><author><name>Gerard Braad</name><uri>https://plus.google.com/112618846457931278165</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-EcgVgHfrnHk/AAAAAAAAAAI/AAAAAAAAI1w/Gkmf37iyvMk/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>59</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/gbraad" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="gbraad" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>52.213</geo:lat><geo:long>5.9599</geo:long><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">gbraad</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Fgbraad" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fgbraad" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fgbraad" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><entry><id>tag:blogger.com,1999:blog-5606041637705531621.post-8893356760368733904</id><published>2012-11-04T13:16:00.000+01:00</published><updated>2012-11-04T13:16:53.670+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ruby" /><category scheme="http://www.blogger.com/atom/ns#" term="jekyll" /><category scheme="http://www.blogger.com/atom/ns#" term="consultancy" /><category scheme="http://www.blogger.com/atom/ns#" term="howto" /><category scheme="http://www.blogger.com/atom/ns#" term="git" /><category scheme="http://www.blogger.com/atom/ns#" term="documentation" /><category scheme="http://www.blogger.com/atom/ns#" term="github" /><category scheme="http://www.blogger.com/atom/ns#" term="markdown" /><title type="text">Editing documentation using Jekyll and Gollum</title><content type="html">Currently migrating some technical material and my blog to the static site generator Jekyll. This way I can add articles using a simple text editor to write the markdown (or other supported format) and easily publish it using git. However, I also wanted to have the ability to author pages from a wiki tool like Gollum. So I looked into it and came up with a simple solution: 'generate a list of available pages for the index.html'.&lt;br /&gt;&lt;br /&gt;An example is published on&amp;nbsp;&lt;a href="http://github.com/gbraad/articles"&gt;http://github.com/gbraad/articles&lt;/a&gt;. You can still edit pages using&amp;nbsp;&lt;a href="http://github.com/gbraad/articles/wiki/_pages"&gt;http://github.com/gbraad/articles/wiki/_pages&lt;/a&gt;&amp;nbsp;and the generated pages are published at&amp;nbsp;&lt;a href="http://gbraad.github.com/articles/"&gt;http://gbraad.github.com/articles/&lt;/a&gt;. The following problems exist: you have to keep the project-wiki in sync with the project repository when using GitHub (not really needed if you use Gollum locally), manual step needed for publishing of the gh-pages branch (not a big deal if you control the post-receive on your own server) and no directory nesting is possible for articles (do not really miss this since I use a repository per document).&lt;br /&gt;&lt;br /&gt;There is still room for some improvement, but for now it allows me to easily work on teaching material and ePUB documents.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5606041637705531621-8893356760368733904?l=blog.gbraad.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gbraad.nl/feeds/8893356760368733904/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5606041637705531621&amp;postID=8893356760368733904&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/8893356760368733904" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/8893356760368733904" /><link rel="alternate" type="text/html" href="http://blog.gbraad.nl/2012/11/currently-migrating-some-technical.html" title="Editing documentation using Jekyll and Gollum" /><author><name>Gerard Braad</name><uri>https://plus.google.com/109523946498423996380</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-3HkTXISVY_Y/AAAAAAAAAAI/AAAAAAAABPE/aqCtCMUPGWk/s512-c/photo.jpg" /></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5606041637705531621.post-8773193162317801249</id><published>2011-04-23T12:17:00.008+01:00</published><updated>2011-04-23T13:12:47.305+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bugzilla" /><category scheme="http://www.blogger.com/atom/ns#" term="development" /><category scheme="http://www.blogger.com/atom/ns#" term="consultancy" /><category scheme="http://www.blogger.com/atom/ns#" term="php" /><category scheme="http://www.blogger.com/atom/ns#" term="object orientation" /><title type="text">Simple Bugzilla client</title><content type="html">At the moment I work as an IT Consultant on a QA-related project in Beijing at an outsourced partner. As you might know, the Internet connectivity in China is not optimal and this caused some issues on our end. Since we have to do a lot of cross-checking, we needed a way to keep track of remotely reported bugs and store these in a local instance of a previously in-house developed cross-check tracker. I started to develop a simple client to pull information from the remote Bugzilla instance which is then stored locally. This solved most of the issues we encountered with the latency and improved the productivity of our team.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;XML-RPC client&lt;/b&gt;&lt;br /&gt;The local tracker is built in PHP, so at first a small prototype was built to see if it was possible to call &lt;a href="http://www.bugzilla.org/docs/3.6/en/html/api/Bugzilla/WebService/Server/XMLRPC.html"&gt;Bugzilla's XML-RPC interface&lt;/a&gt;. To ease the development I chose to use the standard ZendFramework library and the XML-RPC client they offer, &lt;a href="http://framework.zend.com/manual/en/zend.xmlrpc.client.html"&gt;Zend_XmlRpc_Client&lt;/a&gt;. The biggest issue I encountered was the way authentication was implemented on the remote side, but the actual client was simple and very easy to implement. The prototype was first done in a very sequential way... and eventually after a little bit of refactoring this is what remained:&lt;br /&gt;&lt;br /&gt;&lt;div style="color: white; background: none repeat scroll 0% 0% black;"&gt;&lt;pre&gt;// Add the AutoLoader&lt;br /&gt;require_once('Zend/Loader/Autoloader.php');&lt;br /&gt;Zend_Loader_Autoloader::getInstance();&lt;br /&gt;&lt;br /&gt;class BugzillaClient&lt;br /&gt;{&lt;br /&gt;  // Initialize the client&lt;br /&gt;  protected $rpcClient = null;&lt;br /&gt;  protected $basUrl = null;&lt;br /&gt;&lt;br /&gt;  public function __construct($baseUrl, $username, $password)&lt;br /&gt;  {&lt;br /&gt;       $this-&amp;gt;baseUrl = $baseUrl;    // Store internal for later use&lt;br /&gt;       $this-&amp;gt;rpcClient = new Zend_XmlRpc_Client($baseUrl . "/xmlrpc.cgi");&lt;br /&gt;&lt;br /&gt;       $httpClient = $this-&amp;gt;rpcClient-&amp;gt;getHttpClient();&lt;br /&gt;       $httpClient-&amp;gt;setCookieJar();  // Needed to retain user cookie&lt;br /&gt;       $httpClient-&amp;gt;setAuth($username, $password, Zend_Http_Client::AUTH_BASIC);&lt;br /&gt;&lt;br /&gt;       // Login request (XMLRPC)&lt;br /&gt;       $response = $this-&amp;gt;rpcClient-&amp;gt;call('User.login', array(array(&lt;br /&gt;           'login'    =&amp;gt; $username,&lt;br /&gt;           'password' =&amp;gt; $password,&lt;br /&gt;           'remember' =&amp;gt; 1&lt;br /&gt;       )));&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public function __destruct()&lt;br /&gt;  {&lt;br /&gt;       // Logout request (XMLRPC)&lt;br /&gt;       $response = $this-&amp;gt;rpcClient-&amp;gt;call('User.logout', array());&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public function Get($id)&lt;br /&gt;  {&lt;br /&gt;       $returnValue = array();&lt;br /&gt;&lt;br /&gt;       // Get request (XMLRPC)&lt;br /&gt;       $response = $this-&amp;gt;rpcClient-&amp;gt;call('Bug.get', array(array('ids' =&amp;gt; $id)));&lt;br /&gt;       $index = 0; // Only retrieving one bug, so don't bother with index now&lt;br /&gt;&lt;br /&gt;       $returnValue['id'] = $id;&lt;br /&gt;       // Construct a remote URL&lt;br /&gt;       $returnValue['url'] = $this-&amp;gt;baseUrl . "/show_bug.cgi?id=" . $id;&lt;br /&gt;       // Collect some basic information about the bug&lt;br /&gt;       $returnValue['summary'] = $response['bugs'][$index]['summary'];&lt;br /&gt;       $returnValue['status'] = $response['bugs'][$index]['status'];&lt;br /&gt;       $returnValue['resolution'] = $response['bugs'][$index]['resolution'];&lt;br /&gt;&lt;br /&gt;       // Comments request (XMLRPC)&lt;br /&gt;       $response = $this-&amp;gt;rpcClient-&amp;gt;call('Bug.comments', array(array('ids' =&amp;gt; $id)));&lt;br /&gt;       // Extract the first comment from the bug and store as description&lt;br /&gt;       $returnValue['description'] = $response['bugs'][$id]['comments'][0]['text'];&lt;br /&gt;&lt;br /&gt;       return $returnValue;&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;This &lt;a href="https://github.com/gbraad/bugzilla-client/blob/master/PHP/BugzillaClient.php"&gt;code&lt;/a&gt; provides a constructor which does the login and a 'Get' function to query the remote instance.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Example&lt;/b&gt;&lt;br /&gt;To use this client you just need to include this module and create a new BugzillaClient instance.&lt;br /&gt;&lt;div style="color: white; background: none repeat scroll 0% 0% black;"&gt;&lt;pre&gt;require_once('config.php');          // Contains the baseUrl and credentials&lt;br /&gt;require_once('BugzillaClient.php');  // This is the client code&lt;br /&gt;&lt;br /&gt;$bzClient = new BugzillaClient($bzBaseUrl, $bzUsername, $bzPassword);&lt;br /&gt;$bug = $bzClient-&amp;gt;Get($id);&lt;br /&gt;&lt;br /&gt;echo $bug['summary']);&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;After this the summary will be printed.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Future work&lt;/span&gt;&lt;br /&gt;The last time I did some actual development with PHP was during PHP 3  and the move to PHP 4. At that moment I was not so happy with the Object  Orientation model that the language offered. Luckily this improved a lot and hope this code testifies of that... as I have seen some horrific spaghetti code during these several days.&lt;br /&gt;&lt;br /&gt;Using this solution does not provide a complete up-to-date picture of the bug, but this is not a problem to us. Besides, triggering a script which iterates over all local bugs and queries the remote state solved this issue. Some more features will be implemented, like searching for bugs and pushing comments back. This basic implementation code has been posted to public git repositories, so fork it and start pushing your improvements.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Repositories&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://github.com/gbraad/bugzilla-client/"&gt;github&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://gitorious.org/bugzilla-client/bugzilla-client/"&gt;gitorious&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5606041637705531621-8773193162317801249?l=blog.gbraad.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gbraad.nl/feeds/8773193162317801249/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5606041637705531621&amp;postID=8773193162317801249&amp;isPopup=true" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/8773193162317801249" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/8773193162317801249" /><link rel="alternate" type="text/html" href="http://blog.gbraad.nl/2011/04/simple-bugzilla-client.html" title="Simple Bugzilla client" /><author><name>Gerard Braad</name><uri>https://plus.google.com/109523946498423996380</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-3HkTXISVY_Y/AAAAAAAAAAI/AAAAAAAABPE/aqCtCMUPGWk/s512-c/photo.jpg" /></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5606041637705531621.post-3296543011196844802</id><published>2010-11-03T14:25:00.009+01:00</published><updated>2010-11-04T04:39:00.633+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="arm" /><category scheme="http://www.blogger.com/atom/ns#" term="meego" /><category scheme="http://www.blogger.com/atom/ns#" term="nokia" /><category scheme="http://www.blogger.com/atom/ns#" term="installation" /><category scheme="http://www.blogger.com/atom/ns#" term="howto" /><category scheme="http://www.blogger.com/atom/ns#" term="fedora" /><category scheme="http://www.blogger.com/atom/ns#" term="maemo" /><category scheme="http://www.blogger.com/atom/ns#" term="n900" /><title type="text">How-to setup dual-booting MeeGo 1.1 on the N900</title><content type="html">&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.flickr.com/photos/gbraad/5142954468/" imageanchor="1" style="clear:right; float:right; margin-left:1em; margin-bottom:1em"&gt;&lt;img border="0" height="134" width="200" src="http://3.bp.blogspot.com/_ZmgfsgbGDLs/TNFgcVKurcI/AAAAAAAAIhE/hf7Wl-Dkmvs/s200/DSC00440.JPG"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/div&gt;The current image of MeeGo is for development purpose. Do NOT try to use it for daily use. You can make a phonecall or send a message, but I already had some issues with not being able to pick up phonecalls which I receive. It should be used as a means for developers to get familiar to the MeeGo environment for use on a handset. Also see the note at the end of this article.&lt;br /&gt;&lt;br /&gt;For this how-to I use Fedora 13, but tmost of the steps also apply to any other Linux distribution. Be sure you have downloaded the correct MeeGo images before you begin and that you have a MicroSD card of 2G or more. I used a 4G MicroSD card from SanDisk.&lt;br /&gt;&lt;br /&gt;The kernel root filesystem you download have to download from: &lt;a href="http://repo.meego.com/MeeGo/releases/1.1/handset/images/meego-handset-armv7l-n900/"&gt;http://repo.meego.com/MeeGo/releases/1.1/handset/images/meego-handset-armv7l-n900/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You need the following two files:&lt;br /&gt;meego-handset-armv7l-n900-1.1-mmcblk0p.raw.bz2 (521M)&lt;br /&gt;meego-handset-armv7l-n900-1.1-vmlinuz-2.6.35.3-10.3-n900 (1.5M)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;N900&lt;/b&gt;&lt;br /&gt;Enable the extras-devel repo on your device and install from app-manager: &lt;a href="http://maemo.org/packages/view/uboot-pr13/"&gt;uboot-pr13&lt;/a&gt; &lt;br /&gt;or from the terminal with:&lt;br /&gt;&lt;br /&gt;&lt;div style="color:white;background:black"&gt;&lt;code&gt; # root&lt;br /&gt;$ apt-get install uboot-pr13&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;Be sure you have upgraded to PR1.3 before doing this. This is all that's needed on the mobile handset.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Workstation&lt;/b&gt;&lt;br /&gt;On Fedora you have to install the &lt;i&gt;uboot-tools&lt;/i&gt; to create a bootable kernel image. For writing the disk image I also included &lt;i&gt;pv&lt;/i&gt; to have some progress indication. Install these tools with:&lt;br /&gt;&lt;br /&gt;&lt;div style="color:white;background:black"&gt;&lt;code&gt;$ yum install uboot-tools pv cfdisk&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;Connect your N900 in Mass Storage mode with the MicroSD card inserted or use a multicard reader. As mentioned before, use a 2G or more MicroSD card to dump the raw image to. You have to find the correct device to use from e.g. the &lt;i&gt;dmesg&lt;/i&gt;, replace &lt;i&gt;sdX&lt;/i&gt; with the correct device. The command for this is:&lt;br /&gt;&lt;br /&gt;&lt;div style="color:white;background:black"&gt;&lt;code&gt;$ bzcat meego-handset-armv7l-n900-1.1-mmcblk0p.raw.bz2 | pv | sudo dd bs=4096 of=/dev/sdX&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;Note: This may take some time, especially on the class of SD card you are using. I used just a class 2 4GB from SanDisk. Also be sure it is not mounted during this action. Some distributions use auto-mounting for Removable Media.&lt;br /&gt;&lt;br /&gt;To make the MicroSD card usable for dual-booting you have to add a third partition. This might be a little more tricky if you haven't done this often. That is why you can use &lt;i&gt;cfdisk&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div style="color:white;background:black"&gt;&lt;code&gt;$ cfdisk /dev/sdX&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;And add a new partition in the last freespace you see. The first is only 1.3MB, which is TOO small to contain the kernel image. Define it as a primary partition of 4MB (or full size). Take note of the device name. It should be &lt;i&gt;sdX3&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Now create a FAT filesystem on the newly created partition. This is where your kernel needs to be placed.&lt;br /&gt;&lt;div style="color:white;background:black"&gt;&lt;code&gt;$ mkfs.vfat /dev/sdX3&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;Now you need to prepare the kernel image for use on the SD card.&lt;br /&gt;&lt;div style="color:white;background:black"&gt;&lt;code&gt;$ mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -n meego-handset-armv7l-n900-1.1-vmlinuz-2.6.35.3-10.3-n900 -d meego-handset-armv7l-n900-1.1-vmlinuz-2.6.35.3-10.3-n900 uImage&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;You would now have a file called &lt;i&gt;uImage&lt;/i&gt; which you need to place in the FAT filesystem on &lt;i&gt;/dev/sdX3&lt;/i&gt;. If you have difficulty creating the file, you can download it from &lt;a href="http://files.gbraad.nl/meego/firmware/n900/meego-1.1-uImage.bin"&gt;here&lt;/a&gt;. Be sure you rename it to &lt;i&gt;uImage&lt;/i&gt;. Temporarily mount it or reinsert the SD card so auto-mount can deal with it. Copy the &lt;i&gt;uImage&lt;/i&gt; file to the root and unmount.&lt;br /&gt;&lt;br /&gt;Now you could use this MicroSD to boot MeeGo 1.1. Try it out by powering off your N900 phone, remove the backcover and place the SD card. Be sure you have placed the backcover before you power on the device. If you don't do so, the root filesystem can not be mounted and the device will show a &lt;a href="http://www.flickr.com/photos/gbraad/5142350005/"&gt;kernel panic&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="565" height="453" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="src" value="http://www.youtube.com/v/2PQDZypO-5Y?fs=1&amp;amp;hl=en_US" /&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;embed type="application/x-shockwave-flash" width="565" height="453" src="http://www.youtube.com/v/2PQDZypO-5Y?fs=1&amp;amp;hl=en_US" allowscriptaccess="always" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;&lt;br /&gt;&lt;b&gt;External links&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://wiki.meego.com/ARM/N900/Install/MMC#Installing_Rootfs_on_external_MMC_card"&gt;Install root filesystem on external card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://al.robotfuzz.com/~al/maemo/u-boot/"&gt;U-Boot for N900&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://wiki.meego.com/ARM/N900"&gt;MeeGo for Nokia N900&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;Note&lt;/b&gt;&lt;br /&gt;I do not take any responsibility in you damaging your device or loosing data during the process. As I had mentioned, it is intended for development use and therefore I hope you have some basic understanding of what you are doing. If you have any question, please post them in the &lt;a href="http://forum.meego.com/forumdisplay.php?f=7"&gt;MeeGo Handset forum&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5606041637705531621-3296543011196844802?l=blog.gbraad.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gbraad.nl/feeds/3296543011196844802/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5606041637705531621&amp;postID=3296543011196844802&amp;isPopup=true" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/3296543011196844802" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/3296543011196844802" /><link rel="alternate" type="text/html" href="http://blog.gbraad.nl/2010/11/how-to-setup-dual-booting-meego-11-on.html" title="How-to setup dual-booting MeeGo 1.1 on the N900" /><author><name>Gerard Braad</name><uri>https://plus.google.com/112618846457931278165</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-EcgVgHfrnHk/AAAAAAAAAAI/AAAAAAAAI1w/Gkmf37iyvMk/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_ZmgfsgbGDLs/TNFgcVKurcI/AAAAAAAAIhE/hf7Wl-Dkmvs/s72-c/DSC00440.JPG" height="72" width="72" /><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5606041637705531621.post-5989317485829611117</id><published>2010-08-02T13:45:00.002+01:00</published><updated>2010-08-02T14:54:45.654+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="community" /><category scheme="http://www.blogger.com/atom/ns#" term="chinese" /><category scheme="http://www.blogger.com/atom/ns#" term="fedora" /><title type="text">Fedora visits China (Beijing/Shanghai)</title><content type="html">A lot of things have happened in China relating to Fedora; our MIPS port gained attention from Loongson and we made Fedora 13 available on our servers. Although it has not been mirrored yet to secondary.fedoraproject.org, you can already try it out. The other thing is about what Kaio and I have been busy with for the last half year, &lt;a href="http://fedora-zh.org/"&gt;the Chinese Fedora Community&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;It seems our efforts have not been unnoticed and the &lt;a href="http://fedoraproject.org/wiki/Community_Architecture"&gt;Fedora Community Architecture&lt;/a&gt; team &lt;a href="http://blog.melchua.com/2010/07/31/mel-in-transit-now-in-china/"&gt;sent Mel Chua to China&lt;/a&gt;. Yesterday she arrived in Beijing and we immediately started to discuss about our community and future activities and how to gain a more widespread acceptance of Open Source in China.&lt;br /&gt;&lt;br /&gt;One of the things we immediately agreed upon was, luckily her explanation was less morbid, to '&lt;a href="http://blog.melchua.com/2010/08/01/fedora-china-operation-raptor-proofing/"&gt;Raptor-proof our community&lt;/a&gt;'. Our community is fragile when it comes to responsibilities and the load carried upon those shoulders. For this to succeed we would like you to propose people or yourself for a role within the community.&lt;br /&gt;&lt;br /&gt;It would be ideal if some of you would step forward and become a regional ambassador who can represent key regions in China, like Shanghai, Hong Kong, etc. The workload for this is low and when we can balance it out it would even be minimal. You would take care of distributing Fedora swag, like t-shirts in your area.&lt;br /&gt;&lt;br /&gt;This Raptor issue also troubles our MIPS port. Currently we have three members and of this only the lead role can be performed by someone else. We have a nice group of people around us, but we are always searching for new members. If you want to help with documenting or other activities, just get in touch. No, you don't need to be Chinese :-P. If you have a Yeeloong netbook and got tired or Mandriva, help us test and build third-party packages.&lt;br /&gt;&lt;br /&gt;We would really like to know about Open Source activities happening all over China or maybe you have suggestions. If you want to discuss this with us, join &lt;a href="irc://irc.freenode.net/#fedora-zh"&gt;#fedora-zh&lt;/a&gt; and &lt;a href="https://admin.fedoraproject.org/mailman/listinfo/chinese"&gt;mailinglist&lt;/a&gt;. Mel's agenda for this week &lt;a href="http://blog.melchua.com/2010/07/30/help-me-figure-out-my-time-in-china/"&gt;is still open&lt;/a&gt;, so if you want to meet her in Shanghai, this is your chance.&lt;br /&gt;&lt;br /&gt;Thanks to all the members of the Chinese Fedora Community!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5606041637705531621-5989317485829611117?l=blog.gbraad.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gbraad.nl/feeds/5989317485829611117/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5606041637705531621&amp;postID=5989317485829611117&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/5989317485829611117" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/5989317485829611117" /><link rel="alternate" type="text/html" href="http://blog.gbraad.nl/2010/08/fedora-visits-china-beijingshanghai_02.html" title="Fedora visits China (Beijing/Shanghai)" /><author><name>Gerard Braad</name><uri>https://plus.google.com/112618846457931278165</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-EcgVgHfrnHk/AAAAAAAAAAI/AAAAAAAAI1w/Gkmf37iyvMk/s512-c/photo.jpg" /></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5606041637705531621.post-2530243858893374779</id><published>2010-06-22T07:42:00.003+01:00</published><updated>2010-06-22T07:52:20.578+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="selinux" /><category scheme="http://www.blogger.com/atom/ns#" term="installation" /><category scheme="http://www.blogger.com/atom/ns#" term="howto" /><category scheme="http://www.blogger.com/atom/ns#" term="centos" /><category scheme="http://www.blogger.com/atom/ns#" term="virtualization" /><category scheme="http://www.blogger.com/atom/ns#" term="xen" /><category scheme="http://www.blogger.com/atom/ns#" term="linode" /><category scheme="http://www.blogger.com/atom/ns#" term="yum" /><category scheme="http://www.blogger.com/atom/ns#" term="vps" /><category scheme="http://www.blogger.com/atom/ns#" term="x86_64" /><title type="text">Installing SELinux on Linode (CentOS profile)</title><content type="html">Recently I signed up for a different VPS hosting partner as the one I was using had a dreadful latency when dealing with international connections. The new VPS at &lt;a href="http://bit.ly/LinodeSignup"&gt;Linode&lt;/a&gt; I am using has good ping times, the control panel often does correctly what it should do, but the out-of-the-box CentOS profile was in my opinion not what I am used to.&lt;br /&gt;&lt;br /&gt;RHEL and Fedora sys-admins know about &lt;a href="http://fedoraproject.org/wiki/SELinux"&gt;SELinux&lt;/a&gt; and the pains and pleasures it can induce. If you are new to SELinux, be sure to read a little bit of background: &lt;a href="http://fedoraproject.org/wiki/SELinux/Understanding"&gt;SELinux for dummies&lt;/a&gt; and &lt;a href="http://danwalsh.livejournal.com/"&gt;Dan Walsh's Blog&lt;/a&gt;. Or watch these videos recorded by Scott Dowdle: "&lt;a href="http://www.montanalinux.org/screencast-selinux-demystified-bozemanlug2010.html"&gt;SELinux demystified&lt;/a&gt;", "Intro to SELinux" &lt;a href="http://www.montanalinux.org/lfnw2010-selinux-pt1.html"&gt;Part 1&lt;/a&gt;, &lt;a href="http://www.montanalinux.org/lfnw2010-selinux-pt2.html"&gt;Part 2&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It seems Linode does not provide SELinux support with their provided kernel. I do not know what their motivation is. Maybe they want to relieve their support of troubling questions (to which I would say: permissive or enforcing=0) or maybe they just don't see the need. However after reading several reports on the web I am sure people want this functionality, but have been troubled by out-of-date resources about recompilation of the kernel to get the needed SELinux support and paravirtualization operations (pv_ops), setting up pv-grub, etc.&lt;br /&gt;&lt;br /&gt;Well, things are now much simpler as RHEL/CentOS provides the needed pv_ops kernels. The only missing part is to setup grub and get SELinux going. In several steps I will explain what needs to be done.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Instructions&lt;/b&gt;&lt;br /&gt;For these instructions I created a standard CentOS 5.5 (64bit) profile VPS using Linode's &lt;a href="https://www.linode.com/members/linode/dashboard.cfm"&gt;Dashboard&lt;/a&gt; option 'Deploy a distribution'. Start the node and from the &lt;a href="https://www.linode.com/members/linode/console.cfm"&gt;console&lt;/a&gt; or &lt;i&gt;ssh&lt;/i&gt; perform these steps.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. Install grub&lt;/b&gt;&lt;br /&gt;Grub is not installed on the base system. You will need to install the package, create some symlinks and an empty configuration file which you will need later.&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: black; color: white;"&gt;&lt;code&gt;# yum install grub&lt;br /&gt;# mkdir /boot/grub&lt;br /&gt;# cd /boot/grub/&lt;br /&gt;# touch grub.conf&lt;br /&gt;# ln -s ../boot/grub/grub.conf /etc/grub.conf&lt;br /&gt;# ln -s ./grub.conf menu.lst&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;2. Install kernel with pv_ops &lt;/b&gt;&lt;br /&gt;You will need to install a Xen enabled kernel which are provided by CentOS. But for some reason the &lt;i&gt;xennet&lt;/i&gt; and &lt;i&gt;xenblk&lt;/i&gt; are provided as modules and fail during startup. To solve this issue we create a new &lt;i&gt;initrd&lt;/i&gt; which can load these. Be sure to specify your kernel version correctly. You will also need this later for Grub.&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: black; color: white;"&gt;&lt;code&gt;# yum install kernel-xen&lt;br /&gt;# mkinitrd -v -f --with=ext3 --with=xennet --with=xenblk /boot/initrd-2.6.18-194.3.1.el5xen-custom.img 2.6.18-194.3.1.el5xen&lt;br /&gt;# echo "devpts    /dev/pts    devpts    defaults  0 0" &amp;gt; /etc/fstab&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;3. Edit grub.conf&lt;/b&gt;&lt;br /&gt;To enable the new kernel, you need to add this to our empty grub.conf. Be sure to verify your version.&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: black; color: white;"&gt;&lt;code&gt;# vi /etc/grub.conf&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;The contents of the grub.conf are:&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: black; color: white;"&gt;&lt;code&gt;#boot=/dev/vxda&lt;br /&gt;default=0&lt;br /&gt;timeout=1&lt;br /&gt;hiddenmenu&lt;br /&gt;title CentOS&lt;br /&gt;root (hd0)&lt;br /&gt;kernel /boot/vmlinuz-2.6.18-194.3.1.el5xen ro root=/dev/xvda&lt;br /&gt;initrd /boot/initrd-2.6.18-194.3.1.el5xen-custom.img&lt;br /&gt;title CentOS (enforcing=0)&lt;br /&gt;root (hd0)&lt;br /&gt;kernel /boot/vmlinuz-2.6.18-194.3.1.el5xen ro root=/dev/xvda enforcing=0&lt;br /&gt;initrd /boot/initrd-2.6.18-194.3.1.el5xen-custom.img&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;The above configuration will automatically boot to the default option which is a pv_ops kernel which has SELinux enabled. The second boot option is handy of you encounter some issues during the next step. If you are uncertain, you can uncomment the following lines, but this means the boot will be interrupted by grub and needs you to select the boot option from the lish console.&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: black; color: white;"&gt;&lt;code&gt;#default=0&lt;br /&gt;#timeout=1&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;4. Install SELinux&lt;/b&gt;&lt;br /&gt;Installing SELinux now is a breeze.&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: black; color: white;"&gt;&lt;code&gt;# yum install libselinux selinux-policy selinux-policy-targeted&lt;br /&gt;# genhomedircon&lt;br /&gt;# touch /.autorelabel&lt;br /&gt;# shutdown -h now&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;Now you only need to set your node to use pv-grub to boot from the configuration profile. This is briefly explained in &lt;a href="http://library.linode.com/Fzatyb"&gt;this article&lt;/a&gt; on the Linode Library. Boot up your node and allow some time for the relabeling. It might be wise to verify the progress from the lish console. If everything went well, the filesystem should have been been relabeled after a while and the system should operate 'as normal' ;-). You can verify the state of SELinux from &lt;i&gt;ssh&lt;/i&gt; using the command &lt;i&gt;sestatus&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;There is however still one issue I have not resolved, as soon as the console is handled by &lt;i&gt;mingetty&lt;/i&gt;, it seems the lish console does not properly handle this. It might be an issue to use xvc0 instead, but I see this as a minor problem and rather have SELinux enabled.If you have a fix, please let me know so I can improve these instructions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5606041637705531621-2530243858893374779?l=blog.gbraad.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gbraad.nl/feeds/2530243858893374779/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5606041637705531621&amp;postID=2530243858893374779&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/2530243858893374779" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/2530243858893374779" /><link rel="alternate" type="text/html" href="http://blog.gbraad.nl/2010/06/installing-selinux-on-linode-centos.html" title="Installing SELinux on Linode (CentOS profile)" /><author><name>Gerard Braad</name><uri>https://plus.google.com/112618846457931278165</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-EcgVgHfrnHk/AAAAAAAAAAI/AAAAAAAAI1w/Gkmf37iyvMk/s512-c/photo.jpg" /></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5606041637705531621.post-2731015237375484668</id><published>2010-05-08T21:14:00.007+01:00</published><updated>2010-05-08T22:29:53.621+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="test release" /><category scheme="http://www.blogger.com/atom/ns#" term="mips" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="development" /><category scheme="http://www.blogger.com/atom/ns#" term="community" /><category scheme="http://www.blogger.com/atom/ns#" term="chinese" /><category scheme="http://www.blogger.com/atom/ns#" term="fedora" /><title type="text">Chinese Fedora Community and Fedora-MIPS Port</title><content type="html">Currently I'm getting ready to move to Beijing (北京), China (中国) in June. While I am still looking for employment I have also been busy with assisting the Chinese Fedora Community (&lt;a href="http://fedora-zh.org/"&gt;FZUG/中文用户组&lt;/a&gt;). As part of some our activities I will give presentations about Fedora and the community at the &lt;a href="http://beijinglug.org/"&gt;BeijingLUG&lt;/a&gt;.&amp;nbsp;It is a growing community... but we are still looking for new users, ambassadors and contributors.&amp;nbsp;We would also really like to work together with other other user groups in the APAC.&amp;nbsp;If you are Chinese, in China or interested, drop by in our IRC channel&amp;nbsp;&lt;a href="irc://irc.freenode.net/#fedora-zh"&gt;#fedora-zh on freenode&lt;/a&gt;&amp;nbsp;or get in touch with me (吉拉德,&amp;nbsp;&lt;a href="https://fedoraproject.org/wiki/User:Gbraad"&gt;gbraad&lt;/a&gt;), Caius Chance (&lt;a href="https://fedoraproject.org/wiki/User:Kaio"&gt;kaio&lt;/a&gt;) or Yuan Yijun (袁乙钧,&amp;nbsp;&lt;a href="https://fedoraproject.org/wiki/User:Bbbush"&gt;bbbush&lt;/a&gt;). We are looking forward to seeing you!&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="float: right;"&gt;&lt;a href="http://picasaweb.google.com/lh/photo/Bfzhpk8RTASqZsnLGWonMg?feat=directlink" style="clear: left; float: left; margin-bottom: 0.5em; margin-right: 0.5em;"&gt;&lt;img border="0" height="141" src="http://lh3.ggpht.com/_ZmgfsgbGDLs/S-XDomTj1dI/AAAAAAAAITs/PXqKzi0hzFM/s200/fedora-mips.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;Part of building the Fedora brand, some friends of the Chinese community and I started to port Fedora to the MIPS architecture. MIPS is an architecture that gained a lot of attention recently with the release of the Loongson processor. This processor is Chinese made and ended up in several netbooks and mini-pc's. While they were only available on the Chinese market, they are now being sold in America and Europe, e.g. by the &lt;a href="http://freedomincluded.com/"&gt;Freedom Included&lt;/a&gt; initiative.&lt;br /&gt;&lt;br /&gt;Currently we have chosen to target the &lt;a href="http://www.linux-mips.org/wiki/Loongson"&gt;Loongson&lt;/a&gt; 2F, but in time we will also support other MIPS-compatible processors. The primary goal of this project is to provide support for MIPS as a &lt;a href="http://fedoraproject.org/wiki/TomCallaway/SecondaryArchitectures"&gt;secondary architecture&lt;/a&gt; in Fedora. Just like the &lt;a href="http://fedoraproject.org/wiki/Architectures/ARM"&gt;ARM port&lt;/a&gt;, our secondary goal is to enable derivative distributions based on the Fedora package collection and repository that are more suitably optimized for embedded and mobile use-cases. For this we want to work together with the&amp;nbsp;&lt;a href="https://fedoraproject.org/wiki/SIGs/FedoraMini"&gt;Mini SIG&lt;/a&gt;&amp;nbsp;as we can both benefit from this.&lt;br /&gt;&lt;br /&gt;We now have a test build available of &lt;a href="http://fedoraproject.org/wiki/Architectures/MIPS#Test_Release:_Fedora_12"&gt;Fedora 12&lt;/a&gt;&amp;nbsp;(as n32 mipsel) which should be able to run on Qemu or MIPS-based hardware, like the &lt;a href="http://www.linux-mips.org/wiki/Fulong2f"&gt;Fuloong&lt;/a&gt;. While we are in the process of fixing some remaining build and technical issues and submitting the patches, you are invited to help us test this release.&amp;nbsp;The Fuloong is currently the platform we build and test on ourselves. Be warned, expect to do some DIY especially since no documentation is available yet... and&amp;nbsp;your mileage may vary.&lt;br /&gt;&lt;br /&gt;&lt;div style="clear: both;"&gt;The team currently consists of me (project-lead), FaiWong (technical lead,&amp;nbsp;&lt;a href="http://fedoraproject.org/wiki/User:Lazyfai"&gt;lazyfai&lt;/a&gt;) and XinZhen (co-lead,&amp;nbsp;&lt;a href="http://fedoraproject.org/wiki/User:Lonestar"&gt;lonestar&lt;/a&gt;). If you want to contribute or donate hardware, please get in touch with us. More information can be found on the &lt;a href="https://fedoraproject.org/wiki/Architectures/MIPS"&gt;Fedora-MIPS wiki page&lt;/a&gt;, or just drop by in our IRC channel &lt;a href="irc://irc.freenode.net/#fedora-mips"&gt;#fedora-mips on freenode&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5606041637705531621-2731015237375484668?l=blog.gbraad.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gbraad.nl/feeds/2731015237375484668/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5606041637705531621&amp;postID=2731015237375484668&amp;isPopup=true" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/2731015237375484668" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/2731015237375484668" /><link rel="alternate" type="text/html" href="http://blog.gbraad.nl/2010/05/chinese-fedora-community-and-fedora.html" title="Chinese Fedora Community and Fedora-MIPS Port" /><author><name>Gerard Braad</name><uri>https://plus.google.com/112618846457931278165</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-EcgVgHfrnHk/AAAAAAAAAAI/AAAAAAAAI1w/Gkmf37iyvMk/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/_ZmgfsgbGDLs/S-XDomTj1dI/AAAAAAAAITs/PXqKzi0hzFM/s72-c/fedora-mips.png" height="72" width="72" /><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5606041637705531621.post-3228659772707609407</id><published>2009-12-14T00:22:00.005+01:00</published><updated>2009-12-14T19:14:40.539+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="redhat" /><category scheme="http://www.blogger.com/atom/ns#" term="qemu" /><category scheme="http://www.blogger.com/atom/ns#" term="installation" /><category scheme="http://www.blogger.com/atom/ns#" term="howto" /><category scheme="http://www.blogger.com/atom/ns#" term="centos" /><category scheme="http://www.blogger.com/atom/ns#" term="fedora" /><category scheme="http://www.blogger.com/atom/ns#" term="rhel" /><category scheme="http://www.blogger.com/atom/ns#" term="vmware" /><category scheme="http://www.blogger.com/atom/ns#" term="kvm" /><title type="text">Migrating from VMware to KVM</title><content type="html">A lot of reports on the internet talk about the reduction of costs when you invest in virtualization. This is something I will certainly not deny after many years of experience with VMware Workstation, VMware Fusion, VMware GSX (now VMware Server) and VMware ESX and having implemented several high-availability setups using ESX. Even at home I had several whitebox servers with &lt;a href="http://picasaweb.google.com/lh/photo/9ftwxi4UAsNwhjDJK1bIFQ"&gt;Virtual Center&lt;/a&gt;... until I migrated away to KVM. In this article I will explain the reason of the migration and how to perform it with an example.&amp;nbsp;It is written towards people who currently run VMware GSX or VMware Server on Linux.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Motivation&lt;/b&gt;&lt;br /&gt;It is undeniable that virtualization provide you with a lot of benefits; consolidation of servers will save you money. Maintaining your virtualized servers becomes a breeze, since they are all accessible from a single front-end. But implementing your environment on VMware comes at a price... even for the free version VMware Server; maintenance.&amp;nbsp;You will still need to monitor your virtualization servers for performance and distribute your virtual machines among your servers or resource pools according to load. Although there are tools available to assist you, it is not the biggest issue.&lt;br /&gt;&lt;br /&gt;VMware Server requires an additional operating system like Linux (or Windows). This introduces an added maintenance dependency; kernel modules which VMware uses need to be recompiled when the kernel gets updated. If a security exploit is found in the kernel, the virtualization host can be compromised and therefore jeopardize the continuity of your business. To prevent this, you update the kernel, but on reboot you notice that VMware does not start properly. On the command line you will need to perform a &lt;i&gt;vmware-config.pl&lt;/i&gt; which build the modules. Unfortunately, your kernel headers are newer and either&lt;i&gt; vmmon&lt;/i&gt; (virtual machine monitor) or &lt;i&gt;vmnet&lt;/i&gt; (network component) does not build properly. Because of this, your whole infrastructure is offline until VMware provides new components or the release of the community patch package '&lt;a href="http://communities.vmware.com/message/76957"&gt;vmware-any-any&lt;/a&gt;'.&lt;br /&gt;&lt;br /&gt;Users of VMware ESX will not have this issue, since the operating system and modules are provided in the form of the VMware's &lt;i&gt;vmkernel&lt;/i&gt;. If a security update is needed, you only need to install an update. The previously mentioned&amp;nbsp;issue &amp;nbsp;has happened to me often enough and I&amp;nbsp;I wanted to have the same solution as ESX, but with the convenience of using Un*x/Linux experience for maintenance without the dependency of a&amp;nbsp;third-party&amp;nbsp;product. Since RHEL 5.4 this is provided as an enterprise supported solution;&amp;nbsp;KVM, the&amp;nbsp;&lt;a href="http://www.linux-kvm.com/"&gt;Kernel-based Virtual Machine&lt;/a&gt;, once developed by Qumranet and now owned by RedHat. And by using &lt;a href="http://www.centos.org/"&gt;CentOS&lt;/a&gt; this is available to everyone without too much trouble.&lt;br /&gt;&lt;br /&gt;There are some differences between VMware and KVM. KVM is provided as part of the kernel, so any Linux distribution can provide it as part of their offering. KVM supports different formats for a virtual&amp;nbsp;hard disk, while VMware only uses their own VMDK format. VMware can run in a full virtualized mode and is therefore suitable for older hardware. KVM needs a processor that provides &lt;a href="http://en.wikipedia.org/wiki/X86_virtualization#Hardware_support"&gt;VT-x (Intel) or AMD-V (AMD)&lt;/a&gt; to operate. VMware can run x86_64 guests on a i686 host, while KVM can not.&lt;br /&gt;&lt;br /&gt;Because of this last reason, I had to reinstall CentOS on one of my systems, since it still ran an i686 version of CentOS 5.4 (on a Core2Duo E6600). This provides a good overview of what needs to be done to run KVM on CentOS.&lt;br /&gt;&lt;br /&gt;Note: since KVM uses &lt;i&gt;qemu&lt;/i&gt; to emulate any hardware you can also choose to use qemu without KVM as the hypervisor, but instead use the kqemu kernel module.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Installation&lt;/b&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/ncEH8sxHtZESZKToIMuTBQ?feat=embedwebsite" style="float: right;"&gt;&lt;img src="http://lh4.ggpht.com/_ZmgfsgbGDLs/SyVEVDP6AyI/AAAAAAAAHwE/INGRcuIqpW0/s288/host-install.png" /&gt;&lt;/a&gt;&lt;br /&gt;You will need to &lt;a href="http://mirror.centos.org/centos/5/isos/"&gt;download&lt;/a&gt; an installation disc of CentOS 5.4. Prefer to use the x86_64 version;&amp;nbsp;&lt;i&gt;CentOS-5.4-x86_64-bin-DVD.iso&lt;/i&gt;. During the installation you can keep the default settings and when asked for the 'additional tasks' you will perform, do not select the 'Virtualization' option. After the installation finished, you will need to update the system to the latest updates.&lt;br /&gt;&lt;br /&gt;From the reinstall I noticed a minor error in the CentOS 5.4 x86_64 installation. Due to installing openssl.i686 it also installed a lot of other standard i386-arch libraries. You can find out if you also have those packages installed as described in a &lt;a href="http://blog.gbraad.nl/2009/08/accidently-installed-i386-packages-on.html"&gt;earlier post&lt;/a&gt;. If you also want to remove those packages, perform the following command line option before continuing.&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: black; color: white;"&gt;&lt;code&gt;$ rpm -e `rpm -qa --qf '%{name}.%{ARCH}\n' |grep i386` openssl.i686&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;To update your system:&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: black; color: white;"&gt;&lt;code&gt;$ yum update&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;If your system is up-to-date, continue to install the needed packages for KVM and &lt;a href="http://virt-manager.et.redhat.com/"&gt;Virt-Manager&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: black; color: white;"&gt;&lt;code&gt;$ yum install bridge-utils kvm kvm-qemu virt-manager virt-viewer python-virtinst&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;In later versions of CentOS it might suffice to issue the command "&lt;i&gt;yum groupinstall 'Virtualization'&lt;/i&gt;", but currently this installs a Xen enabled kernel. According to the used processor, you can test to load the needed kernel module and start the &lt;i&gt;libvirt&lt;/i&gt; daemon.&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: black; color: white;"&gt;&lt;code&gt;$ modprobe kvm&lt;br /&gt;$ modprobe kvm-intel &lt;i&gt;(or kvm-amd)&lt;/i&gt;&lt;br /&gt;$ service libvirtd start&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;I normally use a different management workstation. And as an example I use a Fedora 12 installation to connect to the virtualization host (beibei). First from a tunneled connection to the host (with X11 forwarding).&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: black; color: white;"&gt;&lt;code&gt;$ ssh -X root@beibei&lt;br /&gt;root@beibei's password: **************&lt;br /&gt;# virt-manager&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;This will start the Virtual Machine Manager from which you can create new instances.&amp;nbsp;You can of course use a Gnome desktop from the CentOS system to manage your virtual machines, but it pays off to try a seperate management workstation. This will allow you to try additional features, like live migrations between KVM virtualization servers.&lt;br /&gt;&lt;br /&gt;This is all it needs to install KVM on a CentOS 5.4 installation. For an earlier version of CentOS, it is best to consult the &lt;a href="http://wiki.centos.org/HowTos/KVM"&gt;wiki article about KVM&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Network settings&lt;/b&gt;&lt;br /&gt;A default VMware Server installation will bridge the network card you have. You will probably want to have the same configuration for your KVM environment. For this you need standard Linux bridging utilities.&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: black; color: white;"&gt;&lt;code&gt;$ yum install bridge-utils&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;You only need to edit (or create) some network-scripts to make a bridge work.&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: black; color: white;"&gt;&lt;code&gt;$ vi /etc/sysconfig/network-scripts/ifcfg-eth0&lt;br /&gt;DEVICE=eth0&lt;br /&gt;&lt;s&gt; HWADDR=00:1a:2b:3c:4d:5e&lt;/s&gt;&lt;br /&gt;ONBOOT=yes&lt;br /&gt;BRIDGE=br0&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;And create the bridge&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: black; color: white;"&gt;&lt;code&gt;$ vi /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;DEVICE=br0&lt;br /&gt;&lt;s&gt; BOOTPROTO=dhcp&lt;/s&gt;&lt;br /&gt;ONBOOT=yes&lt;br /&gt;TYPE=Bridge&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;When you start the network again, you will have a &lt;i&gt;br0&lt;/i&gt; and &lt;i&gt;eth0&lt;/i&gt; device.&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: black; color: white;"&gt;&lt;code&gt;$ service network restart&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;You will now be able to select a bridged network card inside the KVM virtual machine configuration. If you have more network card, create a bridge per network card.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Converting the virtual disk files&lt;/b&gt;&lt;br /&gt;For the migration part I choose a virtual machine who once began it's life as a &lt;a href="http://picasaweb.google.com/lh/photo/D73i0Oqxov1U7lrY9e4s8A"&gt;physical machine&lt;/a&gt;; forum.survion.net. It is a Linux installation once based on FC3, &lt;a href="http://blog.gbraad.nl/2009/01/wizard-of-yum-upgrade-from-fc3-to.html"&gt;got migrated to CentOS&lt;/a&gt;... and then&amp;nbsp;&lt;a href="http://picasaweb.google.com/lh/photo/qH4c-INqH_WZ-QaP3Qlvvw"&gt;ran as a VMware virtual machine&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The VMware virtual machine consists of one or more hard disk files, with the extension &lt;i&gt;.vmdk&lt;/i&gt; and a description file, with the extension &lt;i&gt;.vmx&lt;/i&gt;. A listing of &lt;i&gt;server-forum.vmwarevm&lt;/i&gt; looks like:&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: black; color: white;"&gt;&lt;pre&gt;[root@beibei server-forum.vmwarevm]# ls -al&lt;br /&gt;total 29405144&lt;br /&gt;drwxr-xr-x  2 root users        4096 Dec 12 20:53 .&lt;br /&gt;drwxr-xr-x 21 root root         4096 Dec  9 17:32 ..&lt;br /&gt;-rwxr-xr-x  1 root vmware       8684 Dec  7 21:09 nvram&lt;br /&gt;-rw-------  1 root vmware          0 Jan  3  2009 Red Hat Linux.vmsd&lt;br /&gt;-rwxr-xr-x  1 root vmware       2369 Dec  7 21:09 Red Hat Linux.vmx&lt;br /&gt;-rw-r--r--  1 root vmware        268 Jan  3  2009 Red Hat Linux.vmxf&lt;br /&gt;-rw-r--r--  1 root vmware 2147221504 Dec  7 22:22 storage-f001.vmdk&lt;br /&gt;-rw-r--r--  1 root vmware 2147221504 Dec  7 22:20 storage-f002.vmdk&lt;br /&gt;-rw-r--r--  1 root vmware 2147221504 Dec  7 22:21 storage-f003.vmdk&lt;br /&gt;-rw-r--r--  1 root vmware 2147221504 Dec  7 22:20 storage-f004.vmdk&lt;br /&gt;-rw-r--r--  1 root vmware 2147221504 Dec  7 22:22 storage-f005.vmdk&lt;br /&gt;-rw-r--r--  1 root vmware 2147221504 Aug 30 14:45 storage-f006.vmdk&lt;br /&gt;-rw-r--r--  1 root vmware 2147221504 Dec  7 22:22 storage-f007.vmdk&lt;br /&gt;-rw-r--r--  1 root vmware 2147221504 Oct 25 19:18 storage-f008.vmdk&lt;br /&gt;-rw-r--r--  1 root vmware 2147221504 Nov 30 04:05 storage-f009.vmdk&lt;br /&gt;-rw-r--r--  1 root vmware 2147221504 Nov 30 04:04 storage-f010.vmdk&lt;br /&gt;-rw-r--r--  1 root vmware    2621440 Jul 23  2008 storage-f011.vmdk&lt;br /&gt;-rw-r--r--  1 root vmware        749 Dec  7 21:11 storage.vmdk&lt;br /&gt;-rw-r--r--  1 root vmware 2147221504 Dec  7 22:22 system-f001.vmdk&lt;br /&gt;-rw-r--r--  1 root vmware 2147221504 Dec  7 22:22 system-f002.vmdk&lt;br /&gt;-rw-r--r--  1 root vmware 2147221504 Dec  7 22:22 system-f003.vmdk&lt;br /&gt;-rw-r--r--  1 root vmware 2147221504 Dec  7 22:22 system-f004.vmdk&lt;br /&gt;-rw-r--r--  1 root vmware   17659904 Jul 23  2008 system-f005.vmdk&lt;br /&gt;-rw-r--r--  1 root vmware        616 Dec  7 21:11 system.vmdk&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;As you can see, there are two hard disks (system and storage) and several other files. The hard disk as shown here is a fully allocated file which is divided up in seperate 2Gb files (handy for use on a FAT32 filesystem for portability). We have to convert it back into a monolithic file for use on KVM. Luckily KVM understands the monolithic VMDK file format, so we will choose this for interoperability. To convert the file you can use a VMware provided tool called &lt;i&gt;vmware-vdiskmanager&lt;/i&gt; (includes with VMware products).&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: black; color: white;"&gt;&lt;code&gt;$ vmware-vdiskmanager -r system.vmdk -t 0 forum-system.img&lt;br /&gt;$ vmware-vdiskmanager -r storage.vmdk -t 0 forum-storage.img&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;After this you will have two files that need to be copied to the in the images folder of libvirt on the virtualization host (&lt;i&gt;/var/lib/libvirt/images/&lt;/i&gt;). You can do this using &lt;i&gt;scp&lt;/i&gt;, &lt;u&gt;&lt;i&gt;ftp&lt;/i&gt;&lt;/u&gt; or mount an &lt;i&gt;NFS&lt;/i&gt; export. From here we can create a virtual machine to connect these disk files to. Connect to the virtualization host and start the Virtual Machine Manager.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Create the Virtual Machine&lt;/b&gt;&lt;br /&gt;Select localhost and create a new virtual machine using the context menu. Give it a unique name that identifies it easily for you, as I did: server-forum. If KVM is installed properly, you can only select "Full virtualized' from the Virtualization Method. Select the CPU architecture that fits your former VMware virtual machine and as the hypervisor: kvm.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/KHj7sXmPXBCtbNqb44TUcw"&gt;&lt;img src="http://lh4.ggpht.com/_ZmgfsgbGDLs/SyVfP8LLpZI/AAAAAAAAHwk/Cp5_7_6JdWA/s400/virtual-method-window.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;On the 'Installation Method' page choose 'Network boot (PXE)' so you don't have to select a installation disk image.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/j2ubjLoplt0E0ojFQxVYdg"&gt;&lt;img src="http://lh6.ggpht.com/_ZmgfsgbGDLs/SyVfP9IBPBI/AAAAAAAAHwo/N6rGaYgPRco/s400/install-method-window.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;On the 'Storage' page you deselect the 'Allocate entire virtual disk now' since we will not use the create virtual hard disk image. Beware; don't let the size become 0, since this way libvirt will not create the disk file and will fail to create the virtual machine.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/pRN911zC7BJlLixK2-Vsgg"&gt;&lt;img src="http://lh4.ggpht.com/_ZmgfsgbGDLs/SyVgtQHV2lI/AAAAAAAAHww/wu8OISZLUss/s400/network-window.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;On the 'Network' page you will probably want to select the bridged network card. This gives you the same functionality as VMware did as default option. On the 'Memory and CPU Allocation page' you can adjust the settings which are most close to your former virtual machine. After the summary the virtual machine will start automatically. Immediately issue a 'Force Off' as Shut down option. Now select the 'Hardware' tab.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/87LIAgWBnsI-vJ8phrArVA"&gt;&lt;img src="http://lh6.ggpht.com/_ZmgfsgbGDLs/SyVkYSgnagI/AAAAAAAAHw0/CYdB_F9Sf2c/s400/vm-hardware-window.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Remove the 'Disk hda' and add new hardware of the type 'Storage' and select the system file from the storage location. If you have selected the file, you will see the correct size. Do the same of the other disks you have.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/a36wVcZNSQVPekYw6xTaDw?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_ZmgfsgbGDLs/SyVl01FEfGI/AAAAAAAAHw4/kGS1x0BM_6Y/s400/vm-boot-window.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Be sure to change the boot device in the Boot options of this VM. Else it will try to start using Network (PXE) instead of the virtual hard disk.&lt;br /&gt;&lt;br /&gt;Now everything should be ok to start the virtual machine.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Issues you might encounter&lt;/b&gt;&lt;br /&gt;The conversion will probably not be without problems. For instance, I had a &lt;a href="http://bugs.centos.org/view.php?id=2912"&gt;common issue with the kernel&lt;/a&gt; of the virtual machine. Due to a kernel panic it did not start properly. Fortunately tools are available to perform actions of the virtual hard disk files. One of those tools is &lt;a href="http://libguestfs.org/"&gt;guestfish&lt;/a&gt;. On CentOS and Fedora you can install this tool using:&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: black; color: white;"&gt;&lt;code&gt;$ yum install guestfish&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;For instance, I had to download a newer kernel and try to install this inside the virtual machine. The following commands show what I did:&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: black; color: white;"&gt;&lt;code&gt;$ guestfish&lt;br /&gt;fs# add /var/lib/libvirt/images/forum-system.img&lt;br /&gt;fs# run&lt;br /&gt;Could not open '/dev/kqemu' - QEMU acceleration layer not activated: No such file or directory&lt;br /&gt;fs# mount /dev/sda2 /&lt;br /&gt;fs# mount /dev/sda1 /boot&lt;br /&gt;fs# upload /tmp/downloaded.rpm /tmp/kernel.rpm&lt;br /&gt;fs# command "rpm -ivh /tmp/kernel.rpm"&lt;br /&gt;fs# vi /boot/grub/grub.conf&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;These commands will add the &lt;i&gt;forum-system.img&lt;/i&gt; to a qemu instance. Inside the qemu instance you will then mount the mountpoints, upload the kernel RPM from the local path to the tmp inside the filesystem. From here nothing special... and then it will issue a command inside qemu to install the kernel package. This command will run inside the filesystem as if it performed the command from the commandline. Finally I verify the grub configuration and change it if necessary.&amp;nbsp;From here I was able to start the virtual machine without any errors.&lt;br /&gt;&lt;br /&gt;Note: If you convert Windows virtual machines you might encounter more issues. Those conversion steps are outside the scope of this document, but are not impossible to perform.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Fedora 12&lt;/b&gt;&lt;br /&gt;The latest release of Fedora includes &lt;a href="http://fedoraproject.org/wiki/Virtualization_improvements_in_Fedora_12"&gt;many improvements&lt;/a&gt; which are virtualization related. If you want to try KVM on a workstation, you should definitely try Fedora 12.&lt;br /&gt;&lt;br /&gt;Below here you can see virt-manager. The interface has changed a little. As you can see from the screenshot, it is connected to the local machine and two remote hosts. The console is shown from the remote host (using &lt;i&gt;ssh&lt;/i&gt; and &lt;i&gt;vnc&lt;/i&gt;). For this no additional configuration was needed.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/bM8ahy6bt-WhBQbJhEZEBg"&gt;&lt;img src="http://lh3.ggpht.com/_ZmgfsgbGDLs/SyQVBLMeLhI/AAAAAAAAHu8/xJzllFxeT6A/s400/vm-running.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It is easy to monitor the performance of a virtual machine using the Virtual Machine Manager. Here you can see the server-forum instance with an overview of CPU/Memory usage and Disk/Network activity.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/CRkLwK-4T5knIMJiiH7LfA"&gt;&lt;img src="http://lh5.ggpht.com/_ZmgfsgbGDLs/SyQVBfmXuPI/AAAAAAAAHvA/E0RkzpQ_DO4/s400/vm-performance.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Just a few days ago SPICE was released. This is an alternative to &lt;i&gt;vnc&lt;/i&gt; to view the console of a virtual machine. It is target towards the use of a Virtual Desktop. More information about this can be found on the &lt;a href="http://www.spice-space.org/"&gt;SPICE website&lt;/a&gt;. A &lt;a href="http://www.linux-kvm.com/content/getting-started-spice-fedora-12"&gt;how-to for Fedora 12&lt;/a&gt; is available.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5606041637705531621-3228659772707609407?l=blog.gbraad.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gbraad.nl/feeds/3228659772707609407/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5606041637705531621&amp;postID=3228659772707609407&amp;isPopup=true" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/3228659772707609407" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/3228659772707609407" /><link rel="alternate" type="text/html" href="http://blog.gbraad.nl/2009/12/migrating-from-vmware-to-kvm.html" title="Migrating from VMware to KVM" /><author><name>Gerard Braad</name><uri>https://plus.google.com/112618846457931278165</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-EcgVgHfrnHk/AAAAAAAAAAI/AAAAAAAAI1w/Gkmf37iyvMk/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/_ZmgfsgbGDLs/SyVEVDP6AyI/AAAAAAAAHwE/INGRcuIqpW0/s72-c/host-install.png" height="72" width="72" /><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5606041637705531621.post-1217647278047033642</id><published>2009-11-23T00:24:00.005+01:00</published><updated>2009-11-23T00:41:36.763+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="scratchbox" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="development" /><category scheme="http://www.blogger.com/atom/ns#" term="installation" /><category scheme="http://www.blogger.com/atom/ns#" term="fedora" /><category scheme="http://www.blogger.com/atom/ns#" term="maemo" /><title type="text">Maemo 5 SDK on Fedora 12</title><content type="html">It is possible to install the Maemo 5 SDK (final) on Fedora 12. It only takes two minor edits to the installer script. You first need to make sure you have installed Xephyr. You can do so with the command:&lt;br /&gt;&lt;br /&gt;&lt;div style="color:white;background:black"&gt;&lt;code&gt;$ yum install Xephyr&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;since the installer is not able to do so for other distributions than Ubuntu and debian. You can download the GUI installer script from Forum Nokia: &lt;a href="http://www.forum.nokia.com/info/sw.nokia.com/id/c05693a1-265c-4c7f-a389-fc227db4c465/Maemo_5_SDK.html"&gt;Maemo 5 SDK&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In the file  maemo-sdk-install-wizard_5.0.py you can change line 129 to&lt;br /&gt;&lt;br /&gt;&lt;div style="color:white;background:black"&gt;&lt;code&gt;SB_PATH="/opt/scratchbox"&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;It is just optional. But to me this location feels more appropriate then '/scratchbox'. On my system it is linked to another location with other hardware and software development tools.&lt;br /&gt;&lt;br /&gt;The current version of the script seems to fail on Fedora because of not being able to install scratchbox due to a missing path.&lt;br /&gt;&lt;br /&gt;Change line 2311 to:&lt;br /&gt;&lt;div style="color:white;background:black"&gt;&lt;code&gt;exec_cmd(sb_installer_fn + opt + "-s " + SB_PATH)&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;Change line 2351 to:&lt;br /&gt;&lt;div style="color:white;background:black"&gt;&lt;code&gt;cmd = "%s -d -m %s -s %s" % (sdk_installer_fn, self.__sdk_inst_m_opt_arg, SB_PATH)&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;This includes the Scratchbox path during the command invocation. You can then install the SDK by running the script. It will handle the download of PyQT and sip itself.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;img border="0" src="http://lh6.ggpht.com/_ZmgfsgbGDLs/Swm7miSGTwI/AAAAAAAAHmI/S1kcjs-efHQ/s320/maemosdk_install.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;After the install you can start Xephyr. However you can not use the -kb option:&lt;br /&gt;&lt;br /&gt;&lt;div style="color:white;background:black"&gt;&lt;code&gt;$ Xephyr :2 -host-cursor -screen 800x480x16 -dpi 96 -ac &amp;amp;&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;The first start of af-sb-init.sh failed for me with a coredump and several segmentation faults. try to close the scratchbox environment and try again.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;img border="0" src="http://lh3.ggpht.com/_ZmgfsgbGDLs/SwnCCjHHqJI/AAAAAAAAHmw/4H9Wf5Dc9GM/s320/sb-af.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Note: I haven't tried it with SELinux as enforcing since I currently run my workstation as permissive. Discussion is possible on the &lt;a href="http://talk.maemo.org/showthread.php?p=386373#post386373"&gt;Maemo developer's forum posting&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5606041637705531621-1217647278047033642?l=blog.gbraad.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gbraad.nl/feeds/1217647278047033642/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5606041637705531621&amp;postID=1217647278047033642&amp;isPopup=true" title="8 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/1217647278047033642" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/1217647278047033642" /><link rel="alternate" type="text/html" href="http://blog.gbraad.nl/2009/11/maemo-5-sdk-on-fedora-12.html" title="Maemo 5 SDK on Fedora 12" /><author><name>Gerard Braad</name><uri>https://plus.google.com/112618846457931278165</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-EcgVgHfrnHk/AAAAAAAAAAI/AAAAAAAAI1w/Gkmf37iyvMk/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_ZmgfsgbGDLs/Swm7miSGTwI/AAAAAAAAHmI/S1kcjs-efHQ/s72-c/maemosdk_install.png" height="72" width="72" /><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5606041637705531621.post-3935713291327465801</id><published>2009-11-17T23:25:00.008+01:00</published><updated>2009-11-18T00:17:29.539+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="chinese" /><category scheme="http://www.blogger.com/atom/ns#" term="fedora" /><category scheme="http://www.blogger.com/atom/ns#" term="final release" /><category scheme="http://www.blogger.com/atom/ns#" term="linuxtoy" /><title type="text">聚集：Fedora 12 正式发布 from LinuxTOY</title><content type="html">以技术创新驰名的 Fedora Project 今日发布了代号 Constantine 的 Fedora 12 ，口号 Unite，取意“聚集开源软件智慧”。&lt;br /&gt;&lt;br /&gt;新特性&lt;br /&gt;&lt;ul&gt;&lt;li&gt;性能优化：在 32 位平台上全部软件包针对 i686 架构重新编译，并对 Intel Atom 处理器进行性能调优。&lt;/li&gt;&lt;li&gt;NetworkManager ：改善了对于宽带、蓝牙和 IPv6 的连接配置过程。配合 PolicyKit ，网络配置只需要点击鼠标即可轻松完成。&lt;/li&gt;&lt;li&gt;下一代 Theora 编码支持：Fedora 12 集成了最新的开源视频编解码器 Theora 1.1 版本（详情见本站&lt;a href="http://linuxtoy.org/archives/how-to-use-thoggen-to-backup-dvd-video-under-fedora.html"&gt;此文&lt;/a&gt;）。&lt;/li&gt;&lt;li&gt;更好的显卡支持：针对 Nvidia Nouveau 驱动和 AMD R600/700 系列的 KMS 支持，同时为 Intel 显卡引入 DisplayPort 支持。&lt;/li&gt;&lt;li&gt;虚拟化支持：改善了 KVM 性能，并提供虚拟机磁盘镜像监控工具 guestfish。&lt;/li&gt;&lt;li&gt;自动臭虫汇报系统和 SELinux：新的崩溃收集程序 abrt 只需要点击几下鼠标即可将遇到的软件或 SELinux 提交至 Bugzilla，方便开发者修复。&lt;/li&gt;&lt;li&gt;新的 Dracut initrd 启动系统：并行、以事件为单位的 Dracut 系统进一步加快启动速度。&lt;/li&gt;&lt;li&gt;PackageKit 插件：当用户尝试运行一个包含在尚未安装的软件包中的命令时，PackageKit 可以自动提示安装相应软件包。&lt;/li&gt;&lt;li&gt;按需蓝牙服务：蓝牙服务会根据需要自动启动和停止。&lt;/li&gt;&lt;li&gt;Moblin 桌面环境：增加了 Moblin 桌面环境软件包组以及Fedora Moblin Spin 。&lt;/li&gt;&lt;li&gt;PulseAudio ：增添了 UPnP 和 DLNA 支持，可以直接将音频流发送至 PS3 等设备。同时改善了热拔插和蓝牙设备支持。&lt;/li&gt;&lt;li&gt;更加安全：降低了部分系统文件和进程的运行访问权限，避免使用 root 权限访问。同时为 SELinux 增添了沙箱支持。&lt;/li&gt;&lt;li&gt;Broadcom 固件：默认包含了 Open Broadcom 固件，对部分 Broadcom 无线网卡提供 out-of-the-box 支持。&lt;/li&gt;&lt;li&gt;混合 Live 镜像：现在只需要使用 dd 即可创建光盘或者 USB Live 镜像，不过还是推荐使用 Livecd-tools 以获得诸如保留空间等功能。&lt;/li&gt;&lt;li&gt;更好的摄像头支持：改善了部分摄像头的成象质量，尤其是很多廉价摄像头。&lt;/li&gt;&lt;li&gt;GNOME 2.28：使用 Gnote 替代了 Tomboy 成为默认便签，用 Empathy 替代了 Pidgin 成为默认即时通讯客户端。&lt;/li&gt;&lt;li&gt;GNOME-shell 预览：尽管 GNOME 3.0 延期了，但是依然可以在 Fedora 12 中提前体验下 GNOME Shell 的。&lt;/li&gt;&lt;li&gt;KDE 4.3：升级版的 Air 主题，可配置的快捷键支持，新的窗口管理器特效以及更好的红外线遥控支持。&lt;/li&gt;&lt;li&gt;开发者：Eclipse Galileo, Perl 6, PHP 5.3, Netbeans 6.7.1&lt;/li&gt;&lt;li&gt;管理员：GFS2 集群 Samba 管理&lt;/li&gt;&lt;li&gt;X.org 1.7.1：包含支持多指点设备支持的 XI2。&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://fedoraproject.org/wiki/Fedora_12_Announcement"&gt;英文原文及详细贡献者&lt;/a&gt;&lt;br /&gt;&lt;a href="http://fedoraproject.org/get-fedora.html"&gt;官方镜像下载&lt;/a&gt;&lt;br /&gt;&lt;a href="http://fedoraproject.org/wiki/Releases/12/FeatureList"&gt;完整功能列表&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Thanks &lt;a href="http://linuxtoy.org/archives/author/lovenemesis/"&gt;黑日白月&lt;/a&gt;, &lt;a href="http://linuxtoy.org/archives/fedora-12-unite-golden-released.html"&gt;Orginal article&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5606041637705531621-3935713291327465801?l=blog.gbraad.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="related" href="http://linuxtoy.org/archives/fedora-12-unite-golden-released.html" title="聚集：Fedora 12 正式发布 from LinuxTOY" /><link rel="replies" type="application/atom+xml" href="http://blog.gbraad.nl/feeds/3935713291327465801/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5606041637705531621&amp;postID=3935713291327465801&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/3935713291327465801" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/3935713291327465801" /><link rel="alternate" type="text/html" href="http://blog.gbraad.nl/2009/11/fedora-12-from-linuxtoy.html" title="聚集：Fedora 12 正式发布 from LinuxTOY" /><author><name>Gerard Braad</name><uri>https://plus.google.com/112618846457931278165</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-EcgVgHfrnHk/AAAAAAAAAAI/AAAAAAAAI1w/Gkmf37iyvMk/s512-c/photo.jpg" /></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5606041637705531621.post-6473511768138070712</id><published>2009-11-07T16:01:00.005+01:00</published><updated>2009-11-07T16:14:16.381+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="fedora" /><title type="text">Get to know a Fedora Ambassador or User</title><content type="html">Name: Gerard Braad&lt;br /&gt;IRC-Nick: gbraad&lt;br /&gt;IRC-Channels: #fedora-ambassadors, #maemo, #beijinglug on freenode (seldom)&lt;br /&gt;Location: Apeldoorn, NL / Beijing, CHN&lt;br /&gt;Fedora Ambassador: Netherlands&lt;br /&gt;FAS username: &lt;a href="http://fedoraproject.org/wiki/User:Gbraad"&gt;gbraad&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="width: 192px; height: 288px;" src="http://lh3.ggpht.com/_ZmgfsgbGDLs/R-Pqyv2RxRI/AAAAAAAAA5g/kwU8V4saZnA/s288/IMG_6523-800.png" border="0" alt="Gerard Braad" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5606041637705531621-6473511768138070712?l=blog.gbraad.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gbraad.nl/feeds/6473511768138070712/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5606041637705531621&amp;postID=6473511768138070712&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/6473511768138070712" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/6473511768138070712" /><link rel="alternate" type="text/html" href="http://blog.gbraad.nl/2009/11/get-to-know-fedora-ambassador-or-user.html" title="Get to know a Fedora Ambassador or User" /><author><name>Gerard Braad</name><uri>https://plus.google.com/112618846457931278165</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-EcgVgHfrnHk/AAAAAAAAAAI/AAAAAAAAI1w/Gkmf37iyvMk/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/_ZmgfsgbGDLs/R-Pqyv2RxRI/AAAAAAAAA5g/kwU8V4saZnA/s72-c/IMG_6523-800.png" height="72" width="72" /><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5606041637705531621.post-7652163268200137789</id><published>2009-10-24T16:00:00.013+01:00</published><updated>2009-10-30T00:31:55.028+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="arm" /><category scheme="http://www.blogger.com/atom/ns#" term="omap" /><category scheme="http://www.blogger.com/atom/ns#" term="nokia" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="maemo" /><category scheme="http://www.blogger.com/atom/ns#" term="geek" /><title type="text">Nokia N900; the geek-device!</title><content type="html">&lt;a href="http://picasaweb.google.com/gbraad/MaemoSummit2009"&gt;&lt;img style="float:right; margin:0 0 10px 10px;width: 240px; height: 180px;" src="http://farm4.static.flickr.com/3467/4000077169_0a257d1824_m.jpg" border="0" alt="Phones should be open to anything" /&gt;&lt;/a&gt;&lt;br /&gt;During the Maemo Summit 2009 I was given a Nokia N900 for evaluation and development. For about three weeks now I have been able to use the device and got used to it in such a way that I seldom check the internet on my notebook or desktop. Here you will find my thoughts on using this '&lt;span style="font-style:italic;"&gt;pre-production&lt;/span&gt;' model.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Services I often use, like Identi.ca and Twitter, are consolidated using my Google Mail account. Normally I would quickly browse the web to check my mail and check the messages I received while I was offline. During a working day, I tended to use my other Nokia phone for tethering to my N810. This way I was mostly always online (Bluetooth sometimes wouldn't re-establish until a power down of both devices)... I was able to receive VoIP calls (SIP) on both my phone and internet tablet. Most of the time I would still use my notebook to have a full web experience or respond to my emails... and for calendar-keeping? I gave up on that... Symbian's calendar isn't comparable to the Palm calendar (or Agendus!). I have tried to use the N810 as a PDA, but the GPE tools didn't work well for me... I missed a good synchronization and integration: then came the N900.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Near desktop experience&lt;/span&gt;&lt;br /&gt;The N900 is very powerful! That needs to be said. It is powered by a Texas Instruments OMAP3430. This processor is comparable to the BeagleBoards OMAP3530. The ARM Cortex-A8 core runs at 600Mhz and has the same PowerVR SGX 530 GPU. Only the DSP core is a little slower with 430MHz (TMS320C64x). The device gives a feeling of having more than enough power. When you start a game, like &lt;a href="http://www.youtube.com/watch?v=zBzUNe5ov_o"&gt;Bounce&lt;/a&gt;, you can still see it being active in the task-switching overview; true multi-tasking. &lt;br /&gt;&lt;br /&gt;The OMAP-series processor can provide a full desktop experience, like the BeagleBoard can do with for instance Fedora and Ubuntu. However, this is also where the N900 falls a little short. Instead of providing a mini-HDMI connector it only has a composite out. After some tweaks in the OS you can connect a Bluetooth keyboard and mouse... and using the correct cables even USB. But you can't connect a larger screen... this way it is not a convergence device which could replace a desktop computer. Compare this to the the Creative Zii which I have for development; it provides HDMI-out and can playback a HD video in 1080p (but it can't do the desktop experience at the moment). The composite image quality is in my opinion too blurry. For games it works well, but viewing photos or a video felt a little disappointing.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Battery time and use&lt;/span&gt;&lt;br /&gt;Lately I have seen a lot of news about the Motorola Droid. This device is also powered by the OMAP3430 and would be thinner than a iPhone 3GS. I am curious to see how they deal with battery time... since that battery must be small! The N900 is quite large and the capacity of the BL-5J battery is less than the one in the N810. The battery is empty after half a day of extensive use; GPS always on, always online (using 3G or lower depending on the location in NL, WLAN at home), FM transmitter on when I go to work (and back home) while playing music of course.&lt;br /&gt;&lt;br /&gt;Luckily you can charge the device using the MicroUSB connector and at work I always have to do so. During this 'extensive' use I seldom made a phonecall! For me the N900 is primarily a mobile computer and a phone second. The GSM functionality provides me with the cellular data service I was missing the N810. Most of my phonecalls were done using VoIP (over 3G) and were short. I did notice the device became VERY HOT during a VoIP (over WLAN) of about 30 minutes.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Internet&lt;/span&gt;&lt;br /&gt;If you want the full Internet in a device, the N900 is what you want. It has a Firefox browser which loads pages fast and plays Flash videos from YouTube without any hiccup. Photos you take with the camera can be immediately uploaded to remote services, like Flickr and Ovi. GPS information can be set as a status message for your IM. Maemo uses the telepahy framework for messaging and video/voice calls. Out-of-the-box it provides support for SIP, Jabber/XMPP (and Google Talk, Ovi), Skype and GSM (Voice calls, SMS). What I really like is the way conversations are kept or started. Last messages are all easily viewed from the Conversations application.&lt;br /&gt;&lt;br /&gt;All contacts are aggregated from the IM accounts I use. This immediately fills the gap of not having a phonebook service for my SIP accounts. Contacts from different sources can be merged into a single contact entry. If you want to call a contact from the phone application you can easily see if he is online using Google Talk or Skype and even initiate such a call.&lt;br /&gt;&lt;br /&gt;You can send a message from either the contacts or conversations (or even desktop shortcut) and it will open a separate window in which you can see the chat. I haven't felt the need to install Pidgin, unlike what I did for the N810. By installing the telepathy-extras package you can also integrate MSN, Yahoo, ICQ, IRC and more.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Closing thoughts&lt;/span&gt;&lt;br /&gt;Maemo 5 includes a simple calendar which for the moment works quite well for me. Although you can not sync it to a remote service, it works very intuitive. Notes, calendar entries and your contacts can be synchronized using the Nokia PC Suite or SyncML compatible client. &lt;br /&gt;&lt;br /&gt;The camera in the device is 5 mega-pixels and can really make very good quality photos. Just take a look at the &lt;a href="http://www.tigert.com/2009/10/18/photojourney-with-n900/"&gt;Photojourney with N900&lt;/a&gt; from tigert.&lt;br /&gt;&lt;br /&gt;As a game device the N900 could be a very good competition against the iPhone. It easily plays games like &lt;a href="http://http://www.youtube.com/watch?v=qiF60oWAsJI"&gt;Quake3&lt;/a&gt;. Just connect it to the TV and play using the keyboard and the accelerometer! It is almost like having an embedded Wiimote. While the N810 still had a D-pad, this was dropped on the N900. The cursor keys feel more natural for typing emails... but for gaming it feels like you miss some control. Also the  screen does not allow multitouch... so no on-screen joysticks for now.&lt;br /&gt;&lt;br /&gt;Although the device has a complete open development model it currently lacks commercial support of big game companies. I have to admit, this is still where the iPod Touch and iPhone excels... it has a lot of available games. This will be addressed in the next release of Maemo (codenamed Harmattan). It allows a security model which will probably attract a lot more commercial development.&lt;br /&gt;&lt;br /&gt;Last week Nokia postponed the release of the N900 to allow more feedback from developers and evaluators. It also gives developers more opportunity to get familiar to the N900. As an example, most applications were installed in the / (root) filesystem, while large datafiles should have been installed to the user directory (/home/user). I had suffered from an almost complete device lock-up due to system memory being full. This should not happen to a none experienced (Linux) users. So I really think Nokia does a good thing here... They really want to give new users of Maemo a good experience.&lt;br /&gt;&lt;br /&gt;So if you are searching for a game console rather buy a PSP Go or even iPhone. But if you bought a Macbook with the idea of having Un*x under the hood (and a terminal) you should buy a N900. Even the Android falls short in this area. If you want a phone with mobile computer ambitions (being powerful and useful) buy a N97.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;For me the iPhone is a good sheep-phone, while the N900 is the real geek-phone (/device)!&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Take note, I have been using a '&lt;span style="font-style:italic;"&gt;pre-production&lt;/span&gt;' model. The full production model will likely provided a much better experience.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5606041637705531621-7652163268200137789?l=blog.gbraad.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gbraad.nl/feeds/7652163268200137789/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5606041637705531621&amp;postID=7652163268200137789&amp;isPopup=true" title="7 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/7652163268200137789" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/7652163268200137789" /><link rel="alternate" type="text/html" href="http://blog.gbraad.nl/2009/10/nokia-n900-geek-device.html" title="Nokia N900; the geek-device!" /><author><name>Gerard Braad</name><uri>https://plus.google.com/112618846457931278165</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-EcgVgHfrnHk/AAAAAAAAAAI/AAAAAAAAI1w/Gkmf37iyvMk/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://farm4.static.flickr.com/3467/4000077169_0a257d1824_t.jpg" height="72" width="72" /><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5606041637705531621.post-1047598729189375445</id><published>2009-09-21T14:50:00.004+01:00</published><updated>2009-09-21T15:47:47.495+01:00</updated><title type="text">Fedora 11 on coLinux (fixes)</title><content type="html">Recently HenryN (of coLinux) made some &lt;a href="http://colinux.wikia.com/wiki/Fedora11Minimal"&gt;minor changes&lt;/a&gt; to the &lt;a href="http://blog.gbraad.nl/2009/07/fedora-11-on-colinux.html"&gt;Fedora 11 image for coLinux&lt;/a&gt;. The new image is available from the &lt;a href="http://sourceforge.net/projects/colinux/forum/forum/342354/topic/3347702"&gt;coLinux forum&lt;/a&gt; at SourceForge or directly from [&lt;a href="http://gbraad.fedorapeople.org/files/colinux-fedora11.exe"&gt;FedoraPeople&lt;/a&gt;] or [&lt;a href="http://www.megaupload.com/?d=NGI1PYO3"&gt;MegaUpload&lt;/a&gt;] (70.3 MB).&lt;br /&gt;&lt;br /&gt;Thanks!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Note: the original image has been replaced by this fixed image. If needed the original image is available upon request. However it should be considered obsolete.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5606041637705531621-1047598729189375445?l=blog.gbraad.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gbraad.nl/feeds/1047598729189375445/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5606041637705531621&amp;postID=1047598729189375445&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/1047598729189375445" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/1047598729189375445" /><link rel="alternate" type="text/html" href="http://blog.gbraad.nl/2009/09/fedora-11-on-colinux-fixes.html" title="Fedora 11 on coLinux (fixes)" /><author><name>Gerard Braad</name><uri>https://plus.google.com/112618846457931278165</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-EcgVgHfrnHk/AAAAAAAAAAI/AAAAAAAAI1w/Gkmf37iyvMk/s512-c/photo.jpg" /></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5606041637705531621.post-6298039631945932374</id><published>2009-09-09T04:22:00.006+01:00</published><updated>2009-09-09T04:47:27.005+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="redhat" /><category scheme="http://www.blogger.com/atom/ns#" term="c++" /><category scheme="http://www.blogger.com/atom/ns#" term="beijing" /><category scheme="http://www.blogger.com/atom/ns#" term="mips" /><category scheme="http://www.blogger.com/atom/ns#" term="rpm" /><category scheme="http://www.blogger.com/atom/ns#" term="opensuse" /><category scheme="http://www.blogger.com/atom/ns#" term="qemu" /><category scheme="http://www.blogger.com/atom/ns#" term="opencl" /><category scheme="http://www.blogger.com/atom/ns#" term="stream computing" /><category scheme="http://www.blogger.com/atom/ns#" term="ulrich drepper" /><category scheme="http://www.blogger.com/atom/ns#" term="blug" /><title type="text">Beijing LUG meeting (8th of September 2009)</title><content type="html">Last night I attended a &lt;a href="http://www.beijinglug.org/en/index.php?option=com_content&amp;amp;task=view&amp;amp;id=426&amp;amp;Itemid=14"&gt;meeting&lt;/a&gt; of the &lt;a href="http://www.beijinglug.org/"&gt;Beijing Linux User Group&lt;/a&gt;. It was for me the first time I could attend it during my time in Beijing and it is certainly something I will do more often. Every 2nd Tuesday of the month they will have a group meeting in which they will have speakers about a subject. I was lucky to listen to &lt;span style="font-style: italic;"&gt;Coly Li&lt;/span&gt; and &lt;span style="font-style: italic;"&gt;Ulrich Drepper&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://farm4.static.flickr.com/3422/3901133414_f2e74d30d1.jpg"&gt;&lt;img style="margin: 5px; float: right; width: 256px; height: 192px;" src="http://farm4.static.flickr.com/3422/3901133414_f2e74d30d1.jpg" alt="Ulrich Drepper at BLUG" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;Coly Li&lt;/span&gt; is a kernel developer who supervised a Google Summer of Code student, &lt;span style="font-style: italic;"&gt;YuEr&lt;/span&gt;, who ported openSUSE to MIPS. YuEr showed what he had done, the results and the errors still left. He was able to start a X11 session using FVWM on a Gdium (MIPS-based smartbook). For this he had used a cross-platform RPM build environment targeting MIPS and qemu. Amazing results for such a short period he was able to work on it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Ulrich Drepper&lt;/span&gt; gave the same talk as he did at the RedHat Summit in Chicago about '&lt;a href="http://people.redhat.com/drepper/summit09-stream.pdf"&gt;Acceleration Through Stream Computing&lt;/a&gt;'. In this talk he explains how to speed up applications by using vectorization and the vector extensions as provided by SSE. Using templates and partial specialization in C++ it is possible to speed up applications without a lot of changes. The specialized critical code could be altered by experts and just a rebuild would suffice. He explains this for instance with a simple example of a vector scaling and translation... the result speaks for themselves. It was also apparent that Ulrich is not a promoter of CUDA (or even CTM) either. In my opinion they result in vendor-lockin. The alternative to look for is OpenCL...&lt;br /&gt;&lt;br /&gt;Overall it was a nice evening. I talked to a talented bunch of 'folklore dancers' wearing T-Shirts. If you ever have the chance to be in Beijing, stop by... you will not regret it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5606041637705531621-6298039631945932374?l=blog.gbraad.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gbraad.nl/feeds/6298039631945932374/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5606041637705531621&amp;postID=6298039631945932374&amp;isPopup=true" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/6298039631945932374" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/6298039631945932374" /><link rel="alternate" type="text/html" href="http://blog.gbraad.nl/2009/09/beijing-lug-meeting-8th-of-september.html" title="Beijing LUG meeting (8th of September 2009)" /><author><name>Gerard Braad</name><uri>https://plus.google.com/112618846457931278165</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-EcgVgHfrnHk/AAAAAAAAAAI/AAAAAAAAI1w/Gkmf37iyvMk/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://farm4.static.flickr.com/3422/3901133414_f2e74d30d1_t.jpg" height="72" width="72" /><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5606041637705531621.post-2944829085970138008</id><published>2009-08-25T21:45:00.009+01:00</published><updated>2009-08-25T22:16:45.732+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="packages" /><category scheme="http://www.blogger.com/atom/ns#" term="rpm" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="installation" /><category scheme="http://www.blogger.com/atom/ns#" term="centos" /><category scheme="http://www.blogger.com/atom/ns#" term="fedora" /><category scheme="http://www.blogger.com/atom/ns#" term="yum" /><category scheme="http://www.blogger.com/atom/ns#" term="x86_64" /><title type="text">Accidently installed i386 packages on x86_64?</title><content type="html">If you have a CentOS installation (or Fedora) running as x86_64 architecture, be sure to install your packages with &lt;span style="font-style:italic;"&gt;yum&lt;/span&gt; using the following command:&lt;br /&gt;&lt;br /&gt;&lt;div style="color:white;background:black"&gt;&lt;code&gt;$ yum install [packagename].x86_64&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;This way you will specify the architecture to use. If you do not specify the architecture you might end up installing both the x86_64 and the i386 packages with all it's dependencies.&lt;br /&gt;&lt;br /&gt;If you have already done so in error, you can easily query for these packages using the following command:&lt;br /&gt;&lt;br /&gt;&lt;div style="color:white;background:black"&gt;&lt;code&gt;$ rpm -qa --qf '%{name}.%{ARCH}\n' |grep i386&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;this command returns all i386 packages. You can pipe it directly into &lt;span style="font-style:italic;"&gt;rpm -e&lt;/span&gt; or choose to uninstall them by hand.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5606041637705531621-2944829085970138008?l=blog.gbraad.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gbraad.nl/feeds/2944829085970138008/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5606041637705531621&amp;postID=2944829085970138008&amp;isPopup=true" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/2944829085970138008" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/2944829085970138008" /><link rel="alternate" type="text/html" href="http://blog.gbraad.nl/2009/08/accidently-installed-i386-packages-on.html" title="Accidently installed i386 packages on x86_64?" /><author><name>Gerard Braad</name><uri>https://plus.google.com/112618846457931278165</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-EcgVgHfrnHk/AAAAAAAAAAI/AAAAAAAAI1w/Gkmf37iyvMk/s512-c/photo.jpg" /></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5606041637705531621.post-6094427523019814771</id><published>2009-08-23T11:52:00.004+01:00</published><updated>2009-10-25T19:48:30.357+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="rpm" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="centos" /><category scheme="http://www.blogger.com/atom/ns#" term="voip" /><category scheme="http://www.blogger.com/atom/ns#" term="rhel" /><category scheme="http://www.blogger.com/atom/ns#" term="freeswitch" /><title type="text">FreeSWITCH packages for CentOS 5.3</title><content type="html">Recently I built and packaged the 1.0.4 release of FreeSWITCH for CentOS 5.3 as i386 and x86_64. They are hosted on a temporary location &lt;a href="http://vps01.spotsnel.net/freeswitch/"&gt;http://files.spotsnel.net/freeswitch/&lt;/a&gt;. Eventually they will move to a repository for use with &lt;span style="font-style:italic;"&gt;yum&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5606041637705531621-6094427523019814771?l=blog.gbraad.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gbraad.nl/feeds/6094427523019814771/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5606041637705531621&amp;postID=6094427523019814771&amp;isPopup=true" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/6094427523019814771" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/6094427523019814771" /><link rel="alternate" type="text/html" href="http://blog.gbraad.nl/2009/08/freeswitch-packages-for-centos-53.html" title="FreeSWITCH packages for CentOS 5.3" /><author><name>Gerard Braad</name><uri>https://plus.google.com/112618846457931278165</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-EcgVgHfrnHk/AAAAAAAAAAI/AAAAAAAAI1w/Gkmf37iyvMk/s512-c/photo.jpg" /></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5606041637705531621.post-5515705174811542907</id><published>2009-07-26T19:37:00.013+01:00</published><updated>2009-09-21T15:46:18.131+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="colinux" /><category scheme="http://www.blogger.com/atom/ns#" term="qemu" /><category scheme="http://www.blogger.com/atom/ns#" term="fedora" /><title type="text">Fedora 11 on coLinux</title><content type="html">After some minor issues I managed to install &lt;a href="http://www.fedoraproject.org/"&gt;Fedora&lt;/a&gt; 11 on &lt;a href="http://www.colinux.org/"&gt;coLinux&lt;/a&gt;. Normally I would perform a manual installation by creating a basic rpm environment, but with Fedora 11 I encountered problems during the installation; first the version of squashfs was different. This was easily fixed with a dump from Fedora 10... but second, rpm packages were all of a sudden not available halfway a rpm transaction. Since it occurred more than once, I settled for using qemu again.&lt;br /&gt;&lt;br /&gt;The file colinux-fedora11.exe (82MB) is published on [&lt;a href="http://gbraad.fedorapeople.org/files/colinux-fedora11.exe"&gt;fedorapeople&lt;/a&gt;], [&lt;a href="http://dl.getdropbox.com/u/131903/colinux-fedora11.exe"&gt;dropbox&lt;/a&gt;] and [&lt;a href="http://files.gbraad.nl/virtual/colinux/colinux-fedora11.exe"&gt;files&lt;/a&gt;]. It does have some minor issues during startup, but besides this it is operational. The installation was performed as a basic installation; so it does not contain any graphical environment, no additional network servers, no updates, etc. This way the download is small. The only added packages are &lt;i&gt;wget&lt;/i&gt;, &lt;i&gt;mc&lt;/i&gt; and my &lt;a href="http://gbraad.fedorapeople.org/files/kernel-modules-2.6-co0.7.3.i386.rpm"&gt;kernel modules RPM&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://lh3.ggpht.com/_ZmgfsgbGDLs/Sm4Hj8LVn1I/AAAAAAAAGl0/kZ3ME5zvf_Y/s288/leonidas.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;All you need to run it is: coLinux, &lt;a href="http://www.winpcap.org/"&gt;winpcap&lt;/a&gt; and the archive. The file 'run.bat' would start the cooperative environment. Any tweaks you would like to make can be placed in the 'run.txt' file. The user is 'root' without a password. After you start it, do set a password for this user.&lt;br /&gt;&lt;br /&gt;Personally I use the environment for &lt;a href="http://chitlesh.fedorapeople.org/FEL/"&gt;Fedora Electronic Lab&lt;/a&gt; which coexists with Cygwin. Not all the tools I use for electronics are available on Linux... yet!&lt;br /&gt;&lt;br /&gt;Note: I have used version 0.7.3 of coLinux because the current stable release 0.7.4 suffers from a problem with the tap device.&lt;br /&gt;&lt;br /&gt;Note 21-09-09: The original image has been replaced by the &lt;a href="http://blog.gbraad.nl/2009/09/fedora-11-on-colinux-fixes.html"&gt;updated image&lt;/a&gt; from HenryN. IF needed the original image is available upon request. It should however be considered as obsolete.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5606041637705531621-5515705174811542907?l=blog.gbraad.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gbraad.nl/feeds/5515705174811542907/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5606041637705531621&amp;postID=5515705174811542907&amp;isPopup=true" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/5515705174811542907" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/5515705174811542907" /><link rel="alternate" type="text/html" href="http://blog.gbraad.nl/2009/07/fedora-11-on-colinux.html" title="Fedora 11 on coLinux" /><author><name>Gerard Braad</name><uri>https://plus.google.com/112618846457931278165</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-EcgVgHfrnHk/AAAAAAAAAAI/AAAAAAAAI1w/Gkmf37iyvMk/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/_ZmgfsgbGDLs/Sm4Hj8LVn1I/AAAAAAAAGl0/kZ3ME5zvf_Y/s72-c/leonidas.jpg" height="72" width="72" /><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5606041637705531621.post-5433904653330938477</id><published>2009-05-01T14:59:00.018+01:00</published><updated>2009-05-01T23:09:41.745+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="arm" /><category scheme="http://www.blogger.com/atom/ns#" term="opensuse" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="debian" /><category scheme="http://www.blogger.com/atom/ns#" term="qemu" /><category scheme="http://www.blogger.com/atom/ns#" term="fedora" /><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu" /><title type="text">Linux distributions for ARM</title><content type="html">Recently there is a lot of attention for the ARM port of Linux. This is of course related to the netbooks and specialized distributions like &lt;a href="http://maemo.org/"&gt;Maemo&lt;/a&gt; for the Nokia Internet Tablets and &lt;a href="http://code.google.com/android/"&gt;Android&lt;/a&gt; from Google. Earlier I wrote &lt;a href="http://blog.gbraad.nl/2008/11/mojos-hasty-distribution-for-use-with.html"&gt;a short post&lt;/a&gt; about the Hasty Hippogriff release of the &lt;a href="http://mojo.handhelds.org/"&gt;Mojo Project&lt;/a&gt;. This Nokia-sponsored project ported Ubuntu's Hardy Heron to the ARM architecture. It allowed a full desktop distribution to be run on hardware like &lt;a href="http://beagleboard.org/"&gt;BeagleBoard&lt;/a&gt;. Luckily the major distributions also have increased their support for ARM. &lt;a href="http://opensuse.org/"&gt;openSUSE&lt;/a&gt;, &lt;a href="http://debian.org/"&gt;Debian&lt;/a&gt; and &lt;a href="http://ubuntu.com/"&gt;Ubuntu&lt;/a&gt; officially announced their support for the ARM architecture in their next release. This will allow companies to use a distribution like openSUSE as a thin client solution or for hardware developers to use Debian as their base system.&lt;br /&gt;&lt;br /&gt;The distributions I have tried are &lt;a href="http://fedoraproject.org/"&gt;Fedora&lt;/a&gt; 10, Debian 5.0 (Lenny) and Ubuntu 9.04. Debian 5.0 (Lenny) and Ubuntu 9.04 (Jaunty Jackalope) are now released. Debian provides downloads and bootstrap tools in their distro and lots of documentation. Despite the announcement it seems Ubuntu only has a release candidate?! So the release schedule seemed to not apply for the ARM architecture. Fedora however did not official announce any ARM support, but has a wiki page which describe how to use their distribution. openSUSE recently released a testing milestone for their 11.2 release, but I was unable to find the packages necessary to make a base system. I do have to make a note here: the &lt;a href="http://en.opensuse.org/Build_Service"&gt;openSUSE Build Service&lt;/a&gt; (OBS) provides &lt;a href="http://lizards.opensuse.org/2008/11/18/arm-support-for-opensuse-buildservice-and-opensuse/"&gt;ARM support&lt;/a&gt; for building packages for Fedora 10, Debian 5.0 and Ubuntu 9.04.&lt;br /&gt;&lt;br /&gt;Below you can find the images I have created or used to test the distributions and the information I have used. These images are all base systems to get you started. They can serve as a starting point to create a build environment.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Fedora 10&lt;/span&gt;&lt;br /&gt;Fedora does not provide official downloads, but all the files are provided on the &lt;a href="http://fedoraproject.org/wiki/Architectures/ARM"&gt;wiki&lt;/a&gt;. To ease the deployment from a Windows system I created a usable root image which you can download from &lt;a href="http://dl.getdropbox.com/u/131903/arm/rootfs-fedora10.img.bz2"&gt;dropbox&lt;/a&gt; or &lt;a href="http://delivery.vipeers.com/publish?message_hash=gSZSsSQjEAu-kCwTmfZ6Qw=="&gt;vipeers&lt;/a&gt; and the &lt;a href="http://ftp.linux.org.uk/pub/linux/arm/fedora/qemu/zImage-versatile-2.6.24-rc7.armv5tel"&gt;kernel&lt;/a&gt; (&lt;a href="http://dl.getdropbox.com/u/131903/arm/zImage-versatile-2.6.24-rc7.armv5tel"&gt;dropbox&lt;/a&gt;). The archive can be unpacked using a tool like Winrar.&lt;br /&gt;&lt;br /&gt;With the following command will start the qemu environment without networking:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;qemu-system-arm.exe -M versatilepb -kernel zImage-versatile-2.6.24-rc7.armv5tel -hda rootfs-f10.img -append "root=/dev/sda"&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;You can login with username: root, without a password.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ubuntu 9.04&lt;/span&gt;&lt;br /&gt;Canonical only provides a Release Candidate for their ARM port of Jaunty Jackalope. You can find a the downloads from the &lt;a href="http://cdimage.ubuntu.com/netboot/jaunty/"&gt;cdimage server&lt;/a&gt;, such as a general image and an image for the NSLU2. I however built a new rootfs using the information provided on the &lt;a href="https://wiki.ubuntu.com/ARM/RootfsFromScratch"&gt;wiki&lt;/a&gt; and the build-arm-rootfs script. This script will use &lt;span style="font-style:italic;"&gt;debootstrap&lt;/span&gt; and qemu to produce a usable tarball or qemu image. I used the script to create a tarball and dumped this in a mounted image (the same as done for the fedora image).&lt;br /&gt;&lt;br /&gt;You can download the root image from &lt;a href="http://dl.getdropbox.com/u/131903/arm/rootfs-jaunty.img.bz2"&gt;dropbox&lt;/a&gt; or &lt;a href="http://delivery.vipeers.com/publish?message_hash=B2asMVTEu50_C9ZtpU93QA=="&gt;vipeers&lt;/a&gt; and the &lt;a href="http://ports.ubuntu.com/ubuntu-ports/dists/jaunty/main/installer-armel/current/images/versatile/netboot/vmlinuz-2.6.28-11-versatile"&gt;kernel&lt;/a&gt; (&lt;a href="http://dl.getdropbox.com/u/131903/arm/vmlinuz-2.6.28-11-versatile"&gt;dropbox&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;To start the environment:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;qemu-system-arm.exe -M versatilepb -kernel vmlinuz-2.6.28-11-versatile -hda rootfs-jaunty.img -append "root=/dev/sda"&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;To login use the username: ubuntu and the password: ubuntu.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Debian 5.0&lt;/span&gt;&lt;br /&gt;The ARM support for Ubuntu is no miracle, as their base distribution Debian has support for this &lt;a href="http://www.debian.org/ports/arm/"&gt;architecture&lt;/a&gt;. The &lt;a href="http://www.debian.org/releases/stable/arm/"&gt;installation guide&lt;/a&gt; can be found on the debian website. Using the &lt;span style="font-style:italic;"&gt;debootstrap&lt;/span&gt; tool you can easily create your own rootfs. On the webpage of Aurélien Jarno (aurel32) you can find a complete article which describe the process of &lt;a href="http://www.aurel32.net/info/debian_arm_qemu.php"&gt;getting debian running on an emulated ARM&lt;/a&gt; using qemu on Linux. The root images and kernel he uses can be found &lt;a href="http://people.debian.org/~aurel32/qemu/arm/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;To start the environment:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;qemu-system-arm.exe -M versatilepb -kernel vmlinuz-2.6.26-2-versatile -hda debian_lenny_arm_small.qcow -append "root=/dev/sda1"&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;To login using the username: user and password: user. The password for root is root.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Notes&lt;/span&gt;&lt;br /&gt;Read the &lt;a href="http://www.h7.dion.ne.jp/~qemu-win/HowToNetwork-en.html"&gt;How to use Network&lt;/a&gt; if you want to enable networking for the qemu environment on Windows.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5606041637705531621-5433904653330938477?l=blog.gbraad.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gbraad.nl/feeds/5433904653330938477/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5606041637705531621&amp;postID=5433904653330938477&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/5433904653330938477" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/5433904653330938477" /><link rel="alternate" type="text/html" href="http://blog.gbraad.nl/2009/05/linux-distributions-for-arm.html" title="Linux distributions for ARM" /><author><name>Gerard Braad</name><uri>https://plus.google.com/112618846457931278165</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-EcgVgHfrnHk/AAAAAAAAAAI/AAAAAAAAI1w/Gkmf37iyvMk/s512-c/photo.jpg" /></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5606041637705531621.post-719817486244277037</id><published>2009-04-03T20:11:00.006+01:00</published><updated>2009-04-03T21:54:57.294+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="colinux" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="installation" /><category scheme="http://www.blogger.com/atom/ns#" term="centos" /><title type="text">CentOS 5.3 image for coLinux</title><content type="html">A few days ago &lt;a href="http://centos.org/"&gt;CentOS&lt;/a&gt; 5.3 was finally released. Just like what I have done with the previous version, I created a &lt;a href="http://colinux.org/"&gt;coLinux&lt;/a&gt; environment. This installation is a base system performed using the previously described &lt;a href="http://blog.gbraad.nl/2009/03/manually-installing-centos-52-on.html"&gt;manual method&lt;/a&gt;. Updated instructions are included in the published archive.&lt;br /&gt;&lt;br /&gt;For now you can find the files here:&lt;br /&gt;colinux-centos53.exe [&lt;a href="http://delivery.vipeers.com/file_sharing?message_hash=QUllJkSLYR_sB1jpF8lGXQ=="&gt;VIPeers&lt;/a&gt;] [&lt;a href="http://dl.getdropbox.com/u/131903/colinux-centos53.exe"&gt;dropbox&lt;/a&gt;] (98mb)&lt;br /&gt;&lt;br /&gt;It is configured to use DHCP on the network connections eth0 (slirp) and eth1 (bridged). The user account is 'root' without a password. After login, you should change the password. During startup you will see some complaints about the kernel modules. To solve this you can install my &lt;a href="http://gbraad.fedorapeople.org/files/kernel-modules-2.6-co0.7.3.i386.rpm"&gt;kernel modules RPM&lt;/a&gt; or use the tarball provided by coLinux.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5606041637705531621-719817486244277037?l=blog.gbraad.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gbraad.nl/feeds/719817486244277037/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5606041637705531621&amp;postID=719817486244277037&amp;isPopup=true" title="16 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/719817486244277037" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/719817486244277037" /><link rel="alternate" type="text/html" href="http://blog.gbraad.nl/2009/04/centos-53-image-for-colinux.html" title="CentOS 5.3 image for coLinux" /><author><name>Gerard Braad</name><uri>https://plus.google.com/112618846457931278165</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-EcgVgHfrnHk/AAAAAAAAAAI/AAAAAAAAI1w/Gkmf37iyvMk/s512-c/photo.jpg" /></author><thr:total>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5606041637705531621.post-6842264643622744443</id><published>2009-03-31T16:00:00.002+01:00</published><updated>2009-11-22T00:30:39.916+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="colinux" /><category scheme="http://www.blogger.com/atom/ns#" term="opensuse" /><category scheme="http://www.blogger.com/atom/ns#" term="alt.net" /><category scheme="http://www.blogger.com/atom/ns#" term="installation" /><category scheme="http://www.blogger.com/atom/ns#" term="mono" /><title type="text">Using Mono 2.4 on coLinux to ease .NET development</title><content type="html">Currently I deal a lot with .NET development in my daily work. Most of the development is done on &lt;span style="font-style: italic;"&gt;Windows&lt;/span&gt;. When you need to develop cross-platform .NET you would like to use &lt;a href="http://mono-project.com/"&gt;Mono&lt;/a&gt;. Mono is binary compatible with .NET and allows .NET applications to run on Linux distributions. If you would develop from Visual Studio you want to easily test the binary directly in a mono session on Linux!&lt;br /&gt;&lt;br /&gt;To test software both platforms in a convenient way mostly virtualization is chosen. Of course you can use VMware or VirtualBox when you use Windows, but you can also use &lt;a href="http://www.colinux.org/"&gt;coLinux&lt;/a&gt;. coLinux is a port of the Linux kernel that allows it to run cooperatively alongside another operating system on a single machine. My choice of distribution to use on top of coLinux is the open version of SUSE, both supported by Novell.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;This description does expect you to have understanding of a Linux environment and administrative rights on your Windows system.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Installation (Windows side)&lt;/span&gt;&lt;br /&gt;First of all you would need to coLinux installer. This file is available from the &lt;a href="http://www.colinux.org/"&gt;coLinux website&lt;/a&gt;. The &lt;a href="http://sourceforge.net/project/showfiles.php?group_id=98788"&gt;downloads section&lt;/a&gt; will point you to the latest stable, as of writing v0.7.3. On the website of &lt;a href="http://www.henrynestler.com/"&gt;Henry Nestler&lt;/a&gt; you can also find development and daily builds for 0.8.0. This installation is pretty straightforward, just keep the default settings. When the installer asks you 'Hardware installation' you need to press 'Continue anyways', this will allow the TAP network driver to be installed.&lt;br /&gt;&lt;br /&gt;To use a desktop environment from coLinux you need to install a X server. The more difficult way would be to use Cygwin/X... this way you will have a complete GNU system running on top of Windows to provide a Linux-like experience. The fastest and easy way is to use a tool like &lt;a href="http://www.straightrunning.com/XmingNotes/"&gt;Xming&lt;/a&gt;. The installer you need is the Xming or Xming-portablePuTTY (Mesa is not needed). Also, this installation is quite straightforward. After the installation start the X server from the start menu (Programs → Xming → Xming).&lt;br /&gt;&lt;br /&gt;In the posting '&lt;a href="http://blog.gbraad.nl/2009/03/opensuse-111-on-colinux.html"&gt;openSUSE 11.1 on coLinux&lt;/a&gt;' I described a way to make a base installation of openSUSE for use with the coLinux environment. The file 'colinux-opensuse-111.exe' (113Mb) [&lt;a href="http://delivery.vipeers.com/file_sharing?message_hash=uxpWz6Au7DMjNs8-zlaFnA=="&gt;VIPeers&lt;/a&gt;] [&lt;a href="http://dl.getdropbox.com/u/131903/colinux-opensuse-11.1.exe"&gt;dropbox&lt;/a&gt;] contains all you need to run the openSUSE environment. As you can see from the size, it contains only a base system. After you have extracted the file, you will still need to perform some additional installations to make the Mono development work.&lt;br /&gt;&lt;br /&gt;Before you start the Mono installation inside the coLinux environment, you need to reserve a directory for your development files or some other shared directory. I choose to use '&lt;span style="font-style: italic;"&gt;D:\Development&lt;/span&gt;'. In the &lt;span style="font-style: italic;"&gt;run.txt&lt;/span&gt; file in the openSUSE directory, you can add a line which says:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;cofs1="D:\Development"&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;This will later be mounted inside the Linux environment.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Installation (Linux side)&lt;/span&gt;&lt;br /&gt;Now you can start the environment from the '&lt;span style="font-style: italic;"&gt;runonce.bat&lt;/span&gt;'. This one time start is needed to finalize the installation (describe in the 'openSUSE on coLinux' posting as the post-install). You will see something similar to:&lt;br /&gt;&lt;br /&gt;&lt;img alt="openSUSE 11.1 started on coLinux 0.7.3" src="http://lh4.ggpht.com/_ZmgfsgbGDLs/ScVNslVwUgI/AAAAAAAAEB4/hVPU4voSaHA/s400/opensuse1.png" style="height: 226px; width: 400px;" /&gt;&lt;br /&gt;&lt;br /&gt;Logon using the credentials: 'root' and the password 'password'. Immediately change the password using&lt;br /&gt;&lt;br /&gt;&lt;div style="-moz-background-clip: border; -moz-background-inline-policy: continuous; -moz-background-origin: padding; background: black none repeat scroll 0% 0%;"&gt;&lt;code&gt;&lt;br /&gt;passwd&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Enable the network using the command:&lt;br /&gt;&lt;br /&gt;&lt;div style="-moz-background-clip: border; -moz-background-inline-policy: continuous; -moz-background-origin: padding; background: black none repeat scroll 0% 0%;"&gt;&lt;code&gt;&lt;br /&gt;for i in 0 1&lt;br /&gt;do&lt;br /&gt;cat &amp;gt; /etc/sysconfig/network/ifcfg-eth$i &amp;lt;&amp;lt; END BOOTPROTO='dhcp' STARTMODE='auto' USERCONTROL='no' END done &lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Add a mount point to your shared directory&lt;br /&gt;&lt;br /&gt;&lt;div style="-moz-background-clip: border; -moz-background-inline-policy: continuous; -moz-background-origin: padding; background: black none repeat scroll 0% 0%;"&gt;&lt;code&gt;&lt;br /&gt;mkdir /media/Development&lt;br /&gt;vi /etc/fstab&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;and add the following line to this file&lt;br /&gt;&lt;br /&gt;&lt;div style="-moz-background-clip: border; -moz-background-inline-policy: continuous; -moz-background-origin: padding; background: black none repeat scroll 0% 0%;"&gt;&lt;code&gt;&lt;br /&gt;cofs1    /media/Development  cofs     defaults        0 0&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;To enable the shared directory you need to mount it&lt;br /&gt;&lt;br /&gt;&lt;div style="-moz-background-clip: border; -moz-background-inline-policy: continuous; -moz-background-origin: padding; background: black none repeat scroll 0% 0%;"&gt;&lt;code&gt;&lt;br /&gt;mount /media/Development&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;You can now shutdown...&lt;br /&gt;&lt;br /&gt;&lt;div style="-moz-background-clip: border; -moz-background-inline-policy: continuous; -moz-background-origin: padding; background: black none repeat scroll 0% 0%;"&gt;&lt;code&gt;&lt;br /&gt;shutdown -hn now&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;... the system will halt and closes the console. From now on you are able to start the environment using the normal '&lt;span style="font-style: italic;"&gt;run.bat&lt;/span&gt;'. Do so and log on using your new password.&lt;br /&gt;&lt;br /&gt;Your network should now use &lt;span style="font-style: italic;"&gt;eth0&lt;/span&gt; as a serial line and &lt;span style="font-style: italic;"&gt;eth1&lt;/span&gt; as a bridged network using the device called 'Local Area Connection'. If your Windows network device is called differently, please change it in the '&lt;span style="font-style: italic;"&gt;run.txt&lt;/span&gt;' file. IP addresses are assigned using DHCP. The device &lt;span style="font-style: italic;"&gt;eth0&lt;/span&gt; will probably be assigned the address 10.0.2.15/24. For device &lt;span style="font-style: italic;"&gt;eth1&lt;/span&gt; this will depend on your local network settings. I will just assume that &lt;span style="font-style: italic;"&gt;eth1&lt;/span&gt; is configured and provides the Internet connection.&lt;br /&gt;&lt;br /&gt;To allow packages to be installed you would need to add the standard repositories to this installation.&lt;br /&gt;&lt;br /&gt;&lt;div style="-moz-background-clip: border; -moz-background-inline-policy: continuous; -moz-background-origin: padding; background: black none repeat scroll 0% 0%;"&gt;&lt;code&gt;&lt;br /&gt;zypper ar http://download.opensuse.org/distribution/11.1/repo/oss/ openSUSE111&lt;br /&gt;zypper ar http://download.opensuse.org/distribution/11.1/repo/non-oss/ openSUSE111_NonOSS &lt;br /&gt;zypper ar http://download.opensuse.org/update/11.1/ openSUSE-11.1-Updates&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Enabling the User Interface&lt;/span&gt;&lt;br /&gt;You can use a full-blown desktop environment as GNOME, but since coLinux does not provide a framebuffer device it is not advisable at the moment. We will use the Xming as the X server for our desktop. The X protocol is a client/server model for user interfaces. To keep the installation small, we use a very lightweight Desktop Environment on top of X, namely &lt;a href="http://lxde.org/"&gt;LXDE&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Install the LXDE packages using:&lt;br /&gt;&lt;br /&gt;&lt;div style="-moz-background-clip: border; -moz-background-inline-policy: continuous; -moz-background-origin: padding; background: black none repeat scroll 0% 0%;"&gt;&lt;code&gt;&lt;br /&gt;OCICLI http://download.opensuse.org/repositories/home:/swyear/openSUSE_11.1/LXDE-desktop.ymp&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;This will start the One-Click-Install. You will need to agree to some questions and lean back... this might take some time.&lt;br /&gt;&lt;br /&gt;If this finished, you can test if the installation finished correctly. You will need to set the &lt;span style="font-style: italic;"&gt;DISPLAY&lt;/span&gt; parameter to specify where the X server is running. Now let's start the appearance settings...&lt;br /&gt;&lt;br /&gt;&lt;div style="-moz-background-clip: border; -moz-background-inline-policy: continuous; -moz-background-origin: padding; background: black none repeat scroll 0% 0%;"&gt;&lt;code&gt;&lt;br /&gt;export DISPLAY=10.0.2.2:0.0&lt;br /&gt;lxappearance&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;and choose a theme that suits your current Windows theme.&lt;br /&gt;&lt;br /&gt;&lt;img alt="LX Appearance" src="http://lh4.ggpht.com/_ZmgfsgbGDLs/ScVNslVwUgI/AAAAAAAAEB4/hVPU4voSaHA/s400/opensuse1.png" style="width: 400px;" /&gt;&lt;br /&gt;&lt;br /&gt;This means your desktop environment works.&lt;br /&gt;&lt;br /&gt;If you would receive a 'Gtk-WARNING **: cannot open display:' this means your connection might be blocked for some reason. Check your settings or disable a firewall/virus scanner.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Mono installation&lt;/span&gt;&lt;br /&gt;Mono will provide a Linux/Unix system with support to run .NET applications. Originally this description was written to use Mono 2.2 which was provided from the openSUSE repository. To install these packages issue a simple&lt;br /&gt;&lt;br /&gt;&lt;div style="-moz-background-clip: border; -moz-background-inline-policy: continuous; -moz-background-origin: padding; background: black none repeat scroll 0% 0%;"&gt;&lt;code&gt;&lt;br /&gt;zypper in -t pattern devel_mono&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;would be sufficient to install a development environment. To start the &lt;span style="font-style: italic;"&gt;Monodevelop&lt;/span&gt; you can start this using the command:&lt;br /&gt;&lt;br /&gt;&lt;div style="-moz-background-clip: border; -moz-background-inline-policy: continuous; -moz-background-origin: padding; background: black none repeat scroll 0% 0%;"&gt;&lt;code&gt;&lt;br /&gt;export DISPLAY=10.0.2.2:0.0&lt;br /&gt;monodevelop &amp;amp;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;img alt="Monodevelop" src="http://lh4.ggpht.com/_ZmgfsgbGDLs/ScZWXVO8WHI/AAAAAAAAECA/tw29uAeVnII/s400/opensuse2.png" style="width: 400px;" /&gt;&lt;br /&gt;&lt;br /&gt;Since the 30th of March a newer release of Mono (v2.4) is available. To install you will need to specify the mono repository and upgrade the previous installation.&lt;br /&gt;&lt;br /&gt;&lt;div style="-moz-background-clip: border; -moz-background-inline-policy: continuous; -moz-background-origin: padding; background: black none repeat scroll 0% 0%;"&gt;&lt;code&gt;&lt;br /&gt;zypper addrepo http://ftp.novell.com/pub/mono/download-stable/openSUSE_11.1 mono-stable&lt;br /&gt;zypper refresh --repo mono-stable&lt;br /&gt;zypper dist-upgrade --repo mono-stable&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;You can now start &lt;span style="font-style: italic;"&gt;Monodevelop 2.0&lt;/span&gt; and use managed debugging!&lt;br /&gt;&lt;br /&gt;That's it for now... In later posts I will automate the startup and show how to do development using this environment.&lt;br /&gt;&lt;pre&gt;Have a lot of fun...&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Notes&lt;/span&gt;&lt;br /&gt;If you think VMware provides a better solution you can make use of the files that the Mono Project provide in their &lt;a href="http://www.go-mono.com/mono-downloads/download.html"&gt;download section&lt;/a&gt;. Either download the generated VMware image of the LiveCD.&lt;br /&gt;&lt;br /&gt;If you want to use GNOME as your desktop environment you are advised to remove the  &lt;span style="font-style: italic;"&gt;gnome-screensaver&lt;/span&gt; package and it's dependent, since it can cause issues during use. If you want to experiment with the LXDE environment, you are advised to use the &lt;span style="font-style: italic;"&gt;lxpanel&lt;/span&gt; and &lt;span style="font-style: italic;"&gt;pcmanfm&lt;/span&gt;. In a later post these will be explained in more detail.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5606041637705531621-6842264643622744443?l=blog.gbraad.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gbraad.nl/feeds/6842264643622744443/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5606041637705531621&amp;postID=6842264643622744443&amp;isPopup=true" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/6842264643622744443" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/6842264643622744443" /><link rel="alternate" type="text/html" href="http://blog.gbraad.nl/2009/03/using-mono-24-on-colinux-to-ease-net.html" title="Using Mono 2.4 on coLinux to ease .NET development" /><author><name>Gerard Braad</name><uri>https://plus.google.com/112618846457931278165</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-EcgVgHfrnHk/AAAAAAAAAAI/AAAAAAAAI1w/Gkmf37iyvMk/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/_ZmgfsgbGDLs/ScVNslVwUgI/AAAAAAAAEB4/hVPU4voSaHA/s72-c/opensuse1.png" height="72" width="72" /><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5606041637705531621.post-5287485685807748493</id><published>2009-03-20T18:56:00.037+01:00</published><updated>2009-04-03T20:50:19.503+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="colinux" /><category scheme="http://www.blogger.com/atom/ns#" term="opensuse" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="installation" /><title type="text">openSUSE 11.1 on coLinux</title><content type="html">To ease cross-platform .NET development, I have installed openSUSE on coLinux. This allows me to develop from &lt;span style="font-style:italic;"&gt;Windows&lt;/span&gt; and also test and debug the binary on Linux. Advantages are: No need to dual boot and a much better performance than using VMware or other virtualization solution. In this article you can find the base system and I will describe how I did the base installation.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Take note, these instructions do NOT provide any details about the .NET environment. Those are published on my &lt;a href="http://dotnet.gbraad.nl/2009/03/using-mono-24-on-colinux-to-ease-net.html"&gt;.NET blog&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="width: 400px;" src="http://lh4.ggpht.com/_ZmgfsgbGDLs/ScZWXVO8WHI/AAAAAAAAECA/tw29uAeVnII/s400/opensuse2.png" alt="Monodevelop" /&gt;&lt;br /&gt;&lt;br /&gt;The files to install and run the environment '&lt;span style="font-style:italic;"&gt;colinux-opensuse-11.1.exe&lt;/span&gt;' can be found at [&lt;a href="http://delivery.vipeers.com/file_sharing?message_hash=uxpWz6Au7DMjNs8-zlaFnA=="&gt;VIPeers&lt;/a&gt;], [&lt;a href="http://dl.getdropbox.com/u/131903/colinux-opensuse-11.1.exe"&gt;dropbox&lt;/a&gt;] (113Mb). This file contains the base &lt;span style="font-style:italic;"&gt;system.img&lt;/span&gt;, a swap image and start commands. If you don't want to install it yourself, you can at least immediately start to use openSUSE on coLinux. Take note, network has not been configured yet (see notes). The user account is 'root' with the password 'password'.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Preparation&lt;/span&gt;&lt;br /&gt;The installation closely follows the instructions I wrote for &lt;a href="http://blog.gbraad.nl/2009/03/manually-installing-centos-52-on.html"&gt;CentOS&lt;/a&gt;. You will need a clean &lt;span style="font-style:italic;"&gt;system.img&lt;/span&gt; which you can find in the &lt;a href="http://dl.getdropbox.com/u/131903/colinux-centos52-base.rar"&gt;colinux-centos52-base.rar&lt;/a&gt;. Copy the Debian businnesscard init ramdisk to install_initrd.gz. And of course you need to download the openSUSE 11.1 DVD from &lt;a href="http://www.opensuse.org/"&gt;http://www.opensuse.org/&lt;/a&gt;. This file will be about 4.25GB in size.&lt;br /&gt;&lt;br /&gt;You can perform a RPM installation, but since openSUSE provides an image-based installation I will use this for the base of the coLinux environment. My main purpose was to keep the installation easy to perform (and if possible small in size). Copy the files &lt;span style="font-style:italic;"&gt;base-i386.tar.lzma&lt;/span&gt;, &lt;span style="font-style:italic;"&gt;base-meta-i386.tar.lzma&lt;/span&gt; and &lt;span style="font-style:italic;"&gt;common-base-i386.tar.lzma&lt;/span&gt; from the openSUSE 11.1 DVD. It is located in the directory &lt;span style="font-style:italic;"&gt;images&lt;/span&gt;. Since the Debian initrd does not contain the lzma binary, so you will need to decompress the archives with a tool like 7-Zip. The resulting files will be standard tape-archives. Place them in a directory called '&lt;span style="font-style:italic;"&gt;images&lt;/span&gt;'. The &lt;span style="font-style:italic;"&gt;install.bat&lt;/span&gt; will map it to &lt;span style="font-style:italic;"&gt;cofs1&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Installation&lt;/span&gt;&lt;br /&gt;If you have the install files from the opensuse-11.1.exe file, the &lt;span style="font-style:italic;"&gt;images&lt;/span&gt;, debian's &lt;span style="font-style:italic;"&gt;install_initrd.gz&lt;/span&gt; and the &lt;span style="font-style:italic;"&gt;system.img&lt;/span&gt; from the centos52-base.rar, you are ready to go.&lt;br /&gt;&lt;br /&gt;Start the &lt;span style="font-style:italic;"&gt;install.bat&lt;/span&gt;. You will see a debian installation screen... toggle with ALT-F2 to a console and press Enter.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;   Please press Enter to activate this console.&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="width: 400px; height: 226px;" src="http://lh6.ggpht.com/_ZmgfsgbGDLs/Sb63brlBLtI/AAAAAAAAEAY/chtkT6AMxk4/s400/install2.png" border="0" alt="Please press Enter to activate this console. BusyBox v1.10.2 (Debian 1:1.10.2-2) built-in shell (ash) Enter 'help' for a list of built-in commands." /&gt;&lt;br /&gt;&lt;br /&gt;From here you can perform the following commands. The line which says '&lt;span style="font-style:italic;"&gt;tar -C /mnt/linux -xf $i&lt;/span&gt;' will unpack the image to the &lt;span style="font-style:italic;"&gt;system.img&lt;/span&gt;. Just be sure to have some coffee ready since it might take some time.&lt;br /&gt;&lt;br /&gt;&lt;div style="background:black"&gt;&lt;code&gt;&lt;br /&gt;mkswap /dev/cobd7&lt;br /&gt;swapon /dev/cobd7&lt;br /&gt;&lt;br /&gt;mkdir /mnt/linux&lt;br /&gt;mkdir /mnt/win&lt;br /&gt;mount /dev/cobd0 /mnt/linux&lt;br /&gt;mount -t cofs cofs0 /mnt/win&lt;br /&gt;&lt;br /&gt;mkdir /mnt/images&lt;br /&gt;mount -t cofs cofs1 /mnt/images&lt;br /&gt;cd /mnt/images&lt;br /&gt;&lt;br /&gt;for i in *.tar&lt;br /&gt;do&lt;br /&gt;tar -C /mnt/linux -xf $i&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;mkdir -p /mnt/linux/media/cdrom&lt;br /&gt;mount /dev/cobd1 /mnt/linux/media/cdrom&lt;br /&gt;&lt;br /&gt;chroot /mnt/linux&lt;br /&gt;cd /media/cdrom/suse/i586&lt;br /&gt;&lt;br /&gt;rpm -ivh openSUSE-release-[0-9]*.rpm \&lt;br /&gt;openSUSE-release-dvd-[0-9]*.rpm&lt;br /&gt;&lt;br /&gt;echo password | passwd - stdin root &lt;br /&gt;&lt;br /&gt;cat &gt; /etc/fstab &lt;&lt; END&lt;br /&gt;/dev/cobd0 / ext3 acl,user_xattr 1 1&lt;br /&gt;/dev/cobd7 swap swap defaults 0 0&lt;br /&gt;proc /proc proc defaults 0 0&lt;br /&gt;devpts /dev/pts devpts gid=5,mode=620 0 0&lt;br /&gt;sysfs /sys sysfs noauto 0 0&lt;br /&gt;debugfs /sys/kernel/debug debugfs noauto 0 0&lt;br /&gt;END&lt;br /&gt;&lt;br /&gt;exit&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;After this you can &lt;span style="font-style:italic;"&gt;halt&lt;/span&gt; the system. And start it for the first time.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Post-install&lt;/span&gt;&lt;br /&gt;To finish the installation you need to start it with the coLinux initrd once. The script &lt;span style="font-style:italic;"&gt;runonce.bat&lt;/span&gt; will take care of that... after you have run it, openSUSE will start properly. Log on and halt again. After this you can start it without a initrd being specified. The script &lt;span style="font-style:italic;"&gt;run.bat&lt;/span&gt; will start the final system.&lt;br /&gt;&lt;br /&gt;&lt;img style="width: 400px; height: 226px;" src="http://lh4.ggpht.com/_ZmgfsgbGDLs/ScVNslVwUgI/AAAAAAAAEB4/hVPU4voSaHA/s400/opensuse1.png" alt="openSUSE 11.1 started on coLinux 0.7.3" /&gt;&lt;br /&gt;&lt;br /&gt;It might give some startup errors... nothing serious. I didn't configure the network inside the base system. This can be done using &lt;span style="font-style:italic;"&gt;yast&lt;/span&gt; or perform the following command:&lt;br /&gt;&lt;br /&gt;&lt;div style="background:black;"&gt;&lt;code&gt;&lt;br /&gt;for i in 0 1&lt;br /&gt;do&lt;br /&gt;cat &gt; /etc/sysconfig/network/ifcfg-eth$i &lt;&lt; END&lt;br /&gt;BOOTPROTO='dhcp'&lt;br /&gt;BROADCAST=''&lt;br /&gt;ETHTOOL_OPTIONS=''&lt;br /&gt;IPADDR=''&lt;br /&gt;MTU=''&lt;br /&gt;NAME=''&lt;br /&gt;NETMASK=''&lt;br /&gt;NETWORK=''&lt;br /&gt;REMOTE_IPADDR=''&lt;br /&gt;STARTMODE='auto'&lt;br /&gt;USERCONTROL='no'&lt;br /&gt;END&lt;br /&gt;done&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;This enables both &lt;span style="font-style:italic;"&gt;eth0&lt;/span&gt; and &lt;span style="font-style:italic;"&gt;eth1&lt;/span&gt; to use DHCP. Kernel modules can be installed with the same RPM I have provided earlier. Just use the following commands:&lt;br /&gt;&lt;br /&gt;&lt;div style="background:black"&gt;&lt;code&gt;&lt;br /&gt;zypper in http://gbraad.fedorapeople.org/files/kernel-modules-2.6-co0.7.3.i386.rpm&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Alternative installation&lt;/span&gt;&lt;br /&gt;If you want to perform a RPM-based installation you will still need to install the &lt;span style="font-style:italic;"&gt;base-i386.tar&lt;/span&gt; image. I tried without, but ended up with a lot of errors during installation. The can find the installation instructions in the file &lt;a href="http://dl.getdropbox.com/u/131903/opensuse-instructions-rpm.txt"&gt;instructions-rpm.txt&lt;/a&gt; which is included in the archive. Eventually I have not further tested this alternative installation...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Notes&lt;/span&gt;&lt;br /&gt;I have tried to only use the files provided by openSUSE, but somehow they seem to consume too much time. The common filesystem did not provide all the tools I needed (similar to the stage2.img from redhat). If you know another way to install it, let me know. Qemu can also install it, but it consumes a lot more time in my opinion; install, &lt;span style="font-style:italic;"&gt;dd&lt;/span&gt;, etc.&lt;br /&gt;&lt;br /&gt;For the moment it is not possible to perform an image installation without the openSUSE DVD installation media. I do hope they will provide a single CD image installer or provide the images from their &lt;a href="http://download.opensuse.org/distribution/11.1/"&gt;11.1 download&lt;/a&gt; site. If it is possible, please enlighten me?!&lt;br /&gt;&lt;br /&gt;If you want to install additional software, you will need to add the openSUSE repositories. This can easily be done using &lt;span style="font-style:italic;"&gt;zypper&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div style="background:black"&gt;&lt;code&gt;&lt;br /&gt;zypper ar http://download.opensuse.org/distribution/11.1/repo/oss/ openSUSE111&lt;br /&gt;zypper ar http://download.opensuse.org/distribution/11.1/repo/non-oss/ openSUSE111_NonOSS &lt;br /&gt;zypper ar http://download.opensuse.org/update/11.1/ openSUSE-11.1-Updates&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Now you can install Gnome by using a command like:&lt;br /&gt;&lt;br /&gt;&lt;div style="background:black"&gt;&lt;code&gt;&lt;br /&gt;zypper in -t pattern gnome&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;More information about installing software can be found on &lt;a href="http://opensuse-tutorials.com/2008/07/zypper-tips-and-tricks/"&gt;openSUSE Tutorials&lt;/a&gt;.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Have a lot of fun...&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5606041637705531621-5287485685807748493?l=blog.gbraad.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gbraad.nl/feeds/5287485685807748493/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5606041637705531621&amp;postID=5287485685807748493&amp;isPopup=true" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/5287485685807748493" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/5287485685807748493" /><link rel="alternate" type="text/html" href="http://blog.gbraad.nl/2009/03/opensuse-111-on-colinux.html" title="openSUSE 11.1 on coLinux" /><author><name>Gerard Braad</name><uri>https://plus.google.com/112618846457931278165</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-EcgVgHfrnHk/AAAAAAAAAAI/AAAAAAAAI1w/Gkmf37iyvMk/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/_ZmgfsgbGDLs/ScZWXVO8WHI/AAAAAAAAECA/tw29uAeVnII/s72-c/opensuse2.png" height="72" width="72" /><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5606041637705531621.post-2401169128586259517</id><published>2009-03-16T18:58:00.018+01:00</published><updated>2009-03-22T18:18:41.443+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="colinux" /><category scheme="http://www.blogger.com/atom/ns#" term="installation" /><category scheme="http://www.blogger.com/atom/ns#" term="centos" /><title type="text">Manually installing CentOS 5.2 on coLinux</title><content type="html">In the &lt;a href="http://blog.gbraad.nl/2009/03/centos-52-image-for-colinux.html"&gt;previous post&lt;/a&gt; I published a minimal CentOS 5.2 environment for use with coLinux. As I described in the posting, I did a manual installation since I was unable to use Qemu to start the CentOS 5.2 installation process. Although I received a comment that someone else was able to install CentOS, I am still unable to do so... even with the latest build of Qemu (currently 0.9.1) on Windows. Instead of trying to convert a VMware image or using an update process, I wanted to only use coLinux. In this posting I will try to describe what I did.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Requirements&lt;/span&gt;&lt;br /&gt;To ease the installation I have created a base which can assist you with installing. It contains the files you need as images (formatted as Ext3). It is available as centos52-base.rar [&lt;a href="http://dl.getdropbox.com/u/131903/colinux-centos52-base.rar"&gt;dropbox&lt;/a&gt;] (35kb).&lt;br /&gt;&lt;br /&gt;This file contains what is needed to install the CentOS 5.2 image for&lt;br /&gt;use with coLinux:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;   &lt;li&gt;system.img  4Gb system image, formatted as Ext3&lt;/li&gt;&lt;br /&gt;   &lt;li&gt;swap512m.img  512Mb swap location&lt;/li&gt;&lt;br /&gt;   &lt;li&gt;Batch and parameters file needed to start coLinux&lt;br/&gt;&lt;br /&gt;   install.bat, install.txt for the installation process (needed once)&lt;br/&gt;&lt;br /&gt;   run.bat, run.txt  to start the environment after install&lt;/li&gt;&lt;br /&gt;   &lt;li&gt;instructions.txt file containing the commands to perform&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;Extract the base archive and place the CentOS 5.2 (i386) installation media in the same directory. Mirrors are provided on the &lt;a href="http://mirror.centos.org/centos/5/isos/i386"&gt;download page&lt;/a&gt; of CentOS. If you do not want to download the DVD file, you can also choose to only download CD 1of6. For this you need to change the install.txt parameters file. After the initial install, you can then rely on YUM to install all additional packages.&lt;br /&gt;&lt;br /&gt;I used a custom init ramdisk to create the images and perform the installation. Since this file is still rough, I suggest you to download this &lt;a href=" http://cdimage.debian.org/debian-cd/5.0.0/i386/iso-cd/"&gt;business card iso&lt;/a&gt; from debian. The businesscard ISO is about 35Mb.&lt;br /&gt;&lt;br /&gt;With a tool like winrar (or mount it using a tool like Daemon Tools), you can extract the file /install.386/initrd.gz. If you prefer to only download the &lt;a href="http://dl.getdropbox.com/u/131903/debian-500-i386-initrd.gz"&gt;initrd.gz&lt;/a&gt;. Save this file as &lt;span style="font-style:italic;"&gt;install_initrd.gz&lt;/span&gt; in the directory where you extracted this base directory. This ramdisk will be used to start a system to perform commands from which will start the RPM install.&lt;br /&gt;&lt;br /&gt;&lt;img style="width: 400px; height: 226px;" src="http://lh5.ggpht.com/_ZmgfsgbGDLs/Sb63bmCkY8I/AAAAAAAAEAQ/N30aTNpZEEo/s400/install1.png" border="0" alt="Please choose the language used for the installation process. This language will be the default language for the final system. Choose a language: C - No localization English - English" /&gt;&lt;br /&gt;&lt;br /&gt;After installing coLinux to the standard location you can run the install.bat and start the installation process. It will start the start kernel with the install_initrd.gz as ramdisk. The terminal of choice for this process was a NT terminal, since copy-n-paste was easier to perform. When the installation process interface is shown, you should toggle with ALT+F2 to a console.&lt;br /&gt;&lt;br /&gt;   Please press Enter to activate this console.&lt;br /&gt;&lt;br /&gt;&lt;img style="width: 400px; height: 226px;" src="http://lh6.ggpht.com/_ZmgfsgbGDLs/Sb63brlBLtI/AAAAAAAAEAY/chtkT6AMxk4/s400/install2.png" border="0" alt="Please press Enter to activate this console. BusyBox v1.10.2 (Debian 1:1.10.2-2) built-in shell (ash) Enter 'help' for a list of built-in commands." /&gt;&lt;br /&gt;&lt;br /&gt;When you do so, you will see a BusyBox prompt where you can perform the instructions as shown in the instructions.txt.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Instructions&lt;/span&gt;&lt;br /&gt;You will now perform the instructions needed to do the actual install. We will create a basic environment to perform an RPM installation of the base packages. After this you can use YUM to download and/or install additional packages. To create &lt;br /&gt;the basic layout:&lt;br /&gt;&lt;div style="color:white;background:black"&gt;&lt;code&gt;&lt;br /&gt;mkswap /dev/cobd7&lt;br /&gt;swapon /dev/cobd7&lt;br /&gt;mkdir /mnt/linux&lt;br /&gt;mkdir /mnt/win&lt;br /&gt;mkdir /mnt/stage2&lt;br /&gt;mount /dev/cobd0 /mnt/linux&lt;br /&gt;mkdir -p /mnt/linux/media/cdrom&lt;br /&gt;mount -t cofs cofs0 /mnt/win&lt;br /&gt;mount /dev/cobd1 /mnt/linux/media/cdrom&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;This will create some swapspace, a mountpoint &lt;span style="font-style:italic;"&gt;/mnt/linux&lt;/span&gt; which points to the block device cobd0 (system.img), &lt;span style="font-style:italic;"&gt;/mnt/win&lt;/span&gt; will be used to point to the coLinux program files folder and &lt;span style="font-style:italic;"&gt;/mnt/stage2&lt;/span&gt; will later be used to mount the CentOS stage2 image file. Block device cobd1 is used to mount the DVD image to the mountpoint &lt;span style="font-style:italic;"&gt;/mnt/linux/media/cdrom&lt;/span&gt;. This will later be used to install the base packages from. &lt;br /&gt;&lt;br /&gt;The stage2 image file uses the squashfs filesystem. CoLinux provides kernel modules to use this filesystem.&lt;br /&gt;&lt;div style="color:white;background:black"&gt;&lt;code&gt;&lt;br /&gt;tar xzvf /mnt/win/vmlinux-modules.tar.gz lib/modules/2.6.22.18-co-0.7.3/kernel/fs/squashfs/squashfs.ko&lt;br /&gt;insmod /lib/modules/2.6.22.18-co-0.7.3/kernel/fs/squashfs/squashfs.ko&lt;br /&gt;mount -t squashfs -o loop /mnt/linux/media/cdrom/images/stage2.img /mnt/stage2&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;The contents then need to be copied to the &lt;span style="font-style:italic;"&gt;/mnt/linux&lt;/span&gt; to form the basis of our installation process.&lt;br /&gt;&lt;div style="color:white;background:black"&gt;&lt;code&gt;&lt;br /&gt;cp -a /mnt/stage2/ /mnt/linux&lt;br /&gt;umount /mnt/stage2&lt;br /&gt;mv /mnt/linux/stage2 /mnt/linux/base&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;This might take some time...&lt;br /&gt;&lt;br /&gt;The system needs to have some directories which will form the basis. The following command will create this.&lt;br /&gt;&lt;div style="color:white;background:black"&gt;&lt;code&gt;&lt;br /&gt;for n in bin dev proc lib usr tmp etc&lt;br /&gt;do&lt;br /&gt;  mkdir -p /mnt/linux/$n&lt;br /&gt;done&lt;br /&gt;touch /mnt/linux/etc/fstab /mnt/linux/etc/mtab&lt;br /&gt;mkdir -p /mnt/linux/var/lib/rpm&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;The location &lt;span style="font-style:italic;"&gt;/var/lib/rpm&lt;/span&gt; is needed to store the RPM database files.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Pre-installation&lt;/span&gt;&lt;br /&gt;RPM will need some libraries to run. These will be copied to the appropriate location using the following commands:&lt;br /&gt;&lt;div style="color:white;background:black"&gt;&lt;code&gt;&lt;br /&gt;cd /mnt/linux/lib&lt;br /&gt;ln -s ../base/lib/* .&lt;br /&gt;rm /mnt/linux/lib/udev&lt;br /&gt;rm /mnt/linux/lib/bdevid&lt;br /&gt;mkdir /mnt/linux/usr/lib&lt;br /&gt;cp -a /mnt/linux/base/usr/lib/librpm-* /mnt/linux/usr/lib/&lt;br /&gt;cp -a /mnt/linux/base/usr/lib/librpmio-* /mnt/linux/usr/lib/&lt;br /&gt;cp -a /mnt/linux/base/usr/lib/librpmdb-* /mnt/linux/usr/lib/&lt;br /&gt;cp -a /mnt/linux/base/usr/lib/libpopt.* /mnt/linux/usr/lib/&lt;br /&gt;cp -a /mnt/linux/base/usr/lib/libsqlite3.* /mnt/linux/usr/lib/&lt;br /&gt;cp -a /mnt/linux/base/usr/lib/libelf* /mnt/linux/usr/lib/&lt;br /&gt;cp -a /mnt/linux/base/usr/lib/libbeecrypt.* /mnt/linux/usr/lib/&lt;br /&gt;cp -a /mnt/linux/base/usr/lib/libz.* /mnt/linux/usr/lib/&lt;br /&gt;cp -a /mnt/linux/base/usr/lib/libbz2.* /mnt/linux/usr/lib/&lt;br /&gt;cp -a /mnt/linux/base/usr/lib/libstdc++.* /mnt/linux/usr/lib/&lt;br /&gt;cp -a /mnt/linux/base/usr/lib/rpm /mnt/linux/usr/lib/&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;All necessary libraries are now available to pivot the root to the &lt;span style="font-style:italic;"&gt;/mnt/linux&lt;/span&gt; location.&lt;br /&gt;&lt;div style="color:white;background:black"&gt;&lt;code&gt;&lt;br /&gt;chroot /mnt/linux /base/usr/bin/sh&lt;br /&gt;/base/usr/bin/rpm --initdb&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;This will create a fresh RPM database which the installation process can use.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Installation&lt;/span&gt;&lt;br /&gt;You are now ready to perform the installation.&lt;br /&gt;&lt;div style="color:white;background:black"&gt;&lt;code&gt;&lt;br /&gt;cd /media/cdrom/CentOS&lt;br /&gt;/base/usr/bin/rpm -ivh setup-*.rpm&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;The following packages need to be installed at once. These will form a base installation of CentOS. &lt;br /&gt;&lt;div style="color:white;background:black"&gt;&lt;code&gt;&lt;br /&gt;/base/usr/bin/rpm -ivh \&lt;br /&gt;audit-libs-[0-9]*.rpm \&lt;br /&gt;audit-libs-python-[0-9]*.rpm \&lt;br /&gt;authconfig-[0-9]*.rpm \&lt;br /&gt;basesystem-[0-9]*.rpm \&lt;br /&gt;bash-[0-9]*.rpm \&lt;br /&gt;beecrypt-[0-9]*.rpm \&lt;br /&gt;bzip2-libs-[0-9]*.rpm \&lt;br /&gt;centos-release-[0-9]*.rpm \&lt;br /&gt;centos-release-notes-[0-9]*.rpm \&lt;br /&gt;checkpolicy-[0-9]*.rpm \&lt;br /&gt;chkconfig-[0-9]*.rpm \&lt;br /&gt;coreutils-[0-9]*.rpm \&lt;br /&gt;cpio-[0-9]*.rpm \&lt;br /&gt;cracklib-[0-9]*.rpm \&lt;br /&gt;cracklib-dicts-[0-9]*.rpm \&lt;br /&gt;cryptsetup-luks-[0-9]*.rpm \&lt;br /&gt;cyrus-sasl-lib-[0-9]*.rpm \&lt;br /&gt;db4-[0-9]*.rpm \&lt;br /&gt;dbus-[0-9]*.rpm \&lt;br /&gt;dbus-glib-[0-9]*.rpm \&lt;br /&gt;device-mapper-[0-9]*.rpm \&lt;br /&gt;device-mapper-event-[0-9]*.rpm \&lt;br /&gt;device-mapper-multipath-[0-9]*.rpm \&lt;br /&gt;dhclient-[0-9]*.rpm \&lt;br /&gt;dhcpv6-client-[0-9]*.rpm \&lt;br /&gt;diffutils-[0-9]*.rpm \&lt;br /&gt;dmidecode-[0-9]*.rpm \&lt;br /&gt;dmraid-[0-9]*.rpm \&lt;br /&gt;e2fsprogs-[0-9]*.rpm \&lt;br /&gt;e2fsprogs-libs-[0-9]*.rpm \&lt;br /&gt;ecryptfs-utils-[0-9]*.rpm \&lt;br /&gt;ed-[0-9]*.rpm \&lt;br /&gt;elfutils-libelf-[0-9]*.rpm \&lt;br /&gt;ethtool-[0-9]*.rpm \&lt;br /&gt;expat-[0-9]*.rpm \&lt;br /&gt;file-[0-9]*.rpm \&lt;br /&gt;filesystem-[0-9]*.rpm \&lt;br /&gt;findutils-[0-9]*.rpm \&lt;br /&gt;gawk-[0-9]*.rpm \&lt;br /&gt;gdbm-[0-9]*.rpm \&lt;br /&gt;glib2-[0-9]*.rpm \&lt;br /&gt;glibc-[0-9]*.i686.rpm \&lt;br /&gt;glibc-common-[0-9]*.rpm \&lt;br /&gt;gnu-efi-[0-9]*.rpm \&lt;br /&gt;grep-[0-9]*.rpm \&lt;br /&gt;grub-[0-9]*.rpm \&lt;br /&gt;gzip-[0-9]*.rpm \&lt;br /&gt;hal-[0-9]*.rpm \&lt;br /&gt;hdparm-[0-9]*.rpm \&lt;br /&gt;hwdata-[0-9]*.rpm \&lt;br /&gt;info-[0-9]*.rpm \&lt;br /&gt;initscripts-[0-9]*.rpm \&lt;br /&gt;iproute-[0-9]*.rpm \&lt;br /&gt;iptables-[0-9]*.rpm \&lt;br /&gt;iptables-ipv6-[0-9]*.rpm \&lt;br /&gt;iputils-[0-9]*.rpm \&lt;br /&gt;kbd-[0-9]*.rpm \&lt;br /&gt;kernel-[0-9]*.rpm \&lt;br /&gt;keyutils-libs-[0-9]*.rpm \&lt;br /&gt;kpartx-[0-9]*.rpm \&lt;br /&gt;krb5-libs-[0-9]*.rpm \&lt;br /&gt;kudzu-[0-9]*.rpm \&lt;br /&gt;less-[0-9]*.rpm \&lt;br /&gt;libacl-[0-9]*.rpm \&lt;br /&gt;libattr-[0-9]*.rpm \&lt;br /&gt;libcap-[0-9]*.rpm \&lt;br /&gt;libgcc-[0-9]*.rpm \&lt;br /&gt;libgcrypt-[0-9]*.rpm \&lt;br /&gt;libgpg-error-[0-9]*.rpm \&lt;br /&gt;libhugetlbfs-[0-9]*.rpm \&lt;br /&gt;libselinux-[0-9]*.rpm \&lt;br /&gt;libselinux-python-[0-9]*.rpm \&lt;br /&gt;libsemanage-[0-9]*.rpm \&lt;br /&gt;libsepol-[0-9]*.rpm \&lt;br /&gt;libstdc++-[0-9]*.rpm \&lt;br /&gt;libsysfs-[0-9]*.rpm \&lt;br /&gt;libtermcap-[0-9]*.rpm \&lt;br /&gt;libusb-[0-9]*.rpm \&lt;br /&gt;libuser-[0-9]*.rpm \&lt;br /&gt;libvolume_id-[0-9]*.rpm \&lt;br /&gt;libxml2-[0-9]*.rpm \&lt;br /&gt;libxml2-python-[0-9]*.rpm \&lt;br /&gt;lvm2-[0-9]*.rpm \&lt;br /&gt;m2crypto-[0-9]*.rpm \&lt;br /&gt;MAKEDEV-[0-9]*.rpm \&lt;br /&gt;mcstrans-[0-9]*.rpm \&lt;br /&gt;mingetty-[0-9]*.rpm \&lt;br /&gt;mkinitrd-[0-9]*.rpm \&lt;br /&gt;mktemp-[0-9]*.rpm \&lt;br /&gt;module-init-tools-[0-9]*.rpm \&lt;br /&gt;nash-[0-9]*.rpm \&lt;br /&gt;ncurses-[0-9]*.rpm \&lt;br /&gt;net-tools-[0-9]*.rpm \&lt;br /&gt;newt-[0-9]*.rpm \&lt;br /&gt;nspr-[0-9]*.rpm \&lt;br /&gt;nss-[0-9]*.rpm \&lt;br /&gt;openldap-[0-9]*.rpm \&lt;br /&gt;openssh-[0-9]*.rpm \&lt;br /&gt;openssh-clients-[0-9]*.rpm \&lt;br /&gt;openssh-server-[0-9]*.rpm \&lt;br /&gt;openssl-[0-9]*.i686.rpm \&lt;br /&gt;pam-[0-9]*.rpm \&lt;br /&gt;passwd-[0-9]*.rpm \&lt;br /&gt;pciutils-[0-9]*.rpm \&lt;br /&gt;pcre-[0-9]*.rpm \&lt;br /&gt;pm-utils-[0-9]*.rpm \&lt;br /&gt;policycoreutils-[0-9]*.rpm \&lt;br /&gt;popt-[0-9]*.rpm \&lt;br /&gt;prelink-[0-9]*.rpm \&lt;br /&gt;procps-[0-9]*.rpm \&lt;br /&gt;psmisc-[0-9]*.rpm \&lt;br /&gt;python-[0-9]*.rpm \&lt;br /&gt;python-elementtree-[0-9]*.rpm \&lt;br /&gt;python-iniparse-[0-9]*.rpm \&lt;br /&gt;python-sqlite-[0-9]*.rpm \&lt;br /&gt;python-urlgrabber-[0-9]*.rpm \&lt;br /&gt;readline-[0-9]*.rpm \&lt;br /&gt;redhat-logos-[0-9]*.rpm \&lt;br /&gt;rhpl-[0-9]*.rpm \&lt;br /&gt;rootfiles-[0-9]*.rpm \&lt;br /&gt;rpm-[0-9]*.rpm \&lt;br /&gt;rpm-libs-[0-9]*.rpm \&lt;br /&gt;rpm-python-[0-9]*.rpm \&lt;br /&gt;sed-[0-9]*.rpm \&lt;br /&gt;selinux-policy-[0-9]*.rpm \&lt;br /&gt;selinux-policy-targeted-[0-9]*.rpm \&lt;br /&gt;setools-[0-9]*.rpm \&lt;br /&gt;setserial-[0-9]*.rpm \&lt;br /&gt;shadow-utils-[0-9]*.rpm \&lt;br /&gt;slang-[0-9]*.rpm \&lt;br /&gt;sqlite-[0-9]*.rpm \&lt;br /&gt;sysfsutils-[0-9]*.rpm \&lt;br /&gt;sysklogd-[0-9]*.rpm \&lt;br /&gt;system-config-securitylevel-tui-[0-9]*.rpm \&lt;br /&gt;SysVinit-[0-9]*.rpm \&lt;br /&gt;tar-[0-9]*.rpm \&lt;br /&gt;tcl-[0-9]*.rpm \&lt;br /&gt;tcp_wrappers-[0-9]*.rpm \&lt;br /&gt;termcap-[0-9]*.rpm \&lt;br /&gt;tzdata-[0-9]*.rpm \&lt;br /&gt;udev-[0-9]*.rpm \&lt;br /&gt;udftools-[0-9]*.rpm \&lt;br /&gt;usermode-[0-9]*.rpm \&lt;br /&gt;util-linux-[0-9]*.rpm \&lt;br /&gt;vim-minimal-[0-9]*.rpm \&lt;br /&gt;wireless-tools-[0-9]*.rpm \&lt;br /&gt;yum-[0-9]*.rpm \&lt;br /&gt;yum-metadata-parser-[0-9]*.rpm \&lt;br /&gt;zlib-[0-9]*.rpm&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;If you perform the command, the following will show indicating that the installation process started.&lt;br /&gt;&lt;img style="width: 400px; height: 226px;" src="http://lh6.ggpht.com/_ZmgfsgbGDLs/Sb7CBbq-d_I/AAAAAAAAEAo/wmQeB7eTx0k/s400/install4.png" alt="RPM installation process" /&gt;&lt;br /&gt;This will again take some time... and will eventually result in the following.&lt;br /&gt;&lt;img style="width: 400px; height: 226px;" src="http://lh6.ggpht.com/_ZmgfsgbGDLs/Sb7Cu1wUJRI/AAAAAAAAEAw/tTKTKyDtVTM/s400/install5.png" /&gt;&lt;br /&gt;If no error occurred you can start with the post-installation to make the system usable from coLinux.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Post-installation&lt;/span&gt;&lt;br /&gt;We will now perform some post-installation commands to finish the installation. Create the device nodes in the device directory. These will be used by the filesystem table to mount the filesystem. Do not forget to first exit out of the chroot environment.&lt;br /&gt;&lt;div style="color:white;background:black"&gt;&lt;code&gt;&lt;br /&gt;exit&lt;br /&gt;mknod -m 666 /mnt/linux/dev/null c 1 3&lt;br /&gt;for i in 0 1 2 3 4 5 6 7 8 9 10&lt;br /&gt;do&lt;br /&gt;  mknod -m 660 /mnt/linux/dev/cobd${i} b 117 ${i}&lt;br /&gt;done&lt;br /&gt;chown 0:6 /mnt/linux/dev/cobd*&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;To have the filesystems mounted on startup you need to have the fstab file being created. Just overwrite the current file:&lt;br /&gt;&lt;div style="color:white;background:black"&gt;&lt;code&gt;&lt;br /&gt;cat &gt; /mnt/linux/etc/fstab &lt;&lt; END&lt;br /&gt;/dev/cobd0   /          ext3     defaults        1 1&lt;br /&gt;/dev/cobd7   swap       swap     defaults        0 0&lt;br /&gt;none         /proc      proc     defaults        0 0&lt;br /&gt;none         /dev/shm   tmpfs    defaults        0 0&lt;br /&gt;none         /dev/pts   devpts   gid=5,mode=620  0 0&lt;br /&gt;none         /sys       sysfs    defaults        0 0&lt;br /&gt;END&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;Write some basic information to the hosts file.&lt;br /&gt;&lt;div style="color:white;background:black"&gt;&lt;code&gt;&lt;br /&gt;cat &gt; /mnt/linux/etc/hosts &lt;&lt; END&lt;br /&gt;127.0.0.1 localhost localhost.localdomain&lt;br /&gt;END&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;The following will create the shared memory and the pseudo terminal devices, turns off the hardware daemon and allows you to give an initial password for the root user.&lt;br /&gt;&lt;div style="color:white;background:black"&gt;&lt;code&gt;&lt;br /&gt;chroot /mnt/linux /sbin/MAKEDEV con&lt;br /&gt;chroot /mnt/linux /bin/bash -c "/bin/mkdir /dev/{shm,pts}"&lt;br /&gt;chroot /mnt/linux /bin/bash -c "/bin/chmod a+rwxt /dev/shm"&lt;br /&gt;chroot /mnt/linux /sbin/MAKEDEV generic&lt;br /&gt;chroot /mnt/linux /sbin/chkconfig haldaemon off&lt;br /&gt;chroot /mnt/linux /usr/sbin/authconfig --enableshadow --update&lt;br /&gt;chroot /mnt/linux /usr/bin/passwd root&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;To have the network start, you need to create the following files. This way your system will be configured with a basic hostname and two network devices using DHCP.&lt;br /&gt;&lt;div style="color:white;background:black"&gt;&lt;code&gt;&lt;br /&gt;cat &gt; /mnt/linux/etc/sysconfig/network &lt;&lt; END&lt;br /&gt;NETWORKING=yes&lt;br /&gt;HOSTNAME=localhost.localdomain&lt;br /&gt;END&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="color:white;background:black"&gt;&lt;code&gt;&lt;br /&gt;cat &gt; /mnt/linux/etc/sysconfig/network-scripts/ifcfg-eth0 &lt;&lt; END&lt;br /&gt;DEVICE=eth0&lt;br /&gt;BOOTPROTO=dhcp&lt;br /&gt;ONBOOT=yes&lt;br /&gt;TYPE=Ethernet&lt;br /&gt;END&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="color:white;background:black"&gt;&lt;code&gt;&lt;br /&gt;cat &gt; /mnt/linux/etc/sysconfig/network-scripts/ifcfg-eth0 &lt;&lt; END&lt;br /&gt;DEVICE=eth1&lt;br /&gt;BOOTPROTO=dhcp&lt;br /&gt;ONBOOT=yes&lt;br /&gt;TYPE=Ethernet&lt;br /&gt;END&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Cleanup&lt;/span&gt;&lt;br /&gt;You can now remove the base directory we had copied from the stage2 image.&lt;br /&gt;&lt;div style="color:white;background:black"&gt;&lt;code&gt;&lt;br /&gt;rm -rf /mnt/linux/base&lt;br /&gt;halt&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;After this you can halt the system and start the environment using the &lt;span style="font-style:italic;"&gt;run.bat&lt;/span&gt; file. If everything went well your system would look like this!&lt;br /&gt;&lt;img style="width: 400px; height: 226px;" src="http://lh4.ggpht.com/_ZmgfsgbGDLs/Sb7GZ6einxI/AAAAAAAAEA4/8WWXLCyp1eQ/s400/install6.png" /&gt;&lt;br /&gt;During startup you will notice some minor error which are related to the kernel dependencies file being missing. To solve this, you can extract the kernel modules using the &lt;span style="font-style:italic;"&gt;/dev/cofs0&lt;/span&gt; mapping. Although I prefer to use RPMs, since they are easier to cleanup and upgrade when needed.&lt;br /&gt;&lt;div style="color:white;background:black"&gt;&lt;code&gt;&lt;br /&gt;yum install wget&lt;br /&gt;wget http://gbraad.fedorapeople.org/files/kernel-modules-2.6-co0.7.3.i386.rpm&lt;br /&gt;rpm -ivh kernel-modules-2.6-co0.7.3.i386.rpm&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;Enjoy using it... If you have suggestions or stories about your use, leave a comment or send me an email.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5606041637705531621-2401169128586259517?l=blog.gbraad.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gbraad.nl/feeds/2401169128586259517/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5606041637705531621&amp;postID=2401169128586259517&amp;isPopup=true" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/2401169128586259517" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/2401169128586259517" /><link rel="alternate" type="text/html" href="http://blog.gbraad.nl/2009/03/manually-installing-centos-52-on.html" title="Manually installing CentOS 5.2 on coLinux" /><author><name>Gerard Braad</name><uri>https://plus.google.com/112618846457931278165</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-EcgVgHfrnHk/AAAAAAAAAAI/AAAAAAAAI1w/Gkmf37iyvMk/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/_ZmgfsgbGDLs/Sb63bmCkY8I/AAAAAAAAEAQ/N30aTNpZEEo/s72-c/install1.png" height="72" width="72" /><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5606041637705531621.post-160685553415922711</id><published>2009-03-13T20:43:00.013+01:00</published><updated>2009-04-02T18:50:23.038+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="colinux" /><category scheme="http://www.blogger.com/atom/ns#" term="centos" /><title type="text">CentOS 5.2 image for coLinux</title><content type="html">Although soon we hope to have the newer 5.3 release of CentOS, I still decided to create a coLinux image of the current release. The problem with this release is that the kernel has issues when run on Qemu as can be seen in &lt;a href="http://bugs.centos.org/view.php?id=2912"&gt;this bug report&lt;/a&gt;. This issues is known upstream and is solvable by installing 5.1 and then update it beyond the problematic kernel... or you could just wait until CentOS 5.3 is released.&lt;br /&gt;&lt;br /&gt;To make CentOS 5.2 usable in coLinux you could install 5.1 in this way using Qemu and update it. I just took a different approach: use RPM. I used a modified initrd image and installed a basic RPM installation (kinda similar to the FC3-CentOS frankenupgrade). More details about how the installation was performed will follow. &lt;br /&gt;&lt;br /&gt;&lt;img style="width: 320px; height: 185px;" src="http://4.bp.blogspot.com/_ZmgfsgbGDLs/Sbq-NYDCGHI/AAAAAAAAD_U/DsgmMmRuew0/s320/centos52-colinux.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5312767847439669362" /&gt;&lt;br /&gt;&lt;br /&gt;For now you can find the files here:&lt;br /&gt;colinux-centos52.exe [&lt;a href="http://delivery.vipeers.com/file_sharing?message_hash=DqndxLVLCZtSWzi5b3x3rQ=="&gt;VIPeers&lt;/a&gt;] [&lt;a href="http://dl.getdropbox.com/u/131903/colinux-centos52.exe"&gt;dropbox&lt;/a&gt;] (82mb)&lt;br /&gt;&lt;br /&gt;The files contain an image with a minimal installation which you can use on coLinux 0.7.3. The startup is not error-free... but you can ignore the failures for now, since I will update the images to reflect the Fedora images. Your suggestions are of course welcome.&lt;br /&gt;&lt;br /&gt;It is configured to use DHCP on the network connections eth0 and eth1. The user account is 'root' without a password.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Edit: repacked the archive to be self-extracting and kernel modules (co0.7.3) have been installed by RPM.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5606041637705531621-160685553415922711?l=blog.gbraad.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gbraad.nl/feeds/160685553415922711/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5606041637705531621&amp;postID=160685553415922711&amp;isPopup=true" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/160685553415922711" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/160685553415922711" /><link rel="alternate" type="text/html" href="http://blog.gbraad.nl/2009/03/centos-52-image-for-colinux.html" title="CentOS 5.2 image for coLinux" /><author><name>Gerard Braad</name><uri>https://plus.google.com/112618846457931278165</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-EcgVgHfrnHk/AAAAAAAAAAI/AAAAAAAAI1w/Gkmf37iyvMk/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_ZmgfsgbGDLs/Sbq-NYDCGHI/AAAAAAAAD_U/DsgmMmRuew0/s72-c/centos52-colinux.png" height="72" width="72" /><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5606041637705531621.post-8514563115460221130</id><published>2009-02-01T23:04:00.005+01:00</published><updated>2009-02-15T20:20:56.253+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="libvirt" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="centos" /><category scheme="http://www.blogger.com/atom/ns#" term="rhel" /><category scheme="http://www.blogger.com/atom/ns#" term="openvz" /><title type="text">libvirt for RHEL5/CentOS 5</title><content type="html">Just built and packaged the libvirt library version 0.6.0 for use with Red Hat Enterprise Linux 5 and CentOS 5 (or any other EL5 compatible system). This library supports the following virtualization systems: Xen, KVM, Qemu and OpenVZ.&lt;br /&gt;&lt;br /&gt;Files are located at &lt;a href="http://files.gbraad.nl/packages/el5/"&gt;http://files.gbraad.nl/packages/el5/&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;These packages have been signed with my packaging key, which is available &lt;a href="http://files.gbraad.nl/packages/RPM-GPG-KEY-gbraad.asc"&gt;here&lt;/a&gt; (&lt;a href="http://gbraad.fedorapeople.org/RPM-GPG-KEY-gbraad.asc"&gt;mirror&lt;/a&gt;). More information about this library can be found on the &lt;a href="http://libvirt.org/"&gt;libvirt&lt;/a&gt; homepage.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5606041637705531621-8514563115460221130?l=blog.gbraad.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="related" href="http://files.gbraad.nl/packages/el5/" title="libvirt for RHEL5/CentOS 5" /><link rel="replies" type="application/atom+xml" href="http://blog.gbraad.nl/feeds/8514563115460221130/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5606041637705531621&amp;postID=8514563115460221130&amp;isPopup=true" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/8514563115460221130" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/8514563115460221130" /><link rel="alternate" type="text/html" href="http://blog.gbraad.nl/2009/02/libvirt-for-rhel5centos-5.html" title="libvirt for RHEL5/CentOS 5" /><author><name>Gerard Braad</name><uri>https://plus.google.com/112618846457931278165</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-EcgVgHfrnHk/AAAAAAAAAAI/AAAAAAAAI1w/Gkmf37iyvMk/s512-c/photo.jpg" /></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5606041637705531621.post-6567027638289898167</id><published>2009-01-11T13:45:00.011+01:00</published><updated>2009-02-01T14:48:49.572+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="centos" /><category scheme="http://www.blogger.com/atom/ns#" term="fedora" /><category scheme="http://www.blogger.com/atom/ns#" term="upgrade" /><category scheme="http://www.blogger.com/atom/ns#" term="yum" /><title type="text">The Wizard of Yum: Upgrade from FC3 to CentOS 5.2</title><content type="html">&lt;p&gt;If you have a production server, you would like to stay on the yellow brick road of upgrades for the operating system and installed software. However, it might happen you forget to support a server... and get 'scared' of performing updates: "If it ain't broken, don't fix it"! This mentality is not always correct, since errors you don't have at the moment, might still be a problem later on. The further away you get from the updates, the more difficult it will become to perform an upgrade to a later version of a distribution.&lt;/p&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;Why to write about it&lt;/span&gt;&lt;br /&gt;The motivation to describe my experience of upgrading is because I hear a lot of people still complain about RPM and the dependency issues. Most of them have never used it and call the apt system the best solution. In my opinion, the key to success for apt is the reliance on a single repository. Debian people seldomly use &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;dpkg -i&lt;/span&gt;&lt;/span&gt; to install package, since they use &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;apt-get install&lt;/span&gt;&lt;/span&gt; to resolve dependencies. YUM solves the issue for RPM systems in a similar fashion. Instead of using &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;rpm -i&lt;/span&gt;&lt;/span&gt; you can install packages using &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;yum install&lt;/span&gt;&lt;/span&gt;, which resolves necessary dependencies from the configured repositories.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Note: With Ubuntu and Maemo I have noticed that more repositories get introduced which cause the same problems for apt-get. Dependency resolving might not work, since packages and depencies get fragmented and sometimes even unavailable or conflicting. The Red Hat community recently merged several repositories (RPM Fusion and RPM Forge) which does solve a lot of issues.&lt;/p&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;Setup&lt;/span&gt;&lt;br /&gt;I was faced with the upgrade problem with my &lt;a href="http://picasaweb.google.com/lh/photo/D73i0Oqxov1U7lrY9e4s8A"&gt;own personal (web)server&lt;/a&gt; for quite some time. I have no idea what I originally installed on it, but it has always been a Red Hat Linux system. It has been upgraded many times until it ran Fedora Core 3. At least the oldest file on the server was from January 2000. Since the server ran FC3, there was a problem. Fedora Core 3 was released in November 2004 it therefore only had updates available until about 2006.&lt;/p&gt;&lt;p&gt;Last year the machine was taken apart and virtualized to run on a &lt;a href="http://picasaweb.google.com/lh/photo/q8rgW7f5iueNHoXKn68_GQ"&gt;newer VMware environment&lt;/a&gt;. I did update the system quite often... but never upgrade the distribution again. I had strayed from the yellow brick road and had no clear upgrade path any more. To solve this issue I could do to things:&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Install a new server and migrate the files&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Upgrade to a new distribution and hope this would start&lt;/li&gt;&lt;/ol&gt;No matter what option I would choose, I wanted to have similar functionality. Currently it runs:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Webserver:&lt;br /&gt;Apache HTTPd (with various modules) → Zope&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Mail infrastructure:&lt;br /&gt;Postfix → Amavisd-new → Cyrus-imapd&lt;/li&gt;&lt;li&gt;Database:&lt;br /&gt;PostgreSQL&lt;/li&gt;&lt;/ul&gt;I wanted to upgrade (option 2) as I had always done. Because of this, my options for upgrade were kinda limited: Fedora Core 4? Fedora Core had no support either... and the support for Fedora 8 would also expire soon (as it did this week). On the internet I had seen people mention it would be impossible to perform an upgrade from FC3 to a later version, like FC9 or they strongly advice others not to do so...&lt;p&gt;&lt;/p&gt;&lt;p&gt;Hmmm, so instead I copied my 'sites', 'imap', 'zope' and database dumps to an NFS. Did I have to start a new installation?!??? All other servers I installed allready ran CentOS, I would also make this a CentOS installation. Well, considering CentOS is derived from RHEL (RedHat Enterprise Linux) it is in fact a Fedora installation. If you look at the release details:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;RHEL-4 is based on FC3&lt;/li&gt;&lt;li&gt;RHEL-5 is based on FC6&lt;/li&gt;&lt;/ul&gt;You can upgrade from RHEL-4 to RHEL-5, this would mean like you jump from FC3 to FC6. CentOS 5.2 is a RedHat derivative from RHEL-5.2... So I wanted to upgrade my FC3 to CentOS 5.2. I know this would be difficult, but in my opinion possible. The key to success would be YUM, the chosen applications and the self-contained installs. The structure I had laid out was simple &lt;ul&gt;&lt;li&gt;Amavisd-new ran its own Perl installation from &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;/opt/activestate/perl/&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Zope&lt;br /&gt;ran from a Python installation from &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;/opt/activestate/python/&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;datafiles are in &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;/home/zope/&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Cyrus was built from source&lt;br /&gt;installed in &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;/opt/cyrus/&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;datafiles are in &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;/home/cyrus/&lt;/span&gt;&lt;/span&gt;, totalling 7GB.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Each website has its own &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;vhost-[domainname].conf&lt;/span&gt;&lt;/span&gt; for Apache and a separate directory in &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;/home/sites/[domainname]/[hostname]/web/&lt;/span&gt;&lt;/span&gt; which contains the files. Several websites, subdomains and databases, totalling 4GB of data.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span style="font-weight: bold;"&gt;Description&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;The following description are the actions I took, but it is NOT a howto for guaranteed success. It might work for you, although you could also end up with a non-booting system. Only perform this installation if you have enough knowledge of a Linux system and have backups available if it goes wrong.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;On VMware I made a snapshot of the VM and opened the console, logged in on the 2nd and 3rd console as root. The main installation I would perform from two SSH connections (one as a backup). The tool I would use for the upgrade is YUM. YUM is a tool which resolves dependencies from repositories you have specified.&lt;/p&gt;&lt;p&gt;As root I created a 'frankenstein' directory with the following files from a &lt;a href="http://www.centos.org/modules/tinycontent/index.php?id=13"&gt;CentOS mirror&lt;/a&gt;.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;centos-release-5-2.el5.centos.i386.rpm&lt;br /&gt;&lt;br /&gt;beecrypt-4.1.2-10.1.1.i386.rpm&lt;br /&gt;centos-release-notes-5.2-2.i386.rpm&lt;br /&gt;db4-4.3.29-9.fc6.i386.rpm&lt;br /&gt;db4-devel-4.3.29-9.fc6.i386.rpm&lt;br /&gt;db4-utils-4.3.29-9.fc6.i386.rpm&lt;br /&gt;elfutils-0.125-3.el5.i386.rpm&lt;br /&gt;elfutils-libelf-0.125-3.el5.i386.rpm&lt;br /&gt;elfutils-libelf-devel-0.125-3.el5.i386.rpm&lt;br /&gt;elfutils-libelf-devel-static-0.125-3.el5.i386.rpm&lt;br /&gt;elfutils-libs-0.125-3.el5.i386.rpm&lt;br /&gt;glib2-2.12.3-2.fc6.i386.rpm&lt;br /&gt;glib2-devel-2.12.3-2.fc6.i386.rpm&lt;br /&gt;glibc-2.5-24.i386.rpm&lt;br /&gt;glibc-common-2.5-24.i386.rpm&lt;br /&gt;glibc-devel-2.5-24.i386.rpm&lt;br /&gt;glibc-headers-2.5-24.i386.rpm&lt;br /&gt;keyutils-1.2-1.el5.i386.rpm&lt;br /&gt;keyutils-libs-1.2-1.el5.i386.rpm&lt;br /&gt;krb5-devel-1.6.1-25.el5.i386.rpm&lt;br /&gt;krb5-libs-1.6.1-25.el5.i386.rpm&lt;br /&gt;krb5-workstation-1.6.1-25.el5.i386.rpm&lt;br /&gt;libselinux-1.33.4-5.el5.i386.rpm&lt;br /&gt;libselinux-devel-1.33.4-5.el5.i386.rpm&lt;br /&gt;libsepol-1.15.2-1.el5.i386.rpm&lt;br /&gt;libsepol-devel-1.15.2-1.el5.i386.rpm&lt;br /&gt;libxml2-python-2.6.26-2.1.2.1.i386.rpm&lt;br /&gt;m2crypto-0.16-6.el5.2.i386.rpm&lt;br /&gt;mcstrans-0.2.7-1.el5.i386.rpm&lt;br /&gt;openssl-0.9.8b-10.el5.i386.rpm&lt;br /&gt;popt-1.10.2-48.el5.i386.rpm&lt;br /&gt;python-2.4.3-21.el5.i386.rpm&lt;br /&gt;python-devel-2.4.3-21.el5.i386.rpm&lt;br /&gt;python-elementtree-1.2.6-5.i386.rpm&lt;br /&gt;python-ldap-2.2.0-2.1.i386.rpm&lt;br /&gt;python-sqlite-1.1.7-1.2.1.i386.rpm&lt;br /&gt;python-urlgrabber-3.1.0-2.noarch.rpm&lt;br /&gt;readline-5.1-1.1.i386.rpm&lt;br /&gt;readline-devel-5.1-1.1.i386.rpm&lt;br /&gt;rpm-4.4.2-48.el5.i386.rpm&lt;br /&gt;rpm-build-4.4.2-48.el5.i386.rpm&lt;br /&gt;rpm-devel-4.4.2-48.el5.i386.rpm&lt;br /&gt;rpm-libs-4.4.2-48.el5.i386.rpm&lt;br /&gt;rpm-python-4.4.2-48.el5.i386.rpm&lt;br /&gt;sqlite-3.3.6-2.i386.rpm&lt;br /&gt;sqlite-devel-3.3.6-2.i386.rpm&lt;br /&gt;yum-3.2.8-9.el5.centos.1.noarch.rpm&lt;br /&gt;yum-metadata-parser-1.1.2-2.el5.i386.rpm&lt;/code&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The centos-release file tell your YUM to which repository it should refer for an upgrade. Your version number may differ, but this would generally give you a working YUM installation from a CentOS system. Install all the packages at once.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ rpm -Uvh *.rpm --nodeps&lt;/code&gt;.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://picasaweb.google.com/lh/photo/5O-5aBCaTcs-QwLRMtSNoQ"&gt;This is what&lt;/a&gt; my console showed after the installation. Since the berkely database version has been upgraded, you need to remove the previous RPM database and rebuild it.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ rm -f /var/lib/rpm/__db.*&lt;br /&gt;$ rpm --rebuilddb&lt;/code&gt;&lt;br /&gt;&lt;/p&gt;From this moment on, you could upgrade the system. The command&lt;br /&gt;&lt;p&gt;&lt;code&gt;$ yum upgrade&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;will show you what issues you need to satisfy for the dependencies. These you can install using:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ yum install [packagename]&lt;/code&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;Before I upgraded, I disabled several repositories in my &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;/etc/yum.repos.d/&lt;/span&gt;&lt;/span&gt; directory. You can do this by adding &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;enabled=0&lt;/span&gt;&lt;/span&gt; to a repo definition. Before continuing the upgrade I stopped unnecessary services and disabled SELinux for now. Depending on the use of your installation you may need to also remove some packages. I had to do so.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ rpm -qa&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;shows you all the installed packages. For my installation I removed some Novell branded packages for Mono and most of the X11 packages. After this remove the installed kernels. You might to iterate these steps (&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;rpm -qa&lt;/span&gt;&lt;/span&gt; and &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;rpm -e &lt;/span&gt;&lt;/span&gt;or&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt; yum remove&lt;/span&gt;&lt;/span&gt;) several times before you can perform the upgrade.&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;code&gt;$ yum upgrade&lt;/code&gt;&lt;br /&gt;&lt;p&gt;starts &lt;a href="http://picasaweb.google.com/lh/photo/JSsCeTyMo0NEi2_u7YjPkg"&gt;the actual upgrade&lt;/a&gt;... be careful during the installation, since some services might not function as expected. Do not abort it. This would render your system not usable.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;After the yum upgrade has been performed, you need to check if you have a kernel configured in &lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;/boot/grub/grub.conf&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt; (&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;/etc/grub.conf&lt;/span&gt;&lt;/span&gt;). I had to install the kernel myself due to architecture conflicts?!&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ rpm -ivh --ignorearch kernel-2.6.18-92.el5.1686.rpm&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Even after this installation you would need to check the grub configuration. &lt;a href="http://picasaweb.google.com/lh/photo/sdxn46KuxC4ysvGL5eHu6Q"&gt;Reboot the system&lt;/a&gt; and when it starts, you would have a CentOS system.&lt;/p&gt;After this you can cleanup your system.&lt;br /&gt;&lt;p&gt;&lt;code&gt;$ rpm -qa &gt; /tmp/rpmlist&lt;br /&gt;$ cat /tmp/rpmlist | grep fc3&lt;br /&gt;$ cat /tmp/rpmlist | grep FC3&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Remove any remaining package which refer to your previous installation. Note: it is normal to find references to fc6 packages for your CentOS installation.&lt;/p&gt;&lt;p&gt;After the reboot, I noticed that most of the applications still worked as they should. Most of the time went into getting Apache and Zope running well together. Now a week later, I removed the VMware snapshot, even consolidated two harddisc files into one. Cyrus-impad is now makes use of the official release package (using my own config file) and upgraded amavisd-new to the RPMforge release. Only zope is running the old installation...&lt;/p&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;Conclusion&lt;/span&gt;&lt;br /&gt;Always plan your system for future use. A sever has a lifespan which may exceed your initial thoughts. Try to compose the server as seperate responsibilities (mail, web, etc) as this would make upgrade easier. Try to stay close to the release schedule of patches and updates for your system... try to avoid &lt;a href="http://www.bofh-hunter.com/2009/01/02/evils-of-source/"&gt;building from&lt;/a&gt; &lt;a href="http://www.arrfab.net/blog/?p=106"&gt;source&lt;/a&gt; or compiling your own kernels as this would make management more difficult later on. And when a distribution gets the end-of-life status, try to move away from it immediately.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;As you can see, it would still be possible to upgrade to CentOS 5.2 from Fedora Core 3... but this is NOT advised or a common practice. For me it shows how well thought the components and layout were, since this is also the setup I had used for SpotlightMedia and my previous employer.&lt;/p&gt;&lt;p&gt;In my opinion it shows how well the YUM dependency resolving and upgrading works. The wonderful wizard of Yum gave me a working CentOS system!&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5606041637705531621-6567027638289898167?l=blog.gbraad.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gbraad.nl/feeds/6567027638289898167/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5606041637705531621&amp;postID=6567027638289898167&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/6567027638289898167" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/6567027638289898167" /><link rel="alternate" type="text/html" href="http://blog.gbraad.nl/2009/01/wizard-of-yum-upgrade-from-fc3-to.html" title="The Wizard of Yum: Upgrade from FC3 to CentOS 5.2" /><author><name>Gerard Braad</name><uri>https://plus.google.com/112618846457931278165</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-EcgVgHfrnHk/AAAAAAAAAAI/AAAAAAAAI1w/Gkmf37iyvMk/s512-c/photo.jpg" /></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5606041637705531621.post-1505211348895837845</id><published>2008-12-30T16:32:00.010+01:00</published><updated>2009-02-01T14:48:16.551+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="centos" /><category scheme="http://www.blogger.com/atom/ns#" term="openvz" /><title type="text">Installation of OpenVZ on CentOS 5.2</title><content type="html">OS virtualization allows you to better scale if you need a large amount of similar software installations and you do not want to deploy more than one physical (or even virtual) machine. It creates isolated containers in which your environment run. In a way it is comparable to a jailed environment, but it provides better isolation, security and management. Hardware virtualization, for products as VMware, XEN and KVM, has a different approach in which you run a completely emulated distribution (often paravirualized) on top of your host system. OS and Hardware virtualization can complement each other.&lt;br /&gt;&lt;br /&gt;The installation of &lt;a href="http://www.openvz.org/"&gt;OpenVZ&lt;/a&gt; containers on &lt;a href="http://www.centos.org/"&gt;CentOS&lt;/a&gt; (or RHEL5) is very simple. The following steps were performed on a default installation of CentOS 5.2. In my case I use a virtual machine in a VMware environment.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The OpenVZ installation&lt;/b&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ setup&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;First you need to disable SELinux and the firewall.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ cd /etc/yum.repos.d&lt;br /&gt;$ wget http://download.openvz.org/openvz.repo&lt;br /&gt;$ rpm --import http://download.openvz.org/RPM-GPG-Key-OpenVZ&lt;br /&gt;$ yum -y install ovzkernel&lt;br /&gt;$ vi /etc/sysctl.conf&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;In this file change the following lines:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;net.ipv4.ip_forward = 1&lt;br /&gt;kernel.sysrq = 1&lt;br /&gt;net.ipv4.conf.default.proxy_arp = 0&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;In this same file add the following lines:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;net.ipv4.conf.default.send_redirects = 1&lt;br /&gt;net.ipv4.conf.all.send_redirects = 0&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Install the OpenVZ service and have it start at boot:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ yum install vzctl vzquota&lt;br /&gt;$ chkconfig --add vz&lt;br /&gt;$ reboot&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Container configuration&lt;/b&gt;&lt;br /&gt;After this, you need to create or download an OS template. For keeping this post easy, I use a precreated template:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ cd /vz/template/cache&lt;br /&gt;$ wget http://mirror.proserve.nl/openvz/contrib/template/precreated/centos-5-i386-default.tar.gz&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Now you can create your first OS container from this template. The information we need is an IP address, hostname and nameservers.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ vzctl create 101 --ostemplate centos-5-i386-default --conf vps.basic --ipadd 10.73.11.150 --hostname c1.survion.net&lt;br /&gt;$ vzctl set 101 --name c1 --nameserver "10.73.11.1 10.73.11.2 10.73.11.3" --diskspace 10G:10G --save&lt;br /&gt;$ vzctl set 101 --userpasswd root:password --save&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Each container instance is represented by an CTID. In the previous steps we used id 101 the identify the container. The configured information can now be found in the file /etc/vz/conf/101.conf. Be sure to use your own secret password for the last command.&lt;br /&gt;&lt;br /&gt;You can now start this container and list processes&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ vzctl start 101&lt;br /&gt;$ vzctl exec 101 ps ax&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;You can also issue an enter command:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ vzctl enter 101&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;You would then authenticate as root inside the container. On the console you can perform commands as if you would on a normal machine.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;That's it! You now have a CentOS container running on top of your CentOS installation.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Links and additional information&lt;/b&gt;&lt;br /&gt;Information on how to create a template can be found on &lt;a href="http://wiki.openvz.org/OS_template_cache_preparation"&gt;http://wiki.openvz.org/OS_template_cache_preparation&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;OS Templates can be found at:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://forum.openvz.org/index.php?t=msg&amp;amp;goto=15905"&gt;http://forum.openvz.org/index.php?t=msg&amp;amp;goto=15905&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://mirror.proserve.nl/openvz/contrib/template/precreated/"&gt;http://mirror.proserve.nl/openvz/contrib/template/precreated/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;If you download the minimal template you can not enter the container. This is because the container does not have a console configured. You could still issue commands using the 'vzctl exec' command and be able to configure the console, but YMMV.&lt;br /&gt;&lt;br /&gt;You can read more detailed information about the installation on the following websites:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://wiki.openvz.org/Quick_installation"&gt;http://wiki.openvz.org/Quick_installation&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://wiki.centos.org/HowTos/Virtualization/OpenVZ"&gt; http://wiki.centos.org/HowTos/Virtualization/OpenVZ&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Edit: An interesting experiment performed by Scott Dowdle can be found on &lt;a href="http://www.montanalinux.org/scott"&gt;his blog&lt;/a&gt; called '&lt;a href="http://www.montanalinux.org/openvz-experiment.html"&gt;How many containers?&lt;/a&gt;'.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5606041637705531621-1505211348895837845?l=blog.gbraad.nl' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.gbraad.nl/feeds/1505211348895837845/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5606041637705531621&amp;postID=1505211348895837845&amp;isPopup=true" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/1505211348895837845" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5606041637705531621/posts/default/1505211348895837845" /><link rel="alternate" type="text/html" href="http://blog.gbraad.nl/2008/12/installation-of-openvz-on-centos-52.html" title="Installation of OpenVZ on CentOS 5.2" /><author><name>Gerard Braad</name><uri>https://plus.google.com/112618846457931278165</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh6.googleusercontent.com/-EcgVgHfrnHk/AAAAAAAAAAI/AAAAAAAAI1w/Gkmf37iyvMk/s512-c/photo.jpg" /></author><thr:total>0</thr:total></entry></feed>
