<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5235824317336235718</id><updated>2011-10-07T00:39:27.203+08:00</updated><title type='text'>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>44</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-7356196917693761642</id><published>2009-11-30T06:43:00.000+08:00</published><updated>2009-11-30T06:45:06.295+08:00</updated><title type='text'>Announcing the Release of the World’s First 64-bit Build of Google’s ChromiumOS for Netbooks</title><content type='html'>I have ported the development code of the open source ChromiumOS project to 64-bit. Google Chrome OS will be officially released in late 2010, and it will be based on the Chromium OS project.&lt;br /&gt;&lt;br /&gt;My 64-bit build of ChromiumOS is called ChromiumOS64. Download your copy now!&lt;br /&gt;&lt;br /&gt;Download link: &lt;a href="http://www.chromiumos64.org/"&gt;http://www.chromiumos64.org/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-7356196917693761642?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/7356196917693761642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/7356196917693761642'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/11/announcing-release-of-worlds-first-64.html' title='Announcing the Release of the World’s First 64-bit Build of Google’s ChromiumOS for Netbooks'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-6565745286164739944</id><published>2009-11-25T02:06:00.001+08:00</published><updated>2009-11-25T02:08:51.795+08:00</updated><title type='text'>Video of Google Chrome OS (ChromiumOS) in Action on VMware Workstation and Sun VirtualBox as a Virtual Machine</title><content type='html'>&lt;a href="http://www.youtube.com/watch?v=nSkszmeFcYg"&gt;http://www.youtube.com/watch?v=nSkszmeFcYg&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/nSkszmeFcYg&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0&amp;amp;hd=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/nSkszmeFcYg&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0&amp;amp;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-6565745286164739944?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/6565745286164739944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/6565745286164739944'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/11/video-of-google-chrome-os-chromiumos-in.html' title='Video of Google Chrome OS (ChromiumOS) in Action on VMware Workstation and Sun VirtualBox as a Virtual Machine'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-5358348064052607614</id><published>2009-11-24T19:22:00.002+08:00</published><updated>2009-11-25T02:06:26.655+08:00</updated><title type='text'>Latest Google Chrome OS (ChromiumOS) VMware VMDK Image File Download: Guaranteed to Work!</title><content type='html'>&lt;p&gt;&lt;strong&gt;Google Chrome OS (ChromiumOS) is a 32-bit Linux netbook operating system based on Ubuntu 9.10 Karmic Koala i386 (Development Branch).&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Filename: Google-Chrome-OS-build-enming.teo-24Nov2009-0528.vmdk.bz2&lt;/p&gt; &lt;p&gt;Filesize: 280 MB&lt;/p&gt; &lt;p&gt;Type: VMware VMDK image file bzipped&lt;/p&gt; &lt;p&gt;md5sum: 23371970c3b1c5dee287b9bb97901b7d&lt;/p&gt; &lt;p&gt;sha1sum: 4f12627f58e34bb2d29b99627ce043bc6c30aaac&lt;/p&gt; &lt;p&gt;sha256sum: 9853bfb6220882660caebddd0395c03adfb122563918fbfc16e7070ad3a9e14c&lt;/p&gt; &lt;p&gt;sha384sum: 46b1c0321cee250117fbd9fad16a3d5eb341a8a68d3ac51e80cb1f32d8c1be7b4fa057c470f8250922d939928314a454&lt;/p&gt; &lt;p&gt;Download Link #1: &lt;a href="http://www.zshare.net/download/689075349802a081/"&gt;http://www.zshare.net/download/689075349802a081/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Download Link #2: &lt;a href="http://www.filefactory.com/file/a1d69he/n/Google-Chrome-OS-build-enming.teo-24Nov2009-0528.vmdk.bz2"&gt;http://www.filefactory.com/file/a1d69he/n/Google-Chrome-OS-build-enming.teo-24Nov2009-0528.vmdk.bz2&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Download Link #3: &lt;a href="http://www.mediafire.com/?jme4zmydzzb"&gt;http://www.mediafire.com/?jme4zmydzzb&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;How to Use:&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;1. Decompress with bzip2 on Linux.&lt;/p&gt; &lt;p&gt;$ bzip2 -d Google-Chrome-OS-build-enming.teo-24Nov2009-0528.vmdk.bz2&lt;/p&gt; &lt;p&gt;2. Use as virtual harddisk with the open source Xen hypervisor, Sun VirtualBox, VMware Workstation, or VMware Player&lt;/p&gt; &lt;p&gt;3. To convert the VMDK image file to Xen HVM domU image file for use with Xen, follow the instructions at the following link.&lt;/p&gt; &lt;p&gt;&lt;a href="http://wiki.xensource.com/xenwiki/VMDKImage"&gt;http://wiki.xensource.com/xenwiki/VMDKImage&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-5358348064052607614?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/5358348064052607614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/5358348064052607614'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/11/latest-google-chrome-os-chromiumos.html' title='Latest Google Chrome OS (ChromiumOS) VMware VMDK Image File Download: Guaranteed to Work!'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-7956075328478233462</id><published>2009-11-22T18:23:00.001+08:00</published><updated>2009-11-22T18:26:53.351+08:00</updated><title type='text'>Google Chrome OS Download</title><content type='html'>&lt;div class="entry"&gt;      &lt;div class="snap_preview"&gt;&lt;p&gt;Filename: Google-Chrome-OS-Build-enming.teo-22Nov2009-0704hrs.vmdk&lt;/p&gt; &lt;p&gt;Filesize: 697.38MB&lt;/p&gt; &lt;p&gt;Type: VMware VMDK image file&lt;/p&gt; &lt;p&gt;MD5 checksum: 1aec57157dd2083b166e493c0e831a67&lt;/p&gt; &lt;p&gt;Download link: &lt;a href="http://www.zshare.net/download/68819648ff817281/"&gt;http://www.zshare.net/download/68819648ff817281/&lt;/a&gt;&lt;/p&gt; &lt;/div&gt;    &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-7956075328478233462?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/7956075328478233462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/7956075328478233462'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/11/google-chrome-os-download.html' title='Google Chrome OS Download'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-1923618437475553370</id><published>2009-11-22T16:50:00.003+08:00</published><updated>2009-11-22T18:22:16.371+08:00</updated><title type='text'>Video of Google Chrome OS (Chromium OS) on Xen</title><content type='html'>&lt;a href="http://www.youtube.com/watch?v=Icl59WmC56I"&gt;http://www.youtube.com/watch?v=Icl59WmC56I&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="265"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Icl59WmC56I&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0&amp;amp;hd=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/Icl59WmC56I&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0&amp;amp;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="320" height="265"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-1923618437475553370?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/1923618437475553370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/1923618437475553370'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/11/video-of-google-chrome-os-chromium-os.html' title='Video of Google Chrome OS (Chromium OS) on Xen'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-5268547556255231430</id><published>2009-11-22T16:41:00.001+08:00</published><updated>2009-11-22T18:18:41.400+08:00</updated><title type='text'>Picture Tutorial: How to DIY your own Google Chrome OS with Xen-based Ubuntu 9.10 Karmic Koala amd64 Virtual Machine in Fedora 11 x86_64 Pv-Ops Dom0</title><content type='html'>Gallery 1 of 9: &lt;a href="http://enmingteo.wordpress.com/2009/11/22/screenshot-tutorial-1-of-9-how-to-d-i-y-your-own-google-chrome-os-with-xen-based-ubuntu-9-10-karmic-koala-amd64-virtual-machine-in-fedora-11-x86_64-pv-ops-dom0/"&gt;http://enmingteo.wordpress.com/2009/11/22/screenshot-tutorial-1-of-9-how-to-d-i-y-your-own-google-chrome-os-with-xen-based-ubuntu-9-10-karmic-koala-amd64-virtual-machine-in-fedora-11-x86_64-pv-ops-dom0/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Gallery 2 of 9: &lt;a href="http://enmingteo.wordpress.com/2009/11/22/screenshot-tutorial-2-of-9-how-to-d-i-y-your-own-google-chrome-os-with-xen-based-ubuntu-9-10-karmic-koala-amd64-virtual-machine-in-fedora-11-x86_64-pv-ops-dom0/"&gt;http://enmingteo.wordpress.com/2009/11/22/screenshot-tutorial-2-of-9-how-to-d-i-y-your-own-google-chrome-os-with-xen-based-ubuntu-9-10-karmic-koala-amd64-virtual-machine-in-fedora-11-x86_64-pv-ops-dom0/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Gallery 3 of 9: &lt;a href="http://enmingteo.wordpress.com/2009/11/22/screenshot-tutorial-3-of-9-how-to-d-i-y-your-own-google-chrome-os-with-xen-based-ubuntu-9-10-karmic-koala-amd64-virtual-machine-in-fedora-11-x86_64-pv-ops-dom0/"&gt;http://enmingteo.wordpress.com/2009/11/22/screenshot-tutorial-3-of-9-how-to-d-i-y-your-own-google-chrome-os-with-xen-based-ubuntu-9-10-karmic-koala-amd64-virtual-machine-in-fedora-11-x86_64-pv-ops-dom0/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Gallery 4 of 9: &lt;a href="http://enmingteo.wordpress.com/2009/11/22/screenshot-tutorial-4-of-9-how-to-d-i-y-your-own-google-chrome-os-with-xen-based-ubuntu-9-10-karmic-koala-amd64-virtual-machine-in-fedora-11-x86_64-pv-ops-dom0/"&gt;http://enmingteo.wordpress.com/2009/11/22/screenshot-tutorial-4-of-9-how-to-d-i-y-your-own-google-chrome-os-with-xen-based-ubuntu-9-10-karmic-koala-amd64-virtual-machine-in-fedora-11-x86_64-pv-ops-dom0/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Gallery 5 of 9: &lt;a href="http://enmingteo.wordpress.com/2009/11/22/screenshot-tutorial-5-of-9-how-to-d-i-y-your-own-google-chrome-os-with-xen-based-ubuntu-9-10-karmic-koala-amd64-virtual-machine-in-fedora-11-x86_64-pv-ops-dom0/"&gt;http://enmingteo.wordpress.com/2009/11/22/screenshot-tutorial-5-of-9-how-to-d-i-y-your-own-google-chrome-os-with-xen-based-ubuntu-9-10-karmic-koala-amd64-virtual-machine-in-fedora-11-x86_64-pv-ops-dom0/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Gallery 6 of 9: &lt;a href="http://enmingteo.wordpress.com/2009/11/22/screenshot-tutorial-6-of-9-how-to-d-i-y-your-own-google-chrome-os-with-xen-based-ubuntu-9-10-karmic-koala-amd64-virtual-machine-in-fedora-11-x86_64-pv-ops-dom0/"&gt;http://enmingteo.wordpress.com/2009/11/22/screenshot-tutorial-6-of-9-how-to-d-i-y-your-own-google-chrome-os-with-xen-based-ubuntu-9-10-karmic-koala-amd64-virtual-machine-in-fedora-11-x86_64-pv-ops-dom0/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Gallery 7 of 9: &lt;a href="http://enmingteo.wordpress.com/2009/11/22/screenshot-tutorial-7-of-9-how-to-d-i-y-your-own-google-chrome-os-with-xen-based-ubuntu-9-10-karmic-koala-amd64-virtual-machine-in-fedora-11-x86_64-pv-ops-dom0/"&gt;http://enmingteo.wordpress.com/2009/11/22/screenshot-tutorial-7-of-9-how-to-d-i-y-your-own-google-chrome-os-with-xen-based-ubuntu-9-10-karmic-koala-amd64-virtual-machine-in-fedora-11-x86_64-pv-ops-dom0/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Gallery 8 of 9: &lt;a href="http://enmingteo.wordpress.com/2009/11/22/screenshot-tutorial-8-of-9-how-to-d-i-y-your-own-google-chrome-os-with-xen-based-ubuntu-9-10-karmic-koala-amd64-virtual-machine-in-fedora-11-x86_64-pv-ops-dom0/"&gt;http://enmingteo.wordpress.com/2009/11/22/screenshot-tutorial-8-of-9-how-to-d-i-y-your-own-google-chrome-os-with-xen-based-ubuntu-9-10-karmic-koala-amd64-virtual-machine-in-fedora-11-x86_64-pv-ops-dom0/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Gallery 9 of 9: &lt;a href="http://enmingteo.wordpress.com/2009/11/22/screenshot-tutorial-9-of-9-how-to-d-i-y-your-own-google-chrome-os-with-xen-based-ubuntu-9-10-karmic-koala-amd64-virtual-machine-in-fedora-11-x86_64-pv-ops-dom0/"&gt;http://enmingteo.wordpress.com/2009/11/22/screenshot-tutorial-9-of-9-how-to-d-i-y-your-own-google-chrome-os-with-xen-based-ubuntu-9-10-karmic-koala-amd64-virtual-machine-in-fedora-11-x86_64-pv-ops-dom0/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-5268547556255231430?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/5268547556255231430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/5268547556255231430'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/11/picture-tutorial-how-to-diy-your-own.html' title='Picture Tutorial: How to DIY your own Google Chrome OS with Xen-based Ubuntu 9.10 Karmic Koala amd64 Virtual Machine in Fedora 11 x86_64 Pv-Ops Dom0'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-6819693154586079911</id><published>2009-11-09T23:54:00.001+08:00</published><updated>2009-11-09T23:56:22.958+08:00</updated><title type='text'>Video Demo: Building a Rocks HPC Cluster with Xen Hardware Virtual Machines (HVM) (Update 1)</title><content type='html'>This is the new video demo of my Rocks HPC compute cluster after I have set dom0_mem=1024M for my Xen hypervisor.&lt;br /&gt;&lt;br /&gt;I started all 5 nodes at one go without crashing and without sluggishness.&lt;br /&gt;&lt;br /&gt;Previous video demo shows that I can only start 3 nodes with-out setting dom0_mem for the Xen hypervisor. If I attempt to start the 4th node, dom0 will freeze.&lt;br /&gt;&lt;br /&gt;This is proof that setting dom0_mem really works and improves overall system performance.&lt;br /&gt;&lt;br /&gt;&lt;object height="265" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vWHIImVBr4o&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/vWHIImVBr4o&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="265" width="320"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Link: &lt;a href="http://www.youtube.com/watch?v=vWHIImVBr4o"&gt;http://www.youtube.com/watch?v=vWHIImVBr4o&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-6819693154586079911?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/6819693154586079911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/6819693154586079911'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/11/video-demo-building-rocks-hpc-cluster_09.html' title='Video Demo: Building a Rocks HPC Cluster with Xen Hardware Virtual Machines (HVM) (Update 1)'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-3289376396606138867</id><published>2009-11-09T19:04:00.002+08:00</published><updated>2009-11-09T19:12:04.204+08:00</updated><title type='text'>Video Demo: Building a Rocks HPC Cluster with Xen Hardware Virtual Machines (HVM)</title><content type='html'>&lt;a href="http://www.youtube.com/watch?v=LbLaPpwNAx4"&gt;http://www.youtube.com/watch?v=LbLaPpwNAx4&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="265" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/LbLaPpwNAx4&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/LbLaPpwNAx4&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="265" width="320"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-3289376396606138867?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/3289376396606138867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/3289376396606138867'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/11/video-demo-building-rocks-hpc-cluster.html' title='Video Demo: Building a Rocks HPC Cluster with Xen Hardware Virtual Machines (HVM)'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-7644864352637524810</id><published>2009-10-31T20:09:00.002+08:00</published><updated>2009-10-31T20:15:42.675+08:00</updated><title type='text'>Video Tutorial: How to Setup a Virtual Supercomputer Center or HPC Cluster using Xen Virtual Machines</title><content type='html'>&lt;p&gt;Video #1 of 2: &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.youtube.com/watch?v=GmNKi6CoExM"&gt;http://www.youtube.com/watch?v=GmNKi6CoExM&lt;/a&gt;&lt;/p&gt;&lt;object width="320" height="265"&gt;&lt;p&gt;&lt;embed src="http://www.youtube.com/v/GmNKi6CoExM&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="320" height="265"&gt;&lt;/embed&gt;&lt;/p&gt;&lt;/object&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Video #2 of 2:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.youtube.com/watch?v=dAqDESEWMjM"&gt;http://www.youtube.com/watch?v=dAqDESEWMjM&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;object width="320" height="265"&gt;&lt;p&gt;&lt;embed src="http://www.youtube.com/v/dAqDESEWMjM&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="320" height="265"&gt;&lt;/embed&gt;&lt;/p&gt;&lt;/object&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Reference [1]: &lt;a href="http://lists.mcs.anl.gov/pipermail/mpich-discuss/2009-October/005883.html"&gt;http://lists.mcs.anl.gov/pipermail/mpich-discuss/2009-October/005883.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Reference [2]: &lt;a href="http://lists.xensource.com/archives/html/xen-devel/2009-10/msg01440.html"&gt;http://lists.xensource.com/archives/html/xen-devel/2009-10/msg01440.html&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-7644864352637524810?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/7644864352637524810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/7644864352637524810'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/10/video-tutorial-how-to-setup-virtual.html' title='Video Tutorial: How to Setup a Virtual Supercomputer Center or HPC Cluster using Xen Virtual Machines'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-8300835125498000589</id><published>2009-10-30T18:25:00.006+08:00</published><updated>2009-10-30T18:42:01.280+08:00</updated><title type='text'>Using Xen Virtualization Environment for Development and Testing of Supercomputing and High Performance Computing (HPC) Cluster MPICH2 Applications</title><content type='html'>&lt;p&gt;Screenshots:&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/SurA1ORHquI/AAAAAAAAAXE/J5y2O51VIBU/s1600-h/super01.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/SurA1ORHquI/AAAAAAAAAXE/J5y2O51VIBU/s400/super01.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5398339123952462562" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/SurA03e0vSI/AAAAAAAAAW8/lnBJBaGtZ78/s1600-h/super02.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/SurA03e0vSI/AAAAAAAAAW8/lnBJBaGtZ78/s400/super02.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5398339117835926818" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/SurA0z8lsdI/AAAAAAAAAW0/dWrAp9hA-Zg/s1600-h/super03.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/SurA0z8lsdI/AAAAAAAAAW0/dWrAp9hA-Zg/s400/super03.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5398339116887028178" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/SurA0loDgMI/AAAAAAAAAWs/LEmKSuqMlwo/s1600-h/super04.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/SurA0loDgMI/AAAAAAAAAWs/LEmKSuqMlwo/s400/super04.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5398339113042804930" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/SurA0ZoRtrI/AAAAAAAAAWk/9pDjqAlwuJ8/s1600-h/super05.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/SurA0ZoRtrI/AAAAAAAAAWk/9pDjqAlwuJ8/s400/super05.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5398339109822510770" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/SurAiI5mpaI/AAAAAAAAAWc/GtpLk_8bZBk/s1600-h/super06.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/SurAiI5mpaI/AAAAAAAAAWc/GtpLk_8bZBk/s400/super06.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5398338796094137762" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/SurAh-9ALrI/AAAAAAAAAWU/tf8eih-jN6A/s1600-h/super07.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/SurAh-9ALrI/AAAAAAAAAWU/tf8eih-jN6A/s400/super07.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5398338793424039602" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/SurAhuf2_sI/AAAAAAAAAWM/VCClctU2O_c/s1600-h/super08.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/SurAhuf2_sI/AAAAAAAAAWM/VCClctU2O_c/s400/super08.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5398338789006835394" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/SurAha8yMKI/AAAAAAAAAWE/HDwfaqh5QV0/s1600-h/super09.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/SurAha8yMKI/AAAAAAAAAWE/HDwfaqh5QV0/s400/super09.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5398338783759446178" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/SurAhM__G2I/AAAAAAAAAV8/OM8K_lQW19w/s1600-h/super10.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/SurAhM__G2I/AAAAAAAAAV8/OM8K_lQW19w/s400/super10.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5398338780014779234" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/SurAG1UKPnI/AAAAAAAAAV0/2Q8nfTyRhJQ/s1600-h/super11.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/SurAG1UKPnI/AAAAAAAAAV0/2Q8nfTyRhJQ/s400/super11.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5398338326980345458" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/SurAGu3PKZI/AAAAAAAAAVs/ynqQw_xugyc/s1600-h/super12.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/SurAGu3PKZI/AAAAAAAAAVs/ynqQw_xugyc/s400/super12.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5398338325248420242" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/SurAGS0HekI/AAAAAAAAAVk/8k1f3jqbFLY/s1600-h/super13.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/SurAGS0HekI/AAAAAAAAAVk/8k1f3jqbFLY/s400/super13.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5398338317719140930" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/SurAGEqxjlI/AAAAAAAAAVc/REhlJaod6c8/s1600-h/super14.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/SurAGEqxjlI/AAAAAAAAAVc/REhlJaod6c8/s400/super14.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5398338313921859154" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/SurAF-coNXI/AAAAAAAAAVU/0OnNswoF8WI/s1600-h/super15.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/SurAF-coNXI/AAAAAAAAAVU/0OnNswoF8WI/s400/super15.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5398338312251913586" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Read my thread at the mpich-discuss mailing list: &lt;a href="http://lists.mcs.anl.gov/pipermail/mpich-discuss/2009-October/005883.html"&gt;http://lists.mcs.anl.gov/pipermail/mpich-discuss/2009-October/005883.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Read my thread at the xen-devel mailing list: &lt;a href="http://lists.xensource.com/archives/html/xen-devel/2009-10/msg01440.html"&gt;http://lists.xensource.com/archives/html/xen-devel/2009-10/msg01440.html&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-8300835125498000589?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/8300835125498000589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/8300835125498000589'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/10/using-xen-virtualization-environment.html' title='Using Xen Virtualization Environment for Development and Testing of Supercomputing and High Performance Computing (HPC) Cluster MPICH2 Applications'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_zzjv8MCM2sk/SurA1ORHquI/AAAAAAAAAXE/J5y2O51VIBU/s72-c/super01.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-827068712675397715</id><published>2009-10-28T02:25:00.001+08:00</published><updated>2009-10-28T02:27:30.608+08:00</updated><title type='text'>Xen Virtualization: 2nd Iteration of the Super PI 32M Benchmark Test</title><content type='html'>&lt;a href="http://www.youtube.com/watch?v=m7W0OFFcw7I"&gt;http://www.youtube.com/watch?v=m7W0OFFcw7I&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="265"&gt;&lt;param name="movie" value="http://www.youtube.com/v/m7W0OFFcw7I&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/m7W0OFFcw7I&amp;hl=en&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="320" height="265"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;This is after setting tsc_native=1 in my Windows XP HVM configuration.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-827068712675397715?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/827068712675397715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/827068712675397715'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/10/xen-virtualization-2nd-iteration-of.html' title='Xen Virtualization: 2nd Iteration of the Super PI 32M Benchmark Test'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-5395047772755742734</id><published>2009-10-28T00:04:00.002+08:00</published><updated>2009-10-28T00:29:18.287+08:00</updated><title type='text'>Xen Virtualization, VT-d, VGA Passthrough, &amp; Windows XP HVM Virtual Machine: Super PI 32M Benchmark</title><content type='html'>&lt;a href="http://www.youtube.com/watch?v=3mxuNRiMxDU"&gt;http://www.youtube.com/watch?v=3mxuNRiMxDU&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="265"&gt;&lt;param name="movie" value="http://www.youtube.com/v/3mxuNRiMxDU&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/3mxuNRiMxDU&amp;hl=en&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="320" height="265"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;My Intel Pentium Dual Core E6300 @ 2.8 GHz outperforms AMD Phenom II X2 550 BE clocked at 3.6 GHz.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://forums.hardwarezone.com.sg/showthread.php?t=2527603&amp;amp;page=12"&gt;http://forums.hardwarezone.com.sg/showthread.php?t=2527603&amp;amp;page=12&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-5395047772755742734?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/5395047772755742734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/5395047772755742734'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/10/xen-virtualization-vt-d-vga-passthrough.html' title='Xen Virtualization, VT-d, VGA Passthrough, &amp; Windows XP HVM Virtual Machine: Super PI 32M Benchmark'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-4912250574502079350</id><published>2009-10-27T14:37:00.005+08:00</published><updated>2009-10-27T14:51:15.293+08:00</updated><title type='text'>Xen Virtualization &amp; Intel VT-d: Direct Hardware Access to Graphics Card by Windows HVM Virtual Machines</title><content type='html'>&lt;p&gt;&lt;a href="http://www.youtube.com/watch?v=HHUwg_zxYgw"&gt;http://www.youtube.com/watch?v=HHUwg_zxYgw&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;object width="320" height="265"&gt;&lt;p&gt;&lt;embed src="http://www.youtube.com/v/HHUwg_zxYgw&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="320" height="265"&gt;&lt;/embed&gt;&lt;/p&gt;&lt;/object&gt;&lt;p&gt;This video shows Xen 3.5-unstable (changeset 20143), VT-d, pv-ops dom0 kernel 2.6.31.4, VGA passthrough, HD audio passthrough, and Windows XP HVM guest operating system in action.&lt;br /&gt;&lt;br /&gt;Host Operating System Domain 0: Fedora 11 Linux x86-64 64-bit&lt;br /&gt;Domain U: Windows XP Home Edition SP3 32-bit HVM Virtual Machine&lt;br /&gt;Xen Hypervisor Version: 3.5-unstable changeset 20143&lt;br /&gt;Paravirt-Operations Dom0 Kernel: 2.6.31.4 (Jeremy Fitzhardinge's git tree)&lt;br /&gt;Intel GFX Passthrough Patches Applied: Version 1 (Provided by Han Weidong Intel)&lt;br /&gt;&lt;br /&gt;Motherboard: Intel DQ45CB&lt;br /&gt;BIOS Version: 0093&lt;br /&gt;Processor: Intel Pentium Dual Core E6300&lt;br /&gt;Graphics Card: nVidia GeForce 8400 GS PCI Express x16&lt;br /&gt;Memory: 8GB DDR2-800&lt;br /&gt;&lt;br /&gt;Version of Xen GPL PV (GPLPV) Drivers Installed: 07/15/2009 0.10.0.86&lt;br /&gt;&lt;br /&gt;Full implementation details are here: &lt;a href="http://lists.xensource.com/archives/html/xen-devel/2009-10/msg01134.html"&gt;http://lists.xensource.com/archives/html/xen-devel/2009-10/msg01134.html&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;VGA and HD audio passthrough are fully working. Although device manager reports that it is working, OHCI IEEE1394 firewire controller passthrough is not working as expected. Video cameras with firewire attached to the firewire port cannot be detected.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;USB optical mouse and USB keyboard have also been successfully passed through to Windows XP HVM guest.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-4912250574502079350?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/4912250574502079350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/4912250574502079350'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/10/xen-virtualization-intel-vt-d-direct.html' title='Xen Virtualization &amp; Intel VT-d: Direct Hardware Access to Graphics Card by Windows HVM Virtual Machines'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-1619266191859620551</id><published>2009-10-26T13:07:00.010+08:00</published><updated>2009-10-26T14:45:24.956+08:00</updated><title type='text'>More Xen Virtualization VGA Passthrough Videos</title><content type='html'>Host Operating System Domain 0: Fedora 11 Linux x86-64 64-bit&lt;br /&gt;Domain U: Windows XP Home Edition SP3 32-bit HVM Virtual Machine&lt;br /&gt;Xen Hypervisor Version: 3.5-unstable changeset 20143&lt;br /&gt;Paravirt-Operations (pv-ops) Dom0 Kernel: 2.6.31.4 (Jeremy Fitzhardinge's git tree)&lt;br /&gt;Intel GFX Passthrough Patches Applied: Version 1 (Provided by Han Weidong Intel)&lt;br /&gt;&lt;br /&gt;Motherboard: Intel Desktop Board DQ45CB&lt;br /&gt;BIOS Version: 0093&lt;br /&gt;Processor: Intel Pentium Dual Core E6300 2.8 GHz&lt;br /&gt;Graphics Card: nVidia GeForce 8400 GS PCI Express x16&lt;br /&gt;Memory: 8GB DDR2-800 (4X 2GB)&lt;br /&gt;&lt;br /&gt;Version of Xen GPL PV (GPLPV) Drivers Installed: 07/15/2009 0.10.0.86&lt;br /&gt;&lt;br /&gt;Read more here: &lt;a href="http://lists.xensource.com/archives/html/xen-devel/2009-10/msg01134.html"&gt;http://lists.xensource.com/archives/html/xen-devel/2009-10/msg01134.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Xen Virtualization VGA Passthrough: 3D Gaming Benchmark Results Part 1 of 2&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=5I13E1MQbMc"&gt;http://www.youtube.com/watch?v=5I13E1MQbMc&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="265"&gt;&lt;param name="movie" value="http://www.youtube.com/v/5I13E1MQbMc&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/5I13E1MQbMc&amp;hl=en&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="320" height="265"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Xen Virtualization VGA Passthrough: 3D Gaming Benchmark Results Part 2 of 2&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=yYg6n8yBktM"&gt;http://www.youtube.com/watch?v=yYg6n8yBktM&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="265"&gt;&lt;param name="movie" value="http://www.youtube.com/v/yYg6n8yBktM&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/yYg6n8yBktM&amp;hl=en&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="320" height="265"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Xen Virtualization VGA Passthrough: Disk I/O Benchmark Results&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=uL7JS4PMpzY"&gt;http://www.youtube.com/watch?v=uL7JS4PMpzY&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="265"&gt;&lt;param name="movie" value="http://www.youtube.com/v/uL7JS4PMpzY&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/uL7JS4PMpzY&amp;hl=en&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="320" height="265"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Xen Virtualization VGA Passthrough: PerformanceTest 7.0 Virtual CPU Benchmark Results&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=vLR-o9tX_Tw"&gt;http://www.youtube.com/watch?v=vLR-o9tX_Tw&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="265"&gt;&lt;param name="movie" value="http://www.youtube.com/v/vLR-o9tX_Tw&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/vLR-o9tX_Tw&amp;hl=en&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="320" height="265"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Xen Virtualization VGA Passthrough: SiSoftware Sandra Virtual Processor Benchmark Part 1 of 2&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=BUXOAPce_40"&gt;http://www.youtube.com/watch?v=BUXOAPce_40&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="265"&gt;&lt;param name="movie" value="http://www.youtube.com/v/BUXOAPce_40&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/BUXOAPce_40&amp;hl=en&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="320" height="265"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Xen Virtualization VGA Passthrough: SiSoftware Sandra Virtual Processor Benchmark Part 2 of 2&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=k5lle8WOHLE"&gt;http://www.youtube.com/watch?v=k5lle8WOHLE&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="265"&gt;&lt;param name="movie" value="http://www.youtube.com/v/k5lle8WOHLE&amp;amp;hl=en&amp;amp;fs=1&amp;amp;rel=0"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/k5lle8WOHLE&amp;hl=en&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="320" height="265"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Xen Virtualization VGA Passthrough: Playing 3D FPS Games in Windows XP HVM Virtual Machine&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=Pikwgl8bac8"&gt;http://www.youtube.com/watch?v=Pikwgl8bac8&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="265"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Pikwgl8bac8&amp;hl=en&amp;fs=1&amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/Pikwgl8bac8&amp;hl=en&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="320" height="265"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-1619266191859620551?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/1619266191859620551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/1619266191859620551'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/10/more-xen-virtualization-vga-passthrough_26.html' title='More Xen Virtualization VGA Passthrough Videos'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-3359597169845357932</id><published>2009-10-24T12:49:00.004+08:00</published><updated>2009-10-24T12:57:22.197+08:00</updated><title type='text'>Xen PV-OPS Dom0 Kernel 2.6.31.4 Testing</title><content type='html'>For more information, read here: &lt;a href="http://lists.xensource.com/archives/html/xen-devel/2009-10/msg01134.html"&gt;http://lists.xensource.com/archives/html/xen-devel/2009-10/msg01134.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-3359597169845357932?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/3359597169845357932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/3359597169845357932'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/10/xen-pv-ops-dom0-kernel-26314-testing.html' title='Xen PV-OPS Dom0 Kernel 2.6.31.4 Testing'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-2316329212274371658</id><published>2009-10-21T22:22:00.001+08:00</published><updated>2009-10-21T22:24:38.255+08:00</updated><title type='text'>IEEE 1394a Firewire Controller Passthrough Work in Progress</title><content type='html'>&lt;a href="http://lists.xensource.com/archives/html/xen-devel/2009-10/msg00607.html"&gt;http://lists.xensource.com/archives/html/xen-devel/2009-10/msg00607.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-2316329212274371658?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/2316329212274371658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/2316329212274371658'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/10/ieee-1394a-firewire-controller.html' title='IEEE 1394a Firewire Controller Passthrough Work in Progress'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-8264184964033063308</id><published>2009-10-21T22:14:00.001+08:00</published><updated>2009-10-21T22:15:46.449+08:00</updated><title type='text'>pvops dom0 kernel 2.6.31.1 Build Successful</title><content type='html'>&lt;a href="http://lists.xensource.com/archives/html/xen-devel/2009-10/msg00374.html"&gt;http://lists.xensource.com/archives/html/xen-devel/2009-10/msg00374.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-8264184964033063308?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/8264184964033063308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/8264184964033063308'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/10/pvops-dom0-kernel-26311-build.html' title='pvops dom0 kernel 2.6.31.1 Build Successful'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-6419070267626022320</id><published>2009-10-21T21:36:00.005+08:00</published><updated>2009-10-21T22:27:08.721+08:00</updated><title type='text'>Xen Virtualization: Playing 3D Accelerated FPS Games in Windows XP Virtual Machine</title><content type='html'>&lt;a href="http://www.youtube.com/watch?v=5tLzYqIJ7Q0"&gt;http://www.youtube.com/watch?v=5tLzYqIJ7Q0&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="480" height="295"&gt;&lt;param name="movie" value="http://www.youtube.com/v/5tLzYqIJ7Q0&amp;hl=en&amp;fs=1&amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/5tLzYqIJ7Q0&amp;hl=en&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="295"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Technical discussions:&lt;br /&gt;&lt;br /&gt;July 2009: &lt;a href="http://lists.xensource.com/archives/html/xen-devel/2009-07/index.html"&gt;http://lists.xensource.com/archives/html/xen-devel/2009-07/index.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;August 2009: &lt;a href="http://lists.xensource.com/archives/html/xen-devel/2009-08/index.html"&gt;http://lists.xensource.com/archives/html/xen-devel/2009-08/index.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;September 2009: &lt;a href="http://lists.xensource.com/archives/html/xen-devel/2009-09/index.html"&gt;http://lists.xensource.com/archives/html/xen-devel/2009-09/index.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;October 2009: &lt;a href="http://lists.xensource.com/archives/html/xen-devel/2009-10/index.html"&gt;http://lists.xensource.com/archives/html/xen-devel/2009-10/index.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-6419070267626022320?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/6419070267626022320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/6419070267626022320'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/10/xen-virtualization-playing-3d.html' title='Xen Virtualization: Playing 3D Accelerated FPS Games in Windows XP Virtual Machine'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-5141896007079569360</id><published>2009-09-14T02:09:00.002+08:00</published><updated>2009-09-14T02:19:21.044+08:00</updated><title type='text'>USB Device Pass Through Succeeded</title><content type='html'>How thick I must have been! In my earlier blog posts with VGA passthrough succeeded, I said that I couldn't passthrough any USB device at all.&lt;br /&gt;&lt;br /&gt;As a matter of fact, Timothy had corrected my usbdevice directive in the guest config file in an earlier mailing list post but I didn't take a careful look at the usbdevice directive at all. The correct usbdevice directive is:&lt;br /&gt;&lt;br /&gt;usbdevice = "host:vendorid:productid"&lt;br /&gt;&lt;br /&gt;I had used &lt;br /&gt;&lt;br /&gt;usbdevice = [ 'host:vendorid:productid' ]&lt;br /&gt;&lt;br /&gt;which is completely erroneous. I need to omit the square brackets for USB device passthrough to work.&lt;br /&gt;&lt;br /&gt;I have now successfully passed through the USB optical mouse to the Windows XP Home HVM domU and using on-screen keyboard as a substitute for the physical USB keyboard.&lt;br /&gt;&lt;br /&gt;The reason I am doing this is because QEMU with Xen can only allow one USB device to be passed through at any one time.&lt;br /&gt;&lt;br /&gt;It was so obvious and I missed the obvious!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-5141896007079569360?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/5141896007079569360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/5141896007079569360'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/09/usb-device-pass-through-succeeded.html' title='USB Device Pass Through Succeeded'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-6068319233110091378</id><published>2009-09-14T02:02:00.002+08:00</published><updated>2009-09-14T02:09:02.726+08:00</updated><title type='text'>PVOPS Dom 0 kernel 2.6.31 and Mainline Kernel 2.6.31</title><content type='html'>I couldn't get Jeremy's rebase/master branch (pvops dom 0 kernel 2.6.31) to work despite disabling all of USB support in the kernel. I will troubleshoot this issue with the serial console enabled another time.&lt;br /&gt;&lt;br /&gt;Meanwhile, I got Linus' mainline kernel 2.6.31 to work on my system. So apparently the dom 0 patched kernel 2.6.31 has some issues or I did not configure it properly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-6068319233110091378?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/6068319233110091378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/6068319233110091378'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/09/pvops-dom-0-kernel-2631-and-mainline.html' title='PVOPS Dom 0 kernel 2.6.31 and Mainline Kernel 2.6.31'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-3477593085627238684</id><published>2009-09-13T08:27:00.001+08:00</published><updated>2009-09-13T08:29:23.161+08:00</updated><title type='text'>Disabled all USB support in the kernel...</title><content type='html'>but I still couldn't get pvops dom0-patched kernel 2.6.31 final to complete loading. All I get is a blinking cursor at the top left hand corner of the monitor.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-3477593085627238684?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/3477593085627238684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/3477593085627238684'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/09/disabled-all-usb-support-in-kernel.html' title='Disabled all USB support in the kernel...'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-5730234982024925511</id><published>2009-09-12T20:15:00.001+08:00</published><updated>2009-09-12T20:16:37.775+08:00</updated><title type='text'>UHCI, OHCI, EHCI, and xHCI disabled...</title><content type='html'>but I still could not get pvops dom 0 kernel 2.6.31 final to complete loading.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-5730234982024925511?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/5730234982024925511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/5730234982024925511'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/09/uhci-ohci-ehci-and-xhci-disabled.html' title='UHCI, OHCI, EHCI, and xHCI disabled...'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-7318707530671234670</id><published>2009-09-12T18:05:00.002+08:00</published><updated>2009-09-12T18:09:32.135+08:00</updated><title type='text'>Disabling USB 1.0, USB 2.0 Drivers and Enabling USB 3.0 Drivers</title><content type='html'>I have disabled USB 1.0 and USB 2.0 drivers simultaneously and enabled USB 3.0 driver but the kernel stops loading.&lt;br /&gt;&lt;br /&gt;Then I totally disabled all USB support by passing the "nousb" parameter to the kernel but it still stops loading.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-7318707530671234670?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/7318707530671234670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/7318707530671234670'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/09/disabling-usb-10-usb-20-drivers-and.html' title='Disabling USB 1.0, USB 2.0 Drivers and Enabling USB 3.0 Drivers'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-6444247888039078859</id><published>2009-09-12T16:34:00.004+08:00</published><updated>2009-09-12T16:54:48.511+08:00</updated><title type='text'>After disabling the USB 1.0 Host Controller Driver...</title><content type='html'>but still leaving the USB 2.0 Host Controller Driver compiled statically into the kernel, I get an error with the USB 2.0 driver.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sqtde9Uo-XI/AAAAAAAAAVE/O_F9X2QIv68/s1600-h/dscf2429.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sqtde9Uo-XI/AAAAAAAAAVE/O_F9X2QIv68/s400/dscf2429.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5380496966262782322" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sqtd7hsq0sI/AAAAAAAAAVM/GfS8yG0-Ylg/s1600-h/dscf2428.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sqtd7hsq0sI/AAAAAAAAAVM/GfS8yG0-Ylg/s400/dscf2428.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5380497457063580354" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Obviously this is a USB driver problem with the pvops dom 0 kernel 2.6.31 final or an incompatibility issue with the USB controller on the Intel DQ45CB motherboard. I have no issues with USB on pvops dom 0 kernels 2.6.30-rc3 and 2.6.31-rc6, and also regular kernels.&lt;br /&gt;&lt;br /&gt;If I keep disabling the USB drivers any further, I will not be able to use USB keyboard and mouse on my system. My Intel DQ45CB motherboard does not have any PS/2 ports. But I may still be able to serial console in.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-6444247888039078859?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/6444247888039078859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/6444247888039078859'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/09/after-disabling-usb-10-host-controller.html' title='After disabling the USB 1.0 Host Controller Driver...'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_zzjv8MCM2sk/Sqtde9Uo-XI/AAAAAAAAAVE/O_F9X2QIv68/s72-c/dscf2429.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-2815714774283578770</id><published>2009-09-12T10:46:00.002+08:00</published><updated>2009-09-12T16:33:51.837+08:00</updated><title type='text'>Error with pv-ops dom 0 kernel 2.6.31 final</title><content type='html'>Below is a screenshot of the error I have encountered with this kernel.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/SqsL7L2CYjI/AAAAAAAAAU8/ZsoPCj-EzzE/s1600-h/dscf2427.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/SqsL7L2CYjI/AAAAAAAAAU8/ZsoPCj-EzzE/s400/dscf2427.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5380407291243815474" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;USB Host Controller died?! Above screenshot shows USB 1.0 driver having problems.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-2815714774283578770?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/2815714774283578770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/2815714774283578770'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/09/error-with-pv-ops-dom-0-kernel-2631.html' title='Error with pv-ops dom 0 kernel 2.6.31 final'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_zzjv8MCM2sk/SqsL7L2CYjI/AAAAAAAAAU8/ZsoPCj-EzzE/s72-c/dscf2427.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-5768944673923452434</id><published>2009-09-11T23:20:00.004+08:00</published><updated>2009-09-11T23:29:18.647+08:00</updated><title type='text'>Disk I/O Benchmark Results with Xen-based Windows XP Home HVM Virtual Machine</title><content type='html'>Common Configuration: Xen 3.5-unstable with Intel supplied VGA passthrough patches&lt;br /&gt;VGA passthrough status: nVidia GeForce 8400 GS PCI Express x16 graphics card fully passed through&lt;br /&gt;&lt;br /&gt;Case #1: Jeremy's Fitzhardinge's pvops dom 0 kernel 2.6.30-rc3&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/SqprZ4y4r6I/AAAAAAAAAUs/XuVSs2du9kQ/s1600-h/dscf2424-2.6.30-rc3.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/SqprZ4y4r6I/AAAAAAAAAUs/XuVSs2du9kQ/s400/dscf2424-2.6.30-rc3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5380230797334196130" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Case #2: Jeremy Fitzhardinge's pvops dom 0 kernel 2.6.31-rc6&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/SqprvVVpmAI/AAAAAAAAAU0/feDspXYdlZM/s1600-h/dscf2425-2.6.31-rc6.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/SqprvVVpmAI/AAAAAAAAAU0/feDspXYdlZM/s400/dscf2425-2.6.31-rc6.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5380231165773453314" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Observation: The above benchmark results show that Windows XP Home Edition 32-bit HVM guest operating system runs faster in 2.6.30-rc3 than 2.6.31-rc6. All services which could have affected the performance of Win XP domU have been stopped in Dom 0.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-5768944673923452434?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/5768944673923452434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/5768944673923452434'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/09/disk-io-benchmark-results-with-xen.html' title='Disk I/O Benchmark Results with Xen-based Windows XP Home HVM Virtual Machine'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_zzjv8MCM2sk/SqprZ4y4r6I/AAAAAAAAAUs/XuVSs2du9kQ/s72-c/dscf2424-2.6.30-rc3.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-4750168413660765960</id><published>2009-09-10T20:48:00.019+08:00</published><updated>2009-09-14T12:41:36.870+08:00</updated><title type='text'>The Final Solution: PCI Express x16 Graphics Card Passthrough to Windows XP Home Edition 32-bit HVM Virtual Machine</title><content type='html'>Here is my latest video presentation on VGA passthrough. Please check out the Youtube link at &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=1ia3IwG6tp4"&gt;http://www.youtube.com/watch?v=1ia3IwG6tp4&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="640" height="505"&gt;&lt;param name="movie" value="http://www.youtube.com/v/1ia3IwG6tp4&amp;hl=en&amp;fs=1&amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/1ia3IwG6tp4&amp;hl=en&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="505"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;The "not enough free resources" issue for nVidia Geforce 8400 GS PCI Express x16 graphics card in earlier presentation videos:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=HNEiSInrav0"&gt;http://www.youtube.com/watch?v=HNEiSInrav0&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="640" height="505"&gt;&lt;param name="movie" value="http://www.youtube.com/v/HNEiSInrav0&amp;hl=en&amp;fs=1&amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/HNEiSInrav0&amp;hl=en&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="505"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=_hOT_9LIG5w"&gt;http://www.youtube.com/watch?v=_hOT_9LIG5w&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="640" height="505"&gt;&lt;param name="movie" value="http://www.youtube.com/v/_hOT_9LIG5w&amp;hl=en&amp;fs=1&amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/_hOT_9LIG5w&amp;hl=en&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="505"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;has been fixed. Device manager in Windows XP HVM domU no longer shows an exclamation mark besides the nVidia Geforce 8400 GS graphics card. The device is working properly and the resources tab shows the available memory ranges.&lt;br /&gt;&lt;br /&gt;Full VGA passthrough to Windows XP HVM guest operating system using Xen virtualization has been achieved. I am now able to run 3-D video benchmarks on the passed through nVidia GeForce 8400 GS graphics card.&lt;br /&gt;&lt;br /&gt;All this is possible using Xen 3.5 hypervisor with Intel supplied VGA passthrough patches. Instead of using pvops dom0 kernel 2.6.31-rc6 which causes Win XP domU to run slowly, I am now using pvops dom0 kernel 2.6.30-rc3.&lt;br /&gt;&lt;br /&gt;I am now able to bootstrap Windows XP HVM domU from within Linux using Xen virtualization and play 3D games in the Windows virtual machine. In the past, Windows virtual machines can only access a 2D emulated/virtual display adapter. The virtualized Windows operating systems were more palatable to server administrators than gamers. With VGA pass through and direct hardware access by Windows virtual machines to the graphics hardware, gamers will now be able to play 3D games inside Windows virtual machines.&lt;br /&gt;&lt;br /&gt;There is still one unresolved problem. I am still unable to passthrough USB devices, e.g. keyboard and mouse, to the Windows XP HVM domU. &lt;br /&gt;&lt;br /&gt;Special thanks to the following people who have helped me along the way. Without their guidance I would not have made it this far.&lt;br /&gt;&lt;br /&gt;(1) Boris Derzhavets&lt;br /&gt;(2) Pasi Kärkkäinen&lt;br /&gt;(3) Han Weidong, Intel Corporation&lt;br /&gt;(4) Doug Magee&lt;br /&gt;(5) Timothy Moore&lt;br /&gt;(6) Christian Tramnitz&lt;br /&gt;&lt;br /&gt;and many other people from the xen-devel mailing list.&lt;br /&gt;&lt;br /&gt;References:&lt;br /&gt;&lt;br /&gt;[1] Direct Access to Graphics Card Leveraging VT-d Technical Report; Beng Heng Ng, Billy Lau and Atul Prakash; July 20, 2009; University of Michigan&lt;br /&gt;&lt;br /&gt;URL: &lt;a href="http://www.eecs.umich.edu/~bengheng/pubs/vgapt_techreport.pdf"&gt;http://www.eecs.umich.edu/~bengheng/pubs/vgapt_techreport.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;[2] VGA passthrough in Xen; Y. Schaeffer; University of Amsterdam&lt;br /&gt;&lt;br /&gt;URL: &lt;a href="http://staff.science.uva.nl/~delaat/sne-2008-2009/p22/presentation.pdf"&gt;http://staff.science.uva.nl/~delaat/sne-2008-2009/p22/presentation.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;[3] Xen VGA passthrough; Yuri Schaeer BSc; University of Amsterdam&lt;br /&gt;&lt;br /&gt;URL: &lt;a href="http://staff.science.uva.nl/~delaat/sne-2008-2009/p22/report.pdf"&gt;http://staff.science.uva.nl/~delaat/sne-2008-2009/p22/report.pdf&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-4750168413660765960?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/4750168413660765960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/4750168413660765960'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/09/final-solution-vga-pass-through.html' title='The Final Solution: PCI Express x16 Graphics Card Passthrough to Windows XP Home Edition 32-bit HVM Virtual Machine'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-1637330246406299935</id><published>2009-09-07T05:41:00.006+08:00</published><updated>2009-09-14T12:44:01.285+08:00</updated><title type='text'>Video Presentation on PCI Express x16 VGA Passthrough to Xen-based Windows XP Home HVM Virtual Machine</title><content type='html'>I have made and uploaded a two-part video series on VGA pass through to Windows XP HVM domU to Youtube.&lt;br /&gt;&lt;br /&gt;Here are the Youtube links:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=HNEiSInrav0"&gt;http://www.youtube.com/watch?v=HNEiSInrav0&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="640" height="505"&gt;&lt;param name="movie" value="http://www.youtube.com/v/HNEiSInrav0&amp;hl=en&amp;fs=1&amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/HNEiSInrav0&amp;hl=en&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="505"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=_hOT_9LIG5w"&gt;http://www.youtube.com/watch?v=_hOT_9LIG5w&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="640" height="505"&gt;&lt;param name="movie" value="http://www.youtube.com/v/_hOT_9LIG5w&amp;hl=en&amp;fs=1&amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/_hOT_9LIG5w&amp;hl=en&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="505"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Basically Windows XP guest operating system has direct access to PCI Express x16 graphics card but in a reduced functionality state. The videos show that the passed through display card cannot found enough resources it can use. The device status for nVidia Geforce 8400 GS on my Intel Desktop Board DQ45CB is:&lt;br /&gt;&lt;br /&gt;This device cannot find enough free resources that it can use. (Code 12)&lt;br /&gt;&lt;br /&gt;I could not run any 3-D video benchmark tests at the moment. I have tried Sisoftware Sandra Lite 2009.SP4 and Passmark Performance Test benchmark suites. 3-D video benchmark tests in both suites cannot be started at all. Work on direct graphics card access by Windows virtual machines is still in progress but this paves the way for heavy 3-D gaming in Windows virtual machines in the future. Besides processors, graphics card virtualization will become mainstream in the not-too-distant future. The technology requires Intel Virtualization Technology for Directed Input/Output (VT-d).&lt;br /&gt;&lt;br /&gt;In addition to graphics card, you also need to pass through the USB keyboard and USB optical mouse to the Windows virtual machine in order to use it. However, USB pass through is currently not possible on Xen 3.5-unstable with Intel applied VGA passthrough patches. The code is still experimental and under constant development.&lt;br /&gt;&lt;br /&gt;Special thanks to Xen virtualization developers and engineers at Intel Corporation for making VGA passthrough possible.&lt;br /&gt;&lt;br /&gt;Thank you very much.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-1637330246406299935?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/1637330246406299935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/1637330246406299935'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/09/video-presentation-on-pci-express-x16.html' title='Video Presentation on PCI Express x16 VGA Passthrough to Xen-based Windows XP Home HVM Virtual Machine'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-5353098800834893361</id><published>2009-08-29T21:31:00.005+08:00</published><updated>2009-08-29T22:08:58.442+08:00</updated><title type='text'>Windows XP Home DomU Test Results after applying Intel's VGA Passthrough Patchset to Xen 3.5-unstable</title><content type='html'>Dear All,&lt;br /&gt;&lt;br /&gt;I have applied the following patches to xen 3.5-unstable&lt;br /&gt;&lt;br /&gt;1) intel-gfx-passthru-patch01.patch&lt;br /&gt;2) intel-gfx-passthru-patch02.patch&lt;br /&gt;3) intel-gfx-passthru-patch03.patch&lt;br /&gt;4) enming-patch04.patch&lt;br /&gt;&lt;br /&gt;and compiled xen 3.5-unstable successfully (both hypervisor and tools).&lt;br /&gt;&lt;br /&gt;i rebooted into this newly compiled Xen hypervisor which supports loading vga bios from firmware file of nVidia Geforce 8400 GS PCI Express x16.&lt;br /&gt;&lt;br /&gt;After dom0 has booted up, I executed the following script to hide nVidia Geforce 8400 GS from dom0.&lt;br /&gt;&lt;br /&gt;[enming@fedora11-x86-64-host scripts]$ cat bind-devices-pci-stub.sh&lt;br /&gt;#!/bin/sh&lt;br /&gt;echo "10de 06e4" &gt; /sys/bus/pci/drivers/pci-stub/new_id&lt;br /&gt;echo "0000:01:00.0" &gt; /sys/bus/pci/devices/0000:01:00.0/driver/unbind&lt;br /&gt;echo "0000:01:00.0" &gt; /sys/bus/pci/drivers/pci-stub/bind&lt;br /&gt;&lt;br /&gt;I also assigned the nVidia Geforce 8400 GS to my Windows XP Home HVM domU.&lt;br /&gt;&lt;br /&gt;pci = [ '01:00.0' ]&lt;br /&gt;&lt;br /&gt;I also specified gfx_passthru=2.&lt;br /&gt;&lt;br /&gt;Do note that I booted up with onboard Intel GMA4500 as the primary video adapter. Hence dom 0 has onboard graphics and Windows XP HVM domU has nvidia graphics.&lt;br /&gt;&lt;br /&gt;Then I started Windows XP Home HVM DomU.&lt;br /&gt;&lt;br /&gt;Very soon, my Dom 0's display was garbaged and X server on Dom 0 totally froze and became unresponsive. I cannot switch to any ttys.&lt;br /&gt;&lt;br /&gt;However, I was still able to vnc into my Windows XP Home HVM Dom U. I had earlier installed a VNC server into my Windows XP guest. After remoting in to my Windows XP DomU through vnc, I found that NVIDIA Geforce 8400 GS cannot be initialized and no resources are available for this graphics card.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/Spkv1c6DT6I/AAAAAAAAAUk/Z-fDQTLa7d4/s1600-h/dscf2397.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/Spkv1c6DT6I/AAAAAAAAAUk/Z-fDQTLa7d4/s400/dscf2397.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5375380225582649250" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/Spkvz3T0N6I/AAAAAAAAAUM/ToBXXhTkktA/s1600-h/dscf2394.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/Spkvz3T0N6I/AAAAAAAAAUM/ToBXXhTkktA/s400/dscf2394.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5375380198310295458" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/Spkv0aTqdpI/AAAAAAAAAUU/T25p1z95Xls/s1600-h/dscf2395.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/Spkv0aTqdpI/AAAAAAAAAUU/T25p1z95Xls/s400/dscf2395.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5375380207704897170" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/Spkv08r7LhI/AAAAAAAAAUc/cpyi_xSCy_U/s1600-h/dscf2396.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/Spkv08r7LhI/AAAAAAAAAUc/cpyi_xSCy_U/s400/dscf2396.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5375380216933461522" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It shows that the emulated virtual VGA card is now disabled (not appearing in Windows XP Home DomU's device manager) and only the nVidia Geforce 8400 GS VGA BIOS gets loaded.&lt;br /&gt;&lt;br /&gt;Intel's VGA Passthrough Patchset to xen 3.5-unstable&lt;br /&gt;====================================================&lt;br /&gt;&lt;br /&gt;1) intel-gfx-passthru-patch01.patch &lt;br /&gt;&lt;br /&gt;diff -r 5d7e7a250267 tools/firmware/hvmloader/config.h&lt;br /&gt;--- a/tools/firmware/hvmloader/config.h Wed Aug 26 18:28:44 2009 +0800&lt;br /&gt;+++ b/tools/firmware/hvmloader/config.h Thu Aug 27 16:54:24 2009 +0800&lt;br /&gt;@@ -15,7 +15,7 @@&lt;br /&gt; #define PCI_ISA_IRQ_MASK    0x0c20U /* ISA IRQs 5,10,11 are PCI connected */&lt;br /&gt; &lt;br /&gt; /* MMIO hole: Hardcoded defaults, which can be dynamically expanded. */&lt;br /&gt;-#define PCI_MEM_START       0xf0000000&lt;br /&gt;+#define PCI_MEM_START       0xe0000000&lt;br /&gt; #define PCI_MEM_END         0xfc000000&lt;br /&gt; extern unsigned long pci_mem_start, pci_mem_end;&lt;br /&gt; &lt;br /&gt;diff -r 5d7e7a250267 tools/firmware/hvmloader/hvmloader.c&lt;br /&gt;--- a/tools/firmware/hvmloader/hvmloader.c Wed Aug 26 18:28:44 2009 +0800&lt;br /&gt;+++ b/tools/firmware/hvmloader/hvmloader.c Fri Aug 28 14:41:22 2009 +0800&lt;br /&gt;@@ -113,7 +113,7 @@ unsigned long pci_mem_start = PCI_MEM_ST&lt;br /&gt; unsigned long pci_mem_start = PCI_MEM_START;&lt;br /&gt; unsigned long pci_mem_end = PCI_MEM_END;&lt;br /&gt; &lt;br /&gt;-static enum { VGA_none, VGA_std, VGA_cirrus } virtual_vga = VGA_none;&lt;br /&gt;+static enum { VGA_none, VGA_std, VGA_cirrus, VGA_pt } virtual_vga = VGA_none;&lt;br /&gt; &lt;br /&gt; static void init_hypercalls(void)&lt;br /&gt; {&lt;br /&gt;@@ -212,8 +212,10 @@ static void pci_setup(void)&lt;br /&gt;         case 0x0300:&lt;br /&gt;             if ( (vendor_id == 0x1234) &amp;&amp; (device_id == 0x1111) )&lt;br /&gt;                 virtual_vga = VGA_std;&lt;br /&gt;-            if ( (vendor_id == 0x1013) &amp;&amp; (device_id == 0xb8) )&lt;br /&gt;+            else if ( (vendor_id == 0x1013) &amp;&amp; (device_id == 0xb8) )&lt;br /&gt;                 virtual_vga = VGA_cirrus;&lt;br /&gt;+            else&lt;br /&gt;+                virtual_vga = VGA_pt;&lt;br /&gt;             break;&lt;br /&gt;         case 0x0680:&lt;br /&gt;             /* PIIX4 ACPI PM. Special device with special PCI config space. */&lt;br /&gt;@@ -684,6 +686,11 @@ int main(void)&lt;br /&gt;         memcpy((void *)VGABIOS_PHYSICAL_ADDRESS,&lt;br /&gt;                vgabios_stdvga, sizeof(vgabios_stdvga));&lt;br /&gt;         vgabios_sz = round_option_rom(sizeof(vgabios_stdvga));&lt;br /&gt;+        break;&lt;br /&gt;+    case VGA_pt:&lt;br /&gt;+        printf("Loading VGABIOS of passthroughed gfx ...\n");&lt;br /&gt;+        vgabios_sz =&lt;br /&gt;+            round_option_rom((*(uint8_t *)(VGABIOS_PHYSICAL_ADDRESS+2)) * 512);&lt;br /&gt;         break;&lt;br /&gt;     default:&lt;br /&gt;         printf("No emulated VGA adaptor ...\n");&lt;br /&gt;diff -r 5d7e7a250267 tools/libxc/ia64/xc_ia64_hvm_build.c&lt;br /&gt;--- a/tools/libxc/ia64/xc_ia64_hvm_build.c Wed Aug 26 18:28:44 2009 +0800&lt;br /&gt;+++ b/tools/libxc/ia64/xc_ia64_hvm_build.c Thu Aug 27 16:54:24 2009 +0800&lt;br /&gt;@@ -1109,7 +1109,9 @@ int xc_hvm_build_target_mem(int xc_handl&lt;br /&gt;                             uint32_t domid,&lt;br /&gt;                             int memsize,&lt;br /&gt;                             int target,&lt;br /&gt;-                            const char *image_name)&lt;br /&gt;+                            const char *image_name,&lt;br /&gt;+                            int gfx_passthru)&lt;br /&gt;+&lt;br /&gt; {&lt;br /&gt;     /* XXX:PoD isn't supported yet */&lt;br /&gt;     return xc_hvm_build(xc_handle, domid, target, image_name);&lt;br /&gt;diff -r 5d7e7a250267 tools/libxc/xc_hvm_build.c&lt;br /&gt;--- a/tools/libxc/xc_hvm_build.c Wed Aug 26 18:28:44 2009 +0800&lt;br /&gt;+++ b/tools/libxc/xc_hvm_build.c Thu Aug 27 16:54:24 2009 +0800&lt;br /&gt;@@ -64,6 +64,67 @@ static void build_hvm_info(void *hvm_inf&lt;br /&gt;     for ( i = 0, sum = 0; i &lt; hvm_info-&gt;length; i++ )&lt;br /&gt;         sum += ((uint8_t *)hvm_info)[i];&lt;br /&gt;     hvm_info-&gt;checksum = -sum;&lt;br /&gt;+}&lt;br /&gt;+&lt;br /&gt;+static int init_vgabios(int xc_handle, uint32_t dom,&lt;br /&gt;+                        unsigned char *buffer, uint32_t bios_size)&lt;br /&gt;+{&lt;br /&gt;+    char *va_bios = NULL;&lt;br /&gt;+    uint32_t va_size = 0;&lt;br /&gt;+&lt;br /&gt;+    va_size = bios_size + bios_size % XC_PAGE_SIZE;&lt;br /&gt;+    va_bios = xc_map_foreign_range(xc_handle, dom, va_size,&lt;br /&gt;+                                   PROT_READ | PROT_WRITE, 0xC0);&lt;br /&gt;+    if ( !va_bios )&lt;br /&gt;+    {&lt;br /&gt;+        IPRINTF("Unable to map vga bios!\n");&lt;br /&gt;+        return -1;&lt;br /&gt;+    }&lt;br /&gt;+&lt;br /&gt;+    if ( buffer != NULL )&lt;br /&gt;+        memcpy(va_bios, buffer, bios_size);&lt;br /&gt;+    else&lt;br /&gt;+        memset(va_bios, 0, bios_size);&lt;br /&gt;+&lt;br /&gt;+    munmap(va_bios, va_size);&lt;br /&gt;+    return 0;&lt;br /&gt;+}&lt;br /&gt;+&lt;br /&gt;+static int setup_vga_pt(int xc_handle, uint32_t dom)&lt;br /&gt;+{&lt;br /&gt;+    int                 rc = 0;&lt;br /&gt;+    unsigned char       *bios = NULL;&lt;br /&gt;+    int                 bios_size = 0;&lt;br /&gt;+    char                *c = NULL;&lt;br /&gt;+    char                checksum = 0;&lt;br /&gt;+&lt;br /&gt;+    /* Allocated 64K for the vga bios */&lt;br /&gt;+    if (!(bios = malloc(64 * 1024)))&lt;br /&gt;+        return -1;&lt;br /&gt;+&lt;br /&gt;+#ifdef __linux__&lt;br /&gt;+    bios_size = xc_get_vgabios(bios, 64 * 1024);&lt;br /&gt;+#else&lt;br /&gt;+    bios_size = 0;&lt;br /&gt;+#endif /* __linux__ */&lt;br /&gt;+&lt;br /&gt;+    if (bios_size == 0)&lt;br /&gt;+    {&lt;br /&gt;+        IPRINTF("vga bios size is 0!\n");&lt;br /&gt;+        rc = -1;&lt;br /&gt;+        goto error;&lt;br /&gt;+    }&lt;br /&gt;+&lt;br /&gt;+    /* Adjust the bios checksum */&lt;br /&gt;+    for ( c = (char*)bios; c &lt; ((char*)bios + bios_size); c++ )&lt;br /&gt;+        checksum += *c;&lt;br /&gt;+    if (checksum)&lt;br /&gt;+        bios[bios_size - 1] -= checksum;&lt;br /&gt;+&lt;br /&gt;+    init_vgabios(xc_handle, dom, bios, bios_size);&lt;br /&gt;+error:&lt;br /&gt;+    free(bios);&lt;br /&gt;+    return rc;&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; static int loadelfimage(&lt;br /&gt;@@ -381,7 +442,8 @@ int xc_hvm_build_target_mem(int xc_handl&lt;br /&gt;                            uint32_t domid,&lt;br /&gt;                            int memsize,&lt;br /&gt;                            int target,&lt;br /&gt;-                           const char *image_name)&lt;br /&gt;+                           const char *image_name,&lt;br /&gt;+                           int gfx_passthru)&lt;br /&gt; {&lt;br /&gt;     char *image;&lt;br /&gt;     int  sts;&lt;br /&gt;@@ -392,6 +454,11 @@ int xc_hvm_build_target_mem(int xc_handl&lt;br /&gt;         return -1;&lt;br /&gt; &lt;br /&gt;     sts = xc_hvm_build_internal(xc_handle, domid, memsize, target, image, image_size);&lt;br /&gt;+&lt;br /&gt;+    if ( gfx_passthru )&lt;br /&gt;+        sts |= setup_vga_pt(xc_handle, domid);&lt;br /&gt;+    else&lt;br /&gt;+        sts |= init_vgabios(xc_handle, domid, NULL, 0x800);&lt;br /&gt; &lt;br /&gt;     free(image);&lt;br /&gt; &lt;br /&gt;diff -r 5d7e7a250267 tools/libxc/xc_linux.c&lt;br /&gt;--- a/tools/libxc/xc_linux.c Wed Aug 26 18:28:44 2009 +0800&lt;br /&gt;+++ b/tools/libxc/xc_linux.c Thu Aug 27 16:54:24 2009 +0800&lt;br /&gt;@@ -638,6 +638,56 @@ err:&lt;br /&gt;     return gnt;&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt;+int xc_get_vgabios(unsigned char        *buf,&lt;br /&gt;+                   int                  len)&lt;br /&gt;+{&lt;br /&gt;+    int         mem;&lt;br /&gt;+    uint32_t    start, size = 0;&lt;br /&gt;+    uint16_t    magic = 0;&lt;br /&gt;+&lt;br /&gt;+    start = 0xC0000;&lt;br /&gt;+    if (len &lt; size)&lt;br /&gt;+        return 0;&lt;br /&gt;+    if ((mem = open("/dev/mem", O_RDONLY)) &lt; 0)&lt;br /&gt;+        return 0;&lt;br /&gt;+&lt;br /&gt;+    /*&lt;br /&gt;+    ** Check if it a real bios extension.&lt;br /&gt;+    ** The magic number is 0xAA55.&lt;br /&gt;+    */&lt;br /&gt;+    if (start != lseek(mem, start, SEEK_SET))&lt;br /&gt;+        goto out;&lt;br /&gt;+    if (read(mem, &amp;magic, 2) != 2)&lt;br /&gt;+        goto out;&lt;br /&gt;+    if (magic != 0xAA55)&lt;br /&gt;+        goto out;&lt;br /&gt;+    /* Find the size of the rom extension */&lt;br /&gt;+    if (start != lseek(mem, start, SEEK_SET))&lt;br /&gt;+        goto out;&lt;br /&gt;+    if (lseek(mem, 2, SEEK_CUR) != (start + 2))&lt;br /&gt;+        goto out;&lt;br /&gt;+    if (read(mem, &amp;size, 1) != 1)&lt;br /&gt;+        goto out;&lt;br /&gt;+    /* This size is in 512K */&lt;br /&gt;+    size *= 512;&lt;br /&gt;+&lt;br /&gt;+    /*&lt;br /&gt;+    ** Set the file to the begining of the rombios,&lt;br /&gt;+    ** to start the copy.&lt;br /&gt;+    */&lt;br /&gt;+    if (start != lseek(mem, start, SEEK_SET))&lt;br /&gt;+    {&lt;br /&gt;+        size = 0;&lt;br /&gt;+        goto out;&lt;br /&gt;+    }&lt;br /&gt;+    if (size != read(mem, buf, size))&lt;br /&gt;+        size = 0;&lt;br /&gt;+&lt;br /&gt;+out:&lt;br /&gt;+    close(mem);&lt;br /&gt;+    return size;&lt;br /&gt;+}&lt;br /&gt;+&lt;br /&gt; /*&lt;br /&gt;  * Local variables:&lt;br /&gt;  * mode: C&lt;br /&gt;diff -r 5d7e7a250267 tools/libxc/xenctrl.h&lt;br /&gt;--- a/tools/libxc/xenctrl.h Wed Aug 26 18:28:44 2009 +0800&lt;br /&gt;+++ b/tools/libxc/xenctrl.h Thu Aug 27 16:54:24 2009 +0800&lt;br /&gt;@@ -1285,4 +1285,6 @@ int xc_tmem_restore(int xc_handle, int d&lt;br /&gt; int xc_tmem_restore(int xc_handle, int dom, int fd);&lt;br /&gt; int xc_tmem_restore_extra(int xc_handle, int dom, int fd);&lt;br /&gt; &lt;br /&gt;+int xc_get_vgabios(unsigned char *bios, int len);&lt;br /&gt;+&lt;br /&gt; #endif /* XENCTRL_H */&lt;br /&gt;diff -r 5d7e7a250267 tools/libxc/xenguest.h&lt;br /&gt;--- a/tools/libxc/xenguest.h Wed Aug 26 18:28:44 2009 +0800&lt;br /&gt;+++ b/tools/libxc/xenguest.h Thu Aug 27 16:54:24 2009 +0800&lt;br /&gt;@@ -135,7 +135,8 @@ int xc_hvm_build_target_mem(int xc_handl&lt;br /&gt;                             uint32_t domid,&lt;br /&gt;                             int memsize,&lt;br /&gt;                             int target,&lt;br /&gt;-                            const char *image_name);&lt;br /&gt;+                            const char *image_name,&lt;br /&gt;+                            int gfx_passthru);&lt;br /&gt; &lt;br /&gt; int xc_hvm_build_mem(int xc_handle,&lt;br /&gt;                      uint32_t domid,&lt;br /&gt;diff -r 5d7e7a250267 tools/python/xen/lowlevel/xc/xc.c&lt;br /&gt;--- a/tools/python/xen/lowlevel/xc/xc.c Wed Aug 26 18:28:44 2009 +0800&lt;br /&gt;+++ b/tools/python/xen/lowlevel/xc/xc.c Thu Aug 27 16:54:24 2009 +0800&lt;br /&gt;@@ -894,21 +894,21 @@ static PyObject *pyxc_hvm_build(XcObject&lt;br /&gt;     int i;&lt;br /&gt; #endif&lt;br /&gt;     char *image;&lt;br /&gt;-    int memsize, target=-1, vcpus = 1, acpi = 0, apic = 1;&lt;br /&gt;+    int memsize, target=-1, vcpus = 1, acpi = 0, apic = 1, gfx_passthru = 0;&lt;br /&gt; &lt;br /&gt;     static char *kwd_list[] = { "domid",&lt;br /&gt;                                 "memsize", "image", "target", "vcpus", "acpi",&lt;br /&gt;-                                "apic", NULL };&lt;br /&gt;-    if ( !PyArg_ParseTupleAndKeywords(args, kwds, "iis|iiii", kwd_list,&lt;br /&gt;+                                "apic", "gfx_passthru", NULL };&lt;br /&gt;+    if ( !PyArg_ParseTupleAndKeywords(args, kwds, "iis|iiiii", kwd_list,&lt;br /&gt;                                       &amp;dom, &amp;memsize, &amp;image, &amp;target, &amp;vcpus,&lt;br /&gt;-                                      &amp;acpi, &amp;apic) )&lt;br /&gt;+                                      &amp;acpi, &amp;apic, &amp;gfx_passthru) )&lt;br /&gt;         return NULL;&lt;br /&gt; &lt;br /&gt;     if ( target == -1 )&lt;br /&gt;         target = memsize;&lt;br /&gt; &lt;br /&gt;     if ( xc_hvm_build_target_mem(self-&gt;xc_handle, dom, memsize,&lt;br /&gt;-                                 target, image) != 0 )&lt;br /&gt;+                                 target, image, gfx_passthru) != 0 )&lt;br /&gt;         return pyxc_error_to_exception();&lt;br /&gt; &lt;br /&gt; #if !defined(__ia64__)&lt;br /&gt;diff -r 5d7e7a250267 tools/python/xen/xend/XendConfig.py&lt;br /&gt;--- a/tools/python/xen/xend/XendConfig.py Wed Aug 26 18:28:44 2009 +0800&lt;br /&gt;+++ b/tools/python/xen/xend/XendConfig.py Thu Aug 27 16:54:24 2009 +0800&lt;br /&gt;@@ -175,6 +175,7 @@ XENAPI_PLATFORM_CFG_TYPES = {&lt;br /&gt;     'pci_msitranslate': int,&lt;br /&gt;     'pci_power_mgmt': int,&lt;br /&gt;     'xen_platform_pci': int,&lt;br /&gt;+    "gfx_passthru": int,&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; # Xen API console 'other_config' keys.&lt;br /&gt;diff -r 5d7e7a250267 tools/python/xen/xend/image.py&lt;br /&gt;--- a/tools/python/xen/xend/image.py Wed Aug 26 18:28:44 2009 +0800&lt;br /&gt;+++ b/tools/python/xen/xend/image.py Thu Aug 27 16:54:24 2009 +0800&lt;br /&gt;@@ -786,7 +786,7 @@ class HVMImageHandler(ImageHandler):&lt;br /&gt;         self.apic = int(vmConfig['platform'].get('apic', 0))&lt;br /&gt;         self.acpi = int(vmConfig['platform'].get('acpi', 0))&lt;br /&gt;         self.guest_os_type = vmConfig['platform'].get('guest_os_type')&lt;br /&gt;-&lt;br /&gt;+        self.gfx_passthru = int(vmConfig['platform'].get('gfx_passthru', 0))&lt;br /&gt; &lt;br /&gt;     # Return a list of cmd line args to the device models based on the&lt;br /&gt;     # xm config file&lt;br /&gt;@@ -807,7 +807,7 @@ class HVMImageHandler(ImageHandler):&lt;br /&gt; &lt;br /&gt;         dmargs = [ 'boot', 'fda', 'fdb', 'soundhw',&lt;br /&gt;                    'localtime', 'serial', 'stdvga', 'isa',&lt;br /&gt;-                   'acpi', 'usb', 'usbdevice' ]&lt;br /&gt;+                   'acpi', 'usb', 'usbdevice', 'gfx_passthru' ]&lt;br /&gt; &lt;br /&gt;         for a in dmargs:&lt;br /&gt;             v = vmConfig['platform'].get(a)&lt;br /&gt;@@ -901,6 +901,7 @@ class HVMImageHandler(ImageHandler):&lt;br /&gt;         log.debug("vcpus          = %d", self.vm.getVCpuCount())&lt;br /&gt;         log.debug("acpi           = %d", self.acpi)&lt;br /&gt;         log.debug("apic           = %d", self.apic)&lt;br /&gt;+        log.debug("gfx_passthru   = %d", self.gfx_passthru)&lt;br /&gt; &lt;br /&gt;         rc = xc.hvm_build(domid          = self.vm.getDomid(),&lt;br /&gt;                           image          = self.loader,&lt;br /&gt;@@ -908,7 +909,8 @@ class HVMImageHandler(ImageHandler):&lt;br /&gt;                           target         = mem_mb,&lt;br /&gt;                           vcpus          = self.vm.getVCpuCount(),&lt;br /&gt;                           acpi           = self.acpi,&lt;br /&gt;-                          apic           = self.apic)&lt;br /&gt;+                          apic           = self.apic,&lt;br /&gt;+                          gfx_passthru   = self.gfx_passthru)&lt;br /&gt;         rc['notes'] = { 'SUSPEND_CANCEL': 1 }&lt;br /&gt; &lt;br /&gt;         rc['store_mfn'] = xc.hvm_get_param(self.vm.getDomid(),&lt;br /&gt;diff -r 5d7e7a250267 tools/python/xen/xm/create.py&lt;br /&gt;--- a/tools/python/xen/xm/create.py Wed Aug 26 18:28:44 2009 +0800&lt;br /&gt;+++ b/tools/python/xen/xm/create.py Thu Aug 27 16:54:24 2009 +0800&lt;br /&gt;@@ -546,6 +546,10 @@ gopts.var('sdl', val='',&lt;br /&gt; gopts.var('sdl', val='',&lt;br /&gt;           fn=set_value, default=None,&lt;br /&gt;           use="""Should the device model use SDL?""")&lt;br /&gt;+&lt;br /&gt;+gopts.var('gfx_passthru', val='',&lt;br /&gt;+          fn=set_value, default=None,&lt;br /&gt;+          use="""Passthrough graphics card?""")&lt;br /&gt; &lt;br /&gt; gopts.var('opengl', val='',&lt;br /&gt;           fn=set_value, default=None,&lt;br /&gt;@@ -957,7 +961,8 @@ def configure_hvm(config_image, vals):&lt;br /&gt;              'acpi', 'apic', 'usb', 'usbdevice', 'keymap', 'pci', 'hpet',&lt;br /&gt;              'guest_os_type', 'hap', 'opengl', 'cpuid', 'cpuid_check',&lt;br /&gt;              'viridian', 'xen_extended_power_mgmt', 'pci_msitranslate',&lt;br /&gt;-             'vpt_align', 'pci_power_mgmt', 'xen_platform_pci' ]&lt;br /&gt;+             'vpt_align', 'pci_power_mgmt', 'xen_platform_pci',&lt;br /&gt;+             'gfx_passthru' ]&lt;br /&gt; &lt;br /&gt;     for a in args:&lt;br /&gt;         if a in vals.__dict__ and vals.__dict__[a] is not None:&lt;br /&gt;&lt;br /&gt;2) intel-gfx-passthru-patch02.patch&lt;br /&gt;&lt;br /&gt;From fb818f1060e57dac6793187a70a79801a7c17e50 Mon Sep 17 00:00:00 2001&lt;br /&gt;From: Weidong Han &lt;weidong.han@intel.com&gt;&lt;br /&gt;Date: Thu, 27 Aug 2009 16:51:01 +0800&lt;br /&gt;Subject: [PATCH] qemu gfx passthrough support&lt;br /&gt;&lt;br /&gt;support basic gfx passthrough:&lt;br /&gt;  - disable emulated VGA adpater if there is passthroughed gfx&lt;br /&gt;  - register/unregister legacy VGA I/O ports and MMIOs for passthroughed gfx&lt;br /&gt;&lt;br /&gt;Signed-off-by: Ben Lin &lt;ben.y.lin@intel.com&gt;&lt;br /&gt;Signed-off-by: Weidong Han &lt;weidong.han@intel.com&gt;&lt;br /&gt;---&lt;br /&gt; hw/pass-through.c |   63 +++++++++++++++++++++++++++++++++++++++++++++++++++++&lt;br /&gt; hw/pass-through.h |    6 +++++&lt;br /&gt; hw/pc.c           |   51 ++++++++++++++++++++++++------------------&lt;br /&gt; vl.c              |   32 +++++++++++++++++++++++---&lt;br /&gt; 4 files changed, 126 insertions(+), 26 deletions(-)&lt;br /&gt;&lt;br /&gt;diff --git a/hw/pass-through.c b/hw/pass-through.c&lt;br /&gt;index 8d80755..4a9e03a 100644&lt;br /&gt;--- a/hw/pass-through.c&lt;br /&gt;+++ b/hw/pass-through.c&lt;br /&gt;@@ -93,6 +93,8 @@&lt;br /&gt; #include &lt;unistd.h&gt;&lt;br /&gt; #include &lt;sys/ioctl.h&gt;&lt;br /&gt; &lt;br /&gt;+extern int gfx_passthru;&lt;br /&gt;+&lt;br /&gt; struct php_dev {&lt;br /&gt;     struct pt_dev *pt_dev;&lt;br /&gt;     uint8_t valid;&lt;br /&gt;@@ -1781,12 +1783,57 @@ static int pt_dev_is_virtfn(struct pci_dev *dev)&lt;br /&gt;     return rc;&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt;+/*&lt;br /&gt;+ * register VGA resources for the domain with assigned gfx&lt;br /&gt;+ */&lt;br /&gt;+static int register_vga_regions(struct pt_dev *real_device)&lt;br /&gt;+{&lt;br /&gt;+    int ret = 0;&lt;br /&gt;+&lt;br /&gt;+    ret |= xc_domain_ioport_mapping(xc_handle, domid, 0x3B0,&lt;br /&gt;+            0x3B0, 0xC, DPCI_ADD_MAPPING);&lt;br /&gt;+&lt;br /&gt;+    ret |= xc_domain_ioport_mapping(xc_handle, domid, 0x3C0,&lt;br /&gt;+            0x3C0, 0x20, DPCI_ADD_MAPPING);&lt;br /&gt;+&lt;br /&gt;+    ret |= xc_domain_memory_mapping(xc_handle, domid,&lt;br /&gt;+            0xa0000 &gt;&gt; XC_PAGE_SHIFT,&lt;br /&gt;+            0xa0000 &gt;&gt; XC_PAGE_SHIFT,&lt;br /&gt;+            0x20,&lt;br /&gt;+            DPCI_ADD_MAPPING);&lt;br /&gt;+&lt;br /&gt;+    return ret;&lt;br /&gt;+}&lt;br /&gt;+&lt;br /&gt;+/*&lt;br /&gt;+ * unregister VGA resources for the domain with assigned gfx&lt;br /&gt;+ */&lt;br /&gt;+static int unregister_vga_regions(struct pt_dev *real_device)&lt;br /&gt;+{&lt;br /&gt;+    int ret = 0;&lt;br /&gt;+&lt;br /&gt;+    ret |= xc_domain_ioport_mapping(xc_handle, domid, 0x3B0,&lt;br /&gt;+            0x3B0, 0xC, DPCI_REMOVE_MAPPING);&lt;br /&gt;+&lt;br /&gt;+    ret |= xc_domain_ioport_mapping(xc_handle, domid, 0x3C0,&lt;br /&gt;+            0x3C0, 0x20, DPCI_REMOVE_MAPPING);&lt;br /&gt;+&lt;br /&gt;+    ret |= xc_domain_memory_mapping(xc_handle, domid,&lt;br /&gt;+            0xa0000 &gt;&gt; XC_PAGE_SHIFT,&lt;br /&gt;+            0xa0000 &gt;&gt; XC_PAGE_SHIFT,&lt;br /&gt;+            0x20,&lt;br /&gt;+            DPCI_REMOVE_MAPPING);&lt;br /&gt;+&lt;br /&gt;+    return ret;&lt;br /&gt;+}&lt;br /&gt;+&lt;br /&gt; static int pt_register_regions(struct pt_dev *assigned_device)&lt;br /&gt; {&lt;br /&gt;     int i = 0;&lt;br /&gt;     uint32_t bar_data = 0;&lt;br /&gt;     struct pci_dev *pci_dev = assigned_device-&gt;pci_dev;&lt;br /&gt;     PCIDevice *d = &amp;assigned_device-&gt;dev;&lt;br /&gt;+    int ret;&lt;br /&gt; &lt;br /&gt;     /* Register PIO/MMIO BARs */&lt;br /&gt;     for ( i = 0; i &lt; PCI_BAR_ENTRIES; i++ )&lt;br /&gt;@@ -1842,6 +1889,16 @@ static int pt_register_regions(struct pt_dev *assigned_device)&lt;br /&gt;             (uint32_t)(pci_dev-&gt;rom_size), (uint32_t)(pci_dev-&gt;rom_base_addr));&lt;br /&gt;     }&lt;br /&gt; &lt;br /&gt;+    if ( gfx_passthru &amp;&amp; (pci_dev-&gt;device_class == 0x0300) )&lt;br /&gt;+    {&lt;br /&gt;+        ret = register_vga_regions(assigned_device);&lt;br /&gt;+        if ( ret != 0 )&lt;br /&gt;+        {&lt;br /&gt;+            PT_LOG("VGA region mapping failed\n");&lt;br /&gt;+            return ret;&lt;br /&gt;+        }&lt;br /&gt;+    }&lt;br /&gt;+&lt;br /&gt;     return 0;&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt;@@ -1891,6 +1948,12 @@ static void pt_unregister_regions(struct pt_dev *assigned_device)&lt;br /&gt; &lt;br /&gt;     }&lt;br /&gt; &lt;br /&gt;+    if ( gfx_passthru &amp;&amp; (assigned_device-&gt;pci_dev-&gt;device_class == 0x0300) )&lt;br /&gt;+    {&lt;br /&gt;+        ret = unregister_vga_regions(assigned_device);&lt;br /&gt;+        if ( ret != 0 )&lt;br /&gt;+            PT_LOG("VGA region unmapping failed\n");&lt;br /&gt;+    }&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; static uint8_t find_cap_offset(struct pci_dev *pci_dev, uint8_t cap)&lt;br /&gt;diff --git a/hw/pass-through.h b/hw/pass-through.h&lt;br /&gt;index 028a03e..956e228 100644&lt;br /&gt;--- a/hw/pass-through.h&lt;br /&gt;+++ b/hw/pass-through.h&lt;br /&gt;@@ -142,6 +142,12 @@ enum {&lt;br /&gt;     GRP_TYPE_EMU,                               /* emul reg group */&lt;br /&gt; };&lt;br /&gt; &lt;br /&gt;+enum {&lt;br /&gt;+    GFX_NO_PASSTHRU = 0,                        /* No gfx pass-through */&lt;br /&gt;+    GFX_IGD_PASSTHRU,                           /* IGD pass-through */&lt;br /&gt;+    GFX_DISCRETE_PASSTHRU,                      /* Discrete gfx pass-through */&lt;br /&gt;+};&lt;br /&gt;+&lt;br /&gt; #define PT_GET_EMUL_SIZE(flag, r_size) do { \&lt;br /&gt;     if (flag == PT_BAR_FLAG_MEM) {\&lt;br /&gt;         r_size = (((r_size) + XC_PAGE_SIZE - 1) &amp; ~(XC_PAGE_SIZE - 1)); \&lt;br /&gt;diff --git a/hw/pc.c b/hw/pc.c&lt;br /&gt;index 129e9d9..53b59c0 100644&lt;br /&gt;--- a/hw/pc.c&lt;br /&gt;+++ b/hw/pc.c&lt;br /&gt;@@ -41,6 +41,7 @@&lt;br /&gt; #include "virtio-balloon.h"&lt;br /&gt; #include "virtio-console.h"&lt;br /&gt; #include "hpet_emul.h"&lt;br /&gt;+#include "pass-through.h"&lt;br /&gt; &lt;br /&gt; /* output Bochs bios info messages */&lt;br /&gt; //#define DEBUG_BIOS&lt;br /&gt;@@ -65,6 +66,8 @@ void tpm_tis_init(SetIRQFunc *set_irq, void *opaque, int irq);&lt;br /&gt; extern uint8_t *acpi_tables;&lt;br /&gt; extern size_t acpi_tables_len;&lt;br /&gt; &lt;br /&gt;+extern int gfx_passthru;&lt;br /&gt;+&lt;br /&gt; static fdctrl_t *floppy_controller;&lt;br /&gt; static RTCState *rtc_state;&lt;br /&gt; static PITState *pit;&lt;br /&gt;@@ -983,30 +986,34 @@ vga_bios_error:&lt;br /&gt; &lt;br /&gt;     register_ioport_write(0xf0, 1, 1, ioportF0_write, NULL);&lt;br /&gt; &lt;br /&gt;-    if (cirrus_vga_enabled) {&lt;br /&gt;-        if (pci_enabled) {&lt;br /&gt;-            pci_cirrus_vga_init(pci_bus,&lt;br /&gt;-                                phys_ram_base + vga_ram_addr,&lt;br /&gt;-                                vga_ram_addr, vga_ram_size);&lt;br /&gt;-        } else {&lt;br /&gt;-            isa_cirrus_vga_init(phys_ram_base + vga_ram_addr,&lt;br /&gt;-                                vga_ram_addr, vga_ram_size);&lt;br /&gt;-        }&lt;br /&gt;+    if (gfx_passthru == GFX_NO_PASSTHRU) {&lt;br /&gt;+       if (cirrus_vga_enabled) {&lt;br /&gt;+            fprintf(logfile,"cirrus_vga_enabled\n");&lt;br /&gt;+            if (pci_enabled) {&lt;br /&gt;+                pci_cirrus_vga_init(pci_bus,&lt;br /&gt;+                                    phys_ram_base + vga_ram_addr,&lt;br /&gt;+                                    vga_ram_addr, vga_ram_size);&lt;br /&gt;+            } else {&lt;br /&gt;+                isa_cirrus_vga_init(phys_ram_base + vga_ram_addr,&lt;br /&gt;+                                    vga_ram_addr, vga_ram_size);&lt;br /&gt;+            }&lt;br /&gt; #ifndef CONFIG_DM&lt;br /&gt;-    } else if (vmsvga_enabled) {&lt;br /&gt;-        if (pci_enabled)&lt;br /&gt;-            pci_vmsvga_init(pci_bus, phys_ram_base + vga_ram_addr,&lt;br /&gt;-                            vga_ram_addr, vga_ram_size);&lt;br /&gt;-        else&lt;br /&gt;-            fprintf(stderr, "%s: vmware_vga: no PCI bus\n", __FUNCTION__);&lt;br /&gt;+        } else if (vmsvga_enabled) {&lt;br /&gt;+            if (pci_enabled)&lt;br /&gt;+                pci_vmsvga_init(pci_bus, phys_ram_base + vga_ram_addr,&lt;br /&gt;+                                vga_ram_addr, vga_ram_size);&lt;br /&gt;+            else&lt;br /&gt;+                fprintf(stderr, "%s: vmware_vga: no PCI bus\n", __FUNCTION__);&lt;br /&gt; #endif&lt;br /&gt;-    } else if (std_vga_enabled) {&lt;br /&gt;-        if (pci_enabled) {&lt;br /&gt;-            pci_vga_init(pci_bus, phys_ram_base + vga_ram_addr,&lt;br /&gt;-                         vga_ram_addr, vga_ram_size, 0, 0);&lt;br /&gt;-        } else {&lt;br /&gt;-            isa_vga_init(phys_ram_base + vga_ram_addr,&lt;br /&gt;-                         vga_ram_addr, vga_ram_size);&lt;br /&gt;+        } else if (std_vga_enabled) {&lt;br /&gt;+            fprintf(logfile,"std_vga_enabled\n");&lt;br /&gt;+            if (pci_enabled) {&lt;br /&gt;+                pci_vga_init(pci_bus, phys_ram_base + vga_ram_addr,&lt;br /&gt;+                             vga_ram_addr, vga_ram_size, 0, 0);&lt;br /&gt;+            } else {&lt;br /&gt;+                isa_vga_init(phys_ram_base + vga_ram_addr,&lt;br /&gt;+                             vga_ram_addr, vga_ram_size);&lt;br /&gt;+            }&lt;br /&gt;         }&lt;br /&gt;     }&lt;br /&gt; &lt;br /&gt;diff --git a/vl.c b/vl.c&lt;br /&gt;index 62bed05..72f3479 100644&lt;br /&gt;--- a/vl.c&lt;br /&gt;+++ b/vl.c&lt;br /&gt;@@ -48,6 +48,7 @@&lt;br /&gt; #include &lt;stdlib.h&gt;&lt;br /&gt; &lt;br /&gt; #include "qemu-xen.h"&lt;br /&gt;+#include "hw/pass-through.h"&lt;br /&gt; &lt;br /&gt; #include &lt;unistd.h&gt;&lt;br /&gt; #include &lt;fcntl.h&gt;&lt;br /&gt;@@ -213,6 +214,7 @@ static int rtc_date_offset = -1; /* -1 means no change */&lt;br /&gt; int cirrus_vga_enabled = 1;&lt;br /&gt; int std_vga_enabled = 0;&lt;br /&gt; int vmsvga_enabled = 0;&lt;br /&gt;+int gfx_passthru = 0;&lt;br /&gt; #ifdef TARGET_SPARC&lt;br /&gt; int graphic_width = 1024;&lt;br /&gt; int graphic_height = 768;&lt;br /&gt;@@ -4269,6 +4271,7 @@ enum {&lt;br /&gt;     /* Xen tree: */&lt;br /&gt;     QEMU_OPTION_disable_opengl,&lt;br /&gt;     QEMU_OPTION_direct_pci,&lt;br /&gt;+    QEMU_OPTION_gfx_passthru,&lt;br /&gt;     QEMU_OPTION_pci_emulation,&lt;br /&gt;     QEMU_OPTION_vncunused,&lt;br /&gt;     QEMU_OPTION_videoram,&lt;br /&gt;@@ -4447,6 +4450,7 @@ static const QEMUOption qemu_options[] = {&lt;br /&gt; #endif&lt;br /&gt;     { "acpi", 0, QEMU_OPTION_acpi }, /* deprecated, for xend compatibility */&lt;br /&gt;     { "direct_pci", HAS_ARG, QEMU_OPTION_direct_pci },&lt;br /&gt;+    { "gfx_passthru", HAS_ARG, QEMU_OPTION_gfx_passthru},&lt;br /&gt;     { "pciemulation", HAS_ARG, QEMU_OPTION_pci_emulation },&lt;br /&gt;     { "vncunused", 0, QEMU_OPTION_vncunused },&lt;br /&gt;     { "vcpus", HAS_ARG, QEMU_OPTION_vcpus },&lt;br /&gt;@@ -5484,6 +5488,22 @@ int main(int argc, char **argv, char **envp)&lt;br /&gt;             case QEMU_OPTION_runas:&lt;br /&gt;                 run_as = optarg;&lt;br /&gt;                 break;&lt;br /&gt;+            case QEMU_OPTION_gfx_passthru:&lt;br /&gt;+                gfx_passthru = atoi(optarg);&lt;br /&gt;+                switch (gfx_passthru) {&lt;br /&gt;+                case GFX_NO_PASSTHRU:&lt;br /&gt;+                    break;&lt;br /&gt;+                case GFX_IGD_PASSTHRU:&lt;br /&gt;+                    fprintf(logfile, "IGD graphics card assignment\n");&lt;br /&gt;+                    break;&lt;br /&gt;+                case GFX_DISCRETE_PASSTHRU:&lt;br /&gt;+                    fprintf(logfile, "Discrete graphics card assignment\n");&lt;br /&gt;+                    break;&lt;br /&gt;+                default:&lt;br /&gt;+                    fprintf(stderr, "unsupported gfx_passthru option: %d\n",&lt;br /&gt;+                            gfx_passthru);&lt;br /&gt;+                }&lt;br /&gt;+                break;&lt;br /&gt;             }&lt;br /&gt;         }&lt;br /&gt;     }&lt;br /&gt;@@ -5897,13 +5917,17 @@ int main(int argc, char **argv, char **envp)&lt;br /&gt;                         exit(1);&lt;br /&gt;       xenstore_write_vncport(vnc_display_port);&lt;br /&gt;                 }&lt;br /&gt;+&lt;br /&gt;+                if (gfx_passthru == GFX_NO_PASSTHRU)&lt;br /&gt;+                {&lt;br /&gt; #if defined(CONFIG_SDL)&lt;br /&gt;-                if (sdl || !vnc_display)&lt;br /&gt;-                    sdl_display_init(ds, full_screen, no_frame, opengl_enabled);&lt;br /&gt;+                    if (sdl || !vnc_display)&lt;br /&gt;+                        sdl_display_init(ds, full_screen, no_frame, opengl_enabled);&lt;br /&gt; #elif defined(CONFIG_COCOA)&lt;br /&gt;-                if (sdl || !vnc_display)&lt;br /&gt;-                    cocoa_display_init(ds, full_screen);&lt;br /&gt;+                    if (sdl || !vnc_display)&lt;br /&gt;+                        cocoa_display_init(ds, full_screen);&lt;br /&gt; #endif&lt;br /&gt;+                }&lt;br /&gt;             }&lt;br /&gt;     }&lt;br /&gt;     dpy_resize(ds);&lt;br /&gt;-- &lt;br /&gt;1.6.0.4&lt;br /&gt;&lt;br /&gt;3) intel-gfx-passthru-patch03.patch&lt;br /&gt;&lt;br /&gt;Manually generated by Teo En Ming (Zhang Enming) on 29 August 2009 Saturday at 11:10 A.M. Singapore Time&lt;br /&gt;Email #1: enming.teo@xxxxxxxxxxxxxxx&lt;br /&gt;Email #2: space.time.universe@gmail.com&lt;br /&gt;MSN: teoenming@hotmail.com&lt;br /&gt;&lt;br /&gt;--- Makefile 2009-08-29 10:57:28.072084001 +0800&lt;br /&gt;+++ Makefile 2009-08-29 11:03:30.650209241 +0800&lt;br /&gt;@@ -50,6 +50,7 @@&lt;br /&gt; roms.h: ../rombios/BIOS-bochs-latest ../vgabios/VGABIOS-lgpl-latest.bin \&lt;br /&gt;  ../vgabios/VGABIOS-lgpl-latest.cirrus.bin ../etherboot/eb-roms.h&lt;br /&gt;  sh ./mkhex rombios ../rombios/BIOS-bochs-latest &gt; roms.h&lt;br /&gt;+ sh ./mkhex vgabios_pt ../vgabios/vgabios-pt.bin &gt;&gt; roms.h&lt;br /&gt;  sh ./mkhex vgabios_stdvga ../vgabios/VGABIOS-lgpl-latest.bin &gt;&gt; roms.h&lt;br /&gt;  sh ./mkhex vgabios_cirrusvga \&lt;br /&gt;   ../vgabios/VGABIOS-lgpl-latest.cirrus.bin &gt;&gt; roms.h&lt;br /&gt;--- hvmloader.c 2009-08-29 10:58:52.679084845 +0800&lt;br /&gt;+++ hvmloader.c 2009-08-29 11:07:40.763119203 +0800&lt;br /&gt;@@ -688,10 +688,10 @@&lt;br /&gt;         vgabios_sz = round_option_rom(sizeof(vgabios_stdvga));&lt;br /&gt;         break;&lt;br /&gt;     case VGA_pt:&lt;br /&gt;-        printf("Loading VGABIOS of passthroughed gfx ...\n");&lt;br /&gt;-        vgabios_sz =&lt;br /&gt;-            round_option_rom((*(uint8_t *)(VGABIOS_PHYSICAL_ADDRESS+2)) * 512);&lt;br /&gt;-        break;&lt;br /&gt;+        printf("Loading Gfx Video BIOS from file ...\n");&lt;br /&gt;+ memcpy((void *)VGABIOS_PHYSICAL_ADDRESS, vgabios_pt, sizeof(vgabios_pt));&lt;br /&gt;+ vgabios_sz = round_option_rom(sizeof(vgabios_pt));&lt;br /&gt;+ break;&lt;br /&gt;     default:&lt;br /&gt;         printf("No emulated VGA adaptor ...\n");&lt;br /&gt;         break;&lt;br /&gt;&lt;br /&gt;My Own Patch to Fix Xen 3.5-unstable ACPI Code Build Issue with Intel ACPI Component Architecture compiler version 20090730&lt;br /&gt;=================================================================================================&lt;br /&gt;&lt;br /&gt;4. enming-patch04.patch&lt;br /&gt;&lt;br /&gt;Patch created by Teo En Ming (Zhang Enming) on 29 August 2009 Saturday at 8:00 P.M. Singapore Time &lt;br /&gt;Email #1: enming.teo@xxxxxxxxxxxxxxx&lt;br /&gt;Email #2: space.time.universe@gmail.com&lt;br /&gt;MSN: teoenming@hotmail.com&lt;br /&gt;Mobile Phone: +65-9648-9798&lt;br /&gt;&lt;br /&gt;--- ssdt_pm.h 2009-08-29 19:54:52.653088000 +0800&lt;br /&gt;+++ ssdt_pm.h 2009-08-29 19:56:51.813088550 +0800&lt;br /&gt;@@ -10,7 +10,7 @@&lt;br /&gt;  * C source code output&lt;br /&gt;  *&lt;br /&gt;  */&lt;br /&gt;-unsigned char AmlCode[] =&lt;br /&gt;+unsigned char AmlCode_PM[] =&lt;br /&gt; {&lt;br /&gt;     0x53,0x53,0x44,0x54,0xD6,0x05,0x00,0x00,  /* 00000000    "SSDT...." */&lt;br /&gt;     0x02,0xB9,0x58,0x65,0x6E,0x00,0x00,0x00,  /* 00000008    "..Xen..." */&lt;br /&gt;--- ssdt_tpm.h 2009-08-29 19:55:44.578738954 +0800&lt;br /&gt;+++ ssdt_tpm.h 2009-08-29 19:57:27.896638884 +0800&lt;br /&gt;@@ -10,7 +10,7 @@&lt;br /&gt;  * C source code output&lt;br /&gt;  *&lt;br /&gt;  */&lt;br /&gt;-unsigned char AmlCode[] =&lt;br /&gt;+unsigned char AmlCode_TPM[] =&lt;br /&gt; {&lt;br /&gt;     0x53,0x53,0x44,0x54,0x4C,0x00,0x00,0x00,  /* 00000000    "SSDTL..." */&lt;br /&gt;     0x02,0x2A,0x58,0x65,0x6E,0x00,0x00,0x00,  /* 00000008    ".*Xen..." */&lt;br /&gt;&lt;br /&gt;&lt;a href="http://lists.xensource.com/archives/html/xen-devel/2009-08/index.html"&gt;Click here for technical discussions in the Xen developers mailing list (August 2009 entries)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-5353098800834893361?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/5353098800834893361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/5353098800834893361'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/08/windows-xp-home-domu-test-results-after.html' title='Windows XP Home DomU Test Results after applying Intel&apos;s VGA Passthrough Patchset to Xen 3.5-unstable'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_zzjv8MCM2sk/Spkv1c6DT6I/AAAAAAAAAUk/Z-fDQTLa7d4/s72-c/dscf2397.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-7333949017752435477</id><published>2009-08-25T23:15:00.007+08:00</published><updated>2009-08-26T00:08:49.706+08:00</updated><title type='text'>nVidia Geforce 8400 GS PCI Express x16 VGA Pass Through to Windows XP Home 32-bit HVM Virtual Machine with Intel Desktop Board DQ45CB</title><content type='html'>I have managed to do PCI-e VGA passthrough with the open source Xen but the work is still in progress because although Windows XP guest can see the REAL PCI-e x16 graphics card instead of an emulated graphics driver, it cannot be initialized yet.&lt;br /&gt;&lt;br /&gt;Thanks to Intel Engineer Han Weidong, Pasi Kärkkäinen, Boris Derzhavets, Marc, Caz Yokoyama, and others who have helped me and shared their knowledge with me along the way.&lt;br /&gt;&lt;br /&gt;System Configuration:&lt;br /&gt;&lt;br /&gt;Intel Desktop Board DQ45CB with BIOS upgraded to 0093&lt;br /&gt;Onboard Intel GMA 4500 Graphics (IGD)&lt;br /&gt;nVidia Geforce 8400 GS PCI Express x16 Graphics Card&lt;br /&gt;&lt;br /&gt;Fedora 11 Linux 64-bit Xen paravirt operations Domain 0 Host Operating System&lt;br /&gt;Xen 3.5 Unstable/Development Type 1 Hypervisor&lt;br /&gt;Jeremy Fitzhardinge's Xen paravirt-ops domain 0 Kernel 2.6.31-rc6&lt;br /&gt;&lt;br /&gt;BIOS Configuration:&lt;br /&gt;&lt;br /&gt;Primary Video Adapter: IGD&lt;br /&gt;Intel Virtualization Technology (VT): Enabled&lt;br /&gt;Intel Virtualization Technology for Directed I/O (VT-d): Enabled&lt;br /&gt;&lt;br /&gt;Please see screenshots below:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/SpQCLjxYuxI/AAAAAAAAAT8/ZDiDLWALTAM/s1600-h/PCI-E+x16+graphics+pass+through+01.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/SpQCLjxYuxI/AAAAAAAAAT8/ZDiDLWALTAM/s400/PCI-E+x16+graphics+pass+through+01.png" alt="" id="BLOGGER_PHOTO_ID_5373922652964043538" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/SpQCL9YPx5I/AAAAAAAAAUE/RCpopwpAOAY/s1600-h/PCI-E+x16+graphics+pass+through+02.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/SpQCL9YPx5I/AAAAAAAAAUE/RCpopwpAOAY/s400/PCI-E+x16+graphics+pass+through+02.png" alt="" id="BLOGGER_PHOTO_ID_5373922659837921170" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://lists.xensource.com/archives/html/xen-devel/2009-08/index.html"&gt;Click here for technical discussions on the Xen developers mailing list (August 2009 entries)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-7333949017752435477?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/7333949017752435477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/7333949017752435477'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/08/nvidia-geforce-8400-gs-pci-express-x16.html' title='nVidia Geforce 8400 GS PCI Express x16 VGA Pass Through to Windows XP Home 32-bit HVM Virtual Machine with Intel Desktop Board DQ45CB'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_zzjv8MCM2sk/SpQCLjxYuxI/AAAAAAAAAT8/ZDiDLWALTAM/s72-c/PCI-E+x16+graphics+pass+through+01.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-193411156324030258</id><published>2009-08-25T00:03:00.004+08:00</published><updated>2009-08-25T01:31:32.579+08:00</updated><title type='text'>Xen Paravirt Operations Domain 0 Serial Console Testing</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/SpK6D_eSIfI/AAAAAAAAATs/NdSPpfddTvQ/s1600-h/xen+serial+console.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/SpK6D_eSIfI/AAAAAAAAATs/NdSPpfddTvQ/s400/xen+serial+console.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5373561883147248114" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/SpLOXl9IoWI/AAAAAAAAAT0/rdlMAFeQAKY/s1600-h/xen+serial+console+02.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 250px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/SpLOXl9IoWI/AAAAAAAAAT0/rdlMAFeQAKY/s400/xen+serial+console+02.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5373584210127266146" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-193411156324030258?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/193411156324030258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/193411156324030258'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/08/xen-paravirt-operations-domain-0-serial.html' title='Xen Paravirt Operations Domain 0 Serial Console Testing'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_zzjv8MCM2sk/SpK6D_eSIfI/AAAAAAAAATs/NdSPpfddTvQ/s72-c/xen+serial+console.JPG' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-6564184594760400349</id><published>2009-08-16T14:47:00.018+08:00</published><updated>2009-09-28T12:32:15.538+08:00</updated><title type='text'>My Intel Desktop Board DQ45CB Arrives from Amazon.com USA!</title><content type='html'>I paid for this Intel Desktop Board DQ45CB from Amazon.com at SGD$177. It arrived in Singapore on 13 August 2009 Thursday.&lt;br /&gt;&lt;br /&gt;You can't find this particular model anywhere in Singapore. This motherboard has the Intel Express Q45 chipset which supports Intel Virtualization Technology for Directed Input/Output (VT-d). Intel X58 chipset also supports VT-d but the Core i7 and motherboard bundles currently selling in Sim Lim Square (SLS) in Singapore are too expensive.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/SoesAf7Qk2I/AAAAAAAAASs/uJScfyrnPyo/s1600-h/DSCF1748.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/SoesAf7Qk2I/AAAAAAAAASs/uJScfyrnPyo/s400/DSCF1748.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5370450205232632674" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/SoetIK1kHhI/AAAAAAAAAS0/fE7njO39Uus/s1600-h/DSCF1754.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/SoetIK1kHhI/AAAAAAAAAS0/fE7njO39Uus/s400/DSCF1754.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5370451436522184210" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/SoevGxWp2eI/AAAAAAAAAS8/NTR3eBwjb54/s1600-h/DSCF1758.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/SoevGxWp2eI/AAAAAAAAAS8/NTR3eBwjb54/s400/DSCF1758.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5370453611525036514" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/SoewYO11j9I/AAAAAAAAATE/Tw4D2GWtr8w/s1600-h/DSCF1761.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/SoewYO11j9I/AAAAAAAAATE/Tw4D2GWtr8w/s400/DSCF1761.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5370455011009859538" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Then I made a visit to Sim Lim Square (SLS) in Singapore on the evening of 14 August 2009 Friday after work to buy this Intel Pentium Dual Core E6300 microprocessor at SGD$130. Pardon my frugality but I am too poor to afford the Intel Core 2 Duo series processors. I am not earning a lot.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/Soe1rUt2VpI/AAAAAAAAATM/Y7yeTXAH_VI/s1600-h/DSCF1731.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/Soe1rUt2VpI/AAAAAAAAATM/Y7yeTXAH_VI/s400/DSCF1731.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5370460836562622098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/Soe2taDtX4I/AAAAAAAAATU/tPuZPuHvH2U/s1600-h/DSCF1732.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/Soe2taDtX4I/AAAAAAAAATU/tPuZPuHvH2U/s400/DSCF1732.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5370461971867852674" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/Soe4kbH7x4I/AAAAAAAAATc/GvTtuUrBxq0/s1600-h/DSCF1734.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/Soe4kbH7x4I/AAAAAAAAATc/GvTtuUrBxq0/s400/DSCF1734.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5370464016558442370" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I also bought this PCI 32-bit (note: it is not AGP or PCI Express x16) graphics card (ATI Rage 128 32 MB) for SGD$40 at SLS.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/Soe6LTuPDtI/AAAAAAAAATk/R-v0swB5npM/s1600-h/DSCF1729.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/Soe6LTuPDtI/AAAAAAAAATk/R-v0swB5npM/s400/DSCF1729.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5370465784098131666" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As I need lots of physical memory to run the open source Xen-based virtual machines, I made the decision to purchase two sticks of 2 GB DDR2-800 MHz memory. This is in addition to 2 sticks of 2 GB DDR2-800 MHz memory I already have running on my existing AMD Ahtlon 64 X2 Dual Core 4800+ Socket AM2 system, which I will be decommissioning later. So in total I will have 8 GB of memory.&lt;br /&gt;&lt;br /&gt;DDR2 memory is dirt cheap nowadays.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-6564184594760400349?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/6564184594760400349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/6564184594760400349'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/08/my-intel-desktop-board-dq45cb-arrives.html' title='My Intel Desktop Board DQ45CB Arrives from Amazon.com USA!'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_zzjv8MCM2sk/SoesAf7Qk2I/AAAAAAAAASs/uJScfyrnPyo/s72-c/DSCF1748.JPG' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-6322264621730521745</id><published>2009-07-29T12:11:00.007+08:00</published><updated>2009-07-29T12:23:38.068+08:00</updated><title type='text'>My Windows Server 2003 Standard Edition 32-bit HVM Virtual Machine on Xen 3.4.1 RC8 Dom 0 Kernel 2.6.30 RC6 on OpenSUSE 11.1 Linux 32-bit Host</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm_MjgZOrGI/AAAAAAAAAP0/Fo_FcvHES7s/s1600-h/01.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm_MjgZOrGI/AAAAAAAAAP0/Fo_FcvHES7s/s400/01.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363730591584791650" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm_Mju17nQI/AAAAAAAAAP8/1ghuB8EtcSg/s1600-h/02.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm_Mju17nQI/AAAAAAAAAP8/1ghuB8EtcSg/s400/02.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363730595463273730" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm_Mj4IQDWI/AAAAAAAAAQE/zDKLmFQjobk/s1600-h/03.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm_Mj4IQDWI/AAAAAAAAAQE/zDKLmFQjobk/s400/03.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363730597956029794" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm_MkFQvvlI/AAAAAAAAAQM/gdyRVctQKSM/s1600-h/04.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm_MkFQvvlI/AAAAAAAAAQM/gdyRVctQKSM/s400/04.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363730601481322066" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm_Mkf3zIQI/AAAAAAAAAQU/jOku0-0vfxo/s1600-h/05.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm_Mkf3zIQI/AAAAAAAAAQU/jOku0-0vfxo/s400/05.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363730608624443650" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm_M9tgTYrI/AAAAAAAAAQc/KFLCllJO3TY/s1600-h/06.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm_M9tgTYrI/AAAAAAAAAQc/KFLCllJO3TY/s400/06.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363731041780720306" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm_M99l50pI/AAAAAAAAAQk/2XH1tLnp468/s1600-h/07.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm_M99l50pI/AAAAAAAAAQk/2XH1tLnp468/s400/07.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363731046099178130" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm_M-MXwzqI/AAAAAAAAAQs/8MTWc087uZk/s1600-h/08.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm_M-MXwzqI/AAAAAAAAAQs/8MTWc087uZk/s400/08.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363731050066398882" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm_M-Q0yFhI/AAAAAAAAAQ0/aILNn3hO1-c/s1600-h/09.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm_M-Q0yFhI/AAAAAAAAAQ0/aILNn3hO1-c/s400/09.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363731051261859346" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm_M-y9thsI/AAAAAAAAAQ8/OF8vv2OjHB0/s1600-h/10.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm_M-y9thsI/AAAAAAAAAQ8/OF8vv2OjHB0/s400/10.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363731060426114754" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm_NZ3bRv1I/AAAAAAAAARE/ODzgUFMI0UA/s1600-h/11.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm_NZ3bRv1I/AAAAAAAAARE/ODzgUFMI0UA/s400/11.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363731525480333138" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm_NaTA-zwI/AAAAAAAAARM/oUSs_DpUcOc/s1600-h/12.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm_NaTA-zwI/AAAAAAAAARM/oUSs_DpUcOc/s400/12.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363731532886232834" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm_NakTOxNI/AAAAAAAAARU/eaubZqjlDCE/s1600-h/13.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm_NakTOxNI/AAAAAAAAARU/eaubZqjlDCE/s400/13.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363731537526179026" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm_Na6lr1bI/AAAAAAAAARc/b722frnqnNg/s1600-h/14.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm_Na6lr1bI/AAAAAAAAARc/b722frnqnNg/s400/14.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363731543509161394" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm_NbKi_UdI/AAAAAAAAARk/EwtXedHxcdQ/s1600-h/15.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm_NbKi_UdI/AAAAAAAAARk/EwtXedHxcdQ/s400/15.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363731547792822738" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm_N8eoK5wI/AAAAAAAAARs/inXz3t3g8LA/s1600-h/16.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm_N8eoK5wI/AAAAAAAAARs/inXz3t3g8LA/s400/16.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363732120118945538" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm_N8jwivYI/AAAAAAAAAR0/xq3deMBvQWs/s1600-h/17.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm_N8jwivYI/AAAAAAAAAR0/xq3deMBvQWs/s400/17.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363732121496239490" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm_N9L4tO6I/AAAAAAAAAR8/VglGhXnVJRE/s1600-h/18.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm_N9L4tO6I/AAAAAAAAAR8/VglGhXnVJRE/s400/18.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363732132267899810" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm_N9BYaFJI/AAAAAAAAASE/ygr4FUC6zPw/s1600-h/19.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm_N9BYaFJI/AAAAAAAAASE/ygr4FUC6zPw/s400/19.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363732129448072338" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm_N9bnDBOI/AAAAAAAAASM/rp_X0eXNBcw/s1600-h/20.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm_N9bnDBOI/AAAAAAAAASM/rp_X0eXNBcw/s400/20.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363732136488797410" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm_OOnTtnJI/AAAAAAAAASc/8dFOvKNKcoc/s1600-h/21.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm_OOnTtnJI/AAAAAAAAASc/8dFOvKNKcoc/s400/21.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363732431686704274" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm_OOd5Nc2I/AAAAAAAAASU/vFxyBW_dvw8/s1600-h/22.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm_OOd5Nc2I/AAAAAAAAASU/vFxyBW_dvw8/s400/22.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363732429159625570" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm_OtsYI00I/AAAAAAAAASk/Ag8vFxSzsZc/s1600-h/config.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm_OtsYI00I/AAAAAAAAASk/Ag8vFxSzsZc/s400/config.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363732965623386946" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-6322264621730521745?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/6322264621730521745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/6322264621730521745'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/07/my-windows-server-2003-standard-edition.html' title='My Windows Server 2003 Standard Edition 32-bit HVM Virtual Machine on Xen 3.4.1 RC8 Dom 0 Kernel 2.6.30 RC6 on OpenSUSE 11.1 Linux 32-bit Host'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm_MjgZOrGI/AAAAAAAAAP0/Fo_FcvHES7s/s72-c/01.jpeg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-8835047401271958604</id><published>2009-07-28T18:43:00.007+08:00</published><updated>2009-07-28T19:06:50.296+08:00</updated><title type='text'>My Windows XP HVM Virtual Machine on Xen 3.4.1 RC8 Dom 0 Kernel 2.6.30 RC6 on OpenSUSE 11.1 Linux 32-bit Host Operating System</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm7XdsDSsyI/AAAAAAAAANc/_jSnatn9dW4/s1600-h/01.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm7XdsDSsyI/AAAAAAAAANc/_jSnatn9dW4/s400/01.jpeg" alt="" id="BLOGGER_PHOTO_ID_5363461111285986082" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm7Xd9dMm9I/AAAAAAAAANk/bgZama6N4OQ/s1600-h/02.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm7Xd9dMm9I/AAAAAAAAANk/bgZama6N4OQ/s400/02.jpeg" alt="" id="BLOGGER_PHOTO_ID_5363461115958041554" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm7Xdzt7GeI/AAAAAAAAANs/0P3_7B-4NJQ/s1600-h/03.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm7Xdzt7GeI/AAAAAAAAANs/0P3_7B-4NJQ/s400/03.jpeg" alt="" id="BLOGGER_PHOTO_ID_5363461113343842786" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm7XeMN6q7I/AAAAAAAAAN0/DlmHpRcbako/s1600-h/04.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm7XeMN6q7I/AAAAAAAAAN0/DlmHpRcbako/s400/04.jpeg" alt="" id="BLOGGER_PHOTO_ID_5363461119920483250" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm7Xedg2rYI/AAAAAAAAAN8/niZIj2WcN9w/s1600-h/05.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm7Xedg2rYI/AAAAAAAAAN8/niZIj2WcN9w/s400/05.jpeg" alt="" id="BLOGGER_PHOTO_ID_5363461124563316098" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm7X03HVl2I/AAAAAAAAAOE/TeeA2b6sgaA/s1600-h/06.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm7X03HVl2I/AAAAAAAAAOE/TeeA2b6sgaA/s400/06.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363461509392734050" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm7X1KStiCI/AAAAAAAAAOM/SvrHgD6QefA/s1600-h/07.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm7X1KStiCI/AAAAAAAAAOM/SvrHgD6QefA/s400/07.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363461514540714018" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm7X1RqRezI/AAAAAAAAAOU/E14wMTtcuww/s1600-h/08.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm7X1RqRezI/AAAAAAAAAOU/E14wMTtcuww/s400/08.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363461516518587186" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm7X1jaqrII/AAAAAAAAAOc/hxLMFDTY53Y/s1600-h/09.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm7X1jaqrII/AAAAAAAAAOc/hxLMFDTY53Y/s400/09.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363461521284967554" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm7X1x0MzgI/AAAAAAAAAOk/ky--tSsEd3E/s1600-h/10.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm7X1x0MzgI/AAAAAAAAAOk/ky--tSsEd3E/s400/10.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363461525150158338" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm7YNtv2aBI/AAAAAAAAAOs/GiM8blaDUmg/s1600-h/11.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm7YNtv2aBI/AAAAAAAAAOs/GiM8blaDUmg/s400/11.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363461936375031826" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm7YN-X6Q_I/AAAAAAAAAO0/q9LF6rBoVpk/s1600-h/12.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm7YN-X6Q_I/AAAAAAAAAO0/q9LF6rBoVpk/s400/12.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363461940838024178" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm7YOOPnctI/AAAAAAAAAO8/9UWE5Phn85M/s1600-h/13.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm7YOOPnctI/AAAAAAAAAO8/9UWE5Phn85M/s400/13.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363461945098203858" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm7YOXszt2I/AAAAAAAAAPE/Jc_NUfq6UZ8/s1600-h/14.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm7YOXszt2I/AAAAAAAAAPE/Jc_NUfq6UZ8/s400/14.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363461947636561762" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm7YOq6McCI/AAAAAAAAAPM/m1NVGIg3SNk/s1600-h/15.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm7YOq6McCI/AAAAAAAAAPM/m1NVGIg3SNk/s400/15.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363461952792981538" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm7Ye5sTc_I/AAAAAAAAAPU/z3plNs6VOGE/s1600-h/16.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm7Ye5sTc_I/AAAAAAAAAPU/z3plNs6VOGE/s400/16.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363462231639159794" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm7a9DkzxoI/AAAAAAAAAPc/DLneLa0FZTI/s1600-h/17.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm7a9DkzxoI/AAAAAAAAAPc/DLneLa0FZTI/s400/17.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363464948711409282" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm7btHaiidI/AAAAAAAAAPk/9E0n7l21y7k/s1600-h/config.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm7btHaiidI/AAAAAAAAAPk/9E0n7l21y7k/s400/config.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363465774375799250" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-8835047401271958604?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/8835047401271958604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/8835047401271958604'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/07/my-windows-xp-hvm-virtual-machine-on.html' title='My Windows XP HVM Virtual Machine on Xen 3.4.1 RC8 Dom 0 Kernel 2.6.30 RC6 on OpenSUSE 11.1 Linux 32-bit Host Operating System'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm7XdsDSsyI/AAAAAAAAANc/_jSnatn9dW4/s72-c/01.jpeg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-4561646346003506420</id><published>2009-07-28T12:47:00.007+08:00</published><updated>2009-07-28T19:09:59.516+08:00</updated><title type='text'>My Windows 7 HVM Virtual Machine on Xen 3.4.1 RC8 Dom 0 Kernel 2.6.30 RC6 on OpenSUSE 11.1 32-bit Linux Host Operating System</title><content type='html'>Virtualization for Windows 7 using Xen hypervisor is pretty straight forward...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm6DcEUl1RI/AAAAAAAAAKc/LwAMw31pz6A/s1600-h/01.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm6DcEUl1RI/AAAAAAAAAKc/LwAMw31pz6A/s400/01.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363368724464522514" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm6DcbSO1PI/AAAAAAAAAKk/0KeQw8-sbvY/s1600-h/02.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm6DcbSO1PI/AAAAAAAAAKk/0KeQw8-sbvY/s400/02.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363368730628642034" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm6DcpphSAI/AAAAAAAAAKs/NnRsOeCpXdk/s1600-h/03.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm6DcpphSAI/AAAAAAAAAKs/NnRsOeCpXdk/s400/03.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363368734484416514" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm6Dc50OBSI/AAAAAAAAAK0/CjhlYzHIdno/s1600-h/04.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm6Dc50OBSI/AAAAAAAAAK0/CjhlYzHIdno/s400/04.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363368738824258850" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm6DdRJcPLI/AAAAAAAAAK8/kpcR0U2DWJ4/s1600-h/05.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm6DdRJcPLI/AAAAAAAAAK8/kpcR0U2DWJ4/s400/05.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363368745087286450" /&gt;&lt;/a&gt;]&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm6EjdtniZI/AAAAAAAAALE/m5VDWo0IIv4/s1600-h/06.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm6EjdtniZI/AAAAAAAAALE/m5VDWo0IIv4/s400/06.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363369951051090322" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm6EjqSGhoI/AAAAAAAAALM/Yhpkr1rwHwI/s1600-h/07.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm6EjqSGhoI/AAAAAAAAALM/Yhpkr1rwHwI/s400/07.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363369954425341570" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm6Ej4tHWxI/AAAAAAAAALU/U8WBwY0Qpyg/s1600-h/08.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm6Ej4tHWxI/AAAAAAAAALU/U8WBwY0Qpyg/s400/08.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363369958296738578" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm6EkGCTN-I/AAAAAAAAALc/Lk-ul4CFoVU/s1600-h/09.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm6EkGCTN-I/AAAAAAAAALc/Lk-ul4CFoVU/s400/09.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363369961875257314" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm6Ekf2H1CI/AAAAAAAAALk/41_d-zIUE2s/s1600-h/10.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm6Ekf2H1CI/AAAAAAAAALk/41_d-zIUE2s/s400/10.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363369968803501090" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm6FN65-4RI/AAAAAAAAALs/9BrTAVu8QwE/s1600-h/11.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm6FN65-4RI/AAAAAAAAALs/9BrTAVu8QwE/s400/11.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363370680442085650" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm6FOF-5eFI/AAAAAAAAAL0/FI5-2Xa6Kbg/s1600-h/12.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm6FOF-5eFI/AAAAAAAAAL0/FI5-2Xa6Kbg/s400/12.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363370683415492690" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm6FOZXcftI/AAAAAAAAAL8/dH6u3-Bvgcs/s1600-h/13.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm6FOZXcftI/AAAAAAAAAL8/dH6u3-Bvgcs/s400/13.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363370688618725074" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm6FOzcBw6I/AAAAAAAAAME/6Gil0iw-Z9M/s1600-h/14.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm6FOzcBw6I/AAAAAAAAAME/6Gil0iw-Z9M/s400/14.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363370695617266594" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm6FPAMmsiI/AAAAAAAAAMM/y_qsQBbV0Fk/s1600-h/15.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm6FPAMmsiI/AAAAAAAAAMM/y_qsQBbV0Fk/s400/15.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363370699042239010" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm6FpAZz5tI/AAAAAAAAAMU/tRzx_gjRs_g/s1600-h/16.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm6FpAZz5tI/AAAAAAAAAMU/tRzx_gjRs_g/s400/16.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363371145774229202" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm6FpeahYVI/AAAAAAAAAMc/AM1as_FaVQA/s1600-h/17.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm6FpeahYVI/AAAAAAAAAMc/AM1as_FaVQA/s400/17.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363371153830273362" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm6FpoMxi3I/AAAAAAAAAMk/axfKBUl-vPU/s1600-h/18.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm6FpoMxi3I/AAAAAAAAAMk/axfKBUl-vPU/s400/18.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363371156456967026" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm6Fp8nrZ8I/AAAAAAAAAMs/JZ3JsZ1K8qc/s1600-h/19.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm6Fp8nrZ8I/AAAAAAAAAMs/JZ3JsZ1K8qc/s400/19.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363371161938520002" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm6FqS_pWNI/AAAAAAAAAM0/X-rDRwdys04/s1600-h/20.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm6FqS_pWNI/AAAAAAAAAM0/X-rDRwdys04/s400/20.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363371167944628434" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm6GGVdVjHI/AAAAAAAAAM8/l4xn7Whq3oo/s1600-h/21.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm6GGVdVjHI/AAAAAAAAAM8/l4xn7Whq3oo/s400/21.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363371649642368114" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm6GGhw5OII/AAAAAAAAANE/FjYK77BlQJA/s1600-h/22.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm6GGhw5OII/AAAAAAAAANE/FjYK77BlQJA/s400/22.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363371652945623170" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm6GHEM_rlI/AAAAAAAAANM/_3sCIqoUmjc/s1600-h/23.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm6GHEM_rlI/AAAAAAAAANM/_3sCIqoUmjc/s400/23.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363371662190292562" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm6GHTGHAII/AAAAAAAAANU/iywc58H-RWg/s1600-h/24.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm6GHTGHAII/AAAAAAAAANU/iywc58H-RWg/s400/24.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363371666187944066" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm7cc7KdCEI/AAAAAAAAAPs/AUwEMuPvh_8/s1600-h/config.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm7cc7KdCEI/AAAAAAAAAPs/AUwEMuPvh_8/s400/config.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363466595720824898" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-4561646346003506420?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/4561646346003506420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/4561646346003506420'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/07/my-windows-7-hvm-virtual-machine-on-xen.html' title='My Windows 7 HVM Virtual Machine on Xen 3.4.1 RC8 Dom 0 Kernel 2.6.30 RC6 on OpenSUSE 11.1 32-bit Linux Host Operating System'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm6DcEUl1RI/AAAAAAAAAKc/LwAMw31pz6A/s72-c/01.jpeg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-8496004827665578922</id><published>2009-07-27T00:49:00.007+08:00</published><updated>2009-07-27T01:01:06.087+08:00</updated><title type='text'>I/O Virtualization with Intel's VT-d</title><content type='html'>VT-d = Intel Virtualization Technology for Directed Input/Output&lt;br /&gt;&lt;br /&gt;Intel VT-d allows paravirtualized operating systems to access hardware devices on the host operating system directly. It eliminates hardware device emulation and improves I/O performance for the virtual machine tremendously. Intel's VT-d technology is analogous to AMD's IOMMU.&lt;br /&gt;&lt;br /&gt;Article: Intel® Virtualization Technology for Directed I/O (VT-d): Enhancing Intel platforms for efficient virtualization of I/O devices&lt;br /&gt;&lt;br /&gt;URL: &lt;a href="http://software.intel.com/en-us/articles/intel-virtualization-technology-for-directed-io-vt-d-enhancing-intel-platforms-for-efficient-virtualization-of-io-devices/"&gt;http://software.intel.com/en-us/articles/intel-virtualization-technology-for-directed-io-vt-d-enhancing-intel-platforms-for-efficient-virtualization-of-io-devices/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-8496004827665578922?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/8496004827665578922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/8496004827665578922'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/07/io-virtualization-with-intels-vt-d.html' title='I/O Virtualization with Intel&apos;s VT-d'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-5009024176240802940</id><published>2009-07-26T21:42:00.002+08:00</published><updated>2009-07-26T21:49:38.823+08:00</updated><title type='text'>I/O Virtualization with AMD's IOMMU</title><content type='html'>AMD = Advanced Micro Devices&lt;br /&gt;IOMMU = Input/Output Memory Management Unit&lt;br /&gt;&lt;br /&gt;In short, IOMMU allows paravirtualized guest operating systems to access physical devices in the host 0perating system directly. You can pass through PCI devices in the host operating system to the virtual machine.&lt;br /&gt;&lt;br /&gt;Article: I/O Virtualization and AMD's IOMMU&lt;br /&gt;&lt;br /&gt;Author: Steve Apiki&lt;br /&gt;&lt;br /&gt;URL: http://developer.amd.com/documentation/articles/pages/892006101.aspx&lt;br /&gt;&lt;br /&gt;[QUOTE Steve Apiki]&lt;br /&gt;&lt;br /&gt;&lt;div id="ctl00_PlaceHolderMain_articleContentField__ControlWrapper_RichHtmlField" style="display: inline;"&gt;&lt;p&gt;VMMs such as VMWare and Xen have shown that you can build efficient virtual machines on x86 without hardware assistance. But working around the virtualization constraints of x86 introduces some significant software overhead—overhead that can be eliminated with some architectural improvements at a lower level.&lt;/p&gt; &lt;p&gt;AMD's AMD-V hardware virtualization technology, an AMD64 extension, puts the    first hardware pillar under these VMMs by providing, effectively, a super-privileged    operating mode in which VMMs can control guest operating systems. We've discussed    AMD-V in an &lt;a target="_blank"&gt;earlier article&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;The second pillar will be hardware support for virtual I/O. In February, AMD published an I/O virtualization specification that outlines a design for a device called an IOMMU (I/O Memory Management Unit). Implementations of this design will be fielded as part of support chipsets, expected in 2007. When those implementations arrive, VMMs will be able to use IOMMU hardware to provide faster, more direct, and more secure access to physical devices from software running on guest operating systems.&lt;/p&gt;&lt;p&gt;Current VMMs must route I/O requests from guest OS drivers through the VMM, using emulated devices. They do this both to manage access to common memory space and to restrict real device access to kernel mode drivers. AMD's IOMMU design eliminates both of these constraints by providing DMA address translation and permission checking for device reads and writes. With an IOMMU, an unmodified driver in a guest OS can directly access its target device, without the overhead of running through the VMM, and without device emulation.&lt;/p&gt;&lt;p&gt;&lt;b&gt;What's an IOMMU?&lt;/b&gt;&lt;br /&gt;An IOMMU manages device access to system memory. It sits between peripheral devices and the host, translating addresses from device requests into system memory addresses and checking appropriate permissions on each access.&lt;/p&gt;&lt;p&gt;Typically, AMD's IOMMU will be deployed as part of a HyperTransport or PCI bridge device. In high-end systems where there may be multiple HyperTransport links between CPU(s) and I/O hubs, there will need to be multiple IOMMUs as well.&lt;/p&gt;&lt;p&gt;Existing AMD64 devices already include a more limited address translation facility, called a GART (Graphics Address Remapping Table), right on chip. The on-chip GART has been used for device address translation in existing systems, and is sometimes itself referred to as an IOMMU (especially in discussions of the Linux kernel), which can lead to confusion between the existing GART and the new IOMMU specification that we're discussing here.&lt;/p&gt;&lt;p&gt;The GART was originally designed to allow graphics chips to read textures directly from system memory, using address translation to gather allocations in system memory into a contiguous region mapped to an address that the graphics device could see. But the GART has also been put to use by Linux kernel programmers to enable legacy 32-bit PCI devices to access regions of system memory outside of their addressable range. This is done by programming the device to work inside the "graphics aperture" memory region controlled by the GART, and then using the GART to translate this address to the real target address, above 4 GB.&lt;/p&gt;&lt;p&gt;The new IOMMU can do this trick, too, only without the restrictions of the GART (which, after all, wasn't designed for this purpose). While the GART is limited to working inside the graphics aperture, the IOMMU can translate any address presented by the device to a system address.&lt;/p&gt;&lt;p&gt;More important, the IOMMU provides protection mechanisms that restrict device access to memory, whereas the GART performs translation only. It's the combination of address translation and access protection that makes the IOMMU so valuable for virtualization.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Translation and Protection&lt;/b&gt;&lt;br /&gt;With the IOMMU, each device is assigned a protection domain. The protection domain defines the I/O page translations that will be used for each device in the domain, and specifies the read/write permissions for each I/O page. For virtualization, VMMs can assign all devices assigned to a given guest OS the same protection domain, which will create a consistent set of address translations and access restrictions used by all the devices running under a given guest OS.&lt;/p&gt;&lt;p&gt;Page translations are cached by the IOMMU in a TLB (Translation Lookaside Buffer). TLB entries are keyed by protection domain and by device request address. Because the protection domain is part of the cache key, cached addresses in the TLB are shared by all devices in the domain.&lt;/p&gt;&lt;p&gt;The IOMMU determines to what protection domain a device belongs, and then uses that domain and the device request address to look in the TLB. TLB entries contain read/write permission flags as well as the target system address for translation, so if an entry is found in the cache, the permission flags can be used to determine whether access is allowed or not.&lt;/p&gt;&lt;p&gt;For addresses that are not in the cache (for a given domain), the IOMMU moves on and looks through the I/O page tables associated with the device. I/O page table entries also contain permission information linked to system addresses. (There are also additional permission flags that can be set at the device level, and on directory entries encountered through the lookup process.)&lt;/p&gt;&lt;p&gt;So, all address translation attempts either end in a successful lookup, in which case appropriate permission flags tell the IOMMU whether to allow or block access, or in an unsuccessful lookup, in which case, naturally, the translation attempt fails. Using the IOMMU, then, the VMM is able to control what system pages should be visible to each device (or group of devices in a protection domain), and to specify the read/write access permissions on each page for each domain. It does this by controlling the I/O page tables that the IOMMU uses for address lookups.&lt;/p&gt;&lt;p&gt;The twin functions of translation and protection provided by the IOMMU provide a way to operate devices almost completely from user code, without kernel mode drivers. Instead of using trusted drivers to control device access to system memory, the IOMMU can be used to restrict device DMA to memory allocated by a user process. Device memory access is still protected by privileged code, but it's the privileged code that sets up the I/O page tables, not the drivers.&lt;/p&gt;&lt;p&gt;We have to say "almost," above, because interrupt handlers still need to be run in kernel mode. One way to take advantage of the IOMMU would be to create a limited kernel mode driver that contained interrupt handlers and otherwise control the device from user code.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Direct Access&lt;/b&gt;&lt;br /&gt;An IOMMU makes I/O virtualization more efficient by allowing VMMs to directly assign real devices to guest operating systems. It's not possible for a VMM to emulate the translation and protection functions of an IOMMU, because the VMM can't get between kernel-mode drivers running on the guest OS and the underlying hardware. So, in the absence of an IOMMU, VMMs instead present an emulated device to the guest OS. The VMM then translates the guest's requests, ultimately, into requests to the real driver running down on the host OS or on the hypervisor.&lt;/p&gt;&lt;p&gt;With an IOMMU, the VMM sets up the I/O page tables to map system physical addresses to guest physical addresses, sets up a protection domain for the guest OS, and then lets the guest OS proceed as usual. Drivers written for the real device run as part of the guest OS unmodified, unaware of the underlying translations. Guest I/O transactions are isolated from those of other guests by I/O mapping of the IOMMU.&lt;/p&gt;&lt;p&gt;The IOMMU doesn't support demand paging of system memory. It can't, because peripherals can't be told to retry an operation, which would be required to deal with page loads. DMA transfers to pages that are not present will simply fail. Since the VMM can't know what pages will be DMA targets, the VMM is required to lock the entire guest in memory in order to work with peripherals through the IOMMU.&lt;/p&gt;&lt;p&gt;It's clear that AMD's IOMMU will make a big difference in virtualization overhead for I/O devices, by removing device emulation, by removing layers of translations, and by allowing native drivers to work with devices directly. It will be exciting to see what kind of performance results when this technology gets in the hands of VMM programmers.&lt;/p&gt;&lt;p&gt;&lt;i&gt;Steve Apiki is senior developer at Appropriate Solutions, Inc., a Peterborough, NH consulting firm that builds server-based software solutions for a wide variety of platforms using an equally wide variety of tools. Steve has been writing about software and technology for over 15 years.&lt;/i&gt;&lt;/p&gt;&lt;/div&gt;[/QUOTE]&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-5009024176240802940?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/5009024176240802940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/5009024176240802940'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/07/io-virtualization-with-amds-iommu.html' title='I/O Virtualization with AMD&apos;s IOMMU'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-7744867864109181265</id><published>2009-07-26T21:30:00.003+08:00</published><updated>2009-07-26T21:41:26.988+08:00</updated><title type='text'>Upcoming Xen 4.0 May Provide Full Support for AMD's IOMMU</title><content type='html'>&lt;a href="http://www.xen.org/download/roadmap.html"&gt;Click here for Xen Roadmap&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;[QUOTE]&lt;br /&gt;&lt;h1&gt;Xen Product Roadmap&lt;/h1&gt;                       &lt;p&gt;&lt;span class="headerText"&gt;Xen 3.4 is now &lt;a href="http://www.xen.org/download/"&gt;live&lt;/a&gt;.         The following features/enhancements are proposed for Xen 4.0; see the complete community list at         &lt;a href="http://wiki.xensource.com/xenwiki/XenRoadMap"&gt;Xen.org Wiki Roadmap&lt;/a&gt;:&lt;/span&gt;&lt;/p&gt; &lt;p&gt;        &lt;/p&gt;&lt;ul&gt;&lt;li&gt;RDMA Live Migration Support&lt;/li&gt;&lt;li&gt;Dom0 kernel in Linux 2.6.30 or later&lt;/li&gt;&lt;li&gt;Dom0 support for Marvell 6480 disk driver&lt;/li&gt;&lt;li&gt;Pass through USB-Controllers/Devices for PV Guests&lt;/li&gt;&lt;li&gt;Fault Tolerance - Project Remus and/or Kemari&lt;/li&gt;&lt;li&gt;Monitor, Limit, Control network traffic coming at DomUs&lt;/li&gt;&lt;li&gt;Internationalization / Unicode Support&lt;/li&gt;&lt;li&gt;Configure Virtual Bridge like Real Switch (e.g. Control VLAN, port status)&lt;/li&gt;&lt;li&gt;VLan tagging per NIC int he VM Config File&lt;/li&gt;&lt;li&gt;Virtual Ethernet Switch&lt;/li&gt;&lt;li&gt;Physical Xen boot/install support via native UEFI (pUEFI) and virtual UEFI (vUEFI) support&lt;/li&gt;&lt;li&gt;Limit I/O for individual disks of VM (similar to credit scheduler weight) &lt;/li&gt;&lt;li&gt;Dynamic Memory Management for Overcommiting RAM&lt;/li&gt;&lt;li&gt;PCI CGA Passthrough for VT-d (vendor cards like Nvidia, AIT, etc)&lt;/li&gt;&lt;li&gt;Full AMD IOMMU Support&lt;/li&gt;&lt;li&gt;Online resizing of DomU Disks&lt;/li&gt;&lt;li&gt;Cross compliling Xen and Modular Builds&lt;/li&gt;&lt;/ul&gt;     &lt;b&gt;If you are interested in new features, please submit your ideas for Xen 4.0 to the&lt;b&gt; &lt;a href="mailto:xen-devel@lists.xenserver.com"&gt;xen-devel mailing list&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/b&gt;[/QUOTE]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://wiki.xensource.com/xenwiki/XenRoadMap"&gt;Click here for Xen 4.0 Feature Requests List&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;[QUOTE]&lt;br /&gt;&lt;br /&gt;&lt;p class="line874"&gt;Here is the active Xen 4.0 Feature Requests &lt;span class="anchor" id="line-7"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-8"&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p class="line862"&gt;Robert Dunkley (&lt;a class="mailto" href="mailto:Robert@saq.co.uk"&gt;Robert@saq.co.uk&lt;/a&gt;) - RDMA Live Migration Support (allow for faster and smoohter live migration when  &lt;span class="anchor" id="line-9"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class="line874"&gt;using Infiniband or Iwarp NICS) &lt;span class="anchor" id="line-10"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-11"&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p class="line862"&gt;Luke Crawford (&lt;a class="mailto" href="mailto:lsc@prgmr.com"&gt;lsc@prgmr.com&lt;/a&gt;) - Dom0 kernel in Linux 2.6.30 kernel and Marvell 6480 disk driver &lt;span class="anchor" id="line-12"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-13"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="gap"&gt;&lt;p class="line862"&gt;Franz Von Hahn [&lt;a class="mailto" href="mailto:franz.vonhahn@yahoo.de"&gt;franz.vonhahn@yahoo.de&lt;/a&gt;] - stable support for passing through usb-controllers/devices and pci-devices for paravirtualized guests would be really great. &lt;span class="anchor" id="line-14"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-15"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="gap"&gt;Fault Tolerance - Project Remus and/or Kemari &lt;span class="anchor" id="line-16"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-17"&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="gap"&gt;&lt;p class="line862"&gt;Kashif Ali (&lt;a class="mailto" href="mailto:kashif_quaidian@hotmail.com"&gt;kashif_quaidian@hotmail.com&lt;/a&gt;) - Monitor, Limit, &amp;amp; Control network traffic coming at &lt;a class="nonexistent" href="http://wiki.xensource.com/xenwiki/DomUs"&gt;DomUs&lt;/a&gt; &lt;span class="anchor" id="line-18"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-19"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="gap"&gt;&lt;p class="line862"&gt;Nathan Stratton [&lt;a class="mailto" href="mailto:nathan@robotics.net"&gt;nathan@robotics.net&lt;/a&gt;] - RDMA infiniband support for migration &lt;span class="anchor" id="line-20"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-21"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="gap"&gt;&lt;p class="line862"&gt;Ramachandran Radhakrishnan [&lt;a class="mailto" href="mailto:rama.radha@gmail.com"&gt;rama.radha@gmail.com&lt;/a&gt;] - Internationalization / Unicode support &lt;span class="anchor" id="line-22"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-23"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="gap"&gt;&lt;p class="line862"&gt;Alessandro R. [&lt;a class="mailto" href="mailto:lord2y@gmail.com"&gt;lord2y@gmail.com&lt;/a&gt;] - A tool that permit to configure virtual bridge like real switch (e.g. &lt;span class="anchor" id="line-24"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class="line874"&gt;control VLAN, port status etc.); VLan tagging per NIC in the VM config file; Xen with a Virtual Ethernet Switch (like VDE2)? &lt;span class="anchor" id="line-25"&gt;&lt;/span&gt;You can create a switch per client ; from Kieran Mansley [&lt;a class="mailto" href="mailto:kmansley@solarflare.com"&gt;kmansley@solarflare.com&lt;/a&gt;] :  &lt;span class="anchor" id="line-26"&gt;&lt;/span&gt;With Xen (and other virtualisation technologies) users often end up with a set of bridges, v-switches, hardware switches, and now switches (albeit limited in capabilities) in virtualisation-aware NICs. It would be very useful to develop a control plane over all these devices to allow them to be sensibly configured from a single point. I know there are some people working on bits of this problem but bringing it all together to work on Xen, using open APIs and protocols so that other technologies could be easily integrated, would help a lot. &lt;span class="anchor" id="line-27"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-28"&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p class="line862"&gt;Dong Wei (&lt;a class="mailto" href="mailto:dong.wei@hp.com"&gt;dong.wei@hp.com&lt;/a&gt;) - the physical Xen boot/install support via native UEFI (pUEFI) and virtual UEFI (vUEFI) support  &lt;span class="anchor" id="line-29"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-30"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="gap"&gt;&lt;p class="line862"&gt;Thiago Camargo Martins Cordeiro [&lt;a class="mailto" href="mailto:thiagocmartinsc@gmail.com"&gt;thiagocmartinsc@gmail.com&lt;/a&gt;]- Virtual Ethernet Switch, virtual uplinks (through SSH, for example), virtual cables, virtual plugs, so I can create a virtual switch per client on each of my dom0 of my cluster, or maybe it needs a easy way to integrate itself with VDE2. &lt;span class="anchor" id="line-31"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-32"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="gap"&gt;&lt;p class="line862"&gt;Philipp Schmid (&lt;a class="mailto" href="mailto:schmidp@schmidp.com"&gt;schmidp@schmidp.com&lt;/a&gt;) - Limit I/O for individual disks of VM (similar to credit scheduler weight) &lt;span class="anchor" id="line-33"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-34"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="gap"&gt;&lt;p class="line862"&gt;Francesco Gallo (&lt;a class="mailto" href="mailto:cluster@xinet.it"&gt;cluster@xinet.it&lt;/a&gt;) - Dynamic Memoery Management for Overcommitting RAM  &lt;span class="anchor" id="line-35"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-36"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="gap"&gt;&lt;p class="line862"&gt;Sander Eikelenboom [&lt;a class="mailto" href="mailto:linux@eikelenboom.it"&gt;linux@eikelenboom.it&lt;/a&gt;] - as many others .. VGA (pci-e/pci) passthrough, complete USB passthrough, (also working for webcams/videograbbers etc) ; i'm currently working with "USB over IP" from the &lt;a class="http" href="http://usbip.sourceforge.net/"&gt;http://usbip.sourceforge.net/&lt;/a&gt; project. It is working fine for printers/scanners, and almost perfect for webcam (some little distortion left). But functionality within XEN would be better. &lt;span class="anchor" id="line-37"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-38"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="gap"&gt;&lt;p class="line862"&gt;Paul Schulze [&lt;a class="mailto" href="mailto:avlex@gmx.net"&gt;avlex@gmx.net&lt;/a&gt;] - Fully functional USB passthrough would be really nice to have, but to be useful, I would also like to also request some sort of device management, that allows automatically assigning devices to a DomU whenever it is connected and a way to have unknown devices assigned to a default DomU. Otherwise, interaction on the Dom0 will be needed for each and every time, a device is connected; Comments form Sander Eikelenboom [&lt;a class="mailto" href="mailto:linux@eikelenboom.it"&gt;linux@eikelenboom.it&lt;/a&gt;] Good point, some good and flexible management would be nice to have too. USBIP at the moment can handle: &lt;span class="anchor" id="line-39"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class="line874"&gt;- remove binding to currently loaded modules &lt;span class="anchor" id="line-40"&gt;&lt;/span&gt;- binding to usbip at plugin time &lt;span class="anchor" id="line-41"&gt;&lt;/span&gt;In some quite simple userspace management tools. &lt;span class="anchor" id="line-42"&gt;&lt;/span&gt;For xen it think xend would be the place for normal rules, and xm for hotplug ? &lt;span class="anchor" id="line-43"&gt;&lt;/span&gt;It would be nice if you could make the rules for usb passthrough match with both usb port numbers as well as device id's, perhaps even with wildcards. &lt;span class="anchor" id="line-44"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-45"&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p class="line862"&gt;Tim Moore (&lt;a class="mailto" href="mailto:timothy.moore@expidas.net"&gt;timothy.moore@expidas.net&lt;/a&gt;) - PCI CGA Passthrough for VT-d (vendor cards like Nvidia, AIT, etc); &lt;span class="anchor" id="line-46"&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li style="list-style-type: none;"&gt;&lt;p class="line862"&gt;XCI Workaround in Xen (Jean Guyader - &lt;a class="mailto" href="mailto:jean.guyader@gmail.com"&gt;jean.guyader@gmail.com&lt;/a&gt;) &lt;span class="anchor" id="line-47"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-48"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li class="gap"&gt;&lt;p class="line862"&gt;Paul Schulze (&lt;a class="mailto" href="mailto:avlex82@googlemail.com"&gt;avlex82@googlemail.com&lt;/a&gt;) - Full AMD IOMMU SUpport &lt;span class="anchor" id="line-49"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-50"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class="gap"&gt;&lt;p class="line862"&gt;Pasi Karkkainen (&lt;a class="mailto" href="mailto:pasik@iki.fi"&gt;pasik@iki.fi&lt;/a&gt;) - Online resizing of DomU Disks - see  &lt;span class="anchor" id="line-51"&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li style="list-style-type: none;"&gt;&lt;p class="line891"&gt;&lt;a class="http" href="http://lists.xensource.com/archives/html/xen-devel/2008-09/msg00158.html"&gt;http://lists.xensource.com/archives/html/xen-devel/2008-09/msg00158.html&lt;/a&gt; &lt;span class="anchor" id="line-52"&gt;&lt;/span&gt;&lt;a class="http" href="http://lists.xensource.com/archives/html/xen-users/2008-04/msg00246.hhtml"&gt;http://lists.xensource.com/archives/html/xen-users/2008-04/msg00246.hhtml&lt;/a&gt; &lt;span class="anchor" id="line-53"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-54"&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li class="gap"&gt;&lt;p class="line862"&gt;Mike Dickson (&lt;a class="mailto" href="mailto:mike.dickson@hp.com"&gt;mike.dickson@hp.com&lt;/a&gt;) - I'd like to see some emphasis put on cross compiling Xen and modular builds.  I  &lt;span class="anchor" id="line-55"&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li style="list-style-type: none;"&gt;&lt;p class="line862"&gt;have a functional environment now cross compiling Xen 3.3.1 using the &lt;a class="nonexistent" href="http://wiki.xensource.com/xenwiki/OpenEmbedded"&gt;OpenEmbedded&lt;/a&gt; tool stack (this was inspired by the   &lt;a class="nonexistent" href="http://wiki.xensource.com/xenwiki/XenClient"&gt;XenClient&lt;/a&gt; work and buildroot but my work is focused on the server side). Getting it to work was a bit of a challenge (and a few patches) as not all the pieces are really designed to be split apart and cross-compiled separately. The current approach which downloads all the separate bits is nice for some cases but ideally I'd like to be able to separately build the various pieces in modular fashion. And cross compile it as well so I can control the compilation environment separately from what the build host is running.&lt;br /&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;[/QUOTE]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-7744867864109181265?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/7744867864109181265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/7744867864109181265'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/07/upcoming-xen-40-may-provide-full.html' title='Upcoming Xen 4.0 May Provide Full Support for AMD&apos;s IOMMU'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-1932481465205464583</id><published>2009-07-26T16:41:00.005+08:00</published><updated>2009-07-26T17:06:19.528+08:00</updated><title type='text'>Linux Kernel 2.6.30.3 Released!</title><content type='html'>&lt;p&gt;&lt;a href="http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.3.tar.bz2"&gt;Click here to download the full source code for kernel 2.6.30.3&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Changelog: &lt;a href="http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.30.3"&gt;http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.30.3&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-1932481465205464583?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/1932481465205464583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/1932481465205464583'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/07/linux-kernel-26303-released.html' title='Linux Kernel 2.6.30.3 Released!'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-4537047210332708725</id><published>2009-07-25T19:21:00.001+08:00</published><updated>2009-07-25T19:38:42.854+08:00</updated><title type='text'>Microsoft Releases Device Driver Source Code for Inclusion into the Linux Kernel</title><content type='html'>&lt;p&gt;Article: Microsoft Patches Linux; Linus (Torvalds) Responds&lt;/p&gt;&lt;p&gt;Author: Christopher Smart&lt;/p&gt;&lt;p&gt;Date: Wednesday, July 22nd, 2009&lt;/p&gt;&lt;p&gt;URL: &lt;a href="http://www.linux-mag.com/cache/7439/1.html"&gt;http://www.linux-mag.com/cache/7439/1.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;[QUOTE Christopher Smart]&lt;/p&gt;&lt;p&gt;&lt;quote&gt;&lt;/p&gt;&lt;p&gt;You may have already heard, but the unthinkable has happened. That’s right, Microsoft, the self-proclaimed enemy of Linux and free software, has announced that they will be submitting some 20,000 lines of code to the Linux kernel. Come again? Yes, Microsoft wants to get its code into the Linux kernel. You read that right!&lt;/p&gt;&lt;p&gt;---snipped---&lt;/p&gt;&lt;p&gt;So why the patch? Well, it contains three drivers which will enhance the performance of Linux when virtualized as a guest under Microsoft’s virtualization product, Hyper-V. Ahh, now the truth starts to emerge. The purpose of the code has nothing to do with being generous, but rather it is to ensure that Linux will run well under their own virtualization technology. Microsoft has well realized that the world is moving towards free software and that users are implementing Linux in their infrastructure.&lt;/p&gt;&lt;p&gt;---snipped---&lt;/p&gt;&lt;p&gt;A smart (and necessary) move on Microsoft’s half in order to help stifle the migration of their clients to Linux. Microsoft knows that their clients want to virtualize Linux servers and currently they can’t do that very well on Microsoft hosts using Hyper-V. So if Microsoft does nothing, their clients will start to move away from running Microsoft Windows as their host operating system.&lt;/p&gt;&lt;p&gt;---snipped---&lt;/p&gt;&lt;p&gt;It is not a change of heart. Microsoft has not embraced Linux, or the GPL, or free software. This move is purely a strategic one in order to remain in the virtualization race. Microsoft only does things which are in their own best interest (as with every corporation) and this is no exception.&lt;/p&gt;&lt;p&gt;...&lt;/p&gt;&lt;p&gt;Much of their new found attention to open source has been a direct result of the European Commission’s Anti-trust case, which has forced them to open source certain products and release technical documentation.&lt;/p&gt;&lt;p&gt;---snipped---&lt;/p&gt;&lt;p&gt;Having said all that, it is amazing that Microsoft would even consider releasing software under the GPL. Who would have thought even one year ago that they would ever contribute code to Linux, even if it was for their own benefit? So on that level it is amazing indeed. What this patch does show is that Linux and free software is gaining in power and popularity, so much so that Microsoft can no longer ignore it.&lt;/p&gt;&lt;p&gt;---snipped---&lt;/p&gt;&lt;p&gt;So yes, Microsoft’s code is a calculated and purely selfishly motivated move, but that’s nothing new to the free software world. Sure, we should remember who Microsoft are and what their goals are but as Linus puts it, this is how everyone gets into open source in the first place.&lt;/p&gt;&lt;p&gt;---snipped---&lt;/p&gt;&lt;p&gt;Microsoft knows free software is not going anywhere and it needs this code in the kernel to stay in the game. They must ensure that Linux will run on their products, else they run the risk of losing the lot. What Microsoft has yet to realize, is that they are fighting a losing battle. This is a prime example of that fact and should be a wake up call to the giant.&lt;/p&gt;&lt;p&gt;[/QUOTE]&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-4537047210332708725?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/4537047210332708725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/4537047210332708725'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/07/microsoft-releases-device-driver-source.html' title='Microsoft Releases Device Driver Source Code for Inclusion into the Linux Kernel'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-8849743418424956472</id><published>2009-07-25T03:59:00.012+08:00</published><updated>2009-07-27T22:12:32.096+08:00</updated><title type='text'>Creating OpenSolaris UNIX 2009.06 32-bit Paravirtualized DomU on Xen 3.4.1-rc8 Dom 0 pvops enabled Kernel 2.6.30-rc6 on OpenSUSE Linux 11.1 32b Host</title><content type='html'>As at 25 July 2009 Sat 4:03 A.M. SGT: Work in progress...&lt;br /&gt;&lt;br /&gt;Guest domain configuration adapted using Boris Derzhavets' configuration howto:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/SmoT4kZta-I/AAAAAAAAAE0/xxUGuNunPoY/s1600-h/01.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/SmoT4kZta-I/AAAAAAAAAE0/xxUGuNunPoY/s400/01.jpeg" alt="" id="BLOGGER_PHOTO_ID_5362120168903109602" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/SmoT4wl2nFI/AAAAAAAAAE8/gIaNVmVHj8A/s1600-h/02.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/SmoT4wl2nFI/AAAAAAAAAE8/gIaNVmVHj8A/s400/02.jpeg" alt="" id="BLOGGER_PHOTO_ID_5362120172175268946" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/SmoT5HUMFKI/AAAAAAAAAFE/m1ysgQgh2bc/s1600-h/03.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/SmoT5HUMFKI/AAAAAAAAAFE/m1ysgQgh2bc/s400/03.jpeg" alt="" id="BLOGGER_PHOTO_ID_5362120178275194018" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/SmoT5YG2sNI/AAAAAAAAAFM/H0ntFt6LCx4/s1600-h/04.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/SmoT5YG2sNI/AAAAAAAAAFM/H0ntFt6LCx4/s400/04.jpeg" alt="" id="BLOGGER_PHOTO_ID_5362120182782669010" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/SmoT5uzjF6I/AAAAAAAAAFU/2Y3KNWPUwWk/s1600-h/05.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/SmoT5uzjF6I/AAAAAAAAAFU/2Y3KNWPUwWk/s400/05.jpeg" alt="" id="BLOGGER_PHOTO_ID_5362120188875708322" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As at 27 July 2009 Mon 12:49 P.M. SGT: Work in progress...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm0yIVtghCI/AAAAAAAAAGE/ZGkYbBhhx5w/s1600-h/01.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm0yIVtghCI/AAAAAAAAAGE/ZGkYbBhhx5w/s400/01.jpeg" alt="" id="BLOGGER_PHOTO_ID_5362997850116490274" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm0yIDWV0RI/AAAAAAAAAF8/aP9riPOEZyk/s1600-h/02.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm0yIDWV0RI/AAAAAAAAAF8/aP9riPOEZyk/s400/02.jpeg" alt="" id="BLOGGER_PHOTO_ID_5362997845187481874" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm0yHzY3WCI/AAAAAAAAAF0/gFxy7zJZXi8/s1600-h/03.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm0yHzY3WCI/AAAAAAAAAF0/gFxy7zJZXi8/s400/03.jpeg" alt="" id="BLOGGER_PHOTO_ID_5362997840903100450" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm0yHm0RO8I/AAAAAAAAAFs/hIgei-yTbx4/s1600-h/04.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm0yHm0RO8I/AAAAAAAAAFs/hIgei-yTbx4/s400/04.jpeg" alt="" id="BLOGGER_PHOTO_ID_5362997837528382402" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm0yHcUoQ_I/AAAAAAAAAFk/9AiZKPqmG80/s1600-h/05.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm0yHcUoQ_I/AAAAAAAAAFk/9AiZKPqmG80/s400/05.jpeg" alt="" id="BLOGGER_PHOTO_ID_5362997834711319538" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm0zdXRfyuI/AAAAAAAAAGM/ZqOaIbmTzB8/s1600-h/06.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm0zdXRfyuI/AAAAAAAAAGM/ZqOaIbmTzB8/s400/06.jpeg" alt="" id="BLOGGER_PHOTO_ID_5362999310824753890" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm1UZ2f2NmI/AAAAAAAAAGU/PO6MTZ_FX88/s1600-h/07.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm1UZ2f2NmI/AAAAAAAAAGU/PO6MTZ_FX88/s400/07.jpeg" alt="" id="BLOGGER_PHOTO_ID_5363035534370682466" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm1UZ_mYjVI/AAAAAAAAAGc/UI2_wVzkOog/s1600-h/08.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm1UZ_mYjVI/AAAAAAAAAGc/UI2_wVzkOog/s400/08.jpeg" alt="" id="BLOGGER_PHOTO_ID_5363035536814017874" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm1UaCGzSfI/AAAAAAAAAGk/4z5u6UE_2-s/s1600-h/09.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm1UaCGzSfI/AAAAAAAAAGk/4z5u6UE_2-s/s400/09.jpeg" alt="" id="BLOGGER_PHOTO_ID_5363035537486858738" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm1UalnfyTI/AAAAAAAAAGs/3zZc7NO1kPs/s1600-h/10,jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm1UalnfyTI/AAAAAAAAAGs/3zZc7NO1kPs/s400/10,jpeg" alt="" id="BLOGGER_PHOTO_ID_5363035547019233586" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm1Uahhee-I/AAAAAAAAAG0/xVBvBNT-zx8/s1600-h/11.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm1Uahhee-I/AAAAAAAAAG0/xVBvBNT-zx8/s400/11.jpeg" alt="" id="BLOGGER_PHOTO_ID_5363035545920240610" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm1U29-ExxI/AAAAAAAAAG8/V2hUWkUoCxo/s1600-h/12.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm1U29-ExxI/AAAAAAAAAG8/V2hUWkUoCxo/s400/12.jpeg" alt="" id="BLOGGER_PHOTO_ID_5363036034592720658" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm1U3MGVbTI/AAAAAAAAAHE/9Zh1WirutR4/s1600-h/13.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm1U3MGVbTI/AAAAAAAAAHE/9Zh1WirutR4/s400/13.jpeg" alt="" id="BLOGGER_PHOTO_ID_5363036038385462578" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm1U3ZS9w6I/AAAAAAAAAHM/NJnjY7Gon2Q/s1600-h/14.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm1U3ZS9w6I/AAAAAAAAAHM/NJnjY7Gon2Q/s400/14.jpeg" alt="" id="BLOGGER_PHOTO_ID_5363036041928098722" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm1U3p0aq6I/AAAAAAAAAHU/TqWDS3IQuHo/s1600-h/15.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm1U3p0aq6I/AAAAAAAAAHU/TqWDS3IQuHo/s400/15.jpeg" alt="" id="BLOGGER_PHOTO_ID_5363036046363372450" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm1U3qMtHUI/AAAAAAAAAHc/pbBjaO4C3vg/s1600-h/16.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm1U3qMtHUI/AAAAAAAAAHc/pbBjaO4C3vg/s400/16.jpeg" alt="" id="BLOGGER_PHOTO_ID_5363036046465244482" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm1VSM85tpI/AAAAAAAAAHk/fpGqliOt0Cs/s1600-h/17.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm1VSM85tpI/AAAAAAAAAHk/fpGqliOt0Cs/s400/17.jpeg" alt="" id="BLOGGER_PHOTO_ID_5363036502470801042" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm1VSf3NHZI/AAAAAAAAAHs/TOoZNdw3XU0/s1600-h/18.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm1VSf3NHZI/AAAAAAAAAHs/TOoZNdw3XU0/s400/18.jpeg" alt="" id="BLOGGER_PHOTO_ID_5363036507547180434" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm1VSqoQE6I/AAAAAAAAAH0/l86kxA4DEJc/s1600-h/19.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm1VSqoQE6I/AAAAAAAAAH0/l86kxA4DEJc/s400/19.jpeg" alt="" id="BLOGGER_PHOTO_ID_5363036510437249954" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm1VS2n-NII/AAAAAAAAAH8/6jyzlWw8tGU/s1600-h/20.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm1VS2n-NII/AAAAAAAAAH8/6jyzlWw8tGU/s400/20.jpeg" alt="" id="BLOGGER_PHOTO_ID_5363036513657304194" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm1VTKKHyxI/AAAAAAAAAIE/jLOhXgVBlV0/s1600-h/21.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm1VTKKHyxI/AAAAAAAAAIE/jLOhXgVBlV0/s400/21.jpeg" alt="" id="BLOGGER_PHOTO_ID_5363036518900812562" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm1VuCwnlRI/AAAAAAAAAIM/Ad8cPSDR28M/s1600-h/22.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm1VuCwnlRI/AAAAAAAAAIM/Ad8cPSDR28M/s400/22.jpeg" alt="" id="BLOGGER_PHOTO_ID_5363036980771263762" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm1Vue4OQ6I/AAAAAAAAAIU/WBlp-uLZcoA/s1600-h/23.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm1Vue4OQ6I/AAAAAAAAAIU/WBlp-uLZcoA/s400/23.jpeg" alt="" id="BLOGGER_PHOTO_ID_5363036988319351714" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm1Vu6nW83I/AAAAAAAAAIc/8OJJxJGQyDQ/s1600-h/24.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sm1Vu6nW83I/AAAAAAAAAIc/8OJJxJGQyDQ/s400/24.jpeg" alt="" id="BLOGGER_PHOTO_ID_5363036995764810610" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm1VvLoeAlI/AAAAAAAAAIk/r-IQbtBimAI/s1600-h/25.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm1VvLoeAlI/AAAAAAAAAIk/r-IQbtBimAI/s400/25.jpeg" alt="" id="BLOGGER_PHOTO_ID_5363037000332870226" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm1VvHNTG1I/AAAAAAAAAIs/JkH4Wvx3Vdk/s1600-h/26.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm1VvHNTG1I/AAAAAAAAAIs/JkH4Wvx3Vdk/s400/26.jpeg" alt="" id="BLOGGER_PHOTO_ID_5363036999145167698" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm1WGermnfI/AAAAAAAAAI0/o1ot0vhnGJM/s1600-h/27.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm1WGermnfI/AAAAAAAAAI0/o1ot0vhnGJM/s400/27.jpeg" alt="" id="BLOGGER_PHOTO_ID_5363037400583282162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;OpenSolaris 2009.06 virtualization successful!&lt;br /&gt;&lt;br /&gt;As at 27 July 2009 Mon 9:36 P.M. SGT: Enabling the GNOME Desktop Environment GUI&lt;br /&gt;&lt;br /&gt;I have followed the instructions here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.sun.com/timthomas/entry/a_simple_vnc_server_and"&gt;Tim Thomas's Blog&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://defect.opensolaris.org/bz/show_bug.cgi?id=125"&gt;OpenSolaris Bug 125&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm2tnS3Ok9I/AAAAAAAAAI8/5YM50KYi_HU/s1600-h/01.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm2tnS3Ok9I/AAAAAAAAAI8/5YM50KYi_HU/s400/01.jpeg" alt="" id="BLOGGER_PHOTO_ID_5363133621858112466" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm2tnnLIAzI/AAAAAAAAAJE/paqBJt56AN8/s1600-h/02.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/Sm2tnnLIAzI/AAAAAAAAAJE/paqBJt56AN8/s400/02.jpeg" alt="" id="BLOGGER_PHOTO_ID_5363133627310277426" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm2tn6rks_I/AAAAAAAAAJM/1S3L9JFOdVk/s1600-h/03.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm2tn6rks_I/AAAAAAAAAJM/1S3L9JFOdVk/s400/03.jpeg" alt="" id="BLOGGER_PHOTO_ID_5363133632546649074" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm2tn3pNmuI/AAAAAAAAAJU/lvmhl85aVj0/s1600-h/04.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm2tn3pNmuI/AAAAAAAAAJU/lvmhl85aVj0/s400/04.jpeg" alt="" id="BLOGGER_PHOTO_ID_5363133631731440354" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm2toA-kxFI/AAAAAAAAAJc/E-2p3DV992o/s1600-h/05.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm2toA-kxFI/AAAAAAAAAJc/E-2p3DV992o/s400/05.jpeg" alt="" id="BLOGGER_PHOTO_ID_5363133634236957778" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm2ubItAGWI/AAAAAAAAAJk/Gi-ExP6oi9U/s1600-h/06.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm2ubItAGWI/AAAAAAAAAJk/Gi-ExP6oi9U/s400/06.jpeg" alt="" id="BLOGGER_PHOTO_ID_5363134512484063586" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm2ububakMI/AAAAAAAAAJs/8VG2J2jvd8U/s1600-h/07.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm2ububakMI/AAAAAAAAAJs/8VG2J2jvd8U/s400/07.jpeg" alt="" id="BLOGGER_PHOTO_ID_5363134522610847938" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm2ub-i1_VI/AAAAAAAAAJ0/I0pYf7HwuBE/s1600-h/08.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm2ub-i1_VI/AAAAAAAAAJ0/I0pYf7HwuBE/s400/08.jpeg" alt="" id="BLOGGER_PHOTO_ID_5363134526936972626" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm2ucREHdUI/AAAAAAAAAJ8/JyVzwN6GAMo/s1600-h/09.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm2ucREHdUI/AAAAAAAAAJ8/JyVzwN6GAMo/s400/09.jpeg" alt="" id="BLOGGER_PHOTO_ID_5363134531908367682" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Static IP Configuration&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm204_qJMiI/AAAAAAAAAKE/AUkRixHea4g/s1600-h/01.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm204_qJMiI/AAAAAAAAAKE/AUkRixHea4g/s400/01.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363141622521999906" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm205Bew9ZI/AAAAAAAAAKM/msOQaxl0HJs/s1600-h/02.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/Sm205Bew9ZI/AAAAAAAAAKM/msOQaxl0HJs/s400/02.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363141623011145106" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm21uPKvVXI/AAAAAAAAAKU/NDQqKSld5v4/s1600-h/03.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/Sm21uPKvVXI/AAAAAAAAAKU/NDQqKSld5v4/s400/03.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5363142537218315634" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-8849743418424956472?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/8849743418424956472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/8849743418424956472'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/07/creating-opensolaris-unix-200906-32-bit.html' title='Creating OpenSolaris UNIX 2009.06 32-bit Paravirtualized DomU on Xen 3.4.1-rc8 Dom 0 pvops enabled Kernel 2.6.30-rc6 on OpenSUSE Linux 11.1 32b Host'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_zzjv8MCM2sk/SmoT4kZta-I/AAAAAAAAAE0/xxUGuNunPoY/s72-c/01.jpeg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-4468834805654881077</id><published>2009-07-24T17:13:00.000+08:00</published><updated>2009-07-24T17:14:52.651+08:00</updated><title type='text'>Download Manager for Linux: KDE's KGet</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sml7eKElNII/AAAAAAAAADc/app3nw-Jtx4/s1600-h/kget01"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/Sml7eKElNII/AAAAAAAAADc/app3nw-Jtx4/s400/kget01" border="0" alt=""id="BLOGGER_PHOTO_ID_5361952589391148162" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-4468834805654881077?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/4468834805654881077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/4468834805654881077'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/07/download-manager-for-linux-kdes-kget.html' title='Download Manager for Linux: KDE&apos;s KGet'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_zzjv8MCM2sk/Sml7eKElNII/AAAAAAAAADc/app3nw-Jtx4/s72-c/kget01' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-1890271666671627346</id><published>2009-07-23T21:32:00.000+08:00</published><updated>2009-07-25T04:12:32.133+08:00</updated><title type='text'>Creating CentOS 4.7 32-bit Paravirtualized Guest under OpenSUSE 11.1 Linux (Jeremy's git branch) paravirt-ops enabled Xen Dom 0 Kernel</title><content type='html'>&lt;a href="http://lists.xensource.com/archives/html/xen-devel/2009-07/msg00827.html"&gt;&lt;span style="font-family:arial;"&gt;Click Here: Collaboration with members of the xen-devel mailing list community to get my Xen Dom 0 paravirt-ops enabled kernel on OpenSUSE 11.1 x86-32 working&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://lists.xensource.com/archives/html/xen-devel/2009-07/index.html"&gt;Click Here: My postings in the Xen developers mailing list&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/SmhnSX6OsJI/AAAAAAAAABc/NRqIzr0AlBI/s1600-h/xen09.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/SmhnSX6OsJI/AAAAAAAAABc/NRqIzr0AlBI/s400/xen09.jpeg" alt="" id="BLOGGER_PHOTO_ID_5361648921738129554" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/SmhnStDZp-I/AAAAAAAAABk/ItcvPKO79Fw/s1600-h/xen10.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/SmhnStDZp-I/AAAAAAAAABk/ItcvPKO79Fw/s400/xen10.jpeg" alt="" id="BLOGGER_PHOTO_ID_5361648927413741538" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/SmhnS0lvTFI/AAAAAAAAABs/jZcUW76crcg/s1600-h/xen11.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/SmhnS0lvTFI/AAAAAAAAABs/jZcUW76crcg/s400/xen11.jpeg" alt="" id="BLOGGER_PHOTO_ID_5361648929436814418" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/SmhnTGF_D-I/AAAAAAAAAB0/UdiySGF2bCc/s1600-h/xen12.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/SmhnTGF_D-I/AAAAAAAAAB0/UdiySGF2bCc/s400/xen12.jpeg" alt="" id="BLOGGER_PHOTO_ID_5361648934135468002" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/SmhnTfHCWmI/AAAAAAAAAB8/qQfbbuNXY10/s1600-h/xen13.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/SmhnTfHCWmI/AAAAAAAAAB8/qQfbbuNXY10/s400/xen13.jpeg" alt="" id="BLOGGER_PHOTO_ID_5361648940850764386" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/SmiKmDNJGgI/AAAAAAAAACE/v4t_A3JuMQw/s1600-h/xen14.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/SmiKmDNJGgI/AAAAAAAAACE/v4t_A3JuMQw/s400/xen14.jpeg" alt="" id="BLOGGER_PHOTO_ID_5361687742684666370" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/SmiKmq6TA4I/AAAAAAAAACM/IpHmXk0IoEs/s1600-h/xen15.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/SmiKmq6TA4I/AAAAAAAAACM/IpHmXk0IoEs/s400/xen15.jpeg" alt="" id="BLOGGER_PHOTO_ID_5361687753343042434" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/SmiKm6lkqYI/AAAAAAAAACU/ws5SXrR2xZs/s1600-h/xen16.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/SmiKm6lkqYI/AAAAAAAAACU/ws5SXrR2xZs/s400/xen16.jpeg" alt="" id="BLOGGER_PHOTO_ID_5361687757551085954" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/SmiKnSmjfEI/AAAAAAAAACc/iF4tRfABiX4/s1600-h/xen17.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/SmiKnSmjfEI/AAAAAAAAACc/iF4tRfABiX4/s400/xen17.jpeg" alt="" id="BLOGGER_PHOTO_ID_5361687763997654082" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/SmiMcYsFzAI/AAAAAAAAACk/rYxOFDHuD00/s1600-h/xen18.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/SmiMcYsFzAI/AAAAAAAAACk/rYxOFDHuD00/s400/xen18.jpeg" alt="" id="BLOGGER_PHOTO_ID_5361689775676181506" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/SmiMcrnOfEI/AAAAAAAAACs/s-xguFnf25U/s1600-h/xen19.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/SmiMcrnOfEI/AAAAAAAAACs/s-xguFnf25U/s400/xen19.jpeg" alt="" id="BLOGGER_PHOTO_ID_5361689780756053058" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/SmioB47zMOI/AAAAAAAAAC0/7SHkAH9w3DI/s1600-h/xen20.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/SmioB47zMOI/AAAAAAAAAC0/7SHkAH9w3DI/s400/xen20.jpeg" alt="" id="BLOGGER_PHOTO_ID_5361720106801115362" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/SmioCKrY-3I/AAAAAAAAAC8/Ptba4UEBY88/s1600-h/xen21.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/SmioCKrY-3I/AAAAAAAAAC8/Ptba4UEBY88/s400/xen21.jpeg" alt="" id="BLOGGER_PHOTO_ID_5361720111564127090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/SmioCTiIEYI/AAAAAAAAADE/LQZiRKxGEns/s1600-h/xen22.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/SmioCTiIEYI/AAAAAAAAADE/LQZiRKxGEns/s400/xen22.jpeg" alt="" id="BLOGGER_PHOTO_ID_5361720113941188994" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/SmlvTJYX4LI/AAAAAAAAADM/9Pk3opGAocc/s1600-h/xen23.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/SmlvTJYX4LI/AAAAAAAAADM/9Pk3opGAocc/s400/xen23.jpeg" alt="" id="BLOGGER_PHOTO_ID_5361939206087631026" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/SmlvTbCn8TI/AAAAAAAAADU/i5cWpZpb8jE/s1600-h/xen24.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/SmlvTbCn8TI/AAAAAAAAADU/i5cWpZpb8jE/s400/xen24.jpeg" alt="" id="BLOGGER_PHOTO_ID_5361939210828247346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/SmnL7HhkTsI/AAAAAAAAADk/hlod1vSzejg/s1600-h/01.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/SmnL7HhkTsI/AAAAAAAAADk/hlod1vSzejg/s400/01.jpeg" alt="" id="BLOGGER_PHOTO_ID_5362041047853846210" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/SmnL7WCZ9HI/AAAAAAAAADs/rPY5I9qnhXQ/s1600-h/02.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/SmnL7WCZ9HI/AAAAAAAAADs/rPY5I9qnhXQ/s400/02.jpeg" alt="" id="BLOGGER_PHOTO_ID_5362041051749676146" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/SmnPiq-2J3I/AAAAAAAAAEU/eBvSplxPW3E/s1600-h/03.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/SmnPiq-2J3I/AAAAAAAAAEU/eBvSplxPW3E/s400/03.jpeg" alt="" id="BLOGGER_PHOTO_ID_5362045025921673074" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/SmnPiYwhUBI/AAAAAAAAAEM/UqXVxXmbDNw/s1600-h/04.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/SmnPiYwhUBI/AAAAAAAAAEM/UqXVxXmbDNw/s400/04.jpeg" alt="" id="BLOGGER_PHOTO_ID_5362045021029748754" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/SmnPh0dNLiI/AAAAAAAAAEE/uI5j09rhoIY/s1600-h/05.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/SmnPh0dNLiI/AAAAAAAAAEE/uI5j09rhoIY/s400/05.jpeg" alt="" id="BLOGGER_PHOTO_ID_5362045011285061154" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/SmnPhsvPsyI/AAAAAAAAAD8/yFdAGuSB5oE/s1600-h/06.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/SmnPhsvPsyI/AAAAAAAAAD8/yFdAGuSB5oE/s400/06.jpeg" alt="" id="BLOGGER_PHOTO_ID_5362045009213240098" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/SmnPhmb-fWI/AAAAAAAAAD0/mzuWngdvBVk/s1600-h/07.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/SmnPhmb-fWI/AAAAAAAAAD0/mzuWngdvBVk/s400/07.jpeg" alt="" id="BLOGGER_PHOTO_ID_5362045007521807714" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/SmnXl-dPX0I/AAAAAAAAAEc/fQZzyfdAm-8/s1600-h/08.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/SmnXl-dPX0I/AAAAAAAAAEc/fQZzyfdAm-8/s400/08.jpeg" alt="" id="BLOGGER_PHOTO_ID_5362053878782058306" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/SmnjYZyZsaI/AAAAAAAAAEk/yiu_RQoHTjg/s1600-h/09.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/SmnjYZyZsaI/AAAAAAAAAEk/yiu_RQoHTjg/s400/09.jpeg" alt="" id="BLOGGER_PHOTO_ID_5362066839739937186" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/SmoVnXjDZtI/AAAAAAAAAFc/uwzV3D9EODU/s1600-h/final.jpeg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/SmoVnXjDZtI/AAAAAAAAAFc/uwzV3D9EODU/s400/final.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5362122072418117330" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-1890271666671627346?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/1890271666671627346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/1890271666671627346'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/07/creating-centos-47-32-bit.html' title='Creating CentOS 4.7 32-bit Paravirtualized Guest under OpenSUSE 11.1 Linux (Jeremy&apos;s git branch) paravirt-ops enabled Xen Dom 0 Kernel'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_zzjv8MCM2sk/SmhnSX6OsJI/AAAAAAAAABc/NRqIzr0AlBI/s72-c/xen09.jpeg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-5235824317336235718.post-5157791693075161593</id><published>2009-07-23T16:41:00.000+08:00</published><updated>2009-07-25T01:21:51.201+08:00</updated><title type='text'>My Self-Compiled Paravirt-ops (pv_ops) enabled Xen Dom 0 Kernel (Jeremy's git branch) on 32-bit OpenSUSE 11.1 Linux</title><content type='html'>I based my Xen Dom 0 paravirt-ops enabled kernel (Jeremy Fitzhardinge's git branch) configuration, compilation and installation on OpenSUSE 11.1 32-bit Linux using Boris Derzhavets's howto:&lt;br /&gt;&lt;br /&gt;Article: &lt;a href="http://bderzhavets.wordpress.com/2009/06/10/setup-fedora-11-pv-domu-at-xen-3-4-1-dom0-kernel-2-6-30-rc6-tip-on-top-of-fedora-11/" rel="bookmark" title="Permanent Link: Setup Fedora 11 PV DomU at Xen 3.4.1 Dom0 (kernel 2.6.30-rc6-tip) on top of Fedora 11"&gt;&lt;/a&gt;Setup Fedora 11 PV DomU at Xen 3.4.1 Dom0 (kernel 2.6.30-rc6-tip) on top of Fedora 11&lt;br /&gt;URL: &lt;a href="http://bderzhavets.wordpress.com/2009/06/10/setup-fedora-11-pv-domu-at-xen-3-4-1-dom0-kernel-2-6-30-rc6-tip-on-top-of-fedora-11/"&gt;http://bderzhavets.wordpress.com/2009/06/10/setup-fedora-11-pv-domu-at-xen-3-4-1-dom0-kernel-2-6-30-rc6-tip-on-top-of-fedora-11/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://lists.xensource.com/archives/html/xen-devel/2009-07/index.html"&gt;Click Here: My postings in the Xen developers mailing list&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/SmgplfQ6StI/AAAAAAAAAA8/1EGLzqacqMQ/s1600-h/DSCF1511.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/SmgplfQ6StI/AAAAAAAAAA8/1EGLzqacqMQ/s400/DSCF1511.JPG" alt="" id="BLOGGER_PHOTO_ID_5361581080408902354" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/SmgplgWdPgI/AAAAAAAAABE/3yD2PiaT-lM/s1600-h/DSCF1512.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/SmgplgWdPgI/AAAAAAAAABE/3yD2PiaT-lM/s400/DSCF1512.JPG" alt="" id="BLOGGER_PHOTO_ID_5361581080700599810" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/SmglZdD8e8I/AAAAAAAAAAM/T5IrMaE26X4/s1600-h/01.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/SmglZdD8e8I/AAAAAAAAAAM/T5IrMaE26X4/s400/01.jpg" alt="" id="BLOGGER_PHOTO_ID_5361576475612707778" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/SmglZj3SZ-I/AAAAAAAAAAU/Ik_yM26TvVc/s1600-h/02.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/SmglZj3SZ-I/AAAAAAAAAAU/Ik_yM26TvVc/s400/02.jpg" alt="" id="BLOGGER_PHOTO_ID_5361576477438666722" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/SmglZ4r6mTI/AAAAAAAAAAc/yBuFVGdjCZU/s1600-h/03.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/SmglZ4r6mTI/AAAAAAAAAAc/yBuFVGdjCZU/s400/03.jpg" alt="" id="BLOGGER_PHOTO_ID_5361576483028113714" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zzjv8MCM2sk/SmglaYrRXaI/AAAAAAAAAAk/TckT848xaME/s1600-h/04.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_zzjv8MCM2sk/SmglaYrRXaI/AAAAAAAAAAk/TckT848xaME/s400/04.jpg" alt="" id="BLOGGER_PHOTO_ID_5361576491615346082" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zzjv8MCM2sk/Smglas0yHmI/AAAAAAAAAAs/qEnPmjPHnFg/s1600-h/05.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_zzjv8MCM2sk/Smglas0yHmI/AAAAAAAAAAs/qEnPmjPHnFg/s400/05.jpg" alt="" id="BLOGGER_PHOTO_ID_5361576497023950434" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_zzjv8MCM2sk/Smgljvuj9uI/AAAAAAAAAA0/E7J7DFu2Rho/s1600-h/06.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_zzjv8MCM2sk/Smgljvuj9uI/AAAAAAAAAA0/E7J7DFu2Rho/s400/06.jpg" alt="" id="BLOGGER_PHOTO_ID_5361576652421986018" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/Smgq0sx9ayI/AAAAAAAAABM/UPBfevXzpS0/s1600-h/xen07.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/Smgq0sx9ayI/AAAAAAAAABM/UPBfevXzpS0/s400/xen07.jpeg" alt="" id="BLOGGER_PHOTO_ID_5361582441246845730" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_zzjv8MCM2sk/Smg7pKoH_JI/AAAAAAAAABU/TVkqEEyLzYQ/s1600-h/xen08.jpeg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_zzjv8MCM2sk/Smg7pKoH_JI/AAAAAAAAABU/TVkqEEyLzYQ/s400/xen08.jpeg" alt="" id="BLOGGER_PHOTO_ID_5361600934797900946" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5235824317336235718-5157791693075161593?l=teo-en-ming-aka-zhang-enming.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/5157791693075161593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5235824317336235718/posts/default/5157791693075161593'/><link rel='alternate' type='text/html' href='http://teo-en-ming-aka-zhang-enming.blogspot.com/2009/07/my-self-compiled-paravirt-ops-pvops.html' title='My Self-Compiled Paravirt-ops (pv_ops) enabled Xen Dom 0 Kernel (Jeremy&apos;s git branch) on 32-bit OpenSUSE 11.1 Linux'/><author><name>Singapore Citizen Mr. Teo En Ming (Zhang Enming)</name><uri>http://www.blogger.com/profile/16126595594304445307</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_zzjv8MCM2sk/SmgplfQ6StI/AAAAAAAAAA8/1EGLzqacqMQ/s72-c/DSCF1511.JPG' height='72' width='72'/></entry></feed>
