<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.linuxmce.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=JoakimL</id>
	<title>LinuxMCE - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.linuxmce.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=JoakimL"/>
	<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php/Special:Contributions/JoakimL"/>
	<updated>2026-05-11T02:51:47Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Talk:Core&amp;diff=29406</id>
		<title>Talk:Core</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Talk:Core&amp;diff=29406"/>
		<updated>2012-01-29T21:38:40Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: Created page with &amp;quot;&amp;quot;as only the Core software needs to be upgraded.&amp;quot; That&amp;#039;s not correct, since all MDs need their own update.  // JoakimL&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;quot;as only the Core software needs to be upgraded.&amp;quot; That&#039;s not correct, since all MDs need their own update.  // JoakimL&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Motion&amp;diff=29403</id>
		<title>Motion</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Motion&amp;diff=29403"/>
		<updated>2012-01-29T19:14:13Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: Clean-up&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Versioninfo}}&lt;br /&gt;
[[Category: Security]]&lt;br /&gt;
[[Category: Cameras]]&lt;br /&gt;
[[Category: Tutorials]]&lt;br /&gt;
[[Category: Software components]]&lt;br /&gt;
&lt;br /&gt;
 {| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Motion&#039;&#039;&#039; is a program that monitors the video signal from one or more cameras and is able to detect if a significant part of the picture has changed; in other words, it can detect motion. Motion is the perfect tool for keeping an eye on your property, keeping only those images that are interesting.&lt;br /&gt;
&lt;br /&gt;
LinuxMCE has a wrapper that connects to Motion, called &amp;quot;Motion Wrapper&amp;quot;.  This wrapper is added as a &amp;quot;device&amp;quot; on the &amp;quot;Interfaces&amp;quot; page.  You must have this interface installed before setting up cameras.&lt;br /&gt;
&lt;br /&gt;
The program is written in C for the Linux operating system. Motion is a command line based tool whose output can be jpeg or ppm files, or mpeg video sequences. &lt;br /&gt;
&lt;br /&gt;
For detailed info see the [http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome Motion website].&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
*Takes snapshots of movement&lt;br /&gt;
*Watches multiple video devices at the same time&lt;br /&gt;
*Watches multiple inputs on one capture card at the same time&lt;br /&gt;
*Live streaming webcam (using multipart/x-mixed-replace)&lt;br /&gt;
*Real time creation of mpeg movies using libraries from ffmpeg&lt;br /&gt;
*Take automated snapshots on regular intervals&lt;br /&gt;
*Take automated snapshots at irregular intervals using cron&lt;br /&gt;
*Execute external commands when detecting movement (and e.g. send SMS or email)&lt;br /&gt;
*Motion tracking (camera follow motion - special hardware required)&lt;br /&gt;
*Feed events to a MySQL or PostgreSQL database.&lt;br /&gt;
*Feed video back to a video4linux loopback for real time viewing&lt;br /&gt;
*Lots of user contributed related projects with web interfaces etc.&lt;br /&gt;
*User configurable and user defined on screen display.&lt;br /&gt;
*Controlled via the browser (older versions used xml-rpc)&lt;br /&gt;
*Automatic noise and threshold control&lt;br /&gt;
*Motion is a daemon with low CPU consumption and a small memory footprint.&lt;br /&gt;
&lt;br /&gt;
===Changing the Motion Wrapper settings===&lt;br /&gt;
&lt;br /&gt;
*[[LinuxMCE Admin Website]]--&amp;gt; Advanced --&amp;gt;  [[Advanced Pages Devices| Devices]]&lt;br /&gt;
*My Devices--&amp;gt;CORE--&amp;gt;Motion Wrapper&lt;br /&gt;
*Under Device Data--&amp;gt;Motion Parameters can be found the actual parameters. The correspond to the [http://www.lavrsen.dk/twiki/bin/view/Motion/ConfigFileOptions Motion config options] found on the Motion wiki.&lt;br /&gt;
:*My surveillance camera already has automatic light leveling and I don&#039;t need the Motion module to do it for me, so I set auto-brightness off.&lt;br /&gt;
:*I wanted my camera to detect movement when just two frames showed a difference, so I set minimum_motion_frames to 2.&lt;br /&gt;
:*also need to set snapshot_interval to 2 (&#039;&#039;&#039;snapshot_interval 2&#039;&#039;&#039;)&lt;br /&gt;
*After making all my changes, I saved and did a [[quick reload router]].&lt;br /&gt;
&lt;br /&gt;
==Interesting related projects==&lt;br /&gt;
&lt;br /&gt;
Since there will probably be some discussion about the future of video surveillance under LinuxMCE, I&#039;ll enumerate here few interesting projects, which I hope will one day be incorporated into LinuxMCE.&lt;br /&gt;
&lt;br /&gt;
*[http://www.lavrsen.dk/twiki/bin/view/Motion/KmotionWebViewer Kmotion Web Viewer]&lt;br /&gt;
*[http://www.zoneminder.com/ Zoneminder]&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Squid_as_ad_blocker&amp;diff=29321</id>
		<title>Squid as ad blocker</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Squid_as_ad_blocker&amp;diff=29321"/>
		<updated>2011-12-23T15:44:48Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This ad blocking is using [http://pgl.yoyo.org/adservers/ http://pgl.yoyo.org/adservers/] blocking lists.&lt;br /&gt;
&lt;br /&gt;
Install Squid as laid out in [[How to setup secure outbound web access]]&lt;br /&gt;
&lt;br /&gt;
Find the following line: # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS using:&lt;br /&gt;
 nano /etc/squid/squid.conf&lt;br /&gt;
Add these two lines below:&lt;br /&gt;
    acl ads dstdom_regex -i &amp;quot;/etc/squid/squid.adservers.regex&amp;quot;&lt;br /&gt;
    http_access deny ads&lt;br /&gt;
&lt;br /&gt;
Create a script file, e.g.&lt;br /&gt;
nano /etc/cron.daily/getadblock.sh&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 ### short script that downloads a list of ad servers for use with squid to block ads.&lt;br /&gt;
 ###&lt;br /&gt;
 ### details on configuring squid itself can be found here:&lt;br /&gt;
 ###&lt;br /&gt;
 ###    http://pgl.yoyo.org/adservers/#withsquid&lt;br /&gt;
 ###&lt;br /&gt;
 ### - originally by Stephen Patterson &amp;lt;steve@lexx.uklinux.net&amp;gt;&lt;br /&gt;
 ### - butchered by Peter Lowe &amp;lt;pgl@yoyo.org&amp;gt;&lt;br /&gt;
 ### - LMCE 10.04 adjustments by Joakim Lindbom&lt;br /&gt;
 &lt;br /&gt;
 ## set things&lt;br /&gt;
 &lt;br /&gt;
 # URL of the ad server list to download&lt;br /&gt;
 listurl=&#039;http://pgl.yoyo.org/adservers/serverlist.php?hostformat=squid-dstdom-regex;showintro=0&amp;amp;mimetype=plaintext&#039; &lt;br /&gt;
 &lt;br /&gt;
 # location of the list of ad servers used by Squid&lt;br /&gt;
 targetfile=&#039;/etc/squid/squid.adservers.regex&#039;&lt;br /&gt;
 &lt;br /&gt;
 # location of a file where hostnames not listed can be added&lt;br /&gt;
 extrasfile=&#039;/etc/squid/squid-extra.adservers&#039; &lt;br /&gt;
 &lt;br /&gt;
 # command to reload squid - change according to your system&lt;br /&gt;
 reloadcmd=&#039;restart squid&#039; &lt;br /&gt;
 &lt;br /&gt;
 # temp file to use&lt;br /&gt;
 tmpfile=&amp;quot;/tmp/.adlist.$$&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # command to fetch the list (alternatives commented out)&lt;br /&gt;
 fetchcmd=&amp;quot;wget -q $listurl -O $tmpfile&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # log file&lt;br /&gt;
 logfile=&#039;/var/log/pluto/ad-blocker&#039;&lt;br /&gt;
 &lt;br /&gt;
 ## do things&lt;br /&gt;
 ##&lt;br /&gt;
 echo &amp;quot;$(date -R) Getting new refuse list&amp;quot; &amp;gt;&amp;gt; &amp;quot;$logfile&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # get a fresh list of ad server addresses for squid to refuse&lt;br /&gt;
 $fetchcmd&lt;br /&gt;
 &lt;br /&gt;
 # add the extras&lt;br /&gt;
 [ -f &amp;quot;$extrasfile&amp;quot; ] &amp;amp;&amp;amp; cat $extrasfile &amp;gt;&amp;gt; $tmpfile&lt;br /&gt;
 &lt;br /&gt;
 # check the temp file exists OK before overwriting the existing list&lt;br /&gt;
 if [ ! -s $tmpfile ]&lt;br /&gt;
 then&lt;br /&gt;
        echo &amp;quot;$(date -R) temp file &#039;$tmpfile&#039; either doesn&#039;t exist or is empty; quitting&amp;quot; &amp;gt;&amp;gt; &amp;quot;$logfile&amp;quot;&lt;br /&gt;
        exit&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 cp  $tmpfile $targetfile&lt;br /&gt;
 &lt;br /&gt;
 # clean up&lt;br /&gt;
 rm $tmpfile &lt;br /&gt;
 &lt;br /&gt;
 # restart Squid&lt;br /&gt;
 $reloadcmd&lt;br /&gt;
&lt;br /&gt;
Make it executable:&lt;br /&gt;
 chmod 755 /etc/cron.daily/getadblock.sh&lt;br /&gt;
&lt;br /&gt;
To add auto configure (i.e. no config needed in your browser to make this work):&lt;br /&gt;
Add a PAC auto config file to the Apache directory:&lt;br /&gt;
&lt;br /&gt;
nano /var/www/wpad.pac&lt;br /&gt;
 function FindProxyForURL(url, host)&lt;br /&gt;
 {&lt;br /&gt;
   return &amp;quot;PROXY 192.168.80.1:3128 ; DIRECT&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Add PAC function to the DHCP daemon:&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/dhcp3/dhcpd.conf&lt;br /&gt;
add these lines after &amp;quot;option subnet-mask 255.255.255.0;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 option wpad code 252 = text;&lt;br /&gt;
 option wpad &amp;quot;http://192.168.80.1/wpad.pac&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 class &amp;quot;MSFT&amp;quot; {&lt;br /&gt;
         match if substring(option vendor-class-identifier, 0, 4) = &amp;quot;MSFT&amp;quot;;&lt;br /&gt;
         option dhcp-parameter-request-list =&lt;br /&gt;
                                 concat(option dhcp-parameter-request-list, fc);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Restart the DHCP daemon&lt;br /&gt;
 &lt;br /&gt;
 sudo restart dhcp-server&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Squid_as_ad_blocker&amp;diff=29320</id>
		<title>Squid as ad blocker</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Squid_as_ad_blocker&amp;diff=29320"/>
		<updated>2011-12-23T15:41:04Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This ad blocking is using [http://pgl.yoyo.org/adservers/] blocking lists.&lt;br /&gt;
&lt;br /&gt;
Install Squid as laid out in [[How to setup secure outbound web access]]&lt;br /&gt;
&lt;br /&gt;
Find the following line: # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS using:&lt;br /&gt;
 nano /etc/squid/squid.conf&lt;br /&gt;
Add these two lines below:&lt;br /&gt;
    acl ads dstdom_regex -i &amp;quot;/etc/squid/squid.adservers.regex&amp;quot;&lt;br /&gt;
    http_access deny ads&lt;br /&gt;
&lt;br /&gt;
Create a script file, e.g.&lt;br /&gt;
nano /etc/cron.daily/getadblock.sh&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 ### short script that downloads a list of ad servers for use with squid to block ads.&lt;br /&gt;
 ###&lt;br /&gt;
 ### details on configuring squid itself can be found here:&lt;br /&gt;
 ###&lt;br /&gt;
 ###    http://pgl.yoyo.org/adservers/#withsquid&lt;br /&gt;
 ###&lt;br /&gt;
 ### - originally by Stephen Patterson &amp;lt;steve@lexx.uklinux.net&amp;gt;&lt;br /&gt;
 ### - butchered by Peter Lowe &amp;lt;pgl@yoyo.org&amp;gt;&lt;br /&gt;
 ### - LMCE 10.04 adjustments by Joakim Lindbom&lt;br /&gt;
 &lt;br /&gt;
 ## set things&lt;br /&gt;
 &lt;br /&gt;
 # URL of the ad server list to download&lt;br /&gt;
 listurl=&#039;http://pgl.yoyo.org/adservers/serverlist.php?hostformat=squid-dstdom-regex;showintro=0&amp;amp;mimetype=plaintext&#039; &lt;br /&gt;
 &lt;br /&gt;
 # location of the list of ad servers used by Squid&lt;br /&gt;
 targetfile=&#039;/etc/squid/squid.adservers.regex&#039;&lt;br /&gt;
 &lt;br /&gt;
 # location of a file where hostnames not listed can be added&lt;br /&gt;
 extrasfile=&#039;/etc/squid/squid-extra.adservers&#039; &lt;br /&gt;
 &lt;br /&gt;
 # command to reload squid - change according to your system&lt;br /&gt;
 reloadcmd=&#039;restart squid&#039; &lt;br /&gt;
 &lt;br /&gt;
 # temp file to use&lt;br /&gt;
 tmpfile=&amp;quot;/tmp/.adlist.$$&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # command to fetch the list (alternatives commented out)&lt;br /&gt;
 fetchcmd=&amp;quot;wget -q $listurl -O $tmpfile&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # log file&lt;br /&gt;
 logfile=&#039;/var/log/pluto/ad-blocker&#039;&lt;br /&gt;
 &lt;br /&gt;
 ## do things&lt;br /&gt;
 ##&lt;br /&gt;
 echo &amp;quot;$(date -R) Getting new refuse list&amp;quot; &amp;gt;&amp;gt; &amp;quot;$logfile&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # get a fresh list of ad server addresses for squid to refuse&lt;br /&gt;
 $fetchcmd&lt;br /&gt;
 &lt;br /&gt;
 # add the extras&lt;br /&gt;
 [ -f &amp;quot;$extrasfile&amp;quot; ] &amp;amp;&amp;amp; cat $extrasfile &amp;gt;&amp;gt; $tmpfile&lt;br /&gt;
 &lt;br /&gt;
 # check the temp file exists OK before overwriting the existing list&lt;br /&gt;
 if [ ! -s $tmpfile ]&lt;br /&gt;
 then&lt;br /&gt;
        echo &amp;quot;$(date -R) temp file &#039;$tmpfile&#039; either doesn&#039;t exist or is empty; quitting&amp;quot; &amp;gt;&amp;gt; &amp;quot;$logfile&amp;quot;&lt;br /&gt;
        exit&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 cp  $tmpfile $targetfile&lt;br /&gt;
 &lt;br /&gt;
 # clean up&lt;br /&gt;
 rm $tmpfile &lt;br /&gt;
 &lt;br /&gt;
 # restart Squid&lt;br /&gt;
 $reloadcmd&lt;br /&gt;
&lt;br /&gt;
Make it executable:&lt;br /&gt;
 chmod 755 /etc/cron.daily/getadblock.sh&lt;br /&gt;
&lt;br /&gt;
To add auto configure (i.e. no config needed in your browser to make this work):&lt;br /&gt;
Add a PAC auto config file to the Apache directory:&lt;br /&gt;
&lt;br /&gt;
nano /var/www/wpad.pac&lt;br /&gt;
 function FindProxyForURL(url, host)&lt;br /&gt;
 {&lt;br /&gt;
   return &amp;quot;PROXY 192.168.80.1:3128 ; DIRECT&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Add PAC function to the DHCP daemon:&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/dhcp3/dhcpd.conf&lt;br /&gt;
add these lines after &amp;quot;option subnet-mask 255.255.255.0;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 option wpad code 252 = text;&lt;br /&gt;
 option wpad &amp;quot;http://192.168.80.1/wpad.pac&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 class &amp;quot;MSFT&amp;quot; {&lt;br /&gt;
         match if substring(option vendor-class-identifier, 0, 4) = &amp;quot;MSFT&amp;quot;;&lt;br /&gt;
         option dhcp-parameter-request-list =&lt;br /&gt;
                                 concat(option dhcp-parameter-request-list, fc);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Restart the DHCP daemon&lt;br /&gt;
 &lt;br /&gt;
 sudo restart dhcp-server&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Squid_as_ad_blocker&amp;diff=29319</id>
		<title>Squid as ad blocker</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Squid_as_ad_blocker&amp;diff=29319"/>
		<updated>2011-12-23T15:35:04Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This ad blocking is using [http://pgl.yoyo.org/adservers/] blocking lists.&lt;br /&gt;
&lt;br /&gt;
Install Squid as laid out in [[How to setup secure outbound web access]]&lt;br /&gt;
&lt;br /&gt;
Find the following line: # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS&lt;br /&gt;
Add these two lines below:&lt;br /&gt;
    acl ads dstdom_regex -i &amp;quot;/etc/squid/squid.adservers.regex&amp;quot;&lt;br /&gt;
    http_access deny ads&lt;br /&gt;
&lt;br /&gt;
Create a script file, e.g.&lt;br /&gt;
nano /etc/cron.daily/getadblock.sh&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 ### short script that downloads a list of ad servers for use with squid to block ads.&lt;br /&gt;
 ###&lt;br /&gt;
 ### details on configuring squid itself can be found here:&lt;br /&gt;
 ###&lt;br /&gt;
 ###    http://pgl.yoyo.org/adservers/#withsquid&lt;br /&gt;
 ###&lt;br /&gt;
 ### - originally by Stephen Patterson &amp;lt;steve@lexx.uklinux.net&amp;gt;&lt;br /&gt;
 ### - butchered by Peter Lowe &amp;lt;pgl@yoyo.org&amp;gt;&lt;br /&gt;
 ### - LMCE 10.04 adjustments by Joakim Lindbom&lt;br /&gt;
 &lt;br /&gt;
 ## set things&lt;br /&gt;
 &lt;br /&gt;
 # URL of the ad server list to download&lt;br /&gt;
 listurl=&#039;http://pgl.yoyo.org/adservers/serverlist.php?hostformat=squid-dstdom-regex;showintro=0&amp;amp;mimetype=plaintext&#039; &lt;br /&gt;
 &lt;br /&gt;
 # location of the list of ad servers used by Squid&lt;br /&gt;
 targetfile=&#039;/etc/squid/squid.adservers.regex&#039;&lt;br /&gt;
 &lt;br /&gt;
 # location of a file where hostnames not listed can be added&lt;br /&gt;
 extrasfile=&#039;/etc/squid/squid-extra.adservers&#039; &lt;br /&gt;
 &lt;br /&gt;
 # command to reload squid - change according to your system&lt;br /&gt;
 reloadcmd=&#039;restart squid&#039; &lt;br /&gt;
 &lt;br /&gt;
 # temp file to use&lt;br /&gt;
 tmpfile=&amp;quot;/tmp/.adlist.$$&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # command to fetch the list (alternatives commented out)&lt;br /&gt;
 fetchcmd=&amp;quot;wget -q $listurl -O $tmpfile&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # log file&lt;br /&gt;
 logfile=&#039;/var/log/pluto/ad-blocker&#039;&lt;br /&gt;
 &lt;br /&gt;
 ## do things&lt;br /&gt;
 ##&lt;br /&gt;
 echo &amp;quot;$(date -R) Getting new refuse list&amp;quot; &amp;gt;&amp;gt; &amp;quot;$logfile&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # get a fresh list of ad server addresses for squid to refuse&lt;br /&gt;
 $fetchcmd&lt;br /&gt;
 &lt;br /&gt;
 # add the extras&lt;br /&gt;
 [ -f &amp;quot;$extrasfile&amp;quot; ] &amp;amp;&amp;amp; cat $extrasfile &amp;gt;&amp;gt; $tmpfile&lt;br /&gt;
 &lt;br /&gt;
 # check the temp file exists OK before overwriting the existing list&lt;br /&gt;
 if [ ! -s $tmpfile ]&lt;br /&gt;
 then&lt;br /&gt;
        echo &amp;quot;$(date -R) temp file &#039;$tmpfile&#039; either doesn&#039;t exist or is empty; quitting&amp;quot; &amp;gt;&amp;gt; &amp;quot;$logfile&amp;quot;&lt;br /&gt;
        exit&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 cp  $tmpfile $targetfile&lt;br /&gt;
 &lt;br /&gt;
 # clean up&lt;br /&gt;
 rm $tmpfile &lt;br /&gt;
 &lt;br /&gt;
 # restart Squid&lt;br /&gt;
 $reloadcmd&lt;br /&gt;
&lt;br /&gt;
Make it executable:&lt;br /&gt;
 chmod 755 /etc/cron.daily/getadblock.sh&lt;br /&gt;
&lt;br /&gt;
To add auto configure (i.e. no config needed in your browser to make this work):&lt;br /&gt;
Add a PAC auto config file to the Apache directory:&lt;br /&gt;
&lt;br /&gt;
nano /var/www/wpad.pac&lt;br /&gt;
 function FindProxyForURL(url, host)&lt;br /&gt;
 {&lt;br /&gt;
   return &amp;quot;PROXY 192.168.80.1:3128 ; DIRECT&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Add PAC function to the DHCP daemon:&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/dhcp3/dhcpd.conf&lt;br /&gt;
add these lines after &amp;quot;option subnet-mask 255.255.255.0;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 option wpad code 252 = text;&lt;br /&gt;
 option wpad &amp;quot;http://192.168.80.1/wpad.pac&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 class &amp;quot;MSFT&amp;quot; {&lt;br /&gt;
         match if substring(option vendor-class-identifier, 0, 4) = &amp;quot;MSFT&amp;quot;;&lt;br /&gt;
         option dhcp-parameter-request-list =&lt;br /&gt;
                                 concat(option dhcp-parameter-request-list, fc);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Restart the DHCP daemon&lt;br /&gt;
 &lt;br /&gt;
 sudo restart dhcp-server&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Squid_as_ad_blocker&amp;diff=29318</id>
		<title>Squid as ad blocker</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Squid_as_ad_blocker&amp;diff=29318"/>
		<updated>2011-12-23T15:29:22Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This ad blocking is using [http://pgl.yoyo.org/adservers/] blocking lists.&lt;br /&gt;
&lt;br /&gt;
Install Squid as laid out in [[How to setup secure outbound web access]]&lt;br /&gt;
&lt;br /&gt;
Find the following line: # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS&lt;br /&gt;
Add these two lines below:&lt;br /&gt;
    acl ads dstdom_regex -i &amp;quot;/etc/squid/squid.adservers.regex&amp;quot;&lt;br /&gt;
    http_access deny ads&lt;br /&gt;
&lt;br /&gt;
Create a script file, e.g.&lt;br /&gt;
nano /etc/cron.daily/getadblock.sh&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 ### short script that downloads a list of ad servers for use with squid to block ads.&lt;br /&gt;
 ###&lt;br /&gt;
 ### details on configuring squid itself can be found here:&lt;br /&gt;
 ###&lt;br /&gt;
 ###    http://pgl.yoyo.org/adservers/#withsquid&lt;br /&gt;
 ###&lt;br /&gt;
 ### - originally by Stephen Patterson &amp;lt;steve@lexx.uklinux.net&amp;gt;&lt;br /&gt;
 ### - butchered by Peter Lowe &amp;lt;pgl@yoyo.org&amp;gt;&lt;br /&gt;
 ### - LMCE 10.04 adjustments by Joakim Lindbom&lt;br /&gt;
 &lt;br /&gt;
 ## set things&lt;br /&gt;
 &lt;br /&gt;
 # URL of the ad server list to download&lt;br /&gt;
 listurl=&#039;http://pgl.yoyo.org/adservers/serverlist.php?hostformat=squid-dstdom-regex;showintro=0&amp;amp;mimetype=plaintext&#039; &lt;br /&gt;
 &lt;br /&gt;
 # location of the list of ad servers used by Squid&lt;br /&gt;
 targetfile=&#039;/etc/squid/squid.adservers.regex&#039;&lt;br /&gt;
 &lt;br /&gt;
 # location of a file where hostnames not listed can be added&lt;br /&gt;
 extrasfile=&#039;/etc/squid/squid-extra.adservers&#039; &lt;br /&gt;
 &lt;br /&gt;
 # command to reload squid - change according to your system&lt;br /&gt;
 reloadcmd=&#039;restart squid&#039; &lt;br /&gt;
 &lt;br /&gt;
 # temp file to use&lt;br /&gt;
 tmpfile=&amp;quot;/tmp/.adlist.$$&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # command to fetch the list (alternatives commented out)&lt;br /&gt;
 fetchcmd=&amp;quot;wget -q $listurl -O $tmpfile&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # log file&lt;br /&gt;
 logfile=&#039;/var/log/pluto/ad-blocker&#039;&lt;br /&gt;
 &lt;br /&gt;
 ## do things&lt;br /&gt;
 ##&lt;br /&gt;
 echo &amp;quot;$(date -R) Getting new refuse list&amp;quot; &amp;gt;&amp;gt; &amp;quot;$logfile&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # get a fresh list of ad server addresses for squid to refuse&lt;br /&gt;
 $fetchcmd&lt;br /&gt;
 &lt;br /&gt;
 # add the extras&lt;br /&gt;
 [ -f &amp;quot;$extrasfile&amp;quot; ] &amp;amp;&amp;amp; cat $extrasfile &amp;gt;&amp;gt; $tmpfile&lt;br /&gt;
 &lt;br /&gt;
 # check the temp file exists OK before overwriting the existing list&lt;br /&gt;
 if [ ! -s $tmpfile ]&lt;br /&gt;
 then&lt;br /&gt;
        echo &amp;quot;$(date -R) temp file &#039;$tmpfile&#039; either doesn&#039;t exist or is empty; quitting&amp;quot; &amp;gt;&amp;gt; &amp;quot;$logfile&amp;quot;&lt;br /&gt;
        exit&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 cp  $tmpfile $targetfile&lt;br /&gt;
 &lt;br /&gt;
 # clean up&lt;br /&gt;
 rm $tmpfile &lt;br /&gt;
 &lt;br /&gt;
 # restart Squid&lt;br /&gt;
 $reloadcmd&lt;br /&gt;
&lt;br /&gt;
Make it executable:&lt;br /&gt;
 chmod 755 /etc/cron.daily/getadblock.sh&lt;br /&gt;
&lt;br /&gt;
To add auto configure (i.e. no config needed in your browser to make this work):&lt;br /&gt;
Add a PAC auto config file to the Apache directory:&lt;br /&gt;
&lt;br /&gt;
nano /var/www/wpad.pac&lt;br /&gt;
 function FindProxyForURL(url, host)&lt;br /&gt;
 {&lt;br /&gt;
   return &amp;quot;PROXY 192.168.80.1:3128 ; DIRECT&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Add PAC function to the DHCP daemon:&lt;br /&gt;
sudo nano /etc/dhcp3/dhcpd.conf&lt;br /&gt;
add these lines after &amp;quot;option subnet-mask 255.255.255.0;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 option wpad code 252 = text;&lt;br /&gt;
 option wpad &amp;quot;http://192.168.80.1/wpad.pac&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 class &amp;quot;MSFT&amp;quot; {&lt;br /&gt;
         match if substring(option vendor-class-identifier, 0, 4) = &amp;quot;MSFT&amp;quot;;&lt;br /&gt;
         option dhcp-parameter-request-list =&lt;br /&gt;
                                 concat(option dhcp-parameter-request-list, fc);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Restart the DHCP daemon&lt;br /&gt;
 &lt;br /&gt;
 sudo restart dhcp-server&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Squid_as_ad_blocker&amp;diff=29317</id>
		<title>Squid as ad blocker</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Squid_as_ad_blocker&amp;diff=29317"/>
		<updated>2011-12-23T15:28:33Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: Added auto config&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This ad blocking is using [http://pgl.yoyo.org/adservers/] blocking lists.&lt;br /&gt;
&lt;br /&gt;
Install Squid as laid out in [[How to setup secure outbound web access]]&lt;br /&gt;
&lt;br /&gt;
Find the following line: # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS&lt;br /&gt;
Add these two lines below:&lt;br /&gt;
    acl ads dstdom_regex -i &amp;quot;/etc/squid/squid.adservers.regex&amp;quot;&lt;br /&gt;
    http_access deny ads&lt;br /&gt;
&lt;br /&gt;
Create a script file, e.g.&lt;br /&gt;
nano /etc/cron.daily/getadblock.sh&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 ### short script that downloads a list of ad servers for use with squid to block ads.&lt;br /&gt;
 ###&lt;br /&gt;
 ### details on configuring squid itself can be found here:&lt;br /&gt;
 ###&lt;br /&gt;
 ###    http://pgl.yoyo.org/adservers/#withsquid&lt;br /&gt;
 ###&lt;br /&gt;
 ### - originally by Stephen Patterson &amp;lt;steve@lexx.uklinux.net&amp;gt;&lt;br /&gt;
 ### - butchered by Peter Lowe &amp;lt;pgl@yoyo.org&amp;gt;&lt;br /&gt;
 ### - LMCE 10.04 adjustments by Joakim Lindbom&lt;br /&gt;
 &lt;br /&gt;
 ## set things&lt;br /&gt;
 &lt;br /&gt;
 # URL of the ad server list to download&lt;br /&gt;
 listurl=&#039;http://pgl.yoyo.org/adservers/serverlist.php?hostformat=squid-dstdom-regex;showintro=0&amp;amp;mimetype=plaintext&#039; &lt;br /&gt;
 &lt;br /&gt;
 # location of the list of ad servers used by Squid&lt;br /&gt;
 targetfile=&#039;/etc/squid/squid.adservers.regex&#039;&lt;br /&gt;
 &lt;br /&gt;
 # location of a file where hostnames not listed can be added&lt;br /&gt;
 extrasfile=&#039;/etc/squid/squid-extra.adservers&#039; &lt;br /&gt;
 &lt;br /&gt;
 # command to reload squid - change according to your system&lt;br /&gt;
 reloadcmd=&#039;restart squid&#039; &lt;br /&gt;
 &lt;br /&gt;
 # temp file to use&lt;br /&gt;
 tmpfile=&amp;quot;/tmp/.adlist.$$&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # command to fetch the list (alternatives commented out)&lt;br /&gt;
 fetchcmd=&amp;quot;wget -q $listurl -O $tmpfile&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # log file&lt;br /&gt;
 logfile=&#039;/var/log/pluto/ad-blocker&#039;&lt;br /&gt;
 &lt;br /&gt;
 ## do things&lt;br /&gt;
 ##&lt;br /&gt;
 echo &amp;quot;$(date -R) Getting new refuse list&amp;quot; &amp;gt;&amp;gt; &amp;quot;$logfile&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # get a fresh list of ad server addresses for squid to refuse&lt;br /&gt;
 $fetchcmd&lt;br /&gt;
 &lt;br /&gt;
 # add the extras&lt;br /&gt;
 [ -f &amp;quot;$extrasfile&amp;quot; ] &amp;amp;&amp;amp; cat $extrasfile &amp;gt;&amp;gt; $tmpfile&lt;br /&gt;
 &lt;br /&gt;
 # check the temp file exists OK before overwriting the existing list&lt;br /&gt;
 if [ ! -s $tmpfile ]&lt;br /&gt;
 then&lt;br /&gt;
        echo &amp;quot;$(date -R) temp file &#039;$tmpfile&#039; either doesn&#039;t exist or is empty; quitting&amp;quot; &amp;gt;&amp;gt; &amp;quot;$logfile&amp;quot;&lt;br /&gt;
        exit&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 cp  $tmpfile $targetfile&lt;br /&gt;
 &lt;br /&gt;
 # clean up&lt;br /&gt;
 rm $tmpfile &lt;br /&gt;
 &lt;br /&gt;
 # restart Squid&lt;br /&gt;
 $reloadcmd&lt;br /&gt;
&lt;br /&gt;
Make it executable:&lt;br /&gt;
 chmod 755 /etc/cron.daily/getadblock.sh&lt;br /&gt;
&lt;br /&gt;
To add auto configure (i.e. no config needed in your browser to make this work):&lt;br /&gt;
Add a PAC auto config file to the Apache directory:&lt;br /&gt;
nano /var/www/wpad.pac&lt;br /&gt;
 function FindProxyForURL(url, host)&lt;br /&gt;
 {&lt;br /&gt;
   return &amp;quot;PROXY 192.168.80.1:3128 ; DIRECT&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Add PAC function to the DHCP daemon:&lt;br /&gt;
sudo nano /etc/dhcp3/dhcpd.conf&lt;br /&gt;
add these lines after &amp;quot;option subnet-mask 255.255.255.0;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 option wpad code 252 = text;&lt;br /&gt;
 option wpad &amp;quot;http://192.168.80.1/wpad.pac&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 class &amp;quot;MSFT&amp;quot; {&lt;br /&gt;
         match if substring(option vendor-class-identifier, 0, 4) = &amp;quot;MSFT&amp;quot;;&lt;br /&gt;
         option dhcp-parameter-request-list =&lt;br /&gt;
                                 concat(option dhcp-parameter-request-list, fc);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Restart the DHCP daemon&lt;br /&gt;
 &lt;br /&gt;
 sudo restart dhcp-server&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Squid_as_ad_blocker&amp;diff=29316</id>
		<title>Squid as ad blocker</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Squid_as_ad_blocker&amp;diff=29316"/>
		<updated>2011-12-22T20:53:35Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This ad blocking is using [http://pgl.yoyo.org/adservers/] blocking lists.&lt;br /&gt;
&lt;br /&gt;
Install Squid as laid out in [[How to setup secure outbound web access]]&lt;br /&gt;
&lt;br /&gt;
Find the following line: # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS&lt;br /&gt;
Add these two lines below:&lt;br /&gt;
    acl ads dstdom_regex -i &amp;quot;/etc/squid/squid.adservers.regex&amp;quot;&lt;br /&gt;
    http_access deny ads&lt;br /&gt;
&lt;br /&gt;
Create a script file, e.g.&lt;br /&gt;
nano /etc/cron.daily/getadblock.sh&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 ### short script that downloads a list of ad servers for use with squid to block ads.&lt;br /&gt;
 ###&lt;br /&gt;
 ### details on configuring squid itself can be found here:&lt;br /&gt;
 ###&lt;br /&gt;
 ###    http://pgl.yoyo.org/adservers/#withsquid&lt;br /&gt;
 ###&lt;br /&gt;
 ### - originally by Stephen Patterson &amp;lt;steve@lexx.uklinux.net&amp;gt;&lt;br /&gt;
 ### - butchered by Peter Lowe &amp;lt;pgl@yoyo.org&amp;gt;&lt;br /&gt;
 ### - LMCE 10.04 adjustments by Joakim Lindbom&lt;br /&gt;
 &lt;br /&gt;
 ## set things&lt;br /&gt;
 &lt;br /&gt;
 # URL of the ad server list to download&lt;br /&gt;
 listurl=&#039;http://pgl.yoyo.org/adservers/serverlist.php?hostformat=squid-dstdom-regex;showintro=0&amp;amp;mimetype=plaintext&#039; &lt;br /&gt;
 &lt;br /&gt;
 # location of the list of ad servers used by Squid&lt;br /&gt;
 targetfile=&#039;/etc/squid/squid.adservers.regex&#039;&lt;br /&gt;
 &lt;br /&gt;
 # location of a file where hostnames not listed can be added&lt;br /&gt;
 extrasfile=&#039;/etc/squid/squid-extra.adservers&#039; &lt;br /&gt;
 &lt;br /&gt;
 # command to reload squid - change according to your system&lt;br /&gt;
 reloadcmd=&#039;restart squid&#039; &lt;br /&gt;
 &lt;br /&gt;
 # temp file to use&lt;br /&gt;
 tmpfile=&amp;quot;/tmp/.adlist.$$&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # command to fetch the list (alternatives commented out)&lt;br /&gt;
 fetchcmd=&amp;quot;wget -q $listurl -O $tmpfile&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # log file&lt;br /&gt;
 logfile=&#039;/var/log/pluto/ad-blocker&#039;&lt;br /&gt;
 &lt;br /&gt;
 ## do things&lt;br /&gt;
 ##&lt;br /&gt;
 echo &amp;quot;$(date -R) Getting new refuse list&amp;quot; &amp;gt;&amp;gt; &amp;quot;$logfile&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # get a fresh list of ad server addresses for squid to refuse&lt;br /&gt;
 $fetchcmd&lt;br /&gt;
 &lt;br /&gt;
 # add the extras&lt;br /&gt;
 [ -f &amp;quot;$extrasfile&amp;quot; ] &amp;amp;&amp;amp; cat $extrasfile &amp;gt;&amp;gt; $tmpfile&lt;br /&gt;
 &lt;br /&gt;
 # check the temp file exists OK before overwriting the existing list&lt;br /&gt;
 if [ ! -s $tmpfile ]&lt;br /&gt;
 then&lt;br /&gt;
        echo &amp;quot;$(date -R) temp file &#039;$tmpfile&#039; either doesn&#039;t exist or is empty; quitting&amp;quot; &amp;gt;&amp;gt; &amp;quot;$logfile&amp;quot;&lt;br /&gt;
        exit&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 cp  $tmpfile $targetfile&lt;br /&gt;
 &lt;br /&gt;
 # clean up&lt;br /&gt;
 rm $tmpfile &lt;br /&gt;
 &lt;br /&gt;
 # restart Squid&lt;br /&gt;
 $reloadcmd&lt;br /&gt;
&lt;br /&gt;
Make it executable:&lt;br /&gt;
 chmod 755 /etc/cron.daily/getadblock.sh&lt;br /&gt;
&lt;br /&gt;
Configure your browser to use a proxy on 192.168.80.1, port 3128 and try to access some sites. Use tail on /var/log/squid/access.log to ensure squid was used. If all is ok, proceed to the next line.&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Squid_as_ad_blocker&amp;diff=29315</id>
		<title>Squid as ad blocker</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Squid_as_ad_blocker&amp;diff=29315"/>
		<updated>2011-12-22T20:50:05Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This ad blocking is using [http://pgl.yoyo.org/adservers/] blocking lists.&lt;br /&gt;
&lt;br /&gt;
Install Squid as laid out in [[How to setup secure outbound web access]]&lt;br /&gt;
&lt;br /&gt;
Find the following line: # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS&lt;br /&gt;
Add these two lines below:&lt;br /&gt;
    acl ads dstdom_regex -i &amp;quot;/etc/squid/squid.adservers.regex&amp;quot;&lt;br /&gt;
    http_access deny ads&lt;br /&gt;
&lt;br /&gt;
Create a script file, e.g.&lt;br /&gt;
nano /etc/cron.daily/getadblock.sh&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 ### short script that downloads a list of ad servers for use with squid to block ads.&lt;br /&gt;
 ###&lt;br /&gt;
 ### details on configuring squid itself can be found here:&lt;br /&gt;
 ###&lt;br /&gt;
 ###    http://pgl.yoyo.org/adservers/#withsquid&lt;br /&gt;
 ###&lt;br /&gt;
 ### - originally by Stephen Patterson &amp;lt;steve@lexx.uklinux.net&amp;gt;&lt;br /&gt;
 ### - butchered by Peter Lowe &amp;lt;pgl@yoyo.org&amp;gt;&lt;br /&gt;
 ### - LMCE 10.04 adjustments by Joakim Lindbom&lt;br /&gt;
 &lt;br /&gt;
 ## set things&lt;br /&gt;
 &lt;br /&gt;
 # URL of the ad server list to download&lt;br /&gt;
 listurl=&#039;http://pgl.yoyo.org/adservers/serverlist.php?hostformat=squid-dstdom-regex;showintro=0&amp;amp;mimetype=plaintext&#039; &lt;br /&gt;
 &lt;br /&gt;
 # location of the list of ad servers used by Squid&lt;br /&gt;
 targetfile=&#039;/etc/squid/squid.adservers.regex&#039;&lt;br /&gt;
 &lt;br /&gt;
 # location of a file where hostnames not listed can be added&lt;br /&gt;
 extrasfile=&#039;/etc/squid/squid-extra.adservers&#039; &lt;br /&gt;
 &lt;br /&gt;
 # command to reload squid - change according to your system&lt;br /&gt;
 reloadcmd=&#039;restart squid&#039; &lt;br /&gt;
 &lt;br /&gt;
 # temp file to use&lt;br /&gt;
 tmpfile=&amp;quot;/tmp/.adlist.$$&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # command to fetch the list (alternatives commented out)&lt;br /&gt;
 fetchcmd=&amp;quot;wget -q $listurl -O $tmpfile&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # log file&lt;br /&gt;
 logfile=&#039;/var/log/pluto/ad-blocker&#039;&lt;br /&gt;
 &lt;br /&gt;
 ## do things&lt;br /&gt;
 ##&lt;br /&gt;
 echo &amp;quot;$(date -R) Getting new refuse list&amp;quot; &amp;gt;&amp;gt; &amp;quot;$logfile&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # get a fresh list of ad server addresses for squid to refuse&lt;br /&gt;
 $fetchcmd&lt;br /&gt;
 &lt;br /&gt;
 # add the extras&lt;br /&gt;
 [ -f &amp;quot;$extrasfile&amp;quot; ] &amp;amp;&amp;amp; cat $extrasfile &amp;gt;&amp;gt; $tmpfile&lt;br /&gt;
 &lt;br /&gt;
 # check the temp file exists OK before overwriting the existing list&lt;br /&gt;
 if [ ! -s $tmpfile ]&lt;br /&gt;
 then&lt;br /&gt;
        echo &amp;quot;$(date -R) temp file &#039;$tmpfile&#039; either doesn&#039;t exist or is empty; quitting&amp;quot; &amp;gt;&amp;gt; &amp;quot;$logfile&amp;quot;&lt;br /&gt;
        exit&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 cp  $tmpfile $targetfile&lt;br /&gt;
 &lt;br /&gt;
 # clean up&lt;br /&gt;
 rm $tmpfile &lt;br /&gt;
 &lt;br /&gt;
 # restart Squid&lt;br /&gt;
 $reloadcmd&lt;br /&gt;
&lt;br /&gt;
Make it executable:&lt;br /&gt;
 chmod 755 /etc/cron.daily/getadblock.sh&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Squid_as_ad_blocker&amp;diff=29314</id>
		<title>Squid as ad blocker</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Squid_as_ad_blocker&amp;diff=29314"/>
		<updated>2011-12-22T20:48:27Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: Created page with &amp;quot;This ad blocking is using [http://pgl.yoyo.org/adservers/] blocking lists.  Install Squid as laid out in How to setup secure outbound web access  Find the following line: # I...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This ad blocking is using [http://pgl.yoyo.org/adservers/] blocking lists.&lt;br /&gt;
&lt;br /&gt;
Install Squid as laid out in [[How to setup secure outbound web access]]&lt;br /&gt;
&lt;br /&gt;
Find the following line: # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS&lt;br /&gt;
Add these two lines below:&lt;br /&gt;
    acl ads dstdom_regex -i &amp;quot;/etc/squid/squid.adservers.regex&amp;quot;&lt;br /&gt;
    http_access deny ads&lt;br /&gt;
&lt;br /&gt;
Create a script file, e.g.&lt;br /&gt;
nano /etc/cron.daily/getadblock.sh&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 &lt;br /&gt;
 ### short script that downloads a list of ad servers for use with squid to block ads.&lt;br /&gt;
 ###&lt;br /&gt;
 ### details on configuring squid itself can be found here:&lt;br /&gt;
 ###&lt;br /&gt;
 ###    http://pgl.yoyo.org/adservers/#withsquid&lt;br /&gt;
 ###&lt;br /&gt;
 ### - originally by Stephen Patterson &amp;lt;steve@lexx.uklinux.net&amp;gt;&lt;br /&gt;
 ### - butchered by Peter Lowe &amp;lt;pgl@yoyo.org&amp;gt;&lt;br /&gt;
 ### - LMCE 10.04 adjustments by Joakim Lindbom&lt;br /&gt;
 &lt;br /&gt;
 ## set things&lt;br /&gt;
 &lt;br /&gt;
 # URL of the ad server list to download&lt;br /&gt;
 listurl=&#039;http://pgl.yoyo.org/adservers/serverlist.php?hostformat=squid-dstdom-regex;showintro=0&amp;amp;mimetype=plaintext&#039; &lt;br /&gt;
 &lt;br /&gt;
 # location of the list of ad servers used by Squid&lt;br /&gt;
 targetfile=&#039;/etc/squid/squid.adservers.regex&#039;&lt;br /&gt;
 &lt;br /&gt;
 # location of a file where hostnames not listed can be added&lt;br /&gt;
 extrasfile=&#039;/etc/squid/squid-extra.adservers&#039; &lt;br /&gt;
 &lt;br /&gt;
 # command to reload squid - change according to your system&lt;br /&gt;
 reloadcmd=&#039;restart squid&#039; &lt;br /&gt;
&lt;br /&gt;
 # temp file to use&lt;br /&gt;
 tmpfile=&amp;quot;/tmp/.adlist.$$&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # command to fetch the list (alternatives commented out)&lt;br /&gt;
 fetchcmd=&amp;quot;wget -q $listurl -O $tmpfile&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # log file&lt;br /&gt;
 logfile=&#039;/var/log/pluto/ad-blocker&#039;&lt;br /&gt;
&lt;br /&gt;
 ## do things&lt;br /&gt;
 ##&lt;br /&gt;
 echo &amp;quot;$(date -R) Getting new refuse list&amp;quot; &amp;gt;&amp;gt; &amp;quot;$logfile&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # get a fresh list of ad server addresses for squid to refuse&lt;br /&gt;
 $fetchcmd&lt;br /&gt;
&lt;br /&gt;
 # add the extras&lt;br /&gt;
 [ -f &amp;quot;$extrasfile&amp;quot; ] &amp;amp;&amp;amp; cat $extrasfile &amp;gt;&amp;gt; $tmpfile&lt;br /&gt;
&lt;br /&gt;
 # check the temp file exists OK before overwriting the existing list&lt;br /&gt;
 if [ ! -s $tmpfile ]&lt;br /&gt;
 then&lt;br /&gt;
        echo &amp;quot;$(date -R) temp file &#039;$tmpfile&#039; either doesn&#039;t exist or is empty; quitting&amp;quot; &amp;gt;&amp;gt; &amp;quot;$logfile&amp;quot;&lt;br /&gt;
        exit&lt;br /&gt;
 fi&lt;br /&gt;
 &lt;br /&gt;
 cp  $tmpfile $targetfile&lt;br /&gt;
 &lt;br /&gt;
 # clean up&lt;br /&gt;
 rm $tmpfile &lt;br /&gt;
 &lt;br /&gt;
 # restart Squid&lt;br /&gt;
 $reloadcmd&lt;br /&gt;
&lt;br /&gt;
Make it executable:&lt;br /&gt;
 chmod 755 /etc/cron.daily/getadblock.sh&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=How_to_setup_secure_outbound_web_access&amp;diff=29313</id>
		<title>How to setup secure outbound web access</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=How_to_setup_secure_outbound_web_access&amp;diff=29313"/>
		<updated>2011-12-22T20:13:46Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Tutorials]]&lt;br /&gt;
{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
=Background=&lt;br /&gt;
This tutorial has come about as a result of a discussion on the [http://forum.linuxmce.org/index.php?topic=8692.0 forums]. It details setting up a chain of security devices on the core which should help optimize web browsing from the internal network.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Please note, much of this is shamelessly plagarised from others. What I have done is to try to bring their work together and provide a comprehensive end-to-end solution. If you are one of those whose work has been used, please take it as a compliment and feel free to add appropriate credits at the end!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==How Browsing Works==&lt;br /&gt;
Without wishing to state the obvious, a basic understanding of web browsing helps us to understand the setup described here. Browsing is a fairly simple process. The client (known as a browser) sends a request using a protocol called HTTP to a server. By default, this request is sent to port 80. The server responds with the requested file. This file may well contain HTML, which the browser will display and will result in the browser making further requests for graphics files, etc.&lt;br /&gt;
&lt;br /&gt;
It is also possible to put a third entity in the middle of this chain. This entity is known as a proxy.&lt;br /&gt;
&lt;br /&gt;
In this case, the requests from the browser are sent to the proxy. The proxy sends the requests to the server, which responds to the proxy. Finally, the proxy responds to the browser. Proxys are used for many reasons, often security-related.&lt;br /&gt;
&lt;br /&gt;
The system we will be setting up will consist of a chain of 3 proxies which will perform the following functions:&lt;br /&gt;
* Caching. This allows the proxy to store a copy of the files requested. If a second request is received for the same file, it is already held locally and a second request does not need to be sent to the server. This reduces traffic on the external network and also improves performance overall. The Caching proxy we will be using is known as Squid.&lt;br /&gt;
&lt;br /&gt;
* Virus Scanning. As the file will be passing through the proxy, that proxy can examine its contents. In this case, viruses can be scanned for and blocked. The virus scanning proxy we will be using is called HavP and is used in conjunction with a regular scanner, in our case ClamAV.&lt;br /&gt;
&lt;br /&gt;
*Content Scanning. As well as being examined for viruses, the text of the HTML can be processed and scored. This allows inappropriate (for example sexual) content to be blocked. We will be setting up using one of the best known content scanners, Dan&#039;s Guardian.&lt;br /&gt;
&lt;br /&gt;
==Transparent Proxying==&lt;br /&gt;
There was much discussion on the forum thread concerning this. It is an additional feature which is entirely optional. In order for a proxy to be used, the browser has to &amp;quot;know&amp;quot; to send its requests to the proxy rather than to the actual server. This is achieved by configuring the browser with the proxy&#039;s details. There are, however, one or two problems with this.&lt;br /&gt;
#Each browser must be individually configured. Not too much of a problem with a home network and not many browsers, but particularly with portable devices which may or may not be used elsewhere (for example at work) it can be inconvenient to have to keep turning the proxy on and off.&lt;br /&gt;
#It can be easy to bypass. Without additional firewall rulesc to prevent direct browsing of the internet, bypassing the proxy (and therefore gaining access to blocked content) is as simple as turning it off in the browser.&lt;br /&gt;
The solution to this is known as transparent proxying. This works by having the proxy running on the router (in our case the core) and configuring it to intercept all outbound web traffic (i.e. destined for port 80) and redirect it to the proxy. The process is transparent to the end browser / user, hence the name.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039; Transparent proxying should not be seen as an alternative to setting a proxy on static machines, only as an addition. There are still ways to circumvent the system (for example, some webservers don&#039;t operate on port 80) so transparent proxying should be seen as an additional layer of security, not an alternative!&lt;br /&gt;
&lt;br /&gt;
=The Software=&lt;br /&gt;
We will be installing a series of packages. The full details of configuring each will not be discussed here. For an in depth discussion, please visit the respective websites.&lt;br /&gt;
==Squid==&lt;br /&gt;
Squid is a very powerful caching web proxy server. This means that it keeps a copy of all files it is asked to retrieve (unless the various http headers dictate that the file cannot be cached). When a file is requested, Squid first checks to see if it has a cached copy. If so, that is returned, if not, it is fetched from the webserver. It is common for certain websites to be visited frequently and Squid will rapidly build up cached copies of things like logo graphics etc. which can (in some cases) drasticly reduce the requests to the internet with resulting speed advantages. If you also pay for data useage, Squid can save money as well! Full details can be found on the [http://www.squid-cache.org/ Squid website]. In our configuration, Squid will be the proxy that actually makes the requests to the internet and is, therefore, the &amp;quot;end&amp;quot; of the chain. You can optionally configure Squid to block ads as well.&lt;br /&gt;
==ClamAV==&lt;br /&gt;
ClamAV is a linux-based virus scanning solution. It is not &#039;&#039;directly&#039;&#039; part of the proxy chain, but will be used by HavP. It will be configured to download updates on a regular basis and anecdotal evidence is that it is often &amp;quot;first to press&amp;quot; with new virus definitions. Further information at the [http://www.clamav.net/ ClamAV website].&lt;br /&gt;
==HavP==&lt;br /&gt;
HavP (Http Anti Virus Proxy) is used to scan each file being downloaded using a standard AV scanner. In our case, we are going to use ClamAV (above) to scan. HavP will be configured to use Squid as is proxy. It is important that this order is used as a new virus may otherwise end up in the cache (before ClamAV is updated) and then continue to be served up even after the virus database is updated. Once again, full details on the [http://www.server-side.de/ HavP website.]&lt;br /&gt;
==Dan&#039;s Guardian==&lt;br /&gt;
The final stage in the Proxy chain is Dan&#039;s Guardian. This is the proxy that the clients will connect to and it will, in turn, pass the requests on to HavP. Dan&#039;s Guardian is a well known content scanner that can control access to websites based not only on the URL, but also on the actual content of the files. It, like Squid, is hugely flexible and a full discussion is beyond the scope of this document, but if you need more, point your browser at the [http://dansguardian.org/ Dan&#039;s Guardian Website].&lt;br /&gt;
==Shorewall==&lt;br /&gt;
=Installation=&lt;br /&gt;
&#039;&#039;&#039;I am writing this as I perform the steps on my own core. So, while this line is here, it&#039;s a work in progress and as yet unfinished!!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We are going to work &amp;quot;backwards&amp;quot; testing each link in the chain as we go. I am going to assume you have a browser-enabled device on the &amp;quot;inside&amp;quot; network that you can easily re-configure with proxies (a PSP is NOT ideal for this!!) I also accessed my core from an ssh session on my client.&lt;br /&gt;
==Squid==&lt;br /&gt;
Firstly, we install Squld. There is already a wiki page on [[Squid|installing Squid]] which works pretty well. The only differences I experienced concerned the squid configuration file. This is located in /etc/squid/squid.conf. Locate the lines that say(Lines 607, 608 &amp;amp; 609 in mine):&lt;br /&gt;
 acl localnet src 10.0.0.0/8    # RFC1918 possible internal network&lt;br /&gt;
 acl localnet src 172.16.0.0/12 # RFC1918 possible internal network&lt;br /&gt;
 acl localnet src 192.168.0.0/16        # RFC1918 possible internal network&lt;br /&gt;
comment them out(put a # at the beginning) and insert a single line which says:&lt;br /&gt;
 acl localnet src 192.168.80.0/24&lt;br /&gt;
Then uncomment the line (remove the initial #) from the line(675)&lt;br /&gt;
 #http_access allow localnet&lt;br /&gt;
&lt;br /&gt;
To use Squid as an ad blocker, follow this configuration: [[Squid as ad blocker ]]&lt;br /&gt;
&lt;br /&gt;
Configure your browser to use a proxy on 192.168.80.1, port 3128 and try to access some sites. Use tail on /var/log/squid/access.log to ensure squid was used. If all is ok, proceed to the next line. (Note, you may want to reverse the changes to squid.conf to prevent this proxy being used directly.)&lt;br /&gt;
&lt;br /&gt;
==ClamAv==&lt;br /&gt;
Next, we need a virus scanner. If you want to install without AV scanning, skip this step.&lt;br /&gt;
&lt;br /&gt;
ClamAV is part of the repositories, so install using:&lt;br /&gt;
 apt-get install clamav-daemon&lt;br /&gt;
We ant the virus definition databases to download automatically. This is performed by freshclam. Quick test: run freshclam (as superuser) with no parameters and check the output. If everything is OK you may create the log file in /var/log (owned by clamav or another user freshclam will be running as):&lt;br /&gt;
&lt;br /&gt;
 touch /var/log/freshclam.log&lt;br /&gt;
 chmod 600 /var/log/freshclam.log&lt;br /&gt;
 chown clamav /var/log/freshclam.log&lt;br /&gt;
&lt;br /&gt;
I have set mine up to use cron, so add the following to crontab:&lt;br /&gt;
 12 * * * *	/usr/local/bin/freshclam --quiet&lt;br /&gt;
(This will update at 12 minutes past the hour).&lt;br /&gt;
&lt;br /&gt;
==HavP==&lt;br /&gt;
Next we install a proxy that will scan using ClamAV. This can be obtained from the main HavP website on [http://www.server-side.de/] and should be unpacked with tar. As this isn&#039;t available as a package, the installation is the usual:&lt;br /&gt;
 ./configure --disable-clamav    (if you don&#039;t want /usr/local, use --prefix=/other/path)&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
Note: I couldn&#039;t get it to detaect the ClamAV libraries, possibly die to using a packaged ClamAV. If you manage to fix this, please update here!&lt;br /&gt;
also, a havp user and group should be created:&lt;br /&gt;
 groupadd havp &lt;br /&gt;
 useradd -g havp havp&lt;br /&gt;
Finally, edit /usr/local/etc/havp.conf.&lt;br /&gt;
=Setting up Transparent Proxying=&lt;br /&gt;
--[[User:Wierdbeard65|Wierdbeard65]] 13:31, 8 September 2009 (CEST)&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=How_to_setup_secure_outbound_web_access&amp;diff=29312</id>
		<title>How to setup secure outbound web access</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=How_to_setup_secure_outbound_web_access&amp;diff=29312"/>
		<updated>2011-12-22T20:13:04Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: Added ad blocking&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Tutorials]]&lt;br /&gt;
{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
=Background=&lt;br /&gt;
This tutorial has come about as a result of a discussion on the [http://forum.linuxmce.org/index.php?topic=8692.0 forums]. It details setting up a chain of security devices on the core which should help optimize web browsing from the internal network.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Please note, much of this is shamelessly plagarised from others. What I have done is to try to bring their work together and provide a comprehensive end-to-end solution. If you are one of those whose work has been used, please take it as a compliment and feel free to add appropriate credits at the end!&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==How Browsing Works==&lt;br /&gt;
Without wishing to state the obvious, a basic understanding of web browsing helps us to understand the setup described here. Browsing is a fairly simple process. The client (known as a browser) sends a request using a protocol called HTTP to a server. By default, this request is sent to port 80. The server responds with the requested file. This file may well contain HTML, which the browser will display and will result in the browser making further requests for graphics files, etc.&lt;br /&gt;
&lt;br /&gt;
It is also possible to put a third entity in the middle of this chain. This entity is known as a proxy.&lt;br /&gt;
&lt;br /&gt;
In this case, the requests from the browser are sent to the proxy. The proxy sends the requests to the server, which responds to the proxy. Finally, the proxy responds to the browser. Proxys are used for many reasons, often security-related.&lt;br /&gt;
&lt;br /&gt;
The system we will be setting up will consist of a chain of 3 proxies which will perform the following functions:&lt;br /&gt;
* Caching. This allows the proxy to store a copy of the files requested. If a second request is received for the same file, it is already held locally and a second request does not need to be sent to the server. This reduces traffic on the external network and also improves performance overall. The Caching proxy we will be using is known as Squid.&lt;br /&gt;
&lt;br /&gt;
* Virus Scanning. As the file will be passing through the proxy, that proxy can examine its contents. In this case, viruses can be scanned for and blocked. The virus scanning proxy we will be using is called HavP and is used in conjunction with a regular scanner, in our case ClamAV.&lt;br /&gt;
&lt;br /&gt;
*Content Scanning. As well as being examined for viruses, the text of the HTML can be processed and scored. This allows inappropriate (for example sexual) content to be blocked. We will be setting up using one of the best known content scanners, Dan&#039;s Guardian.&lt;br /&gt;
&lt;br /&gt;
==Transparent Proxying==&lt;br /&gt;
There was much discussion on the forum thread concerning this. It is an additional feature which is entirely optional. In order for a proxy to be used, the browser has to &amp;quot;know&amp;quot; to send its requests to the proxy rather than to the actual server. This is achieved by configuring the browser with the proxy&#039;s details. There are, however, one or two problems with this.&lt;br /&gt;
#Each browser must be individually configured. Not too much of a problem with a home network and not many browsers, but particularly with portable devices which may or may not be used elsewhere (for example at work) it can be inconvenient to have to keep turning the proxy on and off.&lt;br /&gt;
#It can be easy to bypass. Without additional firewall rulesc to prevent direct browsing of the internet, bypassing the proxy (and therefore gaining access to blocked content) is as simple as turning it off in the browser.&lt;br /&gt;
The solution to this is known as transparent proxying. This works by having the proxy running on the router (in our case the core) and configuring it to intercept all outbound web traffic (i.e. destined for port 80) and redirect it to the proxy. The process is transparent to the end browser / user, hence the name.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039; Transparent proxying should not be seen as an alternative to setting a proxy on static machines, only as an addition. There are still ways to circumvent the system (for example, some webservers don&#039;t operate on port 80) so transparent proxying should be seen as an additional layer of security, not an alternative!&lt;br /&gt;
&lt;br /&gt;
=The Software=&lt;br /&gt;
We will be installing a series of packages. The full details of configuring each will not be discussed here. For an in depth discussion, please visit the respective websites.&lt;br /&gt;
==Squid==&lt;br /&gt;
Squid is a very powerful caching web proxy server. This means that it keeps a copy of all files it is asked to retrieve (unless the various http headers dictate that the file cannot be cached). When a file is requested, Squid first checks to see if it has a cached copy. If so, that is returned, if not, it is fetched from the webserver. It is common for certain websites to be visited frequently and Squid will rapidly build up cached copies of things like logo graphics etc. which can (in some cases) drasticly reduce the requests to the internet with resulting speed advantages. If you also pay for data useage, Squid can save money as well! Full details can be found on the [http://www.squid-cache.org/ Squid website]. In our configuration, Squid will be the proxy that actually makes the requests to the internet and is, therefore, the &amp;quot;end&amp;quot; of the chain. You can optionally configure Squid to block ads as well.&lt;br /&gt;
==ClamAV==&lt;br /&gt;
ClamAV is a linux-based virus scanning solution. It is not &#039;&#039;directly&#039;&#039; part of the proxy chain, but will be used by HavP. It will be configured to download updates on a regular basis and anecdotal evidence is that it is often &amp;quot;first to press&amp;quot; with new virus definitions. Further information at the [http://www.clamav.net/ ClamAV website].&lt;br /&gt;
==HavP==&lt;br /&gt;
HavP (Http Anti Virus Proxy) is used to scan each file being downloaded using a standard AV scanner. In our case, we are going to use ClamAV (above) to scan. HavP will be configured to use Squid as is proxy. It is important that this order is used as a new virus may otherwise end up in the cache (before ClamAV is updated) and then continue to be served up even after the virus database is updated. Once again, full details on the [http://www.server-side.de/ HavP website.]&lt;br /&gt;
==Dan&#039;s Guardian==&lt;br /&gt;
The final stage in the Proxy chain is Dan&#039;s Guardian. This is the proxy that the clients will connect to and it will, in turn, pass the requests on to HavP. Dan&#039;s Guardian is a well known content scanner that can control access to websites based not only on the URL, but also on the actual content of the files. It, like Squid, is hugely flexible and a full discussion is beyond the scope of this document, but if you need more, point your browser at the [http://dansguardian.org/ Dan&#039;s Guardian Website].&lt;br /&gt;
==Shorewall==&lt;br /&gt;
=Installation=&lt;br /&gt;
&#039;&#039;&#039;I am writing this as I perform the steps on my own core. So, while this line is here, it&#039;s a work in progress and as yet unfinished!!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We are going to work &amp;quot;backwards&amp;quot; testing each link in the chain as we go. I am going to assume you have a browser-enabled device on the &amp;quot;inside&amp;quot; network that you can easily re-configure with proxies (a PSP is NOT ideal for this!!) I also accessed my core from an ssh session on my client.&lt;br /&gt;
==Squid==&lt;br /&gt;
Firstly, we install Squld. There is already a wiki page on [[Squid|installing Squid]] which works pretty well. The only differences I experienced concerned the squid configuration file. This is located in /etc/squid/squid.conf. Locate the lines that say(Lines 607, 608 &amp;amp; 609 in mine):&lt;br /&gt;
 acl localnet src 10.0.0.0/8    # RFC1918 possible internal network&lt;br /&gt;
 acl localnet src 172.16.0.0/12 # RFC1918 possible internal network&lt;br /&gt;
 acl localnet src 192.168.0.0/16        # RFC1918 possible internal network&lt;br /&gt;
comment them out(put a # at the beginning) and insert a single line which says:&lt;br /&gt;
 acl localnet src 192.168.80.0/24&lt;br /&gt;
Then uncomment the line (remove the initial #) from the line(675)&lt;br /&gt;
 #http_access allow localnet&lt;br /&gt;
&lt;br /&gt;
To use Squid as a ad blocker, follow this configuration: [[Squid as ad blocker ]]&lt;br /&gt;
&lt;br /&gt;
Configure your browser to use a proxy on 192.168.80.1, port 3128 and try to access some sites. Use tail on /var/log/squid/access.log to ensure squid was used. If all is ok, proceed to the next line. (Note, you may want to reverse the changes to squid.conf to prevent this proxy being used directly.)&lt;br /&gt;
&lt;br /&gt;
==ClamAv==&lt;br /&gt;
Next, we need a virus scanner. If you want to install without AV scanning, skip this step.&lt;br /&gt;
&lt;br /&gt;
ClamAV is part of the repositories, so install using:&lt;br /&gt;
 apt-get install clamav-daemon&lt;br /&gt;
We ant the virus definition databases to download automatically. This is performed by freshclam. Quick test: run freshclam (as superuser) with no parameters and check the output. If everything is OK you may create the log file in /var/log (owned by clamav or another user freshclam will be running as):&lt;br /&gt;
&lt;br /&gt;
 touch /var/log/freshclam.log&lt;br /&gt;
 chmod 600 /var/log/freshclam.log&lt;br /&gt;
 chown clamav /var/log/freshclam.log&lt;br /&gt;
&lt;br /&gt;
I have set mine up to use cron, so add the following to crontab:&lt;br /&gt;
 12 * * * *	/usr/local/bin/freshclam --quiet&lt;br /&gt;
(This will update at 12 minutes past the hour).&lt;br /&gt;
&lt;br /&gt;
==HavP==&lt;br /&gt;
Next we install a proxy that will scan using ClamAV. This can be obtained from the main HavP website on [http://www.server-side.de/] and should be unpacked with tar. As this isn&#039;t available as a package, the installation is the usual:&lt;br /&gt;
 ./configure --disable-clamav    (if you don&#039;t want /usr/local, use --prefix=/other/path)&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
Note: I couldn&#039;t get it to detaect the ClamAV libraries, possibly die to using a packaged ClamAV. If you manage to fix this, please update here!&lt;br /&gt;
also, a havp user and group should be created:&lt;br /&gt;
 groupadd havp &lt;br /&gt;
 useradd -g havp havp&lt;br /&gt;
Finally, edit /usr/local/etc/havp.conf.&lt;br /&gt;
=Setting up Transparent Proxying=&lt;br /&gt;
--[[User:Wierdbeard65|Wierdbeard65]] 13:31, 8 September 2009 (CEST)&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Category:DVB-T2&amp;diff=29305</id>
		<title>Category:DVB-T2</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Category:DVB-T2&amp;diff=29305"/>
		<updated>2011-12-19T14:15:34Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Video]]&lt;br /&gt;
[[Category: TV Cards]]&lt;br /&gt;
[[Category: Video Capture Boards]]&lt;br /&gt;
&lt;br /&gt;
To utilize DVB-T2 with LinuxMCE you need to add the kernel modules that your card requires to function (and also sometimes a firmware file too). To find out, what cards are supported look at the LinuxTVWiki. &lt;br /&gt;
&lt;br /&gt;
Please add &amp;lt;nowiki&amp;gt;[[Category: DVB-T2]]&amp;lt;/nowiki&amp;gt; to the top of a page you wish to have listed here.&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Category:DVB-T2&amp;diff=29304</id>
		<title>Category:DVB-T2</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Category:DVB-T2&amp;diff=29304"/>
		<updated>2011-12-19T14:14:52Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: Created page with &amp;quot;Category: Video Category: TV Cards Category: Video Capture Boards  To utilize DVB-T2 with LinuxMCE you need a DVB-T2 card supported by the 2.6.22 kernel or you need t...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Video]]&lt;br /&gt;
[[Category: TV Cards]]&lt;br /&gt;
[[Category: Video Capture Boards]]&lt;br /&gt;
&lt;br /&gt;
To utilize DVB-T2 with LinuxMCE you need a DVB-T2 card supported by the 2.6.22 kernel or you need to add the kernel modules that your card requires to function (and also sometimes a firmware file too). To find out, what cards are supported look at the LinuxTVWiki. &lt;br /&gt;
&lt;br /&gt;
Please add &amp;lt;nowiki&amp;gt;[[Category: DVB-T2]]&amp;lt;/nowiki&amp;gt; to the top of a page you wish to have listed here.&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Hauppauge_PCTV_nanoStick_HD_290e&amp;diff=29303</id>
		<title>Hauppauge PCTV nanoStick HD 290e</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Hauppauge_PCTV_nanoStick_HD_290e&amp;diff=29303"/>
		<updated>2011-12-19T14:13:52Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: Created page with &amp;quot;Category: Hardware Category: DVB-T Category: DVB-T2 {{versioninfo}} Category: USB Category: TV_Cards Category: Video  This product is not automatically co...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[Category: DVB-T]]&lt;br /&gt;
[[Category: DVB-T2]]&lt;br /&gt;
{{versioninfo}}&lt;br /&gt;
[[Category: USB]]&lt;br /&gt;
[[Category: TV_Cards]]&lt;br /&gt;
[[Category: Video]]&lt;br /&gt;
&lt;br /&gt;
This product is not automatically compatible at the moment. http://stevekerrison.com/290e/index.html contains info for adding support on pre 3.0 kernel - but I&#039;ve not tested it yet.&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=User:JoakimL&amp;diff=29242</id>
		<title>User:JoakimL</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=User:JoakimL&amp;diff=29242"/>
		<updated>2011-12-04T11:30:06Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
=Who am I=&lt;br /&gt;
I&#039;m a long time IT guy from Sweden, started programming at age 9, first Unix exposure in -93 (NetBSD) and soon after also some Linux. I&#039;ve done loads of system programming on IBM mainframe, S/38, AS/400, MS-DOS, Windows C++/DCOM, heavy duty Java J2EE on Linux, you name it. Most of it having to do with communications and middleware; actually I&#039;ve developed something similar to DCE in the 80s and 90s... ;-) Today I&#039;m an Enterprise Architect but try to get some dirt under the nails by digging in the dirt, I mean Linux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-Joakim&lt;br /&gt;
aka &#039;&#039;&#039;JoakimL&#039;&#039;&#039; on the forums and in IRC&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Software=&lt;br /&gt;
Have run LMCE 8.10 successfully with this setup, now running LMCE 10.04. Impressions so far: Faster, better, more stable.&lt;br /&gt;
&lt;br /&gt;
=Hardware=&lt;br /&gt;
==Media Directors==&lt;br /&gt;
===Moon39===&lt;br /&gt;
[[AsRock 330 ION HT]]&lt;br /&gt;
*Intel Atom 330 dual core&lt;br /&gt;
*2 GB main memory&lt;br /&gt;
*Hauppauge USB-DVB Nova-T Stick (DBV-T) (with HD support! I can receive DR DH from Denmark. Some lagging, but very good picture quality)&lt;br /&gt;
*Ping IT IR receiver&lt;br /&gt;
*MS MCE Remote (Branded AsRock)&lt;br /&gt;
&lt;br /&gt;
Problems:&lt;br /&gt;
*Onboard IR receiver not supported by Linux Kernel in 8.10, I&#039;ll soon investigate for 10.04 (there is kernel and driver support available)&lt;br /&gt;
*WiFi card interfered with LMCE setup, fixed by disabling it in BIOS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Core / Hybrid==&lt;br /&gt;
Home built AMD Athlon dual core 2.0 GHz&lt;br /&gt;
*Processor - Intel P4 2.0 GHz&lt;br /&gt;
*2 GB main memory&lt;br /&gt;
*1 x 400gb SATA disk&lt;br /&gt;
*1 * 2 TB SATA disk&lt;br /&gt;
*1 * 1.5 TB SATA disk in USB enclosure&lt;br /&gt;
&lt;br /&gt;
==Orbiters==&lt;br /&gt;
===WinOrbiter===&lt;br /&gt;
*2 running from the outer network on WiFi connected Windows 7 laptops.&lt;br /&gt;
*1 running from the inner network on Ubuntu 9.10 and Wine&lt;br /&gt;
&lt;br /&gt;
===Mobile===&lt;br /&gt;
*1 iPad with RoamingOrb&lt;br /&gt;
*2 iPhone2 with RoamingOrb&lt;br /&gt;
*1 iPod Touch with RoamingOrb&lt;br /&gt;
&lt;br /&gt;
=Home control=&lt;br /&gt;
I&#039;ve added support for [[Tellstick]] and use this to control some lights with cheap Nexa wall warts and two built in switches. I&#039;ve got some dimmers in the drawer waiting to be integrated as well.&lt;br /&gt;
&lt;br /&gt;
=Music=&lt;br /&gt;
One Squeezebox 3&lt;br /&gt;
&lt;br /&gt;
=Setup=&lt;br /&gt;
Problems to solve:&lt;br /&gt;
*Keyboard with US layout, change to Swedish&lt;br /&gt;
*Remote not working due to IR receiver still not in place. Trying to use /dev/input/event in lirc, not OK yet&lt;br /&gt;
 &lt;br /&gt;
=Network=&lt;br /&gt;
Two networks, with wired and wireless in both.&lt;br /&gt;
*Outer network 100 Mbps 192.168.1.x - including VOIP gateway, to be replaced by Asterix when I get some time&lt;br /&gt;
*Inner network 1000 Mbps 192.168.80.x&lt;br /&gt;
Mostly loose cable, I have started to install Cat6 in a few walls.&lt;br /&gt;
&lt;br /&gt;
=Old equipment, just for reference=&lt;br /&gt;
==Core / Hybrid==&lt;br /&gt;
Old Compaq P4&lt;br /&gt;
*Processor - Intel P4 2.0 GHz&lt;br /&gt;
*512 MB main memory&lt;br /&gt;
*1 x 200gb IDE disk&lt;br /&gt;
&lt;br /&gt;
==Setup==&lt;br /&gt;
Some notes on setting up 8.10 B2 (daily build 22828)&lt;br /&gt;
===Core===&lt;br /&gt;
Nothing special, followed the standard procedure.&lt;br /&gt;
&lt;br /&gt;
===Media Directors===&lt;br /&gt;
Firmware file for DBV-T missing, solved with:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /usr/pluto/diskless/39/lib/firmware/&lt;br /&gt;
sudo cp /lib/firmware/dvb-usb-dib0700-1.20.fw /usr/pluto/diskless/39/lib/firmware/ .&lt;br /&gt;
&lt;br /&gt;
or:&lt;br /&gt;
cd /usr/pluto/diskless/39/lib/firmware/&lt;br /&gt;
sudo wget http://www.linuxtv.org/downloads/firmware/dvb-usb-dib0700-1.20.fw&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
DVD not playable, even though the SW was installed at the Core&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install libdvdcss2 w32codecs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[category:Standard Definition Setups]]&lt;br /&gt;
[[Category:User Setups]]&lt;br /&gt;
[[Category:Swedish Setups]]&lt;br /&gt;
[[Category:Networking Setups]]&lt;br /&gt;
[[Category: ION]]&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Tellstick&amp;diff=29209</id>
		<title>Tellstick</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Tellstick&amp;diff=29209"/>
		<updated>2011-11-26T22:36:58Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: Plug&amp;#039;n Play update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
{{Versioninfo|810Status=Working, semi plug&#039;n play supported|810UpdatedDate=7 january 2011|810UpdatedBy=[[User:JoakimL|JoakimL]]|1004Status=Working, full plug&#039;n play supported|1004UpdatedDate=14 november 2011|1004UpdatedBy=[[User:JoakimL|JoakimL]]}}&lt;br /&gt;
{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
[[Category: Automation]]&lt;br /&gt;
[[Category: RF Control]]&lt;br /&gt;
[[Category: Tellstick]]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
The Tellstick is a power controller for cheap RF devices like the Nexa line. It&#039;s detected with LMCE&#039;s Plug-n Play.&lt;br /&gt;
Currently only basic support is added, namely power on, power off and dimlevel.&lt;br /&gt;
N.B. this is an RF tranmsmitter, it cannot read the state of the devices, nor can it receive data from remotes, sensors or other equipment sending an RF signal. Telldus have developed a device for this (Tellstick Duo) which is not supported at this time.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
The device is plug and play for LMCE, software automatically downloaded and installed when you plug it into an USB port.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Adding lights ==&lt;br /&gt;
# [http://192.168.80.1/ web admin] -&amp;gt; Show devices tree -&amp;gt; Telldus USB RF controller&lt;br /&gt;
# Create Child Device -&amp;gt; Pick device template -&amp;gt; &#039;&#039;take your pick&#039;&#039; (I added &amp;quot;Light Switch (on/off)&amp;quot;)&lt;br /&gt;
# Device data -&amp;gt; Port/Channel Number -&amp;gt; &#039;&#039;Device ID&#039;&#039; -&amp;gt; &#039;&#039;&#039;save&#039;&#039;&#039; (codes correspond to the Device ID or Device Name you&#039;ve set in /etc/tellstick.conf)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reference Info ==&lt;br /&gt;
[http://www.telldus.se/products/tellstick Manufacturer website]&lt;br /&gt;
&lt;br /&gt;
== Reference for 8.10 until P&#039;nP is verified ==&lt;br /&gt;
At this point you&#039;ll need to add the driver software yourself. Install the telldus-core package as described  [http://developer.telldus.se/wiki/TellStickInstallationUbuntu here]&lt;br /&gt;
&lt;br /&gt;
Add the following lines to your /etc/apt/sources.list: (This is pointing to 2.0 repos, 2.1 currently break functionality)&lt;br /&gt;
 deb http://download.telldus.com/debian/ 2.0 main&lt;br /&gt;
&lt;br /&gt;
If you want to try the latest beta software, also add the following:&lt;br /&gt;
 deb http://download.telldus.com/debian/ unstable main&lt;br /&gt;
&lt;br /&gt;
The Telldus public key for apt-secure is added with&lt;br /&gt;
 wget -q http://download.telldus.se/debian/telldus-public.key -O- | sudo apt-key add -&lt;br /&gt;
The key fingerprint is&lt;br /&gt;
70C4 10C9 D73D 53E8 38B3 1C58 5A94 9181 E501 EA76&lt;br /&gt;
Telldus Technologies AB &amp;lt;info.tech@telldus.se&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To install telldus-core&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install telldus-core&lt;br /&gt;
&lt;br /&gt;
If you install telldus-core version 2.1 you need to downgrade. If you get any trouble (like cannot connect to Telldus service or lib missing), install the correct libtelldus by:&lt;br /&gt;
 wget http://download.telldus.com/debian/pool/2.0/libtelldus-core2_2.0.4-2_i386.deb&lt;br /&gt;
 sudo dpkg -i libtelldus-core2_2.0.4-2_i386.deb&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Tellstick&amp;diff=29172</id>
		<title>Tellstick</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Tellstick&amp;diff=29172"/>
		<updated>2011-11-17T20:31:50Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
{{Versioninfo|810Status=Working, semi plug&#039;n play supported|810UpdatedDate=7 january 2011|810UpdatedBy=[[User:JoakimL|JoakimL]]|1004Status=Working, semi plug&#039;n play supported|1004UpdatedDate=14 november 2011|1004UpdatedBy=[[User:JoakimL|JoakimL]]}}&lt;br /&gt;
{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
[[Category: Automation]]&lt;br /&gt;
[[Category: RF Control]]&lt;br /&gt;
[[Category: Tellstick]]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
The Tellstick is a power controller for cheap RF devices like the Nexa line. It&#039;s detected with LMCE&#039;s Plug-n Play.&lt;br /&gt;
Currently only basic support is added, namely power on, power off and dimlevel.&lt;br /&gt;
N.B. this is an RF tranmsmitter, it cannot read the state of the devices, nor can it receive data from remotes, sensors or other equipment sending an RF signal. Telldus have developed a device for this (Tellstick Duo) which is not supported at this time.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
The device is plug and play for LMCE, but at this point you&#039;ll need to add the driver software yourself. Install the telldus-core package as described  [http://developer.telldus.se/wiki/TellStickInstallationUbuntu here]&lt;br /&gt;
&lt;br /&gt;
Add the following lines to your /etc/apt/sources.list: (This is pointing to 2.0 repos, 2.1 currently break functionality)&lt;br /&gt;
 deb http://download.telldus.com/debian/ 2.0 main&lt;br /&gt;
&lt;br /&gt;
If you want to try the latest beta software, also add the following:&lt;br /&gt;
 deb http://download.telldus.com/debian/ unstable main&lt;br /&gt;
&lt;br /&gt;
The Telldus public key for apt-secure is added with&lt;br /&gt;
 wget -q http://download.telldus.se/debian/telldus-public.key -O- | sudo apt-key add -&lt;br /&gt;
The key fingerprint is&lt;br /&gt;
70C4 10C9 D73D 53E8 38B3 1C58 5A94 9181 E501 EA76&lt;br /&gt;
Telldus Technologies AB &amp;lt;info.tech@telldus.se&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To install telldus-core&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install telldus-core&lt;br /&gt;
&lt;br /&gt;
If you install telldus-core version 2.1 you need to downgrade. If you get any trouble (like cannot connect to Telldus service or lib missing), install the correct libtelldus by:&lt;br /&gt;
 wget http://download.telldus.com/debian/pool/2.0/libtelldus-core2_2.0.4-2_i386.deb&lt;br /&gt;
 sudo dpkg -i libtelldus-core2_2.0.4-2_i386.deb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Adding lights ==&lt;br /&gt;
# [http://192.168.80.1/ web admin] -&amp;gt; Show devices tree -&amp;gt; Telldus USB RF controller&lt;br /&gt;
# Create Child Device -&amp;gt; Pick device template -&amp;gt; &#039;&#039;take your pick&#039;&#039; (I added &amp;quot;Light Switch (on/off)&amp;quot;)&lt;br /&gt;
# Device data -&amp;gt; Port/Channel Number -&amp;gt; &#039;&#039;Device ID&#039;&#039; -&amp;gt; &#039;&#039;&#039;save&#039;&#039;&#039; (codes correspond to the Device ID or Device Name you&#039;ve set in /etc/tellstick.conf)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reference Info ==&lt;br /&gt;
[http://www.telldus.se/products/tellstick Manufacturer website]&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Dianemo_iOS_Orbiter&amp;diff=29171</id>
		<title>Dianemo iOS Orbiter</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Dianemo_iOS_Orbiter&amp;diff=29171"/>
		<updated>2011-11-17T11:25:58Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Orbiters]]&lt;br /&gt;
{{versioninfo|810Status=works|810UpdatedDate=2nd May 2011|810UpdatedBy=totallymaxed}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
== About ==&lt;br /&gt;
[[Image:IOS_Orb_Home_Screen.JPG|left|200px]]&lt;br /&gt;
The Dianemo iOS Orbiter is a touch orbiter based on [[RoamingOrb]] by Foxi352. It uses the same techniques as [[Web Orbiter 2.0]] and [[Touch Orbiter]] in that it connects with an instance of Proxy_Orbiter running on your Dianemo NerveCentre or LinuxMCE Core. Dianemo iOS Orbiter is compatible with both Dianemo NerveCentre&#039;s &amp;amp; LinuxMCE Core&#039;s but will offer a number of additional features and capabilities when used in conjunction with a NerveCentre. The Dianemo iOS Orbiter is compatible with iPhone3G, iPhone3GS, iPhone4, all models of iPod Touch and iPad.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
== Config needed in LMCE ==&lt;br /&gt;
Check [[Web_Orbiter_2.0|Web Orbiter 2.0]] for config. Here you will find the Device Number needed for configureing the App.&lt;br /&gt;
&lt;br /&gt;
== Current Version - Dianemo iOS Orbiter v1.4 ==&lt;br /&gt;
This version has the interactive layer implemented and has some fixes for selections &amp;amp; hilights while using the interactive layer.&lt;br /&gt;
&lt;br /&gt;
== Dianemo iOS Orbiter V1.2 (*Preview*) ==&lt;br /&gt;
Version 1.2 has just been submitted to Apple for review (07-07-2011) and should be available from the iOS App store shortly. Below are some videos that show off some of the new features/capabilities in this release;&lt;br /&gt;
&lt;br /&gt;
http://youtu.be/y_vBXAZHqdY&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.youtube.com/watch?v=5nXoRJ9RaN4&lt;br /&gt;
&lt;br /&gt;
This version implements [[Enhanced UI]].&lt;br /&gt;
&lt;br /&gt;
== Dianemo iOS Orbiter V1.1 ==&lt;br /&gt;
Version 1.1 of the Dianemo iOS Orbiter App includes a number of new features and capabilities;&lt;br /&gt;
* Supports landscape rotation on iPhone, iPod Touch, iPad &amp;amp; iPad2&lt;br /&gt;
* New Tab Bar UI with swipe up/down gesture to display/hide Tab bar in the Orbiter view - allows Orbiter to stay full screen all the time.&lt;br /&gt;
** Use the Tab Bar to switch between Orbiter, Configuration &amp;amp; Help views.&lt;br /&gt;
** Swipe down in the Orbiter view to hide &amp;amp; swipe up to display.&lt;br /&gt;
* Ability to store multiple connection settings and switch between them easily.&lt;br /&gt;
* If you are a Dianemo user then v1.1 also supports secure encrypted remote access to your NerveCentre via Dianemo&#039;s remote access portal too and allows you to swap between &#039;Local&#039; &amp;amp; &#039;Remote&#039; mode for any number of installations.&lt;br /&gt;
* Help tab displays online help &amp;amp; info pages&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=300px caption=&amp;quot;iOS Orbiter v1.1 screen images&amp;quot;&amp;gt;&lt;br /&gt;
Image:IOS Orbiter Home.jpg|Home screen with new Tab UI displayed&lt;br /&gt;
Image:IOS Orbiter Help Connection Details.jpg|New connection details screen&lt;br /&gt;
Image:IOS Orbiter Connections.jpg|Store any No. of connection profiles&lt;br /&gt;
Image:IOS Orbiter Connection Manager.jpg|Each connection supports &#039;External&#039; &amp;amp; &#039;Internal&#039; mode&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== New Features in Dianemo v1.1 ===&lt;br /&gt;
&lt;br /&gt;
Dianemo v1.1 has support for rotation in either landscape orientation, supports multiple connection profiles and secure remote access via the Dianemo remote access portal. The most obvious new feature in Dianemo 1.1 is the new Tab Bar UI that is displayed across the bottom of the screen. The Tab Bar provides access to the new in-app features and settings.&lt;br /&gt;
&lt;br /&gt;
==== The Tab Bar - What the Tabs do ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Orbiter Tab&#039;&#039;&#039;&lt;br /&gt;
** The Orbiter Tab displays the Orbiter view which is the remote control UI for your Dianemo Home Automation System. For the Orbiter view to work correctly you need to have setup a Connection to your Dianemo system in the Configuration Tab (see below). The orbiter View is the only view that allows you to Show/Hide the Tab bar. To hide the Tab bar swipe you finger downwards on your devices screen above the Tab Bar - the Tab Bar should slide off the bottom of the screen. To Display the Tab Bar again swipe your finger upwards on your devices screen - the Tab Bar will will slide back on to the screen. Hiding the Tab Bar is useful when you are using the Orbiter View to access and control your Dianemo system.&lt;br /&gt;
* &#039;&#039;&#039;Configuration Tab&#039;&#039;&#039;&lt;br /&gt;
** The Configuration Tab displays the Configuration View on your devices display. The Configuration View is where you setup &amp;amp; manage the connection between your iOS device and you Dianemo System. You can create as many connections as you need in the Connection View - for example if you have more than one home with a Dianemo System installed then you can have a connection for each. Or you might be visiting a friends home who also has a Dianemo System and you can have a connection for that system too.&lt;br /&gt;
** The Configuration Tab will display each of your connections by name. At the bottom of the Configuration Tab list you will see ‘&amp;lt;New Connection&amp;gt;’ touch this to create a new connection. If you touch ‘&amp;lt;New Connection&amp;gt;’ then you see the Configuration Settings view for your new connection - this is where you enter the details about your Dianemo System. The only optional fields below are User Name &amp;amp; Password - you can omitt these if you do not have a Dianemo remote portal account.&lt;br /&gt;
*** Description - enter a unique name for this connection in this field.&lt;br /&gt;
*** Installation No. - enter your Dianemo Systems 5 digit installation id or your LinuxMCE installation number in this field.&lt;br /&gt;
*** Device No. - enter the device number of the &#039;Generic Web Device&#039; here ** Not a port number as in v1.0 **.&lt;br /&gt;
*** User name - enter your Dianemo remote portal user name here.&lt;br /&gt;
*** Password - enter your Dianemo remote portal password here.&lt;br /&gt;
*** NerveCentre IP - enter the LAN IP address of your Dianemo NerveCentre here.&lt;br /&gt;
** If you touch an existing connection the screen will display the configuration view for that connection. In this view you can switch from a ‘Local’ connection ie using your Dianemo Systems Wifi to allow your device to connect or a ‘Remote’ connection that allows you to connect securely to your Dianemo System when away from home. When you touch either ‘Connect locally’ or ‘Connect remotely’ your device will switch back to the Connections view and you will see either ‘Internal’ or ‘External’ indicated for the connection you are using.&lt;br /&gt;
** You can also ‘Edit’ the connection and ‘Delete’ it.&lt;br /&gt;
** The Connections View also allows you to set Global Settings. These are settings that apply to whatever Connection you are currently using. To access your Global settings touch the ‘Settings’ button in the top right corner of the Connections View screen. The Global Settings View has three settings.&lt;br /&gt;
*** Wifi only - if this setting is switched to ‘ON’ then the Dianemo App will only use Wifi for its data connection. If this setting is switched to ‘OFF’ and your device also has a mobile or cellular data connection then the Dianemo App will use that connection if it needs to.&lt;br /&gt;
*** Load Indicator - this setting determines whether the Dianemo App displays its load indicator whe it is communicating with your Dianemo System when in the Orbiter View. If this setting is ‘ON’ then the load indicator will be displayed. If this setting is ‘OFF’ then no load indicator will be displayed.&lt;br /&gt;
*** Polling Frequency - this slider allows you to control how frequently the Dianemo App will check back with your Dianemo System to see if there are things it should alert you to or display on-screen in the Orbiter View.&lt;br /&gt;
*** Touch ‘Save Settings’ to save any changes you have made in the Global Settings view. Touch ‘Back’ if you do not want to save any changes you have made.&lt;br /&gt;
* &#039;&#039;&#039;Help Tab&#039;&#039;&#039;&lt;br /&gt;
** Touch the ‘Help’ Tab to display online Help about the Dianemo App and also a quick overview of the Dianemo Home Automation system itself for those of you who have not installed Dianemo in your home yet.&lt;br /&gt;
* &#039;&#039;&#039;About Tab&#039;&#039;&#039;&lt;br /&gt;
** The About Tab displays the About View which contains information about the App, CHT Ltd and the development team behind the Dianemo App.&lt;br /&gt;
&lt;br /&gt;
== Availability ==&lt;br /&gt;
The v1.1 App is available now in the Apple App store as a Free download for all iOS device users. As previously this App contains NO advertising.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Installation is simple and is carried out the same way as for any other iOS app. &lt;br /&gt;
*Connect to the app store either from your PC or Laptop or your iOS device..&lt;br /&gt;
*Search for the app &amp;quot;Dianemo&amp;quot;&lt;br /&gt;
*On the description page touch on &amp;quot;Free&amp;quot; to install it (you may be required to enter your iTunes store account details - the App is however Free).&lt;br /&gt;
*If you downloaded the App on your PC or Laptop you will need to sync your iOS device to install it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
== Configuration for v1.0==&lt;br /&gt;
[[Image:IOS_Orb_Settings.JPG|left|200px]]&lt;br /&gt;
&amp;lt;br /&amp;gt;After having installed the app you first have to set your preferences. Dianemo iOS Orbiter integrates into the standard &amp;quot;Settings&amp;quot; app of your iOS device. Touch the Settings app and scroll down to the &amp;quot;Dianemo&amp;quot; entry. Touch &amp;quot;Dianemo&amp;quot; to change the settings You should at least set the server IP and the server port of the proxy orbiter for your iOS device. If you have installed the App on an iPhone then setting the &#039;Restrict to WiFi&#039; setting to &#039;On&#039; will stop your iPhone from using the mobile network accidentally. Poll delay will adjust how frequently the App checks back with the Core to see if there are any updates for the currently displayed screen (usually it is best to leave this setting at its default &#039;1 sec&#039; setting). The &#039;Image reload on shake&#039; option allows you to trigger a screen reload by shaking your iOS device (useful if the &#039;Poll delay&#039; setting is set to longer than a few secs). The &#039;Image load indicator&#039; setting determines whether the App displays am animated progress &#039;wheel&#039; in the centre of the screen when ever an update is underway.&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Dianemo_iOS_Orbiter&amp;diff=29170</id>
		<title>Dianemo iOS Orbiter</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Dianemo_iOS_Orbiter&amp;diff=29170"/>
		<updated>2011-11-17T11:23:59Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Orbiters]]&lt;br /&gt;
{{versioninfo|810Status=works|810UpdatedDate=2nd May 2011|810UpdatedBy=totallymaxed}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
== About ==&lt;br /&gt;
[[Image:IOS_Orb_Home_Screen.JPG|left|200px]]&lt;br /&gt;
The Dianemo iOS Orbiter is a touch orbiter based on [[RoamingOrb]] by Foxi352. It uses the same techniques as [[Web Orbiter 2.0]] and [[Touch Orbiter]] in that it connects with an instance of Proxy_Orbiter running on your Dianemo NerveCentre or LinuxMCE Core. Dianemo iOS Orbiter is compatible with both Dianemo NerveCentre&#039;s &amp;amp; LinuxMCE Core&#039;s but will offer a number of additional features and capabilities when used in conjunction with a NerveCentre. The Dianemo iOS Orbiter is compatible with iPhone3G, iPhone3GS, iPhone4, all models of iPod Touch and iPad.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
== Config needed in LMCE ==&lt;br /&gt;
Check [[Web_Orbiter_2.0]Web Orbiter 2.0] for config. Here you will find the Device Number needed for configureing the App.&lt;br /&gt;
&lt;br /&gt;
== Current Version - Dianemo iOS Orbiter v1.4 ==&lt;br /&gt;
This version has the interactive layer implemented and has some fixes for selections &amp;amp; hilights while using the interactive layer.&lt;br /&gt;
&lt;br /&gt;
== Dianemo iOS Orbiter V1.2 (*Preview*) ==&lt;br /&gt;
Version 1.2 has just been submitted to Apple for review (07-07-2011) and should be available from the iOS App store shortly. Below are some videos that show off some of the new features/capabilities in this release;&lt;br /&gt;
&lt;br /&gt;
http://youtu.be/y_vBXAZHqdY&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.youtube.com/watch?v=5nXoRJ9RaN4&lt;br /&gt;
&lt;br /&gt;
This version implements [[Enhanced UI]].&lt;br /&gt;
&lt;br /&gt;
== Dianemo iOS Orbiter V1.1 ==&lt;br /&gt;
Version 1.1 of the Dianemo iOS Orbiter App includes a number of new features and capabilities;&lt;br /&gt;
* Supports landscape rotation on iPhone, iPod Touch, iPad &amp;amp; iPad2&lt;br /&gt;
* New Tab Bar UI with swipe up/down gesture to display/hide Tab bar in the Orbiter view - allows Orbiter to stay full screen all the time.&lt;br /&gt;
** Use the Tab Bar to switch between Orbiter, Configuration &amp;amp; Help views.&lt;br /&gt;
** Swipe down in the Orbiter view to hide &amp;amp; swipe up to display.&lt;br /&gt;
* Ability to store multiple connection settings and switch between them easily.&lt;br /&gt;
* If you are a Dianemo user then v1.1 also supports secure encrypted remote access to your NerveCentre via Dianemo&#039;s remote access portal too and allows you to swap between &#039;Local&#039; &amp;amp; &#039;Remote&#039; mode for any number of installations.&lt;br /&gt;
* Help tab displays online help &amp;amp; info pages&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=300px caption=&amp;quot;iOS Orbiter v1.1 screen images&amp;quot;&amp;gt;&lt;br /&gt;
Image:IOS Orbiter Home.jpg|Home screen with new Tab UI displayed&lt;br /&gt;
Image:IOS Orbiter Help Connection Details.jpg|New connection details screen&lt;br /&gt;
Image:IOS Orbiter Connections.jpg|Store any No. of connection profiles&lt;br /&gt;
Image:IOS Orbiter Connection Manager.jpg|Each connection supports &#039;External&#039; &amp;amp; &#039;Internal&#039; mode&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== New Features in Dianemo v1.1 ===&lt;br /&gt;
&lt;br /&gt;
Dianemo v1.1 has support for rotation in either landscape orientation, supports multiple connection profiles and secure remote access via the Dianemo remote access portal. The most obvious new feature in Dianemo 1.1 is the new Tab Bar UI that is displayed across the bottom of the screen. The Tab Bar provides access to the new in-app features and settings.&lt;br /&gt;
&lt;br /&gt;
==== The Tab Bar - What the Tabs do ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Orbiter Tab&#039;&#039;&#039;&lt;br /&gt;
** The Orbiter Tab displays the Orbiter view which is the remote control UI for your Dianemo Home Automation System. For the Orbiter view to work correctly you need to have setup a Connection to your Dianemo system in the Configuration Tab (see below). The orbiter View is the only view that allows you to Show/Hide the Tab bar. To hide the Tab bar swipe you finger downwards on your devices screen above the Tab Bar - the Tab Bar should slide off the bottom of the screen. To Display the Tab Bar again swipe your finger upwards on your devices screen - the Tab Bar will will slide back on to the screen. Hiding the Tab Bar is useful when you are using the Orbiter View to access and control your Dianemo system.&lt;br /&gt;
* &#039;&#039;&#039;Configuration Tab&#039;&#039;&#039;&lt;br /&gt;
** The Configuration Tab displays the Configuration View on your devices display. The Configuration View is where you setup &amp;amp; manage the connection between your iOS device and you Dianemo System. You can create as many connections as you need in the Connection View - for example if you have more than one home with a Dianemo System installed then you can have a connection for each. Or you might be visiting a friends home who also has a Dianemo System and you can have a connection for that system too.&lt;br /&gt;
** The Configuration Tab will display each of your connections by name. At the bottom of the Configuration Tab list you will see ‘&amp;lt;New Connection&amp;gt;’ touch this to create a new connection. If you touch ‘&amp;lt;New Connection&amp;gt;’ then you see the Configuration Settings view for your new connection - this is where you enter the details about your Dianemo System. The only optional fields below are User Name &amp;amp; Password - you can omitt these if you do not have a Dianemo remote portal account.&lt;br /&gt;
*** Description - enter a unique name for this connection in this field.&lt;br /&gt;
*** Installation No. - enter your Dianemo Systems 5 digit installation id or your LinuxMCE installation number in this field.&lt;br /&gt;
*** Device No. - enter the device number of the &#039;Generic Web Device&#039; here ** Not a port number as in v1.0 **.&lt;br /&gt;
*** User name - enter your Dianemo remote portal user name here.&lt;br /&gt;
*** Password - enter your Dianemo remote portal password here.&lt;br /&gt;
*** NerveCentre IP - enter the LAN IP address of your Dianemo NerveCentre here.&lt;br /&gt;
** If you touch an existing connection the screen will display the configuration view for that connection. In this view you can switch from a ‘Local’ connection ie using your Dianemo Systems Wifi to allow your device to connect or a ‘Remote’ connection that allows you to connect securely to your Dianemo System when away from home. When you touch either ‘Connect locally’ or ‘Connect remotely’ your device will switch back to the Connections view and you will see either ‘Internal’ or ‘External’ indicated for the connection you are using.&lt;br /&gt;
** You can also ‘Edit’ the connection and ‘Delete’ it.&lt;br /&gt;
** The Connections View also allows you to set Global Settings. These are settings that apply to whatever Connection you are currently using. To access your Global settings touch the ‘Settings’ button in the top right corner of the Connections View screen. The Global Settings View has three settings.&lt;br /&gt;
*** Wifi only - if this setting is switched to ‘ON’ then the Dianemo App will only use Wifi for its data connection. If this setting is switched to ‘OFF’ and your device also has a mobile or cellular data connection then the Dianemo App will use that connection if it needs to.&lt;br /&gt;
*** Load Indicator - this setting determines whether the Dianemo App displays its load indicator whe it is communicating with your Dianemo System when in the Orbiter View. If this setting is ‘ON’ then the load indicator will be displayed. If this setting is ‘OFF’ then no load indicator will be displayed.&lt;br /&gt;
*** Polling Frequency - this slider allows you to control how frequently the Dianemo App will check back with your Dianemo System to see if there are things it should alert you to or display on-screen in the Orbiter View.&lt;br /&gt;
*** Touch ‘Save Settings’ to save any changes you have made in the Global Settings view. Touch ‘Back’ if you do not want to save any changes you have made.&lt;br /&gt;
* &#039;&#039;&#039;Help Tab&#039;&#039;&#039;&lt;br /&gt;
** Touch the ‘Help’ Tab to display online Help about the Dianemo App and also a quick overview of the Dianemo Home Automation system itself for those of you who have not installed Dianemo in your home yet.&lt;br /&gt;
* &#039;&#039;&#039;About Tab&#039;&#039;&#039;&lt;br /&gt;
** The About Tab displays the About View which contains information about the App, CHT Ltd and the development team behind the Dianemo App.&lt;br /&gt;
&lt;br /&gt;
== Availability ==&lt;br /&gt;
The v1.1 App is available now in the Apple App store as a Free download for all iOS device users. As previously this App contains NO advertising.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Installation is simple and is carried out the same way as for any other iOS app. &lt;br /&gt;
*Connect to the app store either from your PC or Laptop or your iOS device..&lt;br /&gt;
*Search for the app &amp;quot;Dianemo&amp;quot;&lt;br /&gt;
*On the description page touch on &amp;quot;Free&amp;quot; to install it (you may be required to enter your iTunes store account details - the App is however Free).&lt;br /&gt;
*If you downloaded the App on your PC or Laptop you will need to sync your iOS device to install it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
== Configuration for v1.0==&lt;br /&gt;
[[Image:IOS_Orb_Settings.JPG|left|200px]]&lt;br /&gt;
&amp;lt;br /&amp;gt;After having installed the app you first have to set your preferences. Dianemo iOS Orbiter integrates into the standard &amp;quot;Settings&amp;quot; app of your iOS device. Touch the Settings app and scroll down to the &amp;quot;Dianemo&amp;quot; entry. Touch &amp;quot;Dianemo&amp;quot; to change the settings You should at least set the server IP and the server port of the proxy orbiter for your iOS device. If you have installed the App on an iPhone then setting the &#039;Restrict to WiFi&#039; setting to &#039;On&#039; will stop your iPhone from using the mobile network accidentally. Poll delay will adjust how frequently the App checks back with the Core to see if there are any updates for the currently displayed screen (usually it is best to leave this setting at its default &#039;1 sec&#039; setting). The &#039;Image reload on shake&#039; option allows you to trigger a screen reload by shaking your iOS device (useful if the &#039;Poll delay&#039; setting is set to longer than a few secs). The &#039;Image load indicator&#039; setting determines whether the App displays am animated progress &#039;wheel&#039; in the centre of the screen when ever an update is underway.&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Dianemo_iOS_Orbiter&amp;diff=29169</id>
		<title>Dianemo iOS Orbiter</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Dianemo_iOS_Orbiter&amp;diff=29169"/>
		<updated>2011-11-17T11:23:09Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: Link to config page added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Orbiters]]&lt;br /&gt;
{{versioninfo|810Status=works|810UpdatedDate=2nd May 2011|810UpdatedBy=totallymaxed}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
== About ==&lt;br /&gt;
[[Image:IOS_Orb_Home_Screen.JPG|left|200px]]&lt;br /&gt;
The Dianemo iOS Orbiter is a touch orbiter based on [[RoamingOrb]] by Foxi352. It uses the same techniques as [[Web Orbiter 2.0]] and [[Touch Orbiter]] in that it connects with an instance of Proxy_Orbiter running on your Dianemo NerveCentre or LinuxMCE Core. Dianemo iOS Orbiter is compatible with both Dianemo NerveCentre&#039;s &amp;amp; LinuxMCE Core&#039;s but will offer a number of additional features and capabilities when used in conjunction with a NerveCentre. The Dianemo iOS Orbiter is compatible with iPhone3G, iPhone3GS, iPhone4, all models of iPod Touch and iPad.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
== Config needed in LMCE ==&lt;br /&gt;
Check [[Web_Orbiter_2.0]] for config. Here you will find the Device Number needed for configureing the App.&lt;br /&gt;
&lt;br /&gt;
== Current Version - Dianemo iOS Orbiter v1.4 ==&lt;br /&gt;
This version has the interactive layer implemented and has some fixes for selections &amp;amp; hilights while using the interactive layer.&lt;br /&gt;
&lt;br /&gt;
== Dianemo iOS Orbiter V1.2 (*Preview*) ==&lt;br /&gt;
Version 1.2 has just been submitted to Apple for review (07-07-2011) and should be available from the iOS App store shortly. Below are some videos that show off some of the new features/capabilities in this release;&lt;br /&gt;
&lt;br /&gt;
http://youtu.be/y_vBXAZHqdY&amp;lt;br&amp;gt;&lt;br /&gt;
http://www.youtube.com/watch?v=5nXoRJ9RaN4&lt;br /&gt;
&lt;br /&gt;
This version implements [[Enhanced UI]].&lt;br /&gt;
&lt;br /&gt;
== Dianemo iOS Orbiter V1.1 ==&lt;br /&gt;
Version 1.1 of the Dianemo iOS Orbiter App includes a number of new features and capabilities;&lt;br /&gt;
* Supports landscape rotation on iPhone, iPod Touch, iPad &amp;amp; iPad2&lt;br /&gt;
* New Tab Bar UI with swipe up/down gesture to display/hide Tab bar in the Orbiter view - allows Orbiter to stay full screen all the time.&lt;br /&gt;
** Use the Tab Bar to switch between Orbiter, Configuration &amp;amp; Help views.&lt;br /&gt;
** Swipe down in the Orbiter view to hide &amp;amp; swipe up to display.&lt;br /&gt;
* Ability to store multiple connection settings and switch between them easily.&lt;br /&gt;
* If you are a Dianemo user then v1.1 also supports secure encrypted remote access to your NerveCentre via Dianemo&#039;s remote access portal too and allows you to swap between &#039;Local&#039; &amp;amp; &#039;Remote&#039; mode for any number of installations.&lt;br /&gt;
* Help tab displays online help &amp;amp; info pages&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=300px caption=&amp;quot;iOS Orbiter v1.1 screen images&amp;quot;&amp;gt;&lt;br /&gt;
Image:IOS Orbiter Home.jpg|Home screen with new Tab UI displayed&lt;br /&gt;
Image:IOS Orbiter Help Connection Details.jpg|New connection details screen&lt;br /&gt;
Image:IOS Orbiter Connections.jpg|Store any No. of connection profiles&lt;br /&gt;
Image:IOS Orbiter Connection Manager.jpg|Each connection supports &#039;External&#039; &amp;amp; &#039;Internal&#039; mode&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== New Features in Dianemo v1.1 ===&lt;br /&gt;
&lt;br /&gt;
Dianemo v1.1 has support for rotation in either landscape orientation, supports multiple connection profiles and secure remote access via the Dianemo remote access portal. The most obvious new feature in Dianemo 1.1 is the new Tab Bar UI that is displayed across the bottom of the screen. The Tab Bar provides access to the new in-app features and settings.&lt;br /&gt;
&lt;br /&gt;
==== The Tab Bar - What the Tabs do ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Orbiter Tab&#039;&#039;&#039;&lt;br /&gt;
** The Orbiter Tab displays the Orbiter view which is the remote control UI for your Dianemo Home Automation System. For the Orbiter view to work correctly you need to have setup a Connection to your Dianemo system in the Configuration Tab (see below). The orbiter View is the only view that allows you to Show/Hide the Tab bar. To hide the Tab bar swipe you finger downwards on your devices screen above the Tab Bar - the Tab Bar should slide off the bottom of the screen. To Display the Tab Bar again swipe your finger upwards on your devices screen - the Tab Bar will will slide back on to the screen. Hiding the Tab Bar is useful when you are using the Orbiter View to access and control your Dianemo system.&lt;br /&gt;
* &#039;&#039;&#039;Configuration Tab&#039;&#039;&#039;&lt;br /&gt;
** The Configuration Tab displays the Configuration View on your devices display. The Configuration View is where you setup &amp;amp; manage the connection between your iOS device and you Dianemo System. You can create as many connections as you need in the Connection View - for example if you have more than one home with a Dianemo System installed then you can have a connection for each. Or you might be visiting a friends home who also has a Dianemo System and you can have a connection for that system too.&lt;br /&gt;
** The Configuration Tab will display each of your connections by name. At the bottom of the Configuration Tab list you will see ‘&amp;lt;New Connection&amp;gt;’ touch this to create a new connection. If you touch ‘&amp;lt;New Connection&amp;gt;’ then you see the Configuration Settings view for your new connection - this is where you enter the details about your Dianemo System. The only optional fields below are User Name &amp;amp; Password - you can omitt these if you do not have a Dianemo remote portal account.&lt;br /&gt;
*** Description - enter a unique name for this connection in this field.&lt;br /&gt;
*** Installation No. - enter your Dianemo Systems 5 digit installation id or your LinuxMCE installation number in this field.&lt;br /&gt;
*** Device No. - enter the device number of the &#039;Generic Web Device&#039; here ** Not a port number as in v1.0 **.&lt;br /&gt;
*** User name - enter your Dianemo remote portal user name here.&lt;br /&gt;
*** Password - enter your Dianemo remote portal password here.&lt;br /&gt;
*** NerveCentre IP - enter the LAN IP address of your Dianemo NerveCentre here.&lt;br /&gt;
** If you touch an existing connection the screen will display the configuration view for that connection. In this view you can switch from a ‘Local’ connection ie using your Dianemo Systems Wifi to allow your device to connect or a ‘Remote’ connection that allows you to connect securely to your Dianemo System when away from home. When you touch either ‘Connect locally’ or ‘Connect remotely’ your device will switch back to the Connections view and you will see either ‘Internal’ or ‘External’ indicated for the connection you are using.&lt;br /&gt;
** You can also ‘Edit’ the connection and ‘Delete’ it.&lt;br /&gt;
** The Connections View also allows you to set Global Settings. These are settings that apply to whatever Connection you are currently using. To access your Global settings touch the ‘Settings’ button in the top right corner of the Connections View screen. The Global Settings View has three settings.&lt;br /&gt;
*** Wifi only - if this setting is switched to ‘ON’ then the Dianemo App will only use Wifi for its data connection. If this setting is switched to ‘OFF’ and your device also has a mobile or cellular data connection then the Dianemo App will use that connection if it needs to.&lt;br /&gt;
*** Load Indicator - this setting determines whether the Dianemo App displays its load indicator whe it is communicating with your Dianemo System when in the Orbiter View. If this setting is ‘ON’ then the load indicator will be displayed. If this setting is ‘OFF’ then no load indicator will be displayed.&lt;br /&gt;
*** Polling Frequency - this slider allows you to control how frequently the Dianemo App will check back with your Dianemo System to see if there are things it should alert you to or display on-screen in the Orbiter View.&lt;br /&gt;
*** Touch ‘Save Settings’ to save any changes you have made in the Global Settings view. Touch ‘Back’ if you do not want to save any changes you have made.&lt;br /&gt;
* &#039;&#039;&#039;Help Tab&#039;&#039;&#039;&lt;br /&gt;
** Touch the ‘Help’ Tab to display online Help about the Dianemo App and also a quick overview of the Dianemo Home Automation system itself for those of you who have not installed Dianemo in your home yet.&lt;br /&gt;
* &#039;&#039;&#039;About Tab&#039;&#039;&#039;&lt;br /&gt;
** The About Tab displays the About View which contains information about the App, CHT Ltd and the development team behind the Dianemo App.&lt;br /&gt;
&lt;br /&gt;
== Availability ==&lt;br /&gt;
The v1.1 App is available now in the Apple App store as a Free download for all iOS device users. As previously this App contains NO advertising.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Installation is simple and is carried out the same way as for any other iOS app. &lt;br /&gt;
*Connect to the app store either from your PC or Laptop or your iOS device..&lt;br /&gt;
*Search for the app &amp;quot;Dianemo&amp;quot;&lt;br /&gt;
*On the description page touch on &amp;quot;Free&amp;quot; to install it (you may be required to enter your iTunes store account details - the App is however Free).&lt;br /&gt;
*If you downloaded the App on your PC or Laptop you will need to sync your iOS device to install it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
== Configuration for v1.0==&lt;br /&gt;
[[Image:IOS_Orb_Settings.JPG|left|200px]]&lt;br /&gt;
&amp;lt;br /&amp;gt;After having installed the app you first have to set your preferences. Dianemo iOS Orbiter integrates into the standard &amp;quot;Settings&amp;quot; app of your iOS device. Touch the Settings app and scroll down to the &amp;quot;Dianemo&amp;quot; entry. Touch &amp;quot;Dianemo&amp;quot; to change the settings You should at least set the server IP and the server port of the proxy orbiter for your iOS device. If you have installed the App on an iPhone then setting the &#039;Restrict to WiFi&#039; setting to &#039;On&#039; will stop your iPhone from using the mobile network accidentally. Poll delay will adjust how frequently the App checks back with the Core to see if there are any updates for the currently displayed screen (usually it is best to leave this setting at its default &#039;1 sec&#039; setting). The &#039;Image reload on shake&#039; option allows you to trigger a screen reload by shaking your iOS device (useful if the &#039;Poll delay&#039; setting is set to longer than a few secs). The &#039;Image load indicator&#039; setting determines whether the App displays am animated progress &#039;wheel&#039; in the centre of the screen when ever an update is underway.&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Tellstick&amp;diff=29125</id>
		<title>Tellstick</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Tellstick&amp;diff=29125"/>
		<updated>2011-11-14T13:41:29Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
{{Versioninfo|810Status=Working, plug&#039;n play supported|810UpdatedDate=7 january 2011|810UpdatedBy=[[User:JoakimL|JoakimL]]|1004Status=Working, plug&#039;n play supported|1004UpdatedDate=14 november 2011|1004UpdatedBy=[[User:JoakimL|JoakimL]]}}&lt;br /&gt;
{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
[[Category: Automation]]&lt;br /&gt;
[[Category: RF Control]]&lt;br /&gt;
[[Category: Tellstick]]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
The Tellstick is a power controller for cheap RF devices like the Nexa line. It&#039;s detected with LMCE&#039;s Plug-n Play.&lt;br /&gt;
Currently only basic support is added, namely power on, power off and dimlevel.&lt;br /&gt;
N.B. this is an RF tranmsmitter, it cannot read the state of the devices, nor can it receive data from remotes, sensors or other equipment sending an RF signal. Telldus have developed a device for this (Tellstick Duo) which is not supported at this time.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
The device is plug and play for LMCE, but at this point you&#039;ll need to add the driver software yourself. Install the telldus-core package as described  [http://developer.telldus.se/wiki/TellStickInstallationUbuntu here]&lt;br /&gt;
&lt;br /&gt;
Add the following lines to your /etc/apt/sources.list: (This is pointing to 2.0 repos, 2.1 currently break functionality)&lt;br /&gt;
 deb http://download.telldus.com/debian/ 2.0 main&lt;br /&gt;
&lt;br /&gt;
If you want to try the latest beta software, also add the following:&lt;br /&gt;
 deb http://download.telldus.com/debian/ unstable main&lt;br /&gt;
&lt;br /&gt;
The Telldus public key for apt-secure is added with&lt;br /&gt;
 wget -q http://download.telldus.se/debian/telldus-public.key -O- | sudo apt-key add -&lt;br /&gt;
The key fingerprint is&lt;br /&gt;
70C4 10C9 D73D 53E8 38B3 1C58 5A94 9181 E501 EA76&lt;br /&gt;
Telldus Technologies AB &amp;lt;info.tech@telldus.se&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To install telldus-core&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install telldus-core&lt;br /&gt;
&lt;br /&gt;
If you install telldus-core version 2.1 you need to downgrade. If you get any trouble (like cannot connect to Telldus service or lib missing), install the correct libtelldus by:&lt;br /&gt;
 wget http://download.telldus.com/debian/pool/2.0/libtelldus-core2_2.0.4-2_i386.deb&lt;br /&gt;
 sudo dpkg -i libtelldus-core2_2.0.4-2_i386.deb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Adding lights ==&lt;br /&gt;
# [http://192.168.80.1/ web admin] -&amp;gt; Show devices tree -&amp;gt; Telldus USB RF controller&lt;br /&gt;
# Create Child Device -&amp;gt; Pick device template -&amp;gt; &#039;&#039;take your pick&#039;&#039; (I added &amp;quot;Light Switch (on/off)&amp;quot;)&lt;br /&gt;
# Device data -&amp;gt; Port/Channel Number -&amp;gt; &#039;&#039;Device ID&#039;&#039; -&amp;gt; &#039;&#039;&#039;save&#039;&#039;&#039; (codes correspond to the Device ID or Device Name you&#039;ve set in /etc/tellstick.conf)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reference Info ==&lt;br /&gt;
[http://www.telldus.se/products/tellstick Manufacturer website]&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Tellstick&amp;diff=29124</id>
		<title>Tellstick</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Tellstick&amp;diff=29124"/>
		<updated>2011-11-14T13:40:55Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: 10.04 info and Telldus 2.0/2.1 issues&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
{{Versioninfo|810Status=Working, plug&#039;n play supported|810UpdatedDate=7 january 2011|810UpdatedBy=[[User:JoakimL|JoakimL]]|1004Status=Working, plug&#039;n play supported|1004UpdatedDate=14 november 2011|1004UpdatedBy=[[User:JoakimL|JoakimL]]}}&lt;br /&gt;
{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
[[Category: Automation]]&lt;br /&gt;
[[Category: RF Control]]&lt;br /&gt;
[[Category: Tellstick]]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
The Tellstick is a power controller for cheap RF devices like the Nexa line. It&#039;s detected with LMCE&#039;s Plug-n Play.&lt;br /&gt;
Currently only basic support is added, namely power on, power off and dimlevel.&lt;br /&gt;
N.B. this is an RF tranmsmitter, it cannot read the state of the devices, nor can it receive data from remotes, sensors or other equipment sending an RF signal. Telldus have developed a device for this (Tellstick Duo) which is not supported at this time.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
The device is plug and play for LMCE, but at this point you&#039;ll need to add the driver software yourself. Install the telldus-core package as described  [http://developer.telldus.se/wiki/TellStickInstallationUbuntu here]&lt;br /&gt;
&lt;br /&gt;
Add the following lines to your /etc/apt/sources.list: (This is pointing to 2.0 repos, 2.1 currently break functionality)&lt;br /&gt;
 deb http://download.telldus.com/debian/ 2.0 main&lt;br /&gt;
&lt;br /&gt;
If you want to try the latest beta software, also add the following:&lt;br /&gt;
 deb http://download.telldus.com/debian/ unstable main&lt;br /&gt;
&lt;br /&gt;
The Telldus public key for apt-secure is added with&lt;br /&gt;
 wget -q http://download.telldus.se/debian/telldus-public.key -O- | sudo apt-key add -&lt;br /&gt;
The key fingerprint is&lt;br /&gt;
70C4 10C9 D73D 53E8 38B3 1C58 5A94 9181 E501 EA76&lt;br /&gt;
Telldus Technologies AB &amp;lt;info.tech@telldus.se&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To install telldus-core&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install telldus-core&lt;br /&gt;
&lt;br /&gt;
If you install telldus-core version 2.1 you need to downgrade. If you get any trouble (like cannot connect to Telldus service or lib missing), install the correct libtelldus by:&lt;br /&gt;
- wget http://download.telldus.com/debian/pool/2.0/libtelldus-core2_2.0.4-2_i386.deb&lt;br /&gt;
- sudo dpkg -i libtelldus-core2_2.0.4-2_i386.deb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Adding lights ==&lt;br /&gt;
# [http://192.168.80.1/ web admin] -&amp;gt; Show devices tree -&amp;gt; Telldus USB RF controller&lt;br /&gt;
# Create Child Device -&amp;gt; Pick device template -&amp;gt; &#039;&#039;take your pick&#039;&#039; (I added &amp;quot;Light Switch (on/off)&amp;quot;)&lt;br /&gt;
# Device data -&amp;gt; Port/Channel Number -&amp;gt; &#039;&#039;Device ID&#039;&#039; -&amp;gt; &#039;&#039;&#039;save&#039;&#039;&#039; (codes correspond to the Device ID or Device Name you&#039;ve set in /etc/tellstick.conf)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reference Info ==&lt;br /&gt;
[http://www.telldus.se/products/tellstick Manufacturer website]&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Tellstick&amp;diff=29123</id>
		<title>Tellstick</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Tellstick&amp;diff=29123"/>
		<updated>2011-11-14T10:23:25Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
{{Versioninfo|810Status=Working, plug&#039;n play supported|810UpdatedDate=7 january 2011|810UpdatedBy=[[User:JoakimL|JoakimL]]|1004Status=Being verified|1004UpdatedDate=14 november 2011|1004UpdatedBy=[[User:JoakimL|JoakimL]]}}&lt;br /&gt;
{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
[[Category: Automation]]&lt;br /&gt;
[[Category: RF Control]]&lt;br /&gt;
[[Category: Tellstick]]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
The Tellstick is a power controller for cheap RF devices like the Nexa line. It&#039;s detected with LMCE&#039;s Plug-n Play.&lt;br /&gt;
Currently only basic support is added, namely power on, power off and dimlevel.&lt;br /&gt;
N.B. this is an RF tranmsmitter, it cannot read the state of the devices, nor can it receive data from remotes, sensors or other equipment sending an RF signal. Telldus have developed a device for this (Tellstick Duo) which is not supported at this time.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
The device is plug and play for LMCE, but at this point you&#039;ll need to add the driver software yourself. Install the telldus-core package as described  [http://developer.telldus.se/wiki/TellStickInstallationUbuntu here]&lt;br /&gt;
&lt;br /&gt;
Add the following lines to your /etc/apt/sources.list: (This is pointing to 2.0 repos, 2.1 currently break functionality)&lt;br /&gt;
 deb http://download.telldus.com/debian/ 2.0 main&lt;br /&gt;
&lt;br /&gt;
If you want to try the latest beta software, also add the following:&lt;br /&gt;
 deb http://download.telldus.com/debian/ unstable main&lt;br /&gt;
&lt;br /&gt;
The Telldus public key for apt-secure is added with&lt;br /&gt;
 wget -q http://download.telldus.se/debian/telldus-public.key -O- | sudo apt-key add -&lt;br /&gt;
The key fingerprint is&lt;br /&gt;
70C4 10C9 D73D 53E8 38B3 1C58 5A94 9181 E501 EA76&lt;br /&gt;
Telldus Technologies AB &amp;lt;info.tech@telldus.se&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To install telldus-core&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install telldus-core&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Adding lights ==&lt;br /&gt;
# [http://192.168.80.1/ web admin] -&amp;gt; Show devices tree -&amp;gt; Telldus USB RF controller&lt;br /&gt;
# Create Child Device -&amp;gt; Pick device template -&amp;gt; &#039;&#039;take your pick&#039;&#039; (I added &amp;quot;Light Switch (on/off)&amp;quot;)&lt;br /&gt;
# Device data -&amp;gt; Port/Channel Number -&amp;gt; &#039;&#039;Device ID&#039;&#039; -&amp;gt; &#039;&#039;&#039;save&#039;&#039;&#039; (codes correspond to the Device ID or Device Name you&#039;ve set in /etc/tellstick.conf)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reference Info ==&lt;br /&gt;
[http://www.telldus.se/products/tellstick Manufacturer website]&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Tellstick&amp;diff=29122</id>
		<title>Tellstick</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Tellstick&amp;diff=29122"/>
		<updated>2011-11-14T10:14:56Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
{{Versioninfo|810Status=Working, plug&#039;n play supported|810UpdatedDate=7 january 2011|810UpdatedBy=JoakimL&lt;br /&gt;
|1040Status=Being verified|810UpdatedDate=14 november 2011|1004UpdatedBy=JoakimL}}&lt;br /&gt;
{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
[[Category: Automation]]&lt;br /&gt;
[[Category: RF Control]]&lt;br /&gt;
[[Category: Tellstick]]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
The Tellstick is a power controller for cheap RF devices like the Nexa line. It&#039;s detected with LMCE&#039;s Plug-n Play.&lt;br /&gt;
Currently only basic support is added, namely power on, power off and dimlevel.&lt;br /&gt;
N.B. this is an RF tranmsmitter, it cannot read the state of the devices, nor can it receive data from remotes, sensors or other equipment sending an RF signal. Telldus have developed a device for this (Tellstick Duo) which is not supported at this time.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
The device is plug and play for LMCE, but at this point you&#039;ll need to add the driver software yourself. Install the telldus-core package as described  [http://developer.telldus.se/wiki/TellStickInstallationUbuntu here]&lt;br /&gt;
&lt;br /&gt;
Add the following lines to your /etc/apt/sources.list: (This is pointing to 2.0 repos, 2.1 currently break functionality)&lt;br /&gt;
 deb http://download.telldus.com/debian/ 2.0 main&lt;br /&gt;
&lt;br /&gt;
If you want to try the latest beta software, also add the following:&lt;br /&gt;
 deb http://download.telldus.com/debian/ unstable main&lt;br /&gt;
&lt;br /&gt;
The Telldus public key for apt-secure is added with&lt;br /&gt;
 wget -q http://download.telldus.se/debian/telldus-public.key -O- | sudo apt-key add -&lt;br /&gt;
The key fingerprint is&lt;br /&gt;
70C4 10C9 D73D 53E8 38B3 1C58 5A94 9181 E501 EA76&lt;br /&gt;
Telldus Technologies AB &amp;lt;info.tech@telldus.se&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To install telldus-core&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install telldus-core&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Adding lights ==&lt;br /&gt;
# [http://192.168.80.1/ web admin] -&amp;gt; Show devices tree -&amp;gt; Telldus USB RF controller&lt;br /&gt;
# Create Child Device -&amp;gt; Pick device template -&amp;gt; &#039;&#039;take your pick&#039;&#039; (I added &amp;quot;Light Switch (on/off)&amp;quot;)&lt;br /&gt;
# Device data -&amp;gt; Port/Channel Number -&amp;gt; &#039;&#039;Device ID&#039;&#039; -&amp;gt; &#039;&#039;&#039;save&#039;&#039;&#039; (codes correspond to the Device ID or Device Name you&#039;ve set in /etc/tellstick.conf)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reference Info ==&lt;br /&gt;
[http://www.telldus.se/products/tellstick Manufacturer website]&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Tellstick&amp;diff=29121</id>
		<title>Tellstick</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Tellstick&amp;diff=29121"/>
		<updated>2011-11-14T10:14:24Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
{{Versioninfo|810Status=Working, plug&#039;n play supported|810UpdatedDate=7 january 2011|810UpdatedBy=JoakimL}}&lt;br /&gt;
{{Versioninfo|1040Status=Being verified|810UpdatedDate=14 november 2011|1004UpdatedBy=JoakimL}}&lt;br /&gt;
{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
[[Category: Automation]]&lt;br /&gt;
[[Category: RF Control]]&lt;br /&gt;
[[Category: Tellstick]]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
The Tellstick is a power controller for cheap RF devices like the Nexa line. It&#039;s detected with LMCE&#039;s Plug-n Play.&lt;br /&gt;
Currently only basic support is added, namely power on, power off and dimlevel.&lt;br /&gt;
N.B. this is an RF tranmsmitter, it cannot read the state of the devices, nor can it receive data from remotes, sensors or other equipment sending an RF signal. Telldus have developed a device for this (Tellstick Duo) which is not supported at this time.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
The device is plug and play for LMCE, but at this point you&#039;ll need to add the driver software yourself. Install the telldus-core package as described  [http://developer.telldus.se/wiki/TellStickInstallationUbuntu here]&lt;br /&gt;
&lt;br /&gt;
Add the following lines to your /etc/apt/sources.list: (This is pointing to 2.0 repos, 2.1 currently break functionality)&lt;br /&gt;
 deb http://download.telldus.com/debian/ 2.0 main&lt;br /&gt;
&lt;br /&gt;
If you want to try the latest beta software, also add the following:&lt;br /&gt;
 deb http://download.telldus.com/debian/ unstable main&lt;br /&gt;
&lt;br /&gt;
The Telldus public key for apt-secure is added with&lt;br /&gt;
 wget -q http://download.telldus.se/debian/telldus-public.key -O- | sudo apt-key add -&lt;br /&gt;
The key fingerprint is&lt;br /&gt;
70C4 10C9 D73D 53E8 38B3 1C58 5A94 9181 E501 EA76&lt;br /&gt;
Telldus Technologies AB &amp;lt;info.tech@telldus.se&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To install telldus-core&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install telldus-core&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Adding lights ==&lt;br /&gt;
# [http://192.168.80.1/ web admin] -&amp;gt; Show devices tree -&amp;gt; Telldus USB RF controller&lt;br /&gt;
# Create Child Device -&amp;gt; Pick device template -&amp;gt; &#039;&#039;take your pick&#039;&#039; (I added &amp;quot;Light Switch (on/off)&amp;quot;)&lt;br /&gt;
# Device data -&amp;gt; Port/Channel Number -&amp;gt; &#039;&#039;Device ID&#039;&#039; -&amp;gt; &#039;&#039;&#039;save&#039;&#039;&#039; (codes correspond to the Device ID or Device Name you&#039;ve set in /etc/tellstick.conf)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reference Info ==&lt;br /&gt;
[http://www.telldus.se/products/tellstick Manufacturer website]&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Tellstick&amp;diff=29120</id>
		<title>Tellstick</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Tellstick&amp;diff=29120"/>
		<updated>2011-11-14T10:14:01Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: Changed to 2.0 repos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
{{Versioninfo|810Status=Working, plug&#039;n play supported|810UpdatedDate=7 january 2011|810UpdatedBy=JoakimL}&lt;br /&gt;
{Versioninfo|1040Status=Being verified|810UpdatedDate=14 november 2011|1004UpdatedBy=JoakimL}}&lt;br /&gt;
{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
[[Category: Automation]]&lt;br /&gt;
[[Category: RF Control]]&lt;br /&gt;
[[Category: Tellstick]]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
The Tellstick is a power controller for cheap RF devices like the Nexa line. It&#039;s detected with LMCE&#039;s Plug-n Play.&lt;br /&gt;
Currently only basic support is added, namely power on, power off and dimlevel.&lt;br /&gt;
N.B. this is an RF tranmsmitter, it cannot read the state of the devices, nor can it receive data from remotes, sensors or other equipment sending an RF signal. Telldus have developed a device for this (Tellstick Duo) which is not supported at this time.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
The device is plug and play for LMCE, but at this point you&#039;ll need to add the driver software yourself. Install the telldus-core package as described  [http://developer.telldus.se/wiki/TellStickInstallationUbuntu here]&lt;br /&gt;
&lt;br /&gt;
Add the following lines to your /etc/apt/sources.list: (This is pointing to 2.0 repos, 2.1 currently break functionality)&lt;br /&gt;
 deb http://download.telldus.com/debian/ 2.0 main&lt;br /&gt;
&lt;br /&gt;
If you want to try the latest beta software, also add the following:&lt;br /&gt;
 deb http://download.telldus.com/debian/ unstable main&lt;br /&gt;
&lt;br /&gt;
The Telldus public key for apt-secure is added with&lt;br /&gt;
 wget -q http://download.telldus.se/debian/telldus-public.key -O- | sudo apt-key add -&lt;br /&gt;
The key fingerprint is&lt;br /&gt;
70C4 10C9 D73D 53E8 38B3 1C58 5A94 9181 E501 EA76&lt;br /&gt;
Telldus Technologies AB &amp;lt;info.tech@telldus.se&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To install telldus-core&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install telldus-core&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Adding lights ==&lt;br /&gt;
# [http://192.168.80.1/ web admin] -&amp;gt; Show devices tree -&amp;gt; Telldus USB RF controller&lt;br /&gt;
# Create Child Device -&amp;gt; Pick device template -&amp;gt; &#039;&#039;take your pick&#039;&#039; (I added &amp;quot;Light Switch (on/off)&amp;quot;)&lt;br /&gt;
# Device data -&amp;gt; Port/Channel Number -&amp;gt; &#039;&#039;Device ID&#039;&#039; -&amp;gt; &#039;&#039;&#039;save&#039;&#039;&#039; (codes correspond to the Device ID or Device Name you&#039;ve set in /etc/tellstick.conf)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reference Info ==&lt;br /&gt;
[http://www.telldus.se/products/tellstick Manufacturer website]&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Tellstick&amp;diff=29119</id>
		<title>Tellstick</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Tellstick&amp;diff=29119"/>
		<updated>2011-11-14T08:08:41Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
{{Versioninfo|810Status=Working, plug&#039;n play supported|810UpdatedDate=7 january 2011|810UpdatedBy=JoakimL}}&lt;br /&gt;
{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
[[Category: Automation]]&lt;br /&gt;
[[Category: RF Control]]&lt;br /&gt;
[[Category: Tellstick]]&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
The Tellstick is a power controller for cheap RF devices like the Nexa line. It&#039;s detected with LMCE&#039;s Plug-n Play.&lt;br /&gt;
Currently only basic support is added, namely power on, power off and dimlevel.&lt;br /&gt;
N.B. this is an RF tranmsmitter, it cannot read the state of the devices, nor can it receive data from remotes, sensors or other equipment sending an RF signal. Telldus have developed a device for this (Tellstick Duo) which is not supported at this time.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
The device is plug and play for LMCE, but at this point you&#039;ll need to add the driver software yourself. Install the telldus-core package as described  [http://developer.telldus.se/wiki/TellStickInstallationUbuntu here]&lt;br /&gt;
&lt;br /&gt;
Add the following lines to your /etc/apt/sources.list:&lt;br /&gt;
 deb http://download.telldus.com/debian/ stable main&lt;br /&gt;
&lt;br /&gt;
If you want to try the latest beta software, also add the following:&lt;br /&gt;
 deb http://download.telldus.com/debian/ unstable main&lt;br /&gt;
&lt;br /&gt;
The Telldus public key for apt-secure is added with&lt;br /&gt;
 wget -q http://download.telldus.se/debian/telldus-public.key -O- | sudo apt-key add -&lt;br /&gt;
The key fingerprint is&lt;br /&gt;
70C4 10C9 D73D 53E8 38B3 1C58 5A94 9181 E501 EA76&lt;br /&gt;
Telldus Technologies AB &amp;lt;info.tech@telldus.se&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To install telldus-core&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install telldus-core&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Adding lights ==&lt;br /&gt;
# [http://192.168.80.1/ web admin] -&amp;gt; Show devices tree -&amp;gt; Telldus USB RF controller&lt;br /&gt;
# Create Child Device -&amp;gt; Pick device template -&amp;gt; &#039;&#039;take your pick&#039;&#039; (I added &amp;quot;Light Switch (on/off)&amp;quot;)&lt;br /&gt;
# Device data -&amp;gt; Port/Channel Number -&amp;gt; &#039;&#039;Device ID&#039;&#039; -&amp;gt; &#039;&#039;&#039;save&#039;&#039;&#039; (codes correspond to the Device ID or Device Name you&#039;ve set in /etc/tellstick.conf)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reference Info ==&lt;br /&gt;
[http://www.telldus.se/products/tellstick Manufacturer website]&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Installing_1004&amp;diff=29112</id>
		<title>Installing 1004</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Installing_1004&amp;diff=29112"/>
		<updated>2011-11-13T10:20:14Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Installing LinuxMCE-1004 is a fairly easy process that involves:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;THIS VERSION IS CURRENTLY UNDER DEVELOPMENT. IT KIND OF WORKS, BUT MAY DRIVE YOU INSANE. :)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;PACKAGES ARE BEING BUILT, BUT WE HAVE ONLY BEGUN TO DEBUG THE ISSUES PRESENT. DO NOT ATTEMPT THIS UNLESS YOU WISH TO FIX BUGS, AND WILL FIX BUGS WITH US. THANKS.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;WE WILL NOT PROVIDE SUPPORT FOR THIS VERSION AT THIS TIME. DO NOT ASK. IF YOU CAN&#039;T FIX STUFF, THIS  IS NOT FOR YOU.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Since this is a pre-release version, we need your help to make it better. If you notice a problem, please do not just add a workaround here. Create a ticket in trac with plenty of detail on what the issue is and how to reproduce it, as well as any information you have on how to fix it. If there is a workaround, it is ok to post it here as long as you link to the ticket you just created.&lt;br /&gt;
&lt;br /&gt;
* Installing Kubuntu 1004&lt;br /&gt;
* Updating Kubuntu 1004&lt;br /&gt;
* Installing LinuxMCE-1004 on top of the updated Kubuntu 1004&lt;br /&gt;
&lt;br /&gt;
Before proceeding its wise to read the FAQ. &lt;br /&gt;
Because of the fact that it&#039;s a delicate installation small things make a huge difference.&lt;br /&gt;
&lt;br /&gt;
Please see below for details on Internet Installation and DVD Installation methods.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note: an active internet connection is required regardless of installation method.&lt;br /&gt;
&lt;br /&gt;
==Internet Installation==&lt;br /&gt;
# Install Lucid Lynx desktop and update it. (download Kubuntu 1004 &#039;&#039;&#039;desktop&#039;&#039;&#039; release from http://releases.ubuntu.com/kubuntu/10.04/kubuntu-10.04.3-desktop-i386.iso&lt;br /&gt;
&#039;&#039;&#039;Currently, only the 32bit version of LinuxMCE is available. Only download the i386 version of 1004 Kubuntu, even if your system can support 64bit versions.&#039;&#039;&#039; Note: If Kubuntu asks whether you would like to install/activate &#039;Restricted Drivers&#039; for your video card, ignore it and continue to step 2.&lt;br /&gt;
# Grab the latest installer script from [http://svn.linuxmce.org/svn/branches/LinuxMCE-0810/src/new-installer/mce-install.sh our servers].&lt;br /&gt;
# Run the following script (as root): mce-install.sh&lt;br /&gt;
# Reboot, wait for the activity to stop (see progress on console).&lt;br /&gt;
&lt;br /&gt;
In other words, after installing Kubuntu:&lt;br /&gt;
# Run the following:&lt;br /&gt;
 sudo -i&lt;br /&gt;
 wget -q http://svn.linuxmce.org/svn/branches/LinuxMCE-1004/src/new-installer/mce-install.sh &amp;amp;&amp;amp; chmod +x mce-install.sh&lt;br /&gt;
 ./mce-install.sh&lt;br /&gt;
 reboot&lt;br /&gt;
&lt;br /&gt;
If you have problems running Diskless_CreateTBZ.sh, check [[Error Running Diskless CreateTBZ.sh|this article]]. Otherwise please log a trac ticket.&lt;br /&gt;
&lt;br /&gt;
If you then have problems netbooting your diskless media directors because you are receiving the error message &amp;quot;Diskless Setup Failed&amp;quot;, check [[Diskless setup failed error in 0810 beta|this article]].&lt;br /&gt;
&lt;br /&gt;
== Keeping Up-to-date with updates ==&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; It is strongly recommended that you do not update/upgrade a stable, working system. Also check /etc/apt/sources.list for accuracy after install. [[user:L3mce]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Once you have installed LinuxMCE-1004, all you need to do to keep up-to-date with the latest and greatest, is run the following from a terminal on the core and each MD:&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
Note: You should NOT run apt-get dist-upgrade after LinuxMCE is installed, as it can cause several problems, including having different kernel versions on your core and media directors, and the installation of new Kubuntu packages that can break some features!&lt;br /&gt;
&lt;br /&gt;
== Outstanding issues ==&lt;br /&gt;
* The diskless image kernel package has a broken dependency.&lt;br /&gt;
* Orbiter and OrbiterGen might race a bit&lt;br /&gt;
* at least in one occasion the UI1 Orbiter didn&#039;t come back from the screen saver when keys and mouse were pressed&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=SlimDevices_/_Logitech_Squeezebox&amp;diff=29111</id>
		<title>SlimDevices / Logitech Squeezebox</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=SlimDevices_/_Logitech_Squeezebox&amp;diff=29111"/>
		<updated>2011-11-12T13:38:23Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[Category: Audio]]&lt;br /&gt;
{{versioninfo}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
&lt;br /&gt;
[[Image:logitech-squeezebox-duet.jpg|right]]&lt;br /&gt;
= Status =&lt;br /&gt;
Supported with plug and play.&lt;br /&gt;
&lt;br /&gt;
All Squeezeboxes with a display are plug and play. The Squeezebox receiver, when used without the accompanying remote Duet, needs to have some special treatment before it can be detected.&lt;br /&gt;
&lt;br /&gt;
= Hardware =&lt;br /&gt;
This is list of current Logitech Squeezebox devices as of 06/2010:&lt;br /&gt;
* [http://www.logitech.com/en-gb/speakers-audio/wireless-music-systems/devices/4098 Squeezebox Receiver (150$)]&lt;br /&gt;
* [http://www.logitech.com/en-us/speakers_audio/wireless_music_systems/devices/5847 Squeezebox Radio (200$)]&lt;br /&gt;
* [http://www.logitech.com/en-us/speakers_audio/wireless_music_systems/devices/4707 Squeezebox Boom (300$)]&lt;br /&gt;
* [http://www.logitech.com/en-us/speakers_audio/wireless_music_systems/devices/5745 Squeezebox Touch (300$)]&lt;br /&gt;
* [http://www.logitech.com/en-us/speakers_audio/wireless_music_systems/devices/3817 Squeezebox Duet (400$)]&lt;br /&gt;
* [[Squeezebox 3 / Classic (100$ used)]]&lt;br /&gt;
&lt;br /&gt;
= Software =&lt;br /&gt;
* SoftSqueeze 3.8&amp;lt;br /&amp;gt;Software client for several platforms&lt;br /&gt;
**[http://softsqueeze.sourceforge.net Main page]&lt;br /&gt;
**[http://sourceforge.net/projects/softsqueeze/files/softsqueeze/softsqueeze-3.8 Direct download]&lt;br /&gt;
&lt;br /&gt;
= Features =&lt;br /&gt;
* See for more information and setup: [[Use network audio players for a whole-house music solution]]&lt;br /&gt;
* Manufacturer product link: http://www.logitech.com/en-us/speakers_audio/wireless_music_systems&lt;br /&gt;
= Adding Squeezebox Receiver =&lt;br /&gt;
The Squeezebox Receiver needs to be configured before it can be used. The utility [http://projects.robinbowes.com/Net-UDAP/trac Net::UDAP] is used to configure the Squeezebox Receiver with the relevant IP configuration.&lt;br /&gt;
&lt;br /&gt;
You can download a Windows standalone version of the Net:UDAP Utility here [http://slim2lirc.myown.mailcan.com/udap_shell_1_0_0.exe NET:UDAP Exe] You can find examples of the command set and usage here [http://projects.robinbowes.com/Net-UDAP/trac/wiki/SampleUsage Sample Command usage]&lt;br /&gt;
&lt;br /&gt;
For a Receiver connected to a CAT5 network use the following commands in NET:UDAP to configure your SB Receiver;&lt;br /&gt;
&lt;br /&gt;
Before entering the commands below into NET:UDAP you need to get your Receiver into &#039;Init mode&#039; by pressing the button on the front for 6 secs - release the button when it flashes quickly in &#039;Red&#039;. After a few seconds the button will start to flash slowly in &#039;Red&#039;...now you are ready for the steps below (enter these commands into NET:UDAP);&lt;br /&gt;
&lt;br /&gt;
 discover&lt;br /&gt;
 conf 1&lt;br /&gt;
 set interface=1 lan_ip_mode=1 squeezecenter_address=192.168.80.1&lt;br /&gt;
 save_data&lt;br /&gt;
 reset&lt;br /&gt;
&lt;br /&gt;
As soon as you enter the &#039;save_data&#039; command above your Orbiters should display the announcement that a Squeezebox has been detected (accept it and add it to a room as usual). Now after you enter the &#039;reset&#039; command above you should see that the Receivers button will change from &#039;Red&#039; to &#039;Green&#039;...and if this is the first time you have attached your Receiver to a Network it will probably download new updated firmware...the button will flash &#039;White&#039; for about 30 secs...then it will change to a solid white. Now you should add your new SB Receiver to your Core&#039;s Floorplan (this is optional of course) and then do a &#039;Full Regen&#039; from Web Admin...and your done!&lt;br /&gt;
&lt;br /&gt;
Note: the above may refer to v710.  See also http://wiki.linuxmce.org/index.php/Use_network_audio_players_for_a_whole-house_music_solution for adding a squeezebox to v810.  After slimserver is downloaded and installed, don&#039;t forget to configure it at port 9000.&lt;br /&gt;
&lt;br /&gt;
= Squeezebox remote stuff =&lt;br /&gt;
Just in case you misplaced your remote, but have a gc100 with IR emittors handy (like I did).&lt;br /&gt;
*[http://wiki.slimdevices.com/index.cgi?PluginRemoteControls Remote Control Plugins]&lt;br /&gt;
*[http://www.slimdevices.com/downloads/pronto/SqueezeboxCodes.xls IR code spreadsheet]&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=SlimDevices_/_Logitech_Squeezebox&amp;diff=29110</id>
		<title>SlimDevices / Logitech Squeezebox</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=SlimDevices_/_Logitech_Squeezebox&amp;diff=29110"/>
		<updated>2011-11-12T13:37:51Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: Added SB3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[Category: Audio]]&lt;br /&gt;
{{versioninfo}}&lt;br /&gt;
{{stub}}&lt;br /&gt;
&lt;br /&gt;
[[Image:logitech-squeezebox-duet.jpg|right]]&lt;br /&gt;
= Status =&lt;br /&gt;
Supported with plug and play.&lt;br /&gt;
&lt;br /&gt;
All Squeezeboxes with a display are plug and play. The Squeezebox receiver, when used without the accompanying remote Duet, needs to have some special treatment before it can be detected.&lt;br /&gt;
&lt;br /&gt;
= Hardware =&lt;br /&gt;
This is list of current Logitech Squeezebox devices as of 06/2010:&lt;br /&gt;
* [http://www.logitech.com/en-gb/speakers-audio/wireless-music-systems/devices/4098 Squeezebox Receiver (150$)]&lt;br /&gt;
* [http://www.logitech.com/en-us/speakers_audio/wireless_music_systems/devices/5847 Squeezebox Radio (200$)]&lt;br /&gt;
* [http://www.logitech.com/en-us/speakers_audio/wireless_music_systems/devices/4707 Squeezebox Boom (300$)]&lt;br /&gt;
* [http://www.logitech.com/en-us/speakers_audio/wireless_music_systems/devices/5745 Squeezebox Touch (300$)]&lt;br /&gt;
* [http://www.logitech.com/en-us/speakers_audio/wireless_music_systems/devices/3817 Squeezebox Duet (400$)]&lt;br /&gt;
* [Squeezebox 3 / Classic (100$ used)]&lt;br /&gt;
&lt;br /&gt;
= Software =&lt;br /&gt;
* SoftSqueeze 3.8&amp;lt;br /&amp;gt;Software client for several platforms&lt;br /&gt;
**[http://softsqueeze.sourceforge.net Main page]&lt;br /&gt;
**[http://sourceforge.net/projects/softsqueeze/files/softsqueeze/softsqueeze-3.8 Direct download]&lt;br /&gt;
&lt;br /&gt;
= Features =&lt;br /&gt;
* See for more information and setup: [[Use network audio players for a whole-house music solution]]&lt;br /&gt;
* Manufacturer product link: http://www.logitech.com/en-us/speakers_audio/wireless_music_systems&lt;br /&gt;
= Adding Squeezebox Receiver =&lt;br /&gt;
The Squeezebox Receiver needs to be configured before it can be used. The utility [http://projects.robinbowes.com/Net-UDAP/trac Net::UDAP] is used to configure the Squeezebox Receiver with the relevant IP configuration.&lt;br /&gt;
&lt;br /&gt;
You can download a Windows standalone version of the Net:UDAP Utility here [http://slim2lirc.myown.mailcan.com/udap_shell_1_0_0.exe NET:UDAP Exe] You can find examples of the command set and usage here [http://projects.robinbowes.com/Net-UDAP/trac/wiki/SampleUsage Sample Command usage]&lt;br /&gt;
&lt;br /&gt;
For a Receiver connected to a CAT5 network use the following commands in NET:UDAP to configure your SB Receiver;&lt;br /&gt;
&lt;br /&gt;
Before entering the commands below into NET:UDAP you need to get your Receiver into &#039;Init mode&#039; by pressing the button on the front for 6 secs - release the button when it flashes quickly in &#039;Red&#039;. After a few seconds the button will start to flash slowly in &#039;Red&#039;...now you are ready for the steps below (enter these commands into NET:UDAP);&lt;br /&gt;
&lt;br /&gt;
 discover&lt;br /&gt;
 conf 1&lt;br /&gt;
 set interface=1 lan_ip_mode=1 squeezecenter_address=192.168.80.1&lt;br /&gt;
 save_data&lt;br /&gt;
 reset&lt;br /&gt;
&lt;br /&gt;
As soon as you enter the &#039;save_data&#039; command above your Orbiters should display the announcement that a Squeezebox has been detected (accept it and add it to a room as usual). Now after you enter the &#039;reset&#039; command above you should see that the Receivers button will change from &#039;Red&#039; to &#039;Green&#039;...and if this is the first time you have attached your Receiver to a Network it will probably download new updated firmware...the button will flash &#039;White&#039; for about 30 secs...then it will change to a solid white. Now you should add your new SB Receiver to your Core&#039;s Floorplan (this is optional of course) and then do a &#039;Full Regen&#039; from Web Admin...and your done!&lt;br /&gt;
&lt;br /&gt;
Note: the above may refer to v710.  See also http://wiki.linuxmce.org/index.php/Use_network_audio_players_for_a_whole-house_music_solution for adding a squeezebox to v810.  After slimserver is downloaded and installed, don&#039;t forget to configure it at port 9000.&lt;br /&gt;
&lt;br /&gt;
= Squeezebox remote stuff =&lt;br /&gt;
Just in case you misplaced your remote, but have a gc100 with IR emittors handy (like I did).&lt;br /&gt;
*[http://wiki.slimdevices.com/index.cgi?PluginRemoteControls Remote Control Plugins]&lt;br /&gt;
*[http://www.slimdevices.com/downloads/pronto/SqueezeboxCodes.xls IR code spreadsheet]&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=WTR610N&amp;diff=29106</id>
		<title>WTR610N</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=WTR610N&amp;diff=29106"/>
		<updated>2011-11-11T13:46:04Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: WTR610N moved to WRT610N: Miss-spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[WRT610N]]&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=WRT610N&amp;diff=29105</id>
		<title>WRT610N</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=WRT610N&amp;diff=29105"/>
		<updated>2011-11-11T13:46:04Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: WTR610N moved to WRT610N: Miss-spelling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
See [[Linksys WRT54G]]&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Linksys_WRT610N&amp;diff=29104</id>
		<title>Linksys WRT610N</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Linksys_WRT610N&amp;diff=29104"/>
		<updated>2011-11-11T13:45:03Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: Created page with &amp;quot;Category: Hardware See Linksys WRT54G&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
See [[Linksys WRT54G]]&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=WRT610N&amp;diff=29103</id>
		<title>WRT610N</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=WRT610N&amp;diff=29103"/>
		<updated>2011-11-11T13:44:40Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
See [[Linksys WRT54G]]&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=WRT610N&amp;diff=29102</id>
		<title>WRT610N</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=WRT610N&amp;diff=29102"/>
		<updated>2011-11-11T13:31:32Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
See [[Linksys WTR54G]]&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Linksys_WRT54G&amp;diff=29101</id>
		<title>Linksys WRT54G</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Linksys_WRT54G&amp;diff=29101"/>
		<updated>2011-11-11T13:31:09Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
{{versioninfo|710Status=relevant|710UpdatedDate=27Aug2011|710UpdatedBy=Techstyle|810Status=relevant|810UpdatedDate=27Aug2011|810UpdatedBy=Techstyle}}&lt;br /&gt;
[[category:Networking]]&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Linksys WRT54G (and variants WRT54GS, WRT54GL, and WRTSL54GS) as well as WRTR610N is a Wi-Fi capable residential gateway from Linksys. The device is capable of sharing Internet connections among several computers via 802.3 Ethernet and 802.11b/g wireless data links.&lt;br /&gt;
&lt;br /&gt;
The WRT54G is notable for being the first consumer-level network device that had its firmware source code released to satisfy the obligations of the GNU GPL. This allows programmers to modify the firmware to change or add functionality to the device. Several third-party firmware projects provide the public with enhanced firmware for the WRT54G&lt;br /&gt;
&lt;br /&gt;
The original WRT54G was first released in December 2002. It comes with a 4+1 port network switch (the Internet/WAN port is also in the same internal network switch, but on a different VLAN). The devices have two removable antennas connected through Reverse Polarity TNC connectors. The WRT54GC router is an exception and has an internal antenna with optional external antenna. As a cost-cutting measure, the design of the latest version of the WRT54G no longer has detachable antennas or TNC connectors. Instead, version 8 routers simply route thin wires into antenna &#039;shells&#039; eliminating the connector. As a result, Linksys HGA7T and similar external antennas are no longer compatible with this model.&lt;br /&gt;
&lt;br /&gt;
== How to Configure this Device as a Switch ==&lt;br /&gt;
&lt;br /&gt;
Do these steps in order:&lt;br /&gt;
&lt;br /&gt;
1.  Connect directly to the router and log on (default IP is 192.168.1.1, leave the username blank and type &#039;admin&#039; in the password field)&lt;br /&gt;
&lt;br /&gt;
2.  Go to the Security page and disable the firewall (disable all items in the &#039;block WAN requests&#039; section) - hit the save settings button&lt;br /&gt;
[[Image:WRT54G_Security.jpg]]&lt;br /&gt;
&lt;br /&gt;
3.  Go to &#039;Setup&#039; page and change the local IP adress to something within the Core&#039;s Range.  The Default range for a LinuxMCE Core is 192.168.80.2 to 192.168.90.128 for Pluto Devices and 192.168.80.129 to 192.168.80.254 for non-pluto devices.  set the router&#039;s local IP to be in the non-Pluto range - mine is 192.168.80.130. - Again Save Settings&lt;br /&gt;
[[Image:WRT54G_IP.jpg]]&lt;br /&gt;
&lt;br /&gt;
4.  you will now have to re-logon to the new IP address (192.168.80.130 for me).  &lt;br /&gt;
&lt;br /&gt;
5.  On the setup page again, below the local IP address, Disable the DHCP server - Save Settings.&lt;br /&gt;
(See above)&lt;br /&gt;
&lt;br /&gt;
Reconnect the device to the Eth1 port on the core (to a LAN port not the WAN port) and power cycle it and you are all set.&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=WRT610N&amp;diff=29100</id>
		<title>WRT610N</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=WRT610N&amp;diff=29100"/>
		<updated>2011-11-11T13:29:29Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See [[Linksys WTR54G]]&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=WRT610N&amp;diff=29099</id>
		<title>WRT610N</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=WRT610N&amp;diff=29099"/>
		<updated>2011-11-11T13:29:14Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: Created page with &amp;quot;See WTR54G&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See [[WTR54G]]&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Linksys_WRT54G&amp;diff=29098</id>
		<title>Linksys WRT54G</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Linksys_WRT54G&amp;diff=29098"/>
		<updated>2011-11-11T13:26:57Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
{{versioninfo|710Status=relevant|710UpdatedDate=27Aug2011|710UpdatedBy=Techstyle|810Status=relevant|810UpdatedDate=27Aug2011|810UpdatedBy=Techstyle}}&lt;br /&gt;
[[category:Networking]]&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Linksys WRT54G (and variants WRT54GS, WRT54GL, and WRTSL54GS) as well as WTR610N is a Wi-Fi capable residential gateway from Linksys. The device is capable of sharing Internet connections among several computers via 802.3 Ethernet and 802.11b/g wireless data links.&lt;br /&gt;
&lt;br /&gt;
The WRT54G is notable for being the first consumer-level network device that had its firmware source code released to satisfy the obligations of the GNU GPL. This allows programmers to modify the firmware to change or add functionality to the device. Several third-party firmware projects provide the public with enhanced firmware for the WRT54G&lt;br /&gt;
&lt;br /&gt;
The original WRT54G was first released in December 2002. It comes with a 4+1 port network switch (the Internet/WAN port is also in the same internal network switch, but on a different VLAN). The devices have two removable antennas connected through Reverse Polarity TNC connectors. The WRT54GC router is an exception and has an internal antenna with optional external antenna. As a cost-cutting measure, the design of the latest version of the WRT54G no longer has detachable antennas or TNC connectors. Instead, version 8 routers simply route thin wires into antenna &#039;shells&#039; eliminating the connector. As a result, Linksys HGA7T and similar external antennas are no longer compatible with this model.&lt;br /&gt;
&lt;br /&gt;
== How to Configure this Device as a Switch ==&lt;br /&gt;
&lt;br /&gt;
Do these steps in order:&lt;br /&gt;
&lt;br /&gt;
1.  Connect directly to the router and log on (default IP is 192.168.1.1, leave the username blank and type &#039;admin&#039; in the password field)&lt;br /&gt;
&lt;br /&gt;
2.  Go to the Security page and disable the firewall (disable all items in the &#039;block WAN requests&#039; section) - hit the save settings button&lt;br /&gt;
[[Image:WRT54G_Security.jpg]]&lt;br /&gt;
&lt;br /&gt;
3.  Go to &#039;Setup&#039; page and change the local IP adress to something within the Core&#039;s Range.  The Default range for a LinuxMCE Core is 192.168.80.2 to 192.168.90.128 for Pluto Devices and 192.168.80.129 to 192.168.80.254 for non-pluto devices.  set the router&#039;s local IP to be in the non-Pluto range - mine is 192.168.80.130. - Again Save Settings&lt;br /&gt;
[[Image:WRT54G_IP.jpg]]&lt;br /&gt;
&lt;br /&gt;
4.  you will now have to re-logon to the new IP address (192.168.80.130 for me).  &lt;br /&gt;
&lt;br /&gt;
5.  On the setup page again, below the local IP address, Disable the DHCP server - Save Settings.&lt;br /&gt;
(See above)&lt;br /&gt;
&lt;br /&gt;
Reconnect the device to the Eth1 port on the core (to a LAN port not the WAN port) and power cycle it and you are all set.&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Linksys_WRT54G&amp;diff=29097</id>
		<title>Linksys WRT54G</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Linksys_WRT54G&amp;diff=29097"/>
		<updated>2011-11-11T13:26:43Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: Added WTR610N&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
{{versioninfo|710Status=relevant|710UpdatedDate=27Aug2011|710UpdatedBy=Techstyle|810Status=relevant|810UpdatedDate=27Aug2011|810UpdatedBy=Techstyle}}&lt;br /&gt;
[[category:Networking]]&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
Linksys WRT54G (and variants WRT54GS, WRT54GL, and WRTSL54GS)as well as WTR610N is a Wi-Fi capable residential gateway from Linksys. The device is capable of sharing Internet connections among several computers via 802.3 Ethernet and 802.11b/g wireless data links.&lt;br /&gt;
&lt;br /&gt;
The WRT54G is notable for being the first consumer-level network device that had its firmware source code released to satisfy the obligations of the GNU GPL. This allows programmers to modify the firmware to change or add functionality to the device. Several third-party firmware projects provide the public with enhanced firmware for the WRT54G&lt;br /&gt;
&lt;br /&gt;
The original WRT54G was first released in December 2002. It comes with a 4+1 port network switch (the Internet/WAN port is also in the same internal network switch, but on a different VLAN). The devices have two removable antennas connected through Reverse Polarity TNC connectors. The WRT54GC router is an exception and has an internal antenna with optional external antenna. As a cost-cutting measure, the design of the latest version of the WRT54G no longer has detachable antennas or TNC connectors. Instead, version 8 routers simply route thin wires into antenna &#039;shells&#039; eliminating the connector. As a result, Linksys HGA7T and similar external antennas are no longer compatible with this model.&lt;br /&gt;
&lt;br /&gt;
== How to Configure this Device as a Switch ==&lt;br /&gt;
&lt;br /&gt;
Do these steps in order:&lt;br /&gt;
&lt;br /&gt;
1.  Connect directly to the router and log on (default IP is 192.168.1.1, leave the username blank and type &#039;admin&#039; in the password field)&lt;br /&gt;
&lt;br /&gt;
2.  Go to the Security page and disable the firewall (disable all items in the &#039;block WAN requests&#039; section) - hit the save settings button&lt;br /&gt;
[[Image:WRT54G_Security.jpg]]&lt;br /&gt;
&lt;br /&gt;
3.  Go to &#039;Setup&#039; page and change the local IP adress to something within the Core&#039;s Range.  The Default range for a LinuxMCE Core is 192.168.80.2 to 192.168.90.128 for Pluto Devices and 192.168.80.129 to 192.168.80.254 for non-pluto devices.  set the router&#039;s local IP to be in the non-Pluto range - mine is 192.168.80.130. - Again Save Settings&lt;br /&gt;
[[Image:WRT54G_IP.jpg]]&lt;br /&gt;
&lt;br /&gt;
4.  you will now have to re-logon to the new IP address (192.168.80.130 for me).  &lt;br /&gt;
&lt;br /&gt;
5.  On the setup page again, below the local IP address, Disable the DHCP server - Save Settings.&lt;br /&gt;
(See above)&lt;br /&gt;
&lt;br /&gt;
Reconnect the device to the Eth1 port on the core (to a LAN port not the WAN port) and power cycle it and you are all set.&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=How_to_add_your_own_GSD_device&amp;diff=26984</id>
		<title>How to add your own GSD device</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=How_to_add_your_own_GSD_device&amp;diff=26984"/>
		<updated>2011-02-16T13:01:22Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Programmer&#039;s Guide]]&lt;br /&gt;
[[Category: Serial]]&lt;br /&gt;
[[Category: Tutorials]]&lt;br /&gt;
[[Category: GSD]]&lt;br /&gt;
&lt;br /&gt;
Generic_Serial_Device (also known as [[GSD]]) is a LinuxMCE device that allows an end-user to do simple programming for RS232, serial USB or network connected devices.&lt;br /&gt;
This enables them to quickly and easily write drivers for such devices.&lt;br /&gt;
&lt;br /&gt;
Note, however, that a GSD device driver is more limited than a compiled driver. The GSD driver allows only a single communication channel with the device (RS232, serial USB or a TCP connection across a network).&lt;br /&gt;
If your device has other communication channels (an UDP connection for example), you will have to write a driver in another language and compile it.&lt;br /&gt;
&lt;br /&gt;
It is also possible to use a GSD device to send DCE commands to other devices. See for instance the Toshiba RAS series template, which acts as a sort of message translator, translating DCE thermostat command to IR commands sent through a IR transmitter.&lt;br /&gt;
&lt;br /&gt;
== How to add your own GSD device ==&lt;br /&gt;
&lt;br /&gt;
=== Examples ===&lt;br /&gt;
&lt;br /&gt;
For those of you who like to learn by example, there are some already in the LinuxMCE database.&lt;br /&gt;
In the LinuxMCE web admin interface go to Advanced--&amp;gt;Configuration--&amp;gt;Device Templates and pick one of the following device templates:&lt;br /&gt;
* Panasonic IP camera: A simple driver that enables the retrieval of video frames from this network enabled camera&lt;br /&gt;
* Proliphix NT series thermostat: A more elaborate driver for a network enabled thermostat. This driver also sends events to the LMCE system in case, for example, the ambient temperature changes.&lt;br /&gt;
* Toshiba RAS series air condition: Another kind of GSD device, just receiving and sending DCE commands&lt;br /&gt;
&lt;br /&gt;
=== Creating a new GSD device ===&lt;br /&gt;
&lt;br /&gt;
The steps to add GSD device are following:&lt;br /&gt;
&lt;br /&gt;
==== Install the necessary packages ====&lt;br /&gt;
Be sure that you have installed GSD package - &lt;br /&gt;
&amp;lt;pre&amp;gt;dpkg -l &#039;pluto-generic-serial-device&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
(it should be there). This shouldn&#039;t normally be necessary as LMCE should automatically install the package when you have added such a device.&lt;br /&gt;
&lt;br /&gt;
==== Create a device template ====&lt;br /&gt;
Created a device template for your system and specify that it should use GSD. The [[Edit_Device_Template]] page may be of help here.&lt;br /&gt;
&lt;br /&gt;
Some things you should take into account:&lt;br /&gt;
* Add your template under the proper category; add it under category lighting interfaces if you want to control lighting devices only. To control all kind of devices (security, climate etc) it&#039;s better to use Interface::Specialize.&lt;br /&gt;
* Specify a communication type - RS232, Ethernet etc. and do not forget to specify the way to connect to the device, i.e.:&lt;br /&gt;
** For an Ethernet device, add the TCP Port (#69) to the device data.&lt;br /&gt;
* Specify that your device is controlled via category &amp;quot;Device Category:Core&amp;quot; (&amp;quot;Computers - Core&amp;quot;). Otherwise the driver will not be started on the core.&lt;br /&gt;
&lt;br /&gt;
Furthermore you should add the commands implemented by your device, and the events it can generate. If possible, try to fill in the Plug &amp;amp; Play section to ensure that your device will be automatically detected.&lt;br /&gt;
Also, fill in the comment fields provide others with information about your device template.&lt;br /&gt;
&lt;br /&gt;
==== Adding the device ====&lt;br /&gt;
If you have added Plug &amp;amp; Play information to your device template, a quick reload of the router, followed by the connection of your device will result in the device being detected and added automatically.&lt;br /&gt;
&lt;br /&gt;
If auto-detection is not possible, however, you will have to add your device manually.&lt;br /&gt;
This is done on the GSD page: Wizard --&amp;gt; Devices --&amp;gt; Generic Serial Devices.&lt;br /&gt;
&lt;br /&gt;
After installing the device, and a quick reload of your router you should see GSD process in the console:&lt;br /&gt;
&amp;lt;code&amp;gt;ps -elf|grep Generic_Serial_Device&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;5 S root     10085     1  0  76   0 -   683 -      Jul17 ?        00:00:00 SCREEN -d -m -S LinCon_8000-30 /usr/pluto/bin/Spawn_Device.sh 30 localhost Generic_Serial_Device&lt;br /&gt;
5 S root     10086 10085  0  75   0 -   646 wait   Jul17 pts/8    00:00:00 /bin/bash /usr/pluto/bin/Spawn_Device.sh 30 localhost Generic_Serial_Device&lt;br /&gt;
0 S root     31800 10086  0  79   0 - 123146 295621 Jul17 pts/8   00:00:00 ./Generic_Serial_Device -d 30 -r localhost -l /var/log/pluto/30_Generic_Serial_Device.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This tells you that a Generic_Serial_Device driver is running. The line containing &amp;quot;./Generic_Serial_Device&amp;quot; shows you the process is running and that this instance of the driver has been given device id 30, and that the logging will be written to the file &amp;quot;/var/log/pluto/30_Generic_Serial_Device.log&amp;quot;. In this log you can find all Ruby errors, connection status and other useful information.&lt;br /&gt;
&lt;br /&gt;
==== Adding the Ruby code ====&lt;br /&gt;
From the Device Template page and from the GSD page you can edit the Ruby codes for your device. There you can write the actual code for the methods implemented by your device.&lt;br /&gt;
&lt;br /&gt;
You should implement the commands you selected for your device, and you should also implement the &amp;quot;Ruby Internal Commands&amp;quot;. These commands consist of the following 6 functions:&lt;br /&gt;
;Private Method Listing:&lt;br /&gt;
: This is not really a function in itself, but rather a section in your Ruby script where you may define common functions that are used in the rest of your driver. A good example would be a function to write a line to the device&#039;s log file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def log(line)&lt;br /&gt;
  # This function logs a line to the log file of the device&lt;br /&gt;
  log = File.open(&amp;quot;/var/log/pluto/&amp;quot; + device_.devid_.to_s + &amp;quot;_Generic_Serial_Device.log&amp;quot;, &amp;quot;a&amp;quot;)&lt;br /&gt;
  log.puts Time.now.to_s + &amp;quot; (Ruby script):&amp;quot; + line.to_s&lt;br /&gt;
  log.close&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Process IDLE: This function is executed each one - two seconds. It may be useful to check for a connection between your device and LinuxMCE, or to poll your device for updates.&lt;br /&gt;
:See the Proliphix NT series thermostat driver for an example of polling, where the time between polls is reduced to once every 5 minutes, instead of once every few seconds.&lt;br /&gt;
&lt;br /&gt;
;Process Incoming Data: This function is called when some data comes from your device:&lt;br /&gt;
&amp;lt;pre&amp;gt;recv = conn_.Recv(100,500);&amp;lt;/pre&amp;gt;&lt;br /&gt;
:recv contains now the data received from the physical device (say some switch is OFF). You can parse it to update a status of that switch in LinuxMCE:&lt;br /&gt;
&amp;lt;pre&amp;gt;cmd = Command.new(device_.devid_, -1001, 1, 2, 48)&lt;br /&gt;
cmd.params_[10] = 0&lt;br /&gt;
SendCommand(cmd)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Process Receive Command For Child: if your device is a parent device for some other devices, this function is called when a command is send to one of the child devices.&lt;br /&gt;
:This function should therefore forward the command to it&#039;s children. For example, a GSD device that controls dimmer or switches might receive a some command like: ON, OFF or SET LEVEL for one of it&#039;s children. It should then send these commands in the desired format to the physical device:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmdId           = cmd.id_                                   # Command ID: ON, OFF, SET LEVEL&lt;br /&gt;
cmdTo           = cmd.devidto_                              # Device ID in LinuxMCE&lt;br /&gt;
devPort         = device_.childdevices_[cmdTo].devdata_[12] # 12 contains a port/channel&lt;br /&gt;
childType       = device_.childdevices_[cmdTo].devtemplid_  # Template ID to know type of device: switch or dimmer&lt;br /&gt;
&lt;br /&gt;
case cmdId&lt;br /&gt;
      when 192 #192 is ON                     &lt;br /&gt;
           command = &#039;&amp;lt;your ON command format&amp;gt;&#039;           &lt;br /&gt;
      when 193 #193 is OFF                        &lt;br /&gt;
           command = &#039;&amp;lt;your OFF command format&amp;gt;&#039; &lt;br /&gt;
      when 184 #184 is Level of dimmer&lt;br /&gt;
           command = &#039;&amp;lt;your SET LEVEL command format&amp;gt;&#039;                   &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
conn_.Send(command)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: In this example the command includes following parameters: cmdTo - the LinuxMCE ID of the child device - to update the status in LinuxMCE, devPort - Port Number - to know where send actual command, cmdId - command type - ON, OFF, SET LEVEL, level value for SET LEVEL. It might be good idea to push unsuccessful commands into array in the GSD device to run them once again.&lt;br /&gt;
&lt;br /&gt;
:NOTE: From trial and error, I have come to the assumption that ON/OFF and SETLEVEL, internally, have seperate values.  Be careful as you can have a device that is OFF with a setlevel of 100%.  This results in a pretty UGLY message when to attempt the following:  Use cmd[184]=100 to turn a device ON. (but don&#039;t actually send a cmd[192].. when you attempt to turn the device OFF, you&#039;ll get an ugly message in the GSD device saying that the &#039;CMD[193] won&#039;t be processed because it is useless&#039;.  (I&#039;m paraphrasing.. you get the idea...)  What makes this worse, is when you use an orbiter to turn a device on, it will send you a cmd[184], not a cmd[192].  You will need to watch for this and send a cmd[192] as needed.&lt;br /&gt;
&lt;br /&gt;
:NOTE FOR ABOVE:  I have found a way to force the command through.  a bit of history first:&lt;br /&gt;
 The reason we get the infamous &#039;won&#039;t be processed because it is useless&#039; is because DCE has to deal with NON Discrete codes.&lt;br /&gt;
 for instance:  a device that has a power toggle.  IF we turn it on, it turns on.&lt;br /&gt;
 Now, if we turn it ON again, DCE thinks it&#039;s on and because it&#039;s a toggle, it won&#039;t send the command.  That is why we get this message.&lt;br /&gt;
 I dug pretty deep to find this next piece:  params[120]=1&lt;br /&gt;
 this parameter, when set inside a command, will FORCE DCERouter to send the command regardless of what it thinks the state is.&lt;br /&gt;
 Hope this helps other GSD programmers.  DDamron&lt;br /&gt;
&lt;br /&gt;
;Process Initialize: This function is called when GSD device is starting. It&#039;s good point to initialize common variables. It is also a good place get the actual status of your device and notify LinuxMCE of it, since the state might have changed while the GSD driver was down.&lt;br /&gt;
&lt;br /&gt;
;Process Release: This function is called when the GSD device is closing.&lt;br /&gt;
&lt;br /&gt;
Note: LinuxMCE caches your Ruby code, so you should do a quick reload of your router each time when you modify your Ruby code!&lt;br /&gt;
&lt;br /&gt;
=== Other Ruby code examples ===&lt;br /&gt;
&lt;br /&gt;
==== Sending an event ====&lt;br /&gt;
&lt;br /&gt;
To send an event to the LinuxMCE system you can use the following snippet:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmd = Command.new(device_.devid_, -1001, 1, 2, 25)&lt;br /&gt;
cmd.params_[30] = 20&lt;br /&gt;
SendCommand(cmd)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will send the command from your device (device_.devid_) to the LinuxMCE event handler (-1001), identifying it as a priority 1 message, of the event type (2).&lt;br /&gt;
Furthermore the event has id 25, which means it&#039;s a &amp;quot;Temperature Changed&amp;quot; event (the device template page shows the ids of the events you have added to the device).&lt;br /&gt;
&lt;br /&gt;
Additional parameters of the event can be set by using the cmd.params_ mapping. The device template page has an edit button for each event that enables you to see the parameters associated with that event, including a description of its use.&lt;br /&gt;
In our example it shows that the parameter with index 30 is the current ambient temperature in degrees Celcius.&lt;br /&gt;
&lt;br /&gt;
After the cmd object has been initialized it is send to the LinuxMCE system using the SendCommand function.&lt;br /&gt;
&lt;br /&gt;
Note that the same piece of code can be used to send commands instead of events. The only changes are that the message type will be 1 (command) instead of 2 (event), and that the destination will probably differ from the event handler device -1001.&lt;br /&gt;
&lt;br /&gt;
Note that the GSD framework currently does not allow you to get any return(out) parameters from commands.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
This section contains some tips on troubleshooting your new driver.&lt;br /&gt;
&lt;br /&gt;
=== Viewing the logs ===&lt;br /&gt;
&lt;br /&gt;
The best way to test the new GSD device is to edit the file /etc/pluto.conf and comment out the LogLevels filter, so the logging is verbose.  You can do this by typing:&lt;br /&gt;
&lt;br /&gt;
vim /etc/pluto.conf&lt;br /&gt;
&lt;br /&gt;
Then move to the start of the line that starts with LogLevels, press &#039;i&#039; for Insert mode in vim, type a # character, then press [ESC]:wq&lt;br /&gt;
The # at the start of a line means it&#039;s commented out, or ignored.&lt;br /&gt;
&lt;br /&gt;
now do a reload router.  You can do this from the console with: /usr/pluto/bin/MessageSend dcerouter 0 -1000 7 1&lt;br /&gt;
&lt;br /&gt;
Then go to the log directory:&lt;br /&gt;
&lt;br /&gt;
cd /var/log/pluto&lt;br /&gt;
&lt;br /&gt;
ls&lt;br /&gt;
&lt;br /&gt;
ls will list the contents of the directory:  There will be a log file that starts with the device number of the gsd device.  To follow it type:&lt;br /&gt;
&lt;br /&gt;
tail -f [filename]&lt;br /&gt;
&lt;br /&gt;
rather than typing in the full filename, you can just type the first letters (ie the device number) and press tab, which does an auto complete.&lt;br /&gt;
&lt;br /&gt;
Now send commands to the device.  You can do this through the web site or the console.  For example, assuming your GSD device has the device id 57, you can send it an ON command (ON is command #192), you could type: /usr/pluto/bin/MessageSend dcerouter 0 57 1 192&lt;br /&gt;
&lt;br /&gt;
The log will show a bunch of data.  The lines that start with 40 and 41 are the serial data that is being sent to/from the device.  To filter the tail so it only shows the serial data, type:&lt;br /&gt;
&lt;br /&gt;
tail -f [filename] | grep &#039;^40\|^41&#039;&lt;br /&gt;
&lt;br /&gt;
=== Getting the device to start ===&lt;br /&gt;
If your device will not start (anymore) as described in section [[How to add your own GSD device#Adding the device]] there can be several causes.&lt;br /&gt;
&lt;br /&gt;
Check that your device is controlled by the core, as described in [[How to add your own GSD device#Create a device template]]. Otherwise the core assumes another device will start the driver.&lt;br /&gt;
&lt;br /&gt;
If your Ruby code contains an error, LinuxMCE may decide to disable the device. So, check that your device is not disabled: on Wizard--&amp;gt;Devices--&amp;gt;Generic Serial Devices click on &amp;quot;Advanced&amp;quot; for your device and make sure the Disabled box is NOT ticked. If it is, untick it, save, and do a quick reload of the router.&lt;br /&gt;
&lt;br /&gt;
Sometimes a quick reload of the router does not suffice. In that case you can run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/pluto/bin/Start_LocalDevices.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This should start your device. If not, the output of that script is a good place to look for further clues.&lt;br /&gt;
&lt;br /&gt;
== Sharing your driver ==&lt;br /&gt;
&lt;br /&gt;
Once your driver is working properly, you can share it with the rest of the LinuxMCE community.&lt;br /&gt;
The procedure for this is as follows:&lt;br /&gt;
* Do an sqlCVS update from the web-admin to ensure that your database is up-to-date (Advanced --&amp;gt; sqlCVS --&amp;gt; Update, select all sections)&lt;br /&gt;
** If it just returns without any reply, you&#039;re most likelly being tricked by your browser&#039;s pop-up blocker.&lt;br /&gt;
* Create a Trac ticked describing your device (http://svn.linuxmce.org)&lt;br /&gt;
* Do a check-in of your changes: Use the sqlCVS diff function (Advanced --&amp;gt; sqlCVS --&amp;gt; Diff) to determine the updates to the &amp;quot;dce&amp;quot; and &amp;quot;ir&amp;quot; sections of your database and check them in anonymously. The comment of your check-in should mention the Trac ticket number. You should only check in the items related to your device template.&lt;br /&gt;
* The developers will verify this and check the driver into the database&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[GSD Ruby Interface]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[GSD - Ruby codes ]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Generic Serial Device]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Installing_LinuxMCE_on_VM_via_KVM_on_Ubuntu_10.10_Server&amp;diff=26981</id>
		<title>Installing LinuxMCE on VM via KVM on Ubuntu 10.10 Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Installing_LinuxMCE_on_VM_via_KVM_on_Ubuntu_10.10_Server&amp;diff=26981"/>
		<updated>2011-02-15T19:33:16Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Virtualization]]&lt;br /&gt;
[[Category: Documentation]]&lt;br /&gt;
[[Category: Tutorials]]&lt;br /&gt;
&lt;br /&gt;
{{versioninfo|810Status=still testing|810UpdatedDate=9th february 20101|810UpdatedBy=JoakimL}}&lt;br /&gt;
&lt;br /&gt;
This is based on daballiemo&#039;s [[http://wiki.linuxmce.org/index.php/Installing_LinuMCE_on_Virtual_Machine_via_KVM&lt;br /&gt;
== &#039;&#039;&#039;KVM: To baldly go where (almost) no man has gone before&#039;&#039;&#039; ==]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt;&amp;lt; This is not complete yet, follow at own risk&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this overview I will try to follow the installation path to get LCME 8.10 into a virtual machine on Ubuntu 10.10 which uses USB devices from the host.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Machine details first:&lt;br /&gt;
&lt;br /&gt;
* Motherboard: MSI K9N Neo V3 with BIOS 2.61&lt;br /&gt;
* CPU: AMD AM2 4400+&lt;br /&gt;
* 2 Gb DDR-2 Memory&lt;br /&gt;
* 1 onboard GbE Nic&lt;br /&gt;
* 1 PCI-E GbE Nic&lt;br /&gt;
* 1 Hauppauge WinStick Nova T2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 lspci&lt;br /&gt;
 00:00.0 RAM memory: nVidia Corporation MCP65 Memory Controller (rev a3)&lt;br /&gt;
 00:01.0 ISA bridge: nVidia Corporation MCP65 LPC Bridge (rev a3)&lt;br /&gt;
 00:01.1 SMBus: nVidia Corporation MCP65 SMBus (rev a1)&lt;br /&gt;
 00:01.2 RAM memory: nVidia Corporation MCP65 Memory Controller (rev a1)&lt;br /&gt;
 00:02.0 USB Controller: nVidia Corporation MCP65 USB Controller (rev a3)&lt;br /&gt;
 00:02.1 USB Controller: nVidia Corporation MCP65 USB Controller (rev a3)&lt;br /&gt;
 00:07.0 Audio device: nVidia Corporation MCP65 High Definition Audio (rev a1)&lt;br /&gt;
 00:08.0 PCI bridge: nVidia Corporation MCP65 PCI bridge (rev a1)&lt;br /&gt;
 00:09.0 IDE interface: nVidia Corporation MCP65 IDE (rev a1)&lt;br /&gt;
 00:0a.0 IDE interface: nVidia Corporation MCP65 SATA Controller (rev a3)&lt;br /&gt;
 00:0b.0 PCI bridge: nVidia Corporation Device 045b (rev a1)&lt;br /&gt;
 00:0c.0 PCI bridge: nVidia Corporation MCP65 PCI Express bridge (rev a1)&lt;br /&gt;
 00:0d.0 PCI bridge: nVidia Corporation MCP65 PCI Express bridge (rev a1)&lt;br /&gt;
 00:0e.0 PCI bridge: nVidia Corporation MCP65 PCI Express bridge (rev a1)&lt;br /&gt;
 00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration&lt;br /&gt;
 00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map&lt;br /&gt;
 00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller&lt;br /&gt;
 00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control&lt;br /&gt;
 01:0a.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)&lt;br /&gt;
 03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 01)&lt;br /&gt;
 04:00.0 VGA compatible controller: nVidia Corporation G86 [GeForce 8500 GT] (rev a1)&lt;br /&gt;
&lt;br /&gt;
Step 1) Install Ubuntu 10.10 server 64 bit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 2) Make the system current:&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get update&lt;br /&gt;
  sudo apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 3) Add some management tools:&lt;br /&gt;
&lt;br /&gt;
I use webmin to give my server a fixed ip address and perform other administrative tasks.&lt;br /&gt;
&lt;br /&gt;
 apt-get install libnet-ssleay-perl libauthen-pam-perl libio-pty-perl&lt;br /&gt;
 wget http://mirrors.kernel.org/ubuntu/pool/universe/libm/libmd5-perl/libmd5-perl_2.03-1_all.deb&lt;br /&gt;
 sudo dpkg -i libmd5-perl_2.03-1_all.deb&lt;br /&gt;
 sudo wget http://sourceforge.net/projects/webadmin/files/webmin/1.520/webmin_1.520_all.deb/download&lt;br /&gt;
 sudo dpkg -i download&lt;br /&gt;
 sudo apt-get install -f&lt;br /&gt;
&lt;br /&gt;
I use MidNight Commander for file stuff&lt;br /&gt;
 &lt;br /&gt;
 apt-get install mc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 4) Getting the right kernel and parameters &lt;br /&gt;
&lt;br /&gt;
Install the required tools and packages, so open a terminal and type the following,&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install fakeroot kernel-wedge build-essential makedumpfile kernel-package libncurses5 libncurses5-dev&lt;br /&gt;
&lt;br /&gt;
Step 7) Booting with the new kernel&lt;br /&gt;
&lt;br /&gt;
Add the options to enable IOMMU in the kernel commandline&lt;br /&gt;
&lt;br /&gt;
edit /etc/default/grub&lt;br /&gt;
&lt;br /&gt;
 new: GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;quiet splash amd_iommu=on,igfx_off,pass-through&amp;quot;&lt;br /&gt;
 old: #GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;quiet&amp;quot;&lt;br /&gt;
&lt;br /&gt;
update the booting menu&lt;br /&gt;
&lt;br /&gt;
 update-grub&lt;br /&gt;
&lt;br /&gt;
and reboot&lt;br /&gt;
&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
Step 8) Deinstall networkmanager&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get remove network-manager&lt;br /&gt;
&lt;br /&gt;
Step 9) Setup your network, change /etc/network/interfaces to look like this&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt; this needs modification, remote console cannot be used during setup if there&#039;s no local network &amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # This file describes the network interfaces available on your system&lt;br /&gt;
 # and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The first bridge interface&lt;br /&gt;
 auto bridge_ext&lt;br /&gt;
 iface bridge_ext inet static&lt;br /&gt;
 address 0.0.0.0 #no external access without going through DCERouter first&lt;br /&gt;
 netmask 255.255.255.0&lt;br /&gt;
 broadcast 10.0.0.255 &lt;br /&gt;
 gateway 10.0.0.138&lt;br /&gt;
 bridge_ports eth0&lt;br /&gt;
 bridge_stp off&lt;br /&gt;
 bridge_maxwait 5&lt;br /&gt;
 # The second bridge interface&lt;br /&gt;
 auto bridge_int&lt;br /&gt;
 iface bridge_int inet static&lt;br /&gt;
 address 192.168.80.240&lt;br /&gt;
 netmask 255.255.255.0&lt;br /&gt;
 broadcast 192.168.80.255&lt;br /&gt;
 gateway 192.168.80.1&lt;br /&gt;
 bridge_ports eth1&lt;br /&gt;
 bridge_stp off&lt;br /&gt;
 bridge_maxwait 5&lt;br /&gt;
&lt;br /&gt;
With the above the host will use dcerouter as its way into the internet and thus the protection offered by the firewall. The host has no direct access to the 10.0.0.0 network.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 10) Install Linuxmce&lt;br /&gt;
 sudo apt-get install virt-manager&lt;br /&gt;
&lt;br /&gt;
Add user to administer you virtual machines to the libvirtd group&lt;br /&gt;
 sudo adduser xxx libvirtd&lt;br /&gt;
&lt;br /&gt;
Since there&#039;s no GUI on the server, run Virtual machine manager on another computer. Enable SSH connection for the manager by running this on the client:&lt;br /&gt;
 ssh-keygen -t rsa&lt;br /&gt;
 ssh-copy-id -i ~/.ssh/id_rsa.pub xxx@your_server&lt;br /&gt;
&lt;br /&gt;
Install viewer on the client&lt;br /&gt;
 sudo apt-get install virt-viewer&lt;br /&gt;
&lt;br /&gt;
Download the LMCE ISO file with:&lt;br /&gt;
 mkdir /home/xxx/lmce&lt;br /&gt;
 cd /home/xxx/lmce&lt;br /&gt;
 wget http://linuxmce.iptp.org/snapshots/LinuxMCE-8.10-23645-i386.iso^C&lt;br /&gt;
&lt;br /&gt;
Start installation&lt;br /&gt;
 sudo virt-install --connect qemu:///system --name DCErouter --ram 1024 --file /var/lib/libvirt/images/lmce810.img --cdrom /home/joakim/lmce/LinuxMCE-8.10-23645-i386.iso  --os-type linux --os-variant generic24 -k sv --vnc --vncport 5901&lt;br /&gt;
&lt;br /&gt;
Start a VNC viewer on you other computer:&lt;br /&gt;
 virt-viewer -c qemu+ssh://192.168.1.78/system DCErouter&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt; This is as far as I get. There&#039;s obviously a bug which makes Ubuntu 8.10 go into a 100% CPU loop, causing my CPU to become too hot.&amp;gt;&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Using virt-manager you can now install LinuxMCE. As we are all experts on that I will only give away my xml config file (should be enough ;-))&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;domain type=&#039;kvm&#039;&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;DCERouter&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;uuid&amp;gt;xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx&amp;lt;/uuid&amp;gt;&lt;br /&gt;
  &amp;lt;memory&amp;gt;2097152&amp;lt;/memory&amp;gt;&lt;br /&gt;
  &amp;lt;currentMemory&amp;gt;2097152&amp;lt;/currentMemory&amp;gt;&lt;br /&gt;
  &amp;lt;vcpu&amp;gt;2&amp;lt;/vcpu&amp;gt;&lt;br /&gt;
  &amp;lt;os&amp;gt;&lt;br /&gt;
    &amp;lt;type arch=&#039;x86_64&#039; machine=&#039;pc-0.11&#039;&amp;gt;hvm&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;boot dev=&#039;hd&#039;/&amp;gt;&lt;br /&gt;
  &amp;lt;/os&amp;gt;&lt;br /&gt;
  &amp;lt;features&amp;gt;&lt;br /&gt;
    &amp;lt;acpi/&amp;gt;&lt;br /&gt;
    &amp;lt;apic/&amp;gt;&lt;br /&gt;
    &amp;lt;pae/&amp;gt;&lt;br /&gt;
  &amp;lt;/features&amp;gt;&lt;br /&gt;
  &amp;lt;clock offset=&#039;utc&#039;/&amp;gt;&lt;br /&gt;
  &amp;lt;on_poweroff&amp;gt;destroy&amp;lt;/on_poweroff&amp;gt;&lt;br /&gt;
  &amp;lt;on_reboot&amp;gt;restart&amp;lt;/on_reboot&amp;gt;&lt;br /&gt;
  &amp;lt;on_crash&amp;gt;restart&amp;lt;/on_crash&amp;gt;&lt;br /&gt;
  &amp;lt;devices&amp;gt;&lt;br /&gt;
    &amp;lt;emulator&amp;gt;/usr/bin/kvm&amp;lt;/emulator&amp;gt;&lt;br /&gt;
    &amp;lt;disk type=&#039;block&#039; device=&#039;disk&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source dev=&#039;/dev/sdc&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev=&#039;hda&#039; bus=&#039;ide&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;disk type=&#039;file&#039; device=&#039;cdrom&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;target dev=&#039;hdc&#039; bus=&#039;ide&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;readonly/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;interface type=&#039;bridge&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;mac address=&#039;xx:xx:xx:xx:xx:xx&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;source bridge=&#039;bridge_ext&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/interface&amp;gt;&lt;br /&gt;
    &amp;lt;interface type=&#039;bridge&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;mac address=&#039;xx:xx:xx:xx:xx:xx&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;source bridge=&#039;bridge_int&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;model type=&#039;virtio&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/interface&amp;gt;&lt;br /&gt;
    &amp;lt;serial type=&#039;pty&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;target port=&#039;0&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/serial&amp;gt;&lt;br /&gt;
    &amp;lt;console type=&#039;pty&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;target port=&#039;0&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/console&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&#039;tablet&#039; bus=&#039;usb&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&#039;mouse&#039; bus=&#039;ps2&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;graphics type=&#039;vnc&#039; port=&#039;-1&#039; autoport=&#039;yes&#039; keymap=&#039;en-us&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;video&amp;gt;&lt;br /&gt;
      &amp;lt;model type=&#039;cirrus&#039; vram=&#039;9216&#039; heads=&#039;1&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/video&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;pci&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;address domain=&#039;0x0000&#039; bus=&#039;0x02&#039; slot=&#039;0x00&#039; function=&#039;0x0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;pci&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;address domain=&#039;0x0000&#039; bus=&#039;0x03&#039; slot=&#039;0x08&#039; function=&#039;0x0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;pci&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;address domain=&#039;0x0000&#039; bus=&#039;0x03&#039; slot=&#039;0x09&#039; function=&#039;0x0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;usb&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;vendor id=&#039;0x0403&#039;/&amp;gt;&lt;br /&gt;
        &amp;lt;product id=&#039;0xf2d0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;pci&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;address domain=&#039;0x0000&#039; bus=&#039;0x00&#039; slot=&#039;0x1b&#039; function=&#039;0x0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
  &amp;lt;/devices&amp;gt;&lt;br /&gt;
 &amp;lt;/domain&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 11) Enjoying building a test enviroment, inline upgrade etc.&lt;br /&gt;
&lt;br /&gt;
Step 12) I chose to put my media on the host via a Samba share which will be detected as a NAS. This will simplify things when performing upgrades and test. Because I am using LVM also expansion is easy ;-)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Lmce_kvm.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
== Hints/Known Issues/Working Hardware ==&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AMD/ATI Hardware&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- NVidia Chipset 3600 with Opteron Socket F has full KVM support and works fine with LMCE 8.10. &amp;lt;br&amp;gt;&lt;br /&gt;
- ATI-driver 9.8 supports kernel 2.6.30&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Keyboard Layout&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- As you can&#039;t choose the keyboard-layout in virtual-manager, simply change the keymap in the xml-file e.g. from &amp;quot;en-us&amp;quot; to &amp;quot;de&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Networking&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- Step 11) is not needed if the physical network devices are configured as &#039;auto ethx \ iface ethx inet manual&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- The virtual LMCE runs fine with only one NIC provided to it. The setup automatically configures a sub-NIC which works well. I would suggest to have the host provide the internet-access, so vLMCE can&#039;t mess it up at the installation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PCI-Passthrough at KVM&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- PCI-Passthrough only works if the full PCI-device is transferred to the virtual machine. So if the PCI-Slot has sub-functions (e.g. Firewire) all of the &#039;functions&#039; have to be adressed to the virtual machine with the &amp;lt;hostdev&amp;gt; section of Step 12). To look up your PCI-device-tree, use &#039;lspci -t&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 (Tyan S2915-E)&lt;br /&gt;
 [0000:00]-+-00.0&lt;br /&gt;
           +-01.0&lt;br /&gt;
           +-01.1&lt;br /&gt;
           +-02.0&lt;br /&gt;
           +-02.1&lt;br /&gt;
           +-04.0&lt;br /&gt;
           +-05.0&lt;br /&gt;
           +-05.1&lt;br /&gt;
           +-06.0-[0000:01]----04.0                                           (&amp;lt;- PCI-Slot = DVB-card)&lt;br /&gt;
                             \-04.1                                           (&amp;lt;- Firewire, either disable in Bios or -&amp;gt;KVM)&lt;br /&gt;
           +-06.1&lt;br /&gt;
           +-08.0&lt;br /&gt;
           +-09.0&lt;br /&gt;
           +-0d.0-[0000:02-04]--+-00.0-[0000:03]----04.0&lt;br /&gt;
           |                    \-00.1-[0000:04]--&lt;br /&gt;
           +-0f.0-[0000:05]--+-00.0&lt;br /&gt;
           |                 \-00.1&lt;br /&gt;
           +-18.0&lt;br /&gt;
           +-18.1&lt;br /&gt;
           +-18.2&lt;br /&gt;
           +-18.3&lt;br /&gt;
           \-18.4&lt;br /&gt;
&lt;br /&gt;
- PCIe-devices do not have this restriction.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Please note that each change in the .xml-files is activated only after rebooting the libvirtd. You can do this manually by killing and restarting the process &amp;quot;libvirtd&amp;quot; or by a host reboot.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Problems with PVR-150 not responding&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
During usage it turned out that sometimes recordings failed having a total size of 0 B. Live TV has not worked stable at all. Checking the mythbackend logs shows that /dev/video0 was not responding as expected.&lt;br /&gt;
Furthermore I detected DMA errors in the log of the host.&lt;br /&gt;
&lt;br /&gt;
I am now testing the commandline option iommu=on,igfx_off,pass-through, where pass-through should be able to iron out the DMA errors.&lt;br /&gt;
&lt;br /&gt;
Because the behaviour was not stable I also installed the mercurial ivtv drivers (within the VM ofcourse!!!!):&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install mercurial&lt;br /&gt;
 cd /usr/src&lt;br /&gt;
 sudo hg clone http://linuxtv.org/hg/v4l-dvb&lt;br /&gt;
 cd v4l-dvb&lt;br /&gt;
 sudo make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo make unload&lt;br /&gt;
 sudo make load&lt;br /&gt;
&lt;br /&gt;
You will have to rebuild after a kernel change.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Clicking sound on Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 02)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When passing-through my audio card I noticed hick ups in the MP3&#039;s and a message in kern.log;&lt;br /&gt;
&lt;br /&gt;
 hda-intel: IRQ timing workaround is activated for card #0. Suggest a bigger bdl_pos_adj.&lt;br /&gt;
&lt;br /&gt;
edit alsa-base.conf;&lt;br /&gt;
&lt;br /&gt;
 vim /etc/modprobe.dalsa-base.conf&lt;br /&gt;
&lt;br /&gt;
add the following line at the bottom;&lt;br /&gt;
&lt;br /&gt;
 options snd-hda-intel model=3stack-dig&lt;br /&gt;
 options snd-hda-intel enable_msi=1&lt;br /&gt;
 options snd-hda-intel single_cmd=1&lt;br /&gt;
&lt;br /&gt;
and reboot (reload alsa does not seem to have the full effect)&lt;br /&gt;
&lt;br /&gt;
Tip from [https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/274424 Bugs Launchpad]&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Installing_LinuxMCE_on_VM_via_KVM_on_Ubuntu_10.10_Server&amp;diff=26980</id>
		<title>Installing LinuxMCE on VM via KVM on Ubuntu 10.10 Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Installing_LinuxMCE_on_VM_via_KVM_on_Ubuntu_10.10_Server&amp;diff=26980"/>
		<updated>2011-02-15T08:37:02Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Virtualization]]&lt;br /&gt;
[[Category: Documentation]]&lt;br /&gt;
[[Category: Tutorials]]&lt;br /&gt;
&lt;br /&gt;
{{versioninfo|810Status=still testing|810UpdatedDate=9th february 20101|810UpdatedBy=JoakimL}}&lt;br /&gt;
&lt;br /&gt;
This is based on daballiemo&#039;s [[http://wiki.linuxmce.org/index.php/Installing_LinuMCE_on_Virtual_Machine_via_KVM&lt;br /&gt;
== &#039;&#039;&#039;KVM: To baldly go where (almost) no man has gone before&#039;&#039;&#039; ==]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt;&amp;lt; This is not complete yet, follow at own risk&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this overview I will try to follow the installation path to get LCME 8.10 into a virtual machine on Ubuntu 10.10 which uses USB devices from the host.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Machine details first:&lt;br /&gt;
&lt;br /&gt;
* Motherboard: MSI K9N Neo V3 with BIOS 2.61&lt;br /&gt;
* CPU: AMD AM2 4400+&lt;br /&gt;
* 2 Gb DDR-2 Memory&lt;br /&gt;
* 1 onboard GbE Nic&lt;br /&gt;
* 1 PCI-E GbE Nic&lt;br /&gt;
* 1 Hauppauge WinStick Nova T2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 lspci&lt;br /&gt;
 00:00.0 RAM memory: nVidia Corporation MCP65 Memory Controller (rev a3)&lt;br /&gt;
 00:01.0 ISA bridge: nVidia Corporation MCP65 LPC Bridge (rev a3)&lt;br /&gt;
 00:01.1 SMBus: nVidia Corporation MCP65 SMBus (rev a1)&lt;br /&gt;
 00:01.2 RAM memory: nVidia Corporation MCP65 Memory Controller (rev a1)&lt;br /&gt;
 00:02.0 USB Controller: nVidia Corporation MCP65 USB Controller (rev a3)&lt;br /&gt;
 00:02.1 USB Controller: nVidia Corporation MCP65 USB Controller (rev a3)&lt;br /&gt;
 00:07.0 Audio device: nVidia Corporation MCP65 High Definition Audio (rev a1)&lt;br /&gt;
 00:08.0 PCI bridge: nVidia Corporation MCP65 PCI bridge (rev a1)&lt;br /&gt;
 00:09.0 IDE interface: nVidia Corporation MCP65 IDE (rev a1)&lt;br /&gt;
 00:0a.0 IDE interface: nVidia Corporation MCP65 SATA Controller (rev a3)&lt;br /&gt;
 00:0b.0 PCI bridge: nVidia Corporation Device 045b (rev a1)&lt;br /&gt;
 00:0c.0 PCI bridge: nVidia Corporation MCP65 PCI Express bridge (rev a1)&lt;br /&gt;
 00:0d.0 PCI bridge: nVidia Corporation MCP65 PCI Express bridge (rev a1)&lt;br /&gt;
 00:0e.0 PCI bridge: nVidia Corporation MCP65 PCI Express bridge (rev a1)&lt;br /&gt;
 00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration&lt;br /&gt;
 00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map&lt;br /&gt;
 00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller&lt;br /&gt;
 00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control&lt;br /&gt;
 01:0a.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)&lt;br /&gt;
 03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 01)&lt;br /&gt;
 04:00.0 VGA compatible controller: nVidia Corporation G86 [GeForce 8500 GT] (rev a1)&lt;br /&gt;
&lt;br /&gt;
Step 1) Install Ubuntu 10.10 server 64 bit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 2) Make the system current:&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get update&lt;br /&gt;
  sudo apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 3) Add some management tools:&lt;br /&gt;
&lt;br /&gt;
I use webmin to give my server a fixed ip address and perform other administrative tasks.&lt;br /&gt;
&lt;br /&gt;
 apt-get install libnet-ssleay-perl libauthen-pam-perl libio-pty-perl&lt;br /&gt;
 wget http://mirrors.kernel.org/ubuntu/pool/universe/libm/libmd5-perl/libmd5-perl_2.03-1_all.deb&lt;br /&gt;
 sudo dpkg -i libmd5-perl_2.03-1_all.deb&lt;br /&gt;
 sudo wget http://sourceforge.net/projects/webadmin/files/webmin/1.520/webmin_1.520_all.deb/download&lt;br /&gt;
 sudo dpkg -i download&lt;br /&gt;
 sudo apt-get install -f&lt;br /&gt;
&lt;br /&gt;
I use MidNight Commander for file stuff&lt;br /&gt;
 &lt;br /&gt;
 apt-get install mc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 4) Getting the right kernel and parameters &lt;br /&gt;
&lt;br /&gt;
Install the required tools and packages, so open a terminal and type the following,&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install fakeroot kernel-wedge build-essential makedumpfile kernel-package libncurses5 libncurses5-dev&lt;br /&gt;
&lt;br /&gt;
Get the right kernel, at the time of writing 2.6.37 was the best kernel source.&lt;br /&gt;
&lt;br /&gt;
 wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.37.tar.bz2&lt;br /&gt;
 tar -jxvf linux-2.6.37.tar.bz2 -C /usr/src&lt;br /&gt;
 &lt;br /&gt;
Go to the unpack directory&lt;br /&gt;
&lt;br /&gt;
 cd /usr/src/linux-2.6.37&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is a good idea to start with the same .config as the currently running kernel, so type the following,&lt;br /&gt;
&lt;br /&gt;
 sudo cp -vi /boot/config-`uname -r` .config&lt;br /&gt;
&lt;br /&gt;
Now we are ready to customize the build and kernel options.&lt;br /&gt;
&lt;br /&gt;
 sudo make menuconfig&lt;br /&gt;
&lt;br /&gt;
   * set &amp;quot;Bus options (PCI etc.)&amp;quot; -&amp;gt; &amp;quot;Support for DMA Remapping Devices&amp;quot; to &amp;quot;*&amp;quot;&lt;br /&gt;
   * set &amp;quot;Bus options (PCI etc.)&amp;quot; -&amp;gt; &amp;quot;Enable DMA Remapping Devices&amp;quot; to &amp;quot;*&amp;quot;&lt;br /&gt;
   * set &amp;quot;Bus options (PCI etc.)&amp;quot; -&amp;gt; &amp;quot;PCI Stub driver&amp;quot; to &amp;quot;*&amp;quot;&lt;br /&gt;
   This line broke my setup so I took it out * optional setting: set &amp;quot;Bus options (PCI etc.)&amp;quot; -&amp;gt; &amp;quot;Support for Interrupt Remapping&amp;quot; to &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Once you have finished, save and exit. It is now time to compile. However to speed up the build if you have a dual/triple/quad core processor type (one more than the number of cores you have).&lt;br /&gt;
&lt;br /&gt;
 export CONCURRENCY_LEVEL=3&lt;br /&gt;
&lt;br /&gt;
The general rule is 1 + the number of processor cores.&lt;br /&gt;
&lt;br /&gt;
Step 5) Build the new kernel.&lt;br /&gt;
&lt;br /&gt;
 sudo make-kpkg clean&lt;br /&gt;
 fakeroot make-kpkg --initrd --append-to-version=-iommu kernel-image kernel-headers&lt;br /&gt;
&lt;br /&gt;
You can grab a coffee, make a hot meal, have a sleep ;-)&lt;br /&gt;
&lt;br /&gt;
Step 6) Install The New Kernel&lt;br /&gt;
&lt;br /&gt;
After the successful kernel build, you can find two .deb packages in the /usr/src directory.&lt;br /&gt;
 cd .. &lt;br /&gt;
 ls -l linux*&lt;br /&gt;
&lt;br /&gt;
Install them:&lt;br /&gt;
 dpkg -i linux-image-2.6.33-custom_2.6.33-custom-10.00.Custom_amd64.deb&lt;br /&gt;
 dpkg -i linux-headers-2.6.33-custom_2.6.33-custom-10.00.Custom_amd64.deb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 7) Booting with the new kernel&lt;br /&gt;
&lt;br /&gt;
Add the options to enable IOMMU in the kernel commandline&lt;br /&gt;
&lt;br /&gt;
edit /etc/default/grub&lt;br /&gt;
&lt;br /&gt;
 new: GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;quiet splash intel_iommu=on,igfx_off,pass-through&amp;quot;&lt;br /&gt;
 old: #GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;quiet&amp;quot;&lt;br /&gt;
&lt;br /&gt;
update the booting menu&lt;br /&gt;
&lt;br /&gt;
 update-grub&lt;br /&gt;
&lt;br /&gt;
and reboot&lt;br /&gt;
&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
Step 8) Deinstall networkmanager&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get remove network-manager&lt;br /&gt;
&lt;br /&gt;
Step 9) Setup your network, change /etc/network/interfaces to look like this&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt; this needs modification, remote console cannot be used during setup if there&#039;s no local network &amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # This file describes the network interfaces available on your system&lt;br /&gt;
 # and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The first bridge interface&lt;br /&gt;
 auto bridge_ext&lt;br /&gt;
 iface bridge_ext inet static&lt;br /&gt;
 address 0.0.0.0 #no external access without going through DCERouter first&lt;br /&gt;
 netmask 255.255.255.0&lt;br /&gt;
 broadcast 10.0.0.255 &lt;br /&gt;
 gateway 10.0.0.138&lt;br /&gt;
 bridge_ports eth0&lt;br /&gt;
 bridge_stp off&lt;br /&gt;
 bridge_maxwait 5&lt;br /&gt;
 # The second bridge interface&lt;br /&gt;
 auto bridge_int&lt;br /&gt;
 iface bridge_int inet static&lt;br /&gt;
 address 192.168.80.240&lt;br /&gt;
 netmask 255.255.255.0&lt;br /&gt;
 broadcast 192.168.80.255&lt;br /&gt;
 gateway 192.168.80.1&lt;br /&gt;
 bridge_ports eth1&lt;br /&gt;
 bridge_stp off&lt;br /&gt;
 bridge_maxwait 5&lt;br /&gt;
&lt;br /&gt;
With the above the host will use dcerouter as its way into the internet and thus the protection offered by the firewall. The host has no direct access to the 10.0.0.0 network.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 10) Install Linuxmce&lt;br /&gt;
 sudo apt-get install virt-manager&lt;br /&gt;
&lt;br /&gt;
Add user to administer you virtual machines to the libvirtd group&lt;br /&gt;
 sudo adduser xxx libvirtd&lt;br /&gt;
&lt;br /&gt;
Since there&#039;s no GUI on the server, run Virtual machine manager on another computer. Enable SSH connection for the manager by running this on the client:&lt;br /&gt;
 ssh-keygen -t rsa&lt;br /&gt;
 ssh-copy-id -i ~/.ssh/id_rsa.pub xxx@your_server&lt;br /&gt;
&lt;br /&gt;
Install viewer on the client&lt;br /&gt;
 sudo apt-get install virt-viewer&lt;br /&gt;
&lt;br /&gt;
Download the LMCE ISO file with:&lt;br /&gt;
 mkdir /home/xxx/lmce&lt;br /&gt;
 cd /home/xxx/lmce&lt;br /&gt;
 wget http://linuxmce.iptp.org/snapshots/LinuxMCE-8.10-23645-i386.iso^C&lt;br /&gt;
&lt;br /&gt;
Start installation&lt;br /&gt;
 sudo virt-install --connect qemu:///system --name DCErouter --ram 1024 --file /var/lib/libvirt/images/lmce810.img --cdrom /home/joakim/lmce/LinuxMCE-8.10-23645-i386.iso  --os-type linux --os-variant generic24 -k sv --vnc --vncport 5901&lt;br /&gt;
&lt;br /&gt;
Start a VNC viewer on you other computer:&lt;br /&gt;
 virt-viewer -c qemu+ssh://192.168.1.78/system DCErouter&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Using virt-manager you can now install LinuxMCE. As we are all experts on that I will only give away my xml config file (should be enough ;-))&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;domain type=&#039;kvm&#039;&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;DCERouter&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;uuid&amp;gt;xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx&amp;lt;/uuid&amp;gt;&lt;br /&gt;
  &amp;lt;memory&amp;gt;2097152&amp;lt;/memory&amp;gt;&lt;br /&gt;
  &amp;lt;currentMemory&amp;gt;2097152&amp;lt;/currentMemory&amp;gt;&lt;br /&gt;
  &amp;lt;vcpu&amp;gt;2&amp;lt;/vcpu&amp;gt;&lt;br /&gt;
  &amp;lt;os&amp;gt;&lt;br /&gt;
    &amp;lt;type arch=&#039;x86_64&#039; machine=&#039;pc-0.11&#039;&amp;gt;hvm&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;boot dev=&#039;hd&#039;/&amp;gt;&lt;br /&gt;
  &amp;lt;/os&amp;gt;&lt;br /&gt;
  &amp;lt;features&amp;gt;&lt;br /&gt;
    &amp;lt;acpi/&amp;gt;&lt;br /&gt;
    &amp;lt;apic/&amp;gt;&lt;br /&gt;
    &amp;lt;pae/&amp;gt;&lt;br /&gt;
  &amp;lt;/features&amp;gt;&lt;br /&gt;
  &amp;lt;clock offset=&#039;utc&#039;/&amp;gt;&lt;br /&gt;
  &amp;lt;on_poweroff&amp;gt;destroy&amp;lt;/on_poweroff&amp;gt;&lt;br /&gt;
  &amp;lt;on_reboot&amp;gt;restart&amp;lt;/on_reboot&amp;gt;&lt;br /&gt;
  &amp;lt;on_crash&amp;gt;restart&amp;lt;/on_crash&amp;gt;&lt;br /&gt;
  &amp;lt;devices&amp;gt;&lt;br /&gt;
    &amp;lt;emulator&amp;gt;/usr/bin/kvm&amp;lt;/emulator&amp;gt;&lt;br /&gt;
    &amp;lt;disk type=&#039;block&#039; device=&#039;disk&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source dev=&#039;/dev/sdc&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev=&#039;hda&#039; bus=&#039;ide&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;disk type=&#039;file&#039; device=&#039;cdrom&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;target dev=&#039;hdc&#039; bus=&#039;ide&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;readonly/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;interface type=&#039;bridge&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;mac address=&#039;xx:xx:xx:xx:xx:xx&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;source bridge=&#039;bridge_ext&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/interface&amp;gt;&lt;br /&gt;
    &amp;lt;interface type=&#039;bridge&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;mac address=&#039;xx:xx:xx:xx:xx:xx&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;source bridge=&#039;bridge_int&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;model type=&#039;virtio&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/interface&amp;gt;&lt;br /&gt;
    &amp;lt;serial type=&#039;pty&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;target port=&#039;0&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/serial&amp;gt;&lt;br /&gt;
    &amp;lt;console type=&#039;pty&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;target port=&#039;0&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/console&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&#039;tablet&#039; bus=&#039;usb&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&#039;mouse&#039; bus=&#039;ps2&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;graphics type=&#039;vnc&#039; port=&#039;-1&#039; autoport=&#039;yes&#039; keymap=&#039;en-us&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;video&amp;gt;&lt;br /&gt;
      &amp;lt;model type=&#039;cirrus&#039; vram=&#039;9216&#039; heads=&#039;1&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/video&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;pci&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;address domain=&#039;0x0000&#039; bus=&#039;0x02&#039; slot=&#039;0x00&#039; function=&#039;0x0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;pci&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;address domain=&#039;0x0000&#039; bus=&#039;0x03&#039; slot=&#039;0x08&#039; function=&#039;0x0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;pci&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;address domain=&#039;0x0000&#039; bus=&#039;0x03&#039; slot=&#039;0x09&#039; function=&#039;0x0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;usb&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;vendor id=&#039;0x0403&#039;/&amp;gt;&lt;br /&gt;
        &amp;lt;product id=&#039;0xf2d0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;pci&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;address domain=&#039;0x0000&#039; bus=&#039;0x00&#039; slot=&#039;0x1b&#039; function=&#039;0x0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
  &amp;lt;/devices&amp;gt;&lt;br /&gt;
 &amp;lt;/domain&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 11) Enjoying building a test enviroment, inline upgrade etc.&lt;br /&gt;
&lt;br /&gt;
Step 12) I chose to put my media on the host via a Samba share which will be detected as a NAS. This will simplify things when performing upgrades and test. Because I am using LVM also expansion is easy ;-)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Lmce_kvm.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
== Hints/Known Issues/Working Hardware ==&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AMD/ATI Hardware&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- NVidia Chipset 3600 with Opteron Socket F has full KVM support and works fine with LMCE 8.10. &amp;lt;br&amp;gt;&lt;br /&gt;
- ATI-driver 9.8 supports kernel 2.6.30&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Keyboard Layout&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- As you can&#039;t choose the keyboard-layout in virtual-manager, simply change the keymap in the xml-file e.g. from &amp;quot;en-us&amp;quot; to &amp;quot;de&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Networking&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- Step 11) is not needed if the physical network devices are configured as &#039;auto ethx \ iface ethx inet manual&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- The virtual LMCE runs fine with only one NIC provided to it. The setup automatically configures a sub-NIC which works well. I would suggest to have the host provide the internet-access, so vLMCE can&#039;t mess it up at the installation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PCI-Passthrough at KVM&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- PCI-Passthrough only works if the full PCI-device is transferred to the virtual machine. So if the PCI-Slot has sub-functions (e.g. Firewire) all of the &#039;functions&#039; have to be adressed to the virtual machine with the &amp;lt;hostdev&amp;gt; section of Step 12). To look up your PCI-device-tree, use &#039;lspci -t&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 (Tyan S2915-E)&lt;br /&gt;
 [0000:00]-+-00.0&lt;br /&gt;
           +-01.0&lt;br /&gt;
           +-01.1&lt;br /&gt;
           +-02.0&lt;br /&gt;
           +-02.1&lt;br /&gt;
           +-04.0&lt;br /&gt;
           +-05.0&lt;br /&gt;
           +-05.1&lt;br /&gt;
           +-06.0-[0000:01]----04.0                                           (&amp;lt;- PCI-Slot = DVB-card)&lt;br /&gt;
                             \-04.1                                           (&amp;lt;- Firewire, either disable in Bios or -&amp;gt;KVM)&lt;br /&gt;
           +-06.1&lt;br /&gt;
           +-08.0&lt;br /&gt;
           +-09.0&lt;br /&gt;
           +-0d.0-[0000:02-04]--+-00.0-[0000:03]----04.0&lt;br /&gt;
           |                    \-00.1-[0000:04]--&lt;br /&gt;
           +-0f.0-[0000:05]--+-00.0&lt;br /&gt;
           |                 \-00.1&lt;br /&gt;
           +-18.0&lt;br /&gt;
           +-18.1&lt;br /&gt;
           +-18.2&lt;br /&gt;
           +-18.3&lt;br /&gt;
           \-18.4&lt;br /&gt;
&lt;br /&gt;
- PCIe-devices do not have this restriction.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Please note that each change in the .xml-files is activated only after rebooting the libvirtd. You can do this manually by killing and restarting the process &amp;quot;libvirtd&amp;quot; or by a host reboot.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Problems with PVR-150 not responding&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
During usage it turned out that sometimes recordings failed having a total size of 0 B. Live TV has not worked stable at all. Checking the mythbackend logs shows that /dev/video0 was not responding as expected.&lt;br /&gt;
Furthermore I detected DMA errors in the log of the host.&lt;br /&gt;
&lt;br /&gt;
I am now testing the commandline option iommu=on,igfx_off,pass-through, where pass-through should be able to iron out the DMA errors.&lt;br /&gt;
&lt;br /&gt;
Because the behaviour was not stable I also installed the mercurial ivtv drivers (within the VM ofcourse!!!!):&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install mercurial&lt;br /&gt;
 cd /usr/src&lt;br /&gt;
 sudo hg clone http://linuxtv.org/hg/v4l-dvb&lt;br /&gt;
 cd v4l-dvb&lt;br /&gt;
 sudo make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo make unload&lt;br /&gt;
 sudo make load&lt;br /&gt;
&lt;br /&gt;
You will have to rebuild after a kernel change.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Clicking sound on Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 02)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When passing-through my audio card I noticed hick ups in the MP3&#039;s and a message in kern.log;&lt;br /&gt;
&lt;br /&gt;
 hda-intel: IRQ timing workaround is activated for card #0. Suggest a bigger bdl_pos_adj.&lt;br /&gt;
&lt;br /&gt;
edit alsa-base.conf;&lt;br /&gt;
&lt;br /&gt;
 vim /etc/modprobe.dalsa-base.conf&lt;br /&gt;
&lt;br /&gt;
add the following line at the bottom;&lt;br /&gt;
&lt;br /&gt;
 options snd-hda-intel model=3stack-dig&lt;br /&gt;
 options snd-hda-intel enable_msi=1&lt;br /&gt;
 options snd-hda-intel single_cmd=1&lt;br /&gt;
&lt;br /&gt;
and reboot (reload alsa does not seem to have the full effect)&lt;br /&gt;
&lt;br /&gt;
Tip from [https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/274424 Bugs Launchpad]&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Installing_LinuxMCE_on_VM_via_KVM_on_Ubuntu_10.10_Server&amp;diff=26977</id>
		<title>Installing LinuxMCE on VM via KVM on Ubuntu 10.10 Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Installing_LinuxMCE_on_VM_via_KVM_on_Ubuntu_10.10_Server&amp;diff=26977"/>
		<updated>2011-02-15T07:20:10Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Virtualization]]&lt;br /&gt;
[[Category: Documentation]]&lt;br /&gt;
[[Category: Tutorials]]&lt;br /&gt;
&lt;br /&gt;
{{versioninfo|810Status=still testing|810UpdatedDate=9th february 20101|810UpdatedBy=JoakimL}}&lt;br /&gt;
&lt;br /&gt;
This is based on daballiemo&#039;s [[http://wiki.linuxmce.org/index.php/Installing_LinuMCE_on_Virtual_Machine_via_KVM&lt;br /&gt;
== &#039;&#039;&#039;KVM: To baldly go where (almost) no man has gone before&#039;&#039;&#039; ==]]&lt;br /&gt;
&amp;lt;&amp;lt;&amp;lt; This is not complete yet, follow at own risk&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this overview I will try to follow the installation path to get LCME 8.10 into a virtual machine on Ubuntu 10.10 which uses USB devices from the host.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Machine details first:&lt;br /&gt;
&lt;br /&gt;
* Motherboard: MSI K9N Neo V3 with BIOS 2.61&lt;br /&gt;
* CPU: AMD AM2 4400+&lt;br /&gt;
* 2 Gb DDR-2 Memory&lt;br /&gt;
* 1 onboard GbE Nic&lt;br /&gt;
* 1 PCI-E GbE Nic&lt;br /&gt;
* 1 Hauppauge WinStick Nova T2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 lspci&lt;br /&gt;
 00:00.0 RAM memory: nVidia Corporation MCP65 Memory Controller (rev a3)&lt;br /&gt;
 00:01.0 ISA bridge: nVidia Corporation MCP65 LPC Bridge (rev a3)&lt;br /&gt;
 00:01.1 SMBus: nVidia Corporation MCP65 SMBus (rev a1)&lt;br /&gt;
 00:01.2 RAM memory: nVidia Corporation MCP65 Memory Controller (rev a1)&lt;br /&gt;
 00:02.0 USB Controller: nVidia Corporation MCP65 USB Controller (rev a3)&lt;br /&gt;
 00:02.1 USB Controller: nVidia Corporation MCP65 USB Controller (rev a3)&lt;br /&gt;
 00:07.0 Audio device: nVidia Corporation MCP65 High Definition Audio (rev a1)&lt;br /&gt;
 00:08.0 PCI bridge: nVidia Corporation MCP65 PCI bridge (rev a1)&lt;br /&gt;
 00:09.0 IDE interface: nVidia Corporation MCP65 IDE (rev a1)&lt;br /&gt;
 00:0a.0 IDE interface: nVidia Corporation MCP65 SATA Controller (rev a3)&lt;br /&gt;
 00:0b.0 PCI bridge: nVidia Corporation Device 045b (rev a1)&lt;br /&gt;
 00:0c.0 PCI bridge: nVidia Corporation MCP65 PCI Express bridge (rev a1)&lt;br /&gt;
 00:0d.0 PCI bridge: nVidia Corporation MCP65 PCI Express bridge (rev a1)&lt;br /&gt;
 00:0e.0 PCI bridge: nVidia Corporation MCP65 PCI Express bridge (rev a1)&lt;br /&gt;
 00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration&lt;br /&gt;
 00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map&lt;br /&gt;
 00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller&lt;br /&gt;
 00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control&lt;br /&gt;
 01:0a.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)&lt;br /&gt;
 03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 01)&lt;br /&gt;
 04:00.0 VGA compatible controller: nVidia Corporation G86 [GeForce 8500 GT] (rev a1)&lt;br /&gt;
&lt;br /&gt;
Step 1) Install Ubuntu 10.10 server 64 bit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 2) Make the system current:&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get update&lt;br /&gt;
  sudo apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 3) Add some management tools:&lt;br /&gt;
&lt;br /&gt;
I use webmin to give my server a fixed ip address and perform other administrative tasks.&lt;br /&gt;
&lt;br /&gt;
 apt-get install libnet-ssleay-perl libauthen-pam-perl libio-pty-perl&lt;br /&gt;
 wget http://mirrors.kernel.org/ubuntu/pool/universe/libm/libmd5-perl/libmd5-perl_2.03-1_all.deb&lt;br /&gt;
 sudo dpkg -i libmd5-perl_2.03-1_all.deb&lt;br /&gt;
 sudo wget http://sourceforge.net/projects/webadmin/files/webmin/1.520/webmin_1.520_all.deb/download&lt;br /&gt;
 sudo dpkg -i download&lt;br /&gt;
 sudo apt-get install -f&lt;br /&gt;
&lt;br /&gt;
I use MidNight Commander for file stuff&lt;br /&gt;
 &lt;br /&gt;
 apt-get install mc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 4) Getting the right kernel and parameters &lt;br /&gt;
&lt;br /&gt;
Install the required tools and packages, so open a terminal and type the following,&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install fakeroot kernel-wedge build-essential makedumpfile kernel-package libncurses5 libncurses5-dev&lt;br /&gt;
&lt;br /&gt;
Get the right kernel, at the time of writing 2.6.37 was the best kernel source.&lt;br /&gt;
&lt;br /&gt;
 wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.37.tar.bz2&lt;br /&gt;
 tar -jxvf linux-2.6.37.tar.bz2 -C /usr/src&lt;br /&gt;
 &lt;br /&gt;
Go to the unpack directory&lt;br /&gt;
&lt;br /&gt;
 cd /usr/src/linux-2.6.37&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is a good idea to start with the same .config as the currently running kernel, so type the following,&lt;br /&gt;
&lt;br /&gt;
 sudo cp -vi /boot/config-`uname -r` .config&lt;br /&gt;
&lt;br /&gt;
Now we are ready to customize the build and kernel options.&lt;br /&gt;
&lt;br /&gt;
 sudo make menuconfig&lt;br /&gt;
&lt;br /&gt;
   * set &amp;quot;Bus options (PCI etc.)&amp;quot; -&amp;gt; &amp;quot;Support for DMA Remapping Devices&amp;quot; to &amp;quot;*&amp;quot;&lt;br /&gt;
   * set &amp;quot;Bus options (PCI etc.)&amp;quot; -&amp;gt; &amp;quot;Enable DMA Remapping Devices&amp;quot; to &amp;quot;*&amp;quot;&lt;br /&gt;
   * set &amp;quot;Bus options (PCI etc.)&amp;quot; -&amp;gt; &amp;quot;PCI Stub driver&amp;quot; to &amp;quot;*&amp;quot;&lt;br /&gt;
   This line broke my setup so I took it out * optional setting: set &amp;quot;Bus options (PCI etc.)&amp;quot; -&amp;gt; &amp;quot;Support for Interrupt Remapping&amp;quot; to &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Once you have finished, save and exit. It is now time to compile. However to speed up the build if you have a dual/triple/quad core processor type (one more than the number of cores you have).&lt;br /&gt;
&lt;br /&gt;
 export CONCURRENCY_LEVEL=3&lt;br /&gt;
&lt;br /&gt;
The general rule is 1 + the number of processor cores.&lt;br /&gt;
&lt;br /&gt;
Step 5) Build the new kernel.&lt;br /&gt;
&lt;br /&gt;
 sudo make-kpkg clean&lt;br /&gt;
 fakeroot make-kpkg --initrd --append-to-version=-iommu kernel-image kernel-headers&lt;br /&gt;
&lt;br /&gt;
You can grab a coffee, make a hot meal, have a sleep ;-)&lt;br /&gt;
&lt;br /&gt;
Step 6) Install The New Kernel&lt;br /&gt;
&lt;br /&gt;
After the successful kernel build, you can find two .deb packages in the /usr/src directory.&lt;br /&gt;
 cd .. &lt;br /&gt;
 ls -l linux*&lt;br /&gt;
&lt;br /&gt;
Install them:&lt;br /&gt;
 dpkg -i linux-image-2.6.33-custom_2.6.33-custom-10.00.Custom_amd64.deb&lt;br /&gt;
 dpkg -i linux-headers-2.6.33-custom_2.6.33-custom-10.00.Custom_amd64.deb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 7) Booting with the new kernel&lt;br /&gt;
&lt;br /&gt;
Add the options to enable IOMMU in the kernel commandline&lt;br /&gt;
&lt;br /&gt;
edit /etc/default/grub&lt;br /&gt;
&lt;br /&gt;
 new: GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;quiet splash intel_iommu=on,igfx_off,pass-through&amp;quot;&lt;br /&gt;
 old: #GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;quiet&amp;quot;&lt;br /&gt;
&lt;br /&gt;
update the booting menu&lt;br /&gt;
&lt;br /&gt;
 update-grub&lt;br /&gt;
&lt;br /&gt;
and reboot&lt;br /&gt;
&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
Step 8) Deinstall networkmanager&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get remove network-manager&lt;br /&gt;
&lt;br /&gt;
Step 9) Setup your network, change /etc/network/interfaces to look like this&lt;br /&gt;
&lt;br /&gt;
 # This file describes the network interfaces available on your system&lt;br /&gt;
 # and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The first bridge interface&lt;br /&gt;
 auto bridge_ext&lt;br /&gt;
 iface bridge_ext inet static&lt;br /&gt;
 address 0.0.0.0 #no external access without going through DCERouter first&lt;br /&gt;
 netmask 255.255.255.0&lt;br /&gt;
 broadcast 10.0.0.255 &lt;br /&gt;
 gateway 10.0.0.138&lt;br /&gt;
 bridge_ports eth0&lt;br /&gt;
 bridge_stp off&lt;br /&gt;
 bridge_maxwait 5&lt;br /&gt;
 # The second bridge interface&lt;br /&gt;
 auto bridge_int&lt;br /&gt;
 iface bridge_int inet static&lt;br /&gt;
 address 192.168.80.240&lt;br /&gt;
 netmask 255.255.255.0&lt;br /&gt;
 broadcast 192.168.80.255&lt;br /&gt;
 gateway 192.168.80.1&lt;br /&gt;
 bridge_ports eth1&lt;br /&gt;
 bridge_stp off&lt;br /&gt;
 bridge_maxwait 5&lt;br /&gt;
&lt;br /&gt;
With the above the host will use dcerouter as its way into the internet and thus the protection offered by the firewall. The host has no direct access to the 10.0.0.0 network.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 10) Install Linuxmce&lt;br /&gt;
 sudo apt-get install virt-manager&lt;br /&gt;
&lt;br /&gt;
Add user to administer you virtual machines to the libvirtd group&lt;br /&gt;
 sudo adduser xxx libvirtd&lt;br /&gt;
&lt;br /&gt;
Since there&#039;s no GUI on the server, run Virtual machine manager on another computer. Enable SSH connection for the manager by running this on the client:&lt;br /&gt;
 ssh-keygen -t rsa&lt;br /&gt;
 ssh-copy-id -i ~/.ssh/id_rsa.pub xxx@your_server&lt;br /&gt;
&lt;br /&gt;
Install viewer on the client&lt;br /&gt;
 sudo apt-get install virt-viewer&lt;br /&gt;
&lt;br /&gt;
Download the LMCE ISO file with:&lt;br /&gt;
 mkdir /home/xxx/lmce&lt;br /&gt;
 cd /home/xxx/lmce&lt;br /&gt;
 wget http://linuxmce.iptp.org/snapshots/LinuxMCE-8.10-23645-i386.iso^C&lt;br /&gt;
&lt;br /&gt;
Start installation&lt;br /&gt;
 sudo virt-install --connect qemu:///system --name DCErouter --ram 1024 --file /var/lib/libvirt/images/lmce810.img --cdrom /home/joakim/lmce/LinuxMCE-8.10-23645-i386.iso  --os-type linux --os-variant generic24 -k sv --vnc --vncport 5901&lt;br /&gt;
&lt;br /&gt;
Start a VNC viewer on you other computer:&lt;br /&gt;
 virt-viewer -c qemu+ssh://192.168.1.78/system DCErouter&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Using virt-manager you can now install LinuxMCE. As we are all experts on that I will only give away my xml config file (should be enough ;-))&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;domain type=&#039;kvm&#039;&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;DCERouter&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;uuid&amp;gt;xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx&amp;lt;/uuid&amp;gt;&lt;br /&gt;
  &amp;lt;memory&amp;gt;2097152&amp;lt;/memory&amp;gt;&lt;br /&gt;
  &amp;lt;currentMemory&amp;gt;2097152&amp;lt;/currentMemory&amp;gt;&lt;br /&gt;
  &amp;lt;vcpu&amp;gt;2&amp;lt;/vcpu&amp;gt;&lt;br /&gt;
  &amp;lt;os&amp;gt;&lt;br /&gt;
    &amp;lt;type arch=&#039;x86_64&#039; machine=&#039;pc-0.11&#039;&amp;gt;hvm&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;boot dev=&#039;hd&#039;/&amp;gt;&lt;br /&gt;
  &amp;lt;/os&amp;gt;&lt;br /&gt;
  &amp;lt;features&amp;gt;&lt;br /&gt;
    &amp;lt;acpi/&amp;gt;&lt;br /&gt;
    &amp;lt;apic/&amp;gt;&lt;br /&gt;
    &amp;lt;pae/&amp;gt;&lt;br /&gt;
  &amp;lt;/features&amp;gt;&lt;br /&gt;
  &amp;lt;clock offset=&#039;utc&#039;/&amp;gt;&lt;br /&gt;
  &amp;lt;on_poweroff&amp;gt;destroy&amp;lt;/on_poweroff&amp;gt;&lt;br /&gt;
  &amp;lt;on_reboot&amp;gt;restart&amp;lt;/on_reboot&amp;gt;&lt;br /&gt;
  &amp;lt;on_crash&amp;gt;restart&amp;lt;/on_crash&amp;gt;&lt;br /&gt;
  &amp;lt;devices&amp;gt;&lt;br /&gt;
    &amp;lt;emulator&amp;gt;/usr/bin/kvm&amp;lt;/emulator&amp;gt;&lt;br /&gt;
    &amp;lt;disk type=&#039;block&#039; device=&#039;disk&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source dev=&#039;/dev/sdc&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev=&#039;hda&#039; bus=&#039;ide&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;disk type=&#039;file&#039; device=&#039;cdrom&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;target dev=&#039;hdc&#039; bus=&#039;ide&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;readonly/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;interface type=&#039;bridge&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;mac address=&#039;xx:xx:xx:xx:xx:xx&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;source bridge=&#039;bridge_ext&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/interface&amp;gt;&lt;br /&gt;
    &amp;lt;interface type=&#039;bridge&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;mac address=&#039;xx:xx:xx:xx:xx:xx&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;source bridge=&#039;bridge_int&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;model type=&#039;virtio&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/interface&amp;gt;&lt;br /&gt;
    &amp;lt;serial type=&#039;pty&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;target port=&#039;0&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/serial&amp;gt;&lt;br /&gt;
    &amp;lt;console type=&#039;pty&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;target port=&#039;0&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/console&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&#039;tablet&#039; bus=&#039;usb&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&#039;mouse&#039; bus=&#039;ps2&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;graphics type=&#039;vnc&#039; port=&#039;-1&#039; autoport=&#039;yes&#039; keymap=&#039;en-us&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;video&amp;gt;&lt;br /&gt;
      &amp;lt;model type=&#039;cirrus&#039; vram=&#039;9216&#039; heads=&#039;1&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/video&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;pci&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;address domain=&#039;0x0000&#039; bus=&#039;0x02&#039; slot=&#039;0x00&#039; function=&#039;0x0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;pci&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;address domain=&#039;0x0000&#039; bus=&#039;0x03&#039; slot=&#039;0x08&#039; function=&#039;0x0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;pci&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;address domain=&#039;0x0000&#039; bus=&#039;0x03&#039; slot=&#039;0x09&#039; function=&#039;0x0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;usb&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;vendor id=&#039;0x0403&#039;/&amp;gt;&lt;br /&gt;
        &amp;lt;product id=&#039;0xf2d0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;pci&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;address domain=&#039;0x0000&#039; bus=&#039;0x00&#039; slot=&#039;0x1b&#039; function=&#039;0x0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
  &amp;lt;/devices&amp;gt;&lt;br /&gt;
 &amp;lt;/domain&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 11) Enjoying building a test enviroment, inline upgrade etc.&lt;br /&gt;
&lt;br /&gt;
Step 12) I chose to put my media on the host via a Samba share which will be detected as a NAS. This will simplify things when performing upgrades and test. Because I am using LVM also expansion is easy ;-)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Lmce_kvm.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
== Hints/Known Issues/Working Hardware ==&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AMD/ATI Hardware&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- NVidia Chipset 3600 with Opteron Socket F has full KVM support and works fine with LMCE 8.10. &amp;lt;br&amp;gt;&lt;br /&gt;
- ATI-driver 9.8 supports kernel 2.6.30&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Keyboard Layout&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- As you can&#039;t choose the keyboard-layout in virtual-manager, simply change the keymap in the xml-file e.g. from &amp;quot;en-us&amp;quot; to &amp;quot;de&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Networking&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- Step 11) is not needed if the physical network devices are configured as &#039;auto ethx \ iface ethx inet manual&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- The virtual LMCE runs fine with only one NIC provided to it. The setup automatically configures a sub-NIC which works well. I would suggest to have the host provide the internet-access, so vLMCE can&#039;t mess it up at the installation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PCI-Passthrough at KVM&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- PCI-Passthrough only works if the full PCI-device is transferred to the virtual machine. So if the PCI-Slot has sub-functions (e.g. Firewire) all of the &#039;functions&#039; have to be adressed to the virtual machine with the &amp;lt;hostdev&amp;gt; section of Step 12). To look up your PCI-device-tree, use &#039;lspci -t&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 (Tyan S2915-E)&lt;br /&gt;
 [0000:00]-+-00.0&lt;br /&gt;
           +-01.0&lt;br /&gt;
           +-01.1&lt;br /&gt;
           +-02.0&lt;br /&gt;
           +-02.1&lt;br /&gt;
           +-04.0&lt;br /&gt;
           +-05.0&lt;br /&gt;
           +-05.1&lt;br /&gt;
           +-06.0-[0000:01]----04.0                                           (&amp;lt;- PCI-Slot = DVB-card)&lt;br /&gt;
                             \-04.1                                           (&amp;lt;- Firewire, either disable in Bios or -&amp;gt;KVM)&lt;br /&gt;
           +-06.1&lt;br /&gt;
           +-08.0&lt;br /&gt;
           +-09.0&lt;br /&gt;
           +-0d.0-[0000:02-04]--+-00.0-[0000:03]----04.0&lt;br /&gt;
           |                    \-00.1-[0000:04]--&lt;br /&gt;
           +-0f.0-[0000:05]--+-00.0&lt;br /&gt;
           |                 \-00.1&lt;br /&gt;
           +-18.0&lt;br /&gt;
           +-18.1&lt;br /&gt;
           +-18.2&lt;br /&gt;
           +-18.3&lt;br /&gt;
           \-18.4&lt;br /&gt;
&lt;br /&gt;
- PCIe-devices do not have this restriction.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Please note that each change in the .xml-files is activated only after rebooting the libvirtd. You can do this manually by killing and restarting the process &amp;quot;libvirtd&amp;quot; or by a host reboot.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Problems with PVR-150 not responding&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
During usage it turned out that sometimes recordings failed having a total size of 0 B. Live TV has not worked stable at all. Checking the mythbackend logs shows that /dev/video0 was not responding as expected.&lt;br /&gt;
Furthermore I detected DMA errors in the log of the host.&lt;br /&gt;
&lt;br /&gt;
I am now testing the commandline option iommu=on,igfx_off,pass-through, where pass-through should be able to iron out the DMA errors.&lt;br /&gt;
&lt;br /&gt;
Because the behaviour was not stable I also installed the mercurial ivtv drivers (within the VM ofcourse!!!!):&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install mercurial&lt;br /&gt;
 cd /usr/src&lt;br /&gt;
 sudo hg clone http://linuxtv.org/hg/v4l-dvb&lt;br /&gt;
 cd v4l-dvb&lt;br /&gt;
 sudo make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo make unload&lt;br /&gt;
 sudo make load&lt;br /&gt;
&lt;br /&gt;
You will have to rebuild after a kernel change.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Clicking sound on Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 02)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When passing-through my audio card I noticed hick ups in the MP3&#039;s and a message in kern.log;&lt;br /&gt;
&lt;br /&gt;
 hda-intel: IRQ timing workaround is activated for card #0. Suggest a bigger bdl_pos_adj.&lt;br /&gt;
&lt;br /&gt;
edit alsa-base.conf;&lt;br /&gt;
&lt;br /&gt;
 vim /etc/modprobe.dalsa-base.conf&lt;br /&gt;
&lt;br /&gt;
add the following line at the bottom;&lt;br /&gt;
&lt;br /&gt;
 options snd-hda-intel model=3stack-dig&lt;br /&gt;
 options snd-hda-intel enable_msi=1&lt;br /&gt;
 options snd-hda-intel single_cmd=1&lt;br /&gt;
&lt;br /&gt;
and reboot (reload alsa does not seem to have the full effect)&lt;br /&gt;
&lt;br /&gt;
Tip from [https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/274424 Bugs Launchpad]&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Installing_LinuxMCE_on_VM_via_KVM_on_Ubuntu_10.10_Server&amp;diff=26976</id>
		<title>Installing LinuxMCE on VM via KVM on Ubuntu 10.10 Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Installing_LinuxMCE_on_VM_via_KVM_on_Ubuntu_10.10_Server&amp;diff=26976"/>
		<updated>2011-02-15T07:04:01Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Virtualization]]&lt;br /&gt;
[[Category: Documentation]]&lt;br /&gt;
[[Category: Tutorials]]&lt;br /&gt;
&lt;br /&gt;
{{versioninfo|810Status=still testing|810UpdatedDate=9th february 20101|810UpdatedBy=JoakimL}}&lt;br /&gt;
&lt;br /&gt;
This is based on daballiemo&#039;s [[http://wiki.linuxmce.org/index.php/Installing_LinuMCE_on_Virtual_Machine_via_KVM&lt;br /&gt;
== &#039;&#039;&#039;KVM: To baldly go where (almost) no man has gone before&#039;&#039;&#039; ==]]&lt;br /&gt;
&amp;lt;&amp;lt;&amp;lt; This is not complete yet, follow at own risk&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this overview I will try to follow the installation path to get LCME 8.10 into a virtual machine on Ubuntu 10.10 which uses USB devices from the host.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Machine details first:&lt;br /&gt;
&lt;br /&gt;
* Motherboard: MSI K9N Neo V3 with BIOS 2.61&lt;br /&gt;
* CPU: AMD AM2 4400+&lt;br /&gt;
* 2 Gb DDR-2 Memory&lt;br /&gt;
* 1 onboard GbE Nic&lt;br /&gt;
* 1 PCI-E GbE Nic&lt;br /&gt;
* 1 Hauppauge WinStick Nova T2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 lspci&lt;br /&gt;
 00:00.0 RAM memory: nVidia Corporation MCP65 Memory Controller (rev a3)&lt;br /&gt;
 00:01.0 ISA bridge: nVidia Corporation MCP65 LPC Bridge (rev a3)&lt;br /&gt;
 00:01.1 SMBus: nVidia Corporation MCP65 SMBus (rev a1)&lt;br /&gt;
 00:01.2 RAM memory: nVidia Corporation MCP65 Memory Controller (rev a1)&lt;br /&gt;
 00:02.0 USB Controller: nVidia Corporation MCP65 USB Controller (rev a3)&lt;br /&gt;
 00:02.1 USB Controller: nVidia Corporation MCP65 USB Controller (rev a3)&lt;br /&gt;
 00:07.0 Audio device: nVidia Corporation MCP65 High Definition Audio (rev a1)&lt;br /&gt;
 00:08.0 PCI bridge: nVidia Corporation MCP65 PCI bridge (rev a1)&lt;br /&gt;
 00:09.0 IDE interface: nVidia Corporation MCP65 IDE (rev a1)&lt;br /&gt;
 00:0a.0 IDE interface: nVidia Corporation MCP65 SATA Controller (rev a3)&lt;br /&gt;
 00:0b.0 PCI bridge: nVidia Corporation Device 045b (rev a1)&lt;br /&gt;
 00:0c.0 PCI bridge: nVidia Corporation MCP65 PCI Express bridge (rev a1)&lt;br /&gt;
 00:0d.0 PCI bridge: nVidia Corporation MCP65 PCI Express bridge (rev a1)&lt;br /&gt;
 00:0e.0 PCI bridge: nVidia Corporation MCP65 PCI Express bridge (rev a1)&lt;br /&gt;
 00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration&lt;br /&gt;
 00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map&lt;br /&gt;
 00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller&lt;br /&gt;
 00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control&lt;br /&gt;
 01:0a.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)&lt;br /&gt;
 03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 01)&lt;br /&gt;
 04:00.0 VGA compatible controller: nVidia Corporation G86 [GeForce 8500 GT] (rev a1)&lt;br /&gt;
&lt;br /&gt;
Step 1) Install Ubuntu 10.10 server 64 bit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 2) Make the system current:&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get update&lt;br /&gt;
  sudo apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 3) Add some management tools:&lt;br /&gt;
&lt;br /&gt;
I use webmin to give my server a fixed ip address and perform other administrative tasks.&lt;br /&gt;
&lt;br /&gt;
 apt-get install libnet-ssleay-perl libauthen-pam-perl libio-pty-perl&lt;br /&gt;
 wget http://mirrors.kernel.org/ubuntu/pool/universe/libm/libmd5-perl/libmd5-perl_2.03-1_all.deb&lt;br /&gt;
 sudo dpkg -i libmd5-perl_2.03-1_all.deb&lt;br /&gt;
 sudo wget http://sourceforge.net/projects/webadmin/files/webmin/1.520/webmin_1.520_all.deb/download&lt;br /&gt;
 sudo dpkg -i download&lt;br /&gt;
 sudo apt-get install -f&lt;br /&gt;
&lt;br /&gt;
I use MidNight Commander for file stuff&lt;br /&gt;
 &lt;br /&gt;
 apt-get install mc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 4) Getting the right kernel and parameters &lt;br /&gt;
&lt;br /&gt;
Install the required tools and packages, so open a terminal and type the following,&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install fakeroot kernel-wedge build-essential makedumpfile kernel-package libncurses5 libncurses5-dev&lt;br /&gt;
&lt;br /&gt;
Get the right kernel, at the time of writing 2.6.37 was the best kernel source.&lt;br /&gt;
&lt;br /&gt;
 wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.37.tar.bz2&lt;br /&gt;
 tar -jxvf linux-2.6.37.tar.bz2 -C /usr/src&lt;br /&gt;
 &lt;br /&gt;
Go to the unpack directory&lt;br /&gt;
&lt;br /&gt;
 cd /usr/src/linux-2.6.37&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is a good idea to start with the same .config as the currently running kernel, so type the following,&lt;br /&gt;
&lt;br /&gt;
 sudo cp -vi /boot/config-`uname -r` .config&lt;br /&gt;
&lt;br /&gt;
Now we are ready to customize the build and kernel options.&lt;br /&gt;
&lt;br /&gt;
 sudo make menuconfig&lt;br /&gt;
&lt;br /&gt;
   * set &amp;quot;Bus options (PCI etc.)&amp;quot; -&amp;gt; &amp;quot;Support for DMA Remapping Devices&amp;quot; to &amp;quot;*&amp;quot;&lt;br /&gt;
   * set &amp;quot;Bus options (PCI etc.)&amp;quot; -&amp;gt; &amp;quot;Enable DMA Remapping Devices&amp;quot; to &amp;quot;*&amp;quot;&lt;br /&gt;
   * set &amp;quot;Bus options (PCI etc.)&amp;quot; -&amp;gt; &amp;quot;PCI Stub driver&amp;quot; to &amp;quot;*&amp;quot;&lt;br /&gt;
   This line broke my setup so I took it out * optional setting: set &amp;quot;Bus options (PCI etc.)&amp;quot; -&amp;gt; &amp;quot;Support for Interrupt Remapping&amp;quot; to &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Once you have finished, save and exit. It is now time to compile. However to speed up the build if you have a dual/triple/quad core processor type (one more than the number of cores you have).&lt;br /&gt;
&lt;br /&gt;
 export CONCURRENCY_LEVEL=3&lt;br /&gt;
&lt;br /&gt;
The general rule is 1 + the number of processor cores.&lt;br /&gt;
&lt;br /&gt;
Step 5) Build the new kernel.&lt;br /&gt;
&lt;br /&gt;
 sudo make-kpkg clean&lt;br /&gt;
 fakeroot make-kpkg --initrd --append-to-version=-iommu kernel-image kernel-headers&lt;br /&gt;
&lt;br /&gt;
You can grab a coffee, make a hot meal, have a sleep ;-)&lt;br /&gt;
&lt;br /&gt;
Step 6) Install The New Kernel&lt;br /&gt;
&lt;br /&gt;
After the successful kernel build, you can find two .deb packages in the /usr/src directory.&lt;br /&gt;
 cd .. &lt;br /&gt;
 ls -l linux*&lt;br /&gt;
&lt;br /&gt;
Install them:&lt;br /&gt;
 dpkg -i linux-image-2.6.33-custom_2.6.33-custom-10.00.Custom_amd64.deb&lt;br /&gt;
 dpkg -i linux-headers-2.6.33-custom_2.6.33-custom-10.00.Custom_amd64.deb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 7) Booting with the new kernel&lt;br /&gt;
&lt;br /&gt;
Add the options to enable IOMMU in the kernel commandline&lt;br /&gt;
&lt;br /&gt;
edit /etc/default/grub&lt;br /&gt;
&lt;br /&gt;
 new: GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;quiet splash intel_iommu=on,igfx_off,pass-through&amp;quot;&lt;br /&gt;
 old: #GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;quiet&amp;quot;&lt;br /&gt;
&lt;br /&gt;
update the booting menu&lt;br /&gt;
&lt;br /&gt;
 update-grub&lt;br /&gt;
&lt;br /&gt;
and reboot&lt;br /&gt;
&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
Step 8) Deinstall networkmanager&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get remove network-manager&lt;br /&gt;
&lt;br /&gt;
Step 9) Setup your network, change /etc/network/interfaces to look like this&lt;br /&gt;
&lt;br /&gt;
 # This file describes the network interfaces available on your system&lt;br /&gt;
 # and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The first bridge interface&lt;br /&gt;
 auto bridge_ext&lt;br /&gt;
 iface bridge_ext inet static&lt;br /&gt;
 address 0.0.0.0 #no external access without going through DCERouter first&lt;br /&gt;
 netmask 255.255.255.0&lt;br /&gt;
 broadcast 10.0.0.255 &lt;br /&gt;
 gateway 10.0.0.138&lt;br /&gt;
 bridge_ports eth0&lt;br /&gt;
 bridge_stp off&lt;br /&gt;
 bridge_maxwait 5&lt;br /&gt;
 # The second bridge interface&lt;br /&gt;
 auto bridge_int&lt;br /&gt;
 iface bridge_int inet static&lt;br /&gt;
 address 192.168.80.240&lt;br /&gt;
 netmask 255.255.255.0&lt;br /&gt;
 broadcast 192.168.80.255&lt;br /&gt;
 gateway 192.168.80.1&lt;br /&gt;
 bridge_ports eth1&lt;br /&gt;
 bridge_stp off&lt;br /&gt;
 bridge_maxwait 5&lt;br /&gt;
&lt;br /&gt;
With the above the host will use dcerouter as its way into the internet and thus the protection offered by the firewall. The host has no direct access to the 10.0.0.0 network.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 10) Install Linuxmce&lt;br /&gt;
 sudo apt-get install virt-manager&lt;br /&gt;
&lt;br /&gt;
Add user to administer you virtual machines to the libvirtd group&lt;br /&gt;
 sudo adduser xxx libvirtd&lt;br /&gt;
&lt;br /&gt;
Since there&#039;s no GUI on the server, run Virtual machine manager on another computer. Enable SSH connection for the manager by running this on the client:&lt;br /&gt;
 ssh-keygen -t rsa&lt;br /&gt;
 ssh-copy-id -i ~/.ssh/id_rsa.pub xxx@your_server&lt;br /&gt;
&lt;br /&gt;
Install viewer on the client&lt;br /&gt;
 sudo apt-get install virt-viewer&lt;br /&gt;
&lt;br /&gt;
Download the LMCE ISO file with:&lt;br /&gt;
 mkdir /home/xxx/lmce&lt;br /&gt;
 cd /home/xxx/lmce&lt;br /&gt;
 wget http://linuxmce.iptp.org/snapshots/LinuxMCE-8.10-23645-i386.iso^C&lt;br /&gt;
&lt;br /&gt;
Start installation&lt;br /&gt;
 sudo virt-install --connect qemu:///system --name DCErouter --ram 1024 --file /var/lib/libvirt/images/lmce810.img --cdrom /home/joakim/lmce/LinuxMCE-8.10-23645-i386.iso  --os-type linux --os-variant generic26 -k sv --vnc --vncport 5901&lt;br /&gt;
&lt;br /&gt;
Start a VNC viewer on you other computer:&lt;br /&gt;
 virt-viewer -c qemu+ssh://192.168.1.78/system DCErouter&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Using virt-manager you can now install LinuxMCE. As we are all experts on that I will only give away my xml config file (should be enough ;-))&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;domain type=&#039;kvm&#039;&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;DCERouter&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;uuid&amp;gt;xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx&amp;lt;/uuid&amp;gt;&lt;br /&gt;
  &amp;lt;memory&amp;gt;2097152&amp;lt;/memory&amp;gt;&lt;br /&gt;
  &amp;lt;currentMemory&amp;gt;2097152&amp;lt;/currentMemory&amp;gt;&lt;br /&gt;
  &amp;lt;vcpu&amp;gt;2&amp;lt;/vcpu&amp;gt;&lt;br /&gt;
  &amp;lt;os&amp;gt;&lt;br /&gt;
    &amp;lt;type arch=&#039;x86_64&#039; machine=&#039;pc-0.11&#039;&amp;gt;hvm&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;boot dev=&#039;hd&#039;/&amp;gt;&lt;br /&gt;
  &amp;lt;/os&amp;gt;&lt;br /&gt;
  &amp;lt;features&amp;gt;&lt;br /&gt;
    &amp;lt;acpi/&amp;gt;&lt;br /&gt;
    &amp;lt;apic/&amp;gt;&lt;br /&gt;
    &amp;lt;pae/&amp;gt;&lt;br /&gt;
  &amp;lt;/features&amp;gt;&lt;br /&gt;
  &amp;lt;clock offset=&#039;utc&#039;/&amp;gt;&lt;br /&gt;
  &amp;lt;on_poweroff&amp;gt;destroy&amp;lt;/on_poweroff&amp;gt;&lt;br /&gt;
  &amp;lt;on_reboot&amp;gt;restart&amp;lt;/on_reboot&amp;gt;&lt;br /&gt;
  &amp;lt;on_crash&amp;gt;restart&amp;lt;/on_crash&amp;gt;&lt;br /&gt;
  &amp;lt;devices&amp;gt;&lt;br /&gt;
    &amp;lt;emulator&amp;gt;/usr/bin/kvm&amp;lt;/emulator&amp;gt;&lt;br /&gt;
    &amp;lt;disk type=&#039;block&#039; device=&#039;disk&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source dev=&#039;/dev/sdc&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev=&#039;hda&#039; bus=&#039;ide&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;disk type=&#039;file&#039; device=&#039;cdrom&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;target dev=&#039;hdc&#039; bus=&#039;ide&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;readonly/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;interface type=&#039;bridge&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;mac address=&#039;xx:xx:xx:xx:xx:xx&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;source bridge=&#039;bridge_ext&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/interface&amp;gt;&lt;br /&gt;
    &amp;lt;interface type=&#039;bridge&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;mac address=&#039;xx:xx:xx:xx:xx:xx&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;source bridge=&#039;bridge_int&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;model type=&#039;virtio&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/interface&amp;gt;&lt;br /&gt;
    &amp;lt;serial type=&#039;pty&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;target port=&#039;0&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/serial&amp;gt;&lt;br /&gt;
    &amp;lt;console type=&#039;pty&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;target port=&#039;0&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/console&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&#039;tablet&#039; bus=&#039;usb&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&#039;mouse&#039; bus=&#039;ps2&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;graphics type=&#039;vnc&#039; port=&#039;-1&#039; autoport=&#039;yes&#039; keymap=&#039;en-us&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;video&amp;gt;&lt;br /&gt;
      &amp;lt;model type=&#039;cirrus&#039; vram=&#039;9216&#039; heads=&#039;1&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/video&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;pci&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;address domain=&#039;0x0000&#039; bus=&#039;0x02&#039; slot=&#039;0x00&#039; function=&#039;0x0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;pci&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;address domain=&#039;0x0000&#039; bus=&#039;0x03&#039; slot=&#039;0x08&#039; function=&#039;0x0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;pci&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;address domain=&#039;0x0000&#039; bus=&#039;0x03&#039; slot=&#039;0x09&#039; function=&#039;0x0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;usb&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;vendor id=&#039;0x0403&#039;/&amp;gt;&lt;br /&gt;
        &amp;lt;product id=&#039;0xf2d0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;pci&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;address domain=&#039;0x0000&#039; bus=&#039;0x00&#039; slot=&#039;0x1b&#039; function=&#039;0x0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
  &amp;lt;/devices&amp;gt;&lt;br /&gt;
 &amp;lt;/domain&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 11) Enjoying building a test enviroment, inline upgrade etc.&lt;br /&gt;
&lt;br /&gt;
Step 12) I chose to put my media on the host via a Samba share which will be detected as a NAS. This will simplify things when performing upgrades and test. Because I am using LVM also expansion is easy ;-)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Lmce_kvm.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
== Hints/Known Issues/Working Hardware ==&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AMD/ATI Hardware&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- NVidia Chipset 3600 with Opteron Socket F has full KVM support and works fine with LMCE 8.10. &amp;lt;br&amp;gt;&lt;br /&gt;
- ATI-driver 9.8 supports kernel 2.6.30&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Keyboard Layout&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- As you can&#039;t choose the keyboard-layout in virtual-manager, simply change the keymap in the xml-file e.g. from &amp;quot;en-us&amp;quot; to &amp;quot;de&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Networking&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- Step 11) is not needed if the physical network devices are configured as &#039;auto ethx \ iface ethx inet manual&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- The virtual LMCE runs fine with only one NIC provided to it. The setup automatically configures a sub-NIC which works well. I would suggest to have the host provide the internet-access, so vLMCE can&#039;t mess it up at the installation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PCI-Passthrough at KVM&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- PCI-Passthrough only works if the full PCI-device is transferred to the virtual machine. So if the PCI-Slot has sub-functions (e.g. Firewire) all of the &#039;functions&#039; have to be adressed to the virtual machine with the &amp;lt;hostdev&amp;gt; section of Step 12). To look up your PCI-device-tree, use &#039;lspci -t&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 (Tyan S2915-E)&lt;br /&gt;
 [0000:00]-+-00.0&lt;br /&gt;
           +-01.0&lt;br /&gt;
           +-01.1&lt;br /&gt;
           +-02.0&lt;br /&gt;
           +-02.1&lt;br /&gt;
           +-04.0&lt;br /&gt;
           +-05.0&lt;br /&gt;
           +-05.1&lt;br /&gt;
           +-06.0-[0000:01]----04.0                                           (&amp;lt;- PCI-Slot = DVB-card)&lt;br /&gt;
                             \-04.1                                           (&amp;lt;- Firewire, either disable in Bios or -&amp;gt;KVM)&lt;br /&gt;
           +-06.1&lt;br /&gt;
           +-08.0&lt;br /&gt;
           +-09.0&lt;br /&gt;
           +-0d.0-[0000:02-04]--+-00.0-[0000:03]----04.0&lt;br /&gt;
           |                    \-00.1-[0000:04]--&lt;br /&gt;
           +-0f.0-[0000:05]--+-00.0&lt;br /&gt;
           |                 \-00.1&lt;br /&gt;
           +-18.0&lt;br /&gt;
           +-18.1&lt;br /&gt;
           +-18.2&lt;br /&gt;
           +-18.3&lt;br /&gt;
           \-18.4&lt;br /&gt;
&lt;br /&gt;
- PCIe-devices do not have this restriction.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Please note that each change in the .xml-files is activated only after rebooting the libvirtd. You can do this manually by killing and restarting the process &amp;quot;libvirtd&amp;quot; or by a host reboot.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Problems with PVR-150 not responding&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
During usage it turned out that sometimes recordings failed having a total size of 0 B. Live TV has not worked stable at all. Checking the mythbackend logs shows that /dev/video0 was not responding as expected.&lt;br /&gt;
Furthermore I detected DMA errors in the log of the host.&lt;br /&gt;
&lt;br /&gt;
I am now testing the commandline option iommu=on,igfx_off,pass-through, where pass-through should be able to iron out the DMA errors.&lt;br /&gt;
&lt;br /&gt;
Because the behaviour was not stable I also installed the mercurial ivtv drivers (within the VM ofcourse!!!!):&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install mercurial&lt;br /&gt;
 cd /usr/src&lt;br /&gt;
 sudo hg clone http://linuxtv.org/hg/v4l-dvb&lt;br /&gt;
 cd v4l-dvb&lt;br /&gt;
 sudo make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo make unload&lt;br /&gt;
 sudo make load&lt;br /&gt;
&lt;br /&gt;
You will have to rebuild after a kernel change.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Clicking sound on Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 02)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When passing-through my audio card I noticed hick ups in the MP3&#039;s and a message in kern.log;&lt;br /&gt;
&lt;br /&gt;
 hda-intel: IRQ timing workaround is activated for card #0. Suggest a bigger bdl_pos_adj.&lt;br /&gt;
&lt;br /&gt;
edit alsa-base.conf;&lt;br /&gt;
&lt;br /&gt;
 vim /etc/modprobe.dalsa-base.conf&lt;br /&gt;
&lt;br /&gt;
add the following line at the bottom;&lt;br /&gt;
&lt;br /&gt;
 options snd-hda-intel model=3stack-dig&lt;br /&gt;
 options snd-hda-intel enable_msi=1&lt;br /&gt;
 options snd-hda-intel single_cmd=1&lt;br /&gt;
&lt;br /&gt;
and reboot (reload alsa does not seem to have the full effect)&lt;br /&gt;
&lt;br /&gt;
Tip from [https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/274424 Bugs Launchpad]&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Installing_LinuxMCE_on_VM_via_KVM_on_Ubuntu_10.10_Server&amp;diff=26971</id>
		<title>Installing LinuxMCE on VM via KVM on Ubuntu 10.10 Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Installing_LinuxMCE_on_VM_via_KVM_on_Ubuntu_10.10_Server&amp;diff=26971"/>
		<updated>2011-02-14T21:43:27Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Virtualization]]&lt;br /&gt;
[[Category: Documentation]]&lt;br /&gt;
[[Category: Tutorials]]&lt;br /&gt;
&lt;br /&gt;
{{versioninfo|810Status=still testing|810UpdatedDate=9th february 20101|810UpdatedBy=JoakimL}}&lt;br /&gt;
&lt;br /&gt;
This is based on daballiemo&#039;s [[http://wiki.linuxmce.org/index.php/Installing_LinuMCE_on_Virtual_Machine_via_KVM&lt;br /&gt;
== &#039;&#039;&#039;KVM: To baldly go where (almost) no man has gone before&#039;&#039;&#039; ==]]&lt;br /&gt;
&amp;lt;&amp;lt;&amp;lt; This is not complete yet, follow at own risk&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this overview I will try to follow the installation path to get LCME 8.10 into a virtual machine on Ubuntu 10.10 which uses USB devices from the host.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Machine details first:&lt;br /&gt;
&lt;br /&gt;
* Motherboard: ASUS P5E VM DO with bios 10.1&lt;br /&gt;
* CPU: AMD AM2 4400+&lt;br /&gt;
* 2 Gb DDR-2 Memory&lt;br /&gt;
* 1 onboard GbE Nic&lt;br /&gt;
* 1 PCI-E GbE Nic&lt;br /&gt;
* 1 Hauppauge WinStick Nova T2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 lspci&lt;br /&gt;
 00:00.0 RAM memory: nVidia Corporation MCP65 Memory Controller (rev a3)&lt;br /&gt;
 00:01.0 ISA bridge: nVidia Corporation MCP65 LPC Bridge (rev a3)&lt;br /&gt;
 00:01.1 SMBus: nVidia Corporation MCP65 SMBus (rev a1)&lt;br /&gt;
 00:01.2 RAM memory: nVidia Corporation MCP65 Memory Controller (rev a1)&lt;br /&gt;
 00:02.0 USB Controller: nVidia Corporation MCP65 USB Controller (rev a3)&lt;br /&gt;
 00:02.1 USB Controller: nVidia Corporation MCP65 USB Controller (rev a3)&lt;br /&gt;
 00:07.0 Audio device: nVidia Corporation MCP65 High Definition Audio (rev a1)&lt;br /&gt;
 00:08.0 PCI bridge: nVidia Corporation MCP65 PCI bridge (rev a1)&lt;br /&gt;
 00:09.0 IDE interface: nVidia Corporation MCP65 IDE (rev a1)&lt;br /&gt;
 00:0a.0 IDE interface: nVidia Corporation MCP65 SATA Controller (rev a3)&lt;br /&gt;
 00:0b.0 PCI bridge: nVidia Corporation Device 045b (rev a1)&lt;br /&gt;
 00:0c.0 PCI bridge: nVidia Corporation MCP65 PCI Express bridge (rev a1)&lt;br /&gt;
 00:0d.0 PCI bridge: nVidia Corporation MCP65 PCI Express bridge (rev a1)&lt;br /&gt;
 00:0e.0 PCI bridge: nVidia Corporation MCP65 PCI Express bridge (rev a1)&lt;br /&gt;
 00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration&lt;br /&gt;
 00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map&lt;br /&gt;
 00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller&lt;br /&gt;
 00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control&lt;br /&gt;
 01:0a.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)&lt;br /&gt;
 03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 01)&lt;br /&gt;
 04:00.0 VGA compatible controller: nVidia Corporation G86 [GeForce 8500 GT] (rev a1)&lt;br /&gt;
&lt;br /&gt;
Step 1) Install Ubuntu 10.10 server 64 bit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 2) Make the system current:&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get update&lt;br /&gt;
  sudo apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 3) Add some management tools:&lt;br /&gt;
&lt;br /&gt;
I use webmin to give my server a fixed ip address and perform other administrative tasks.&lt;br /&gt;
&lt;br /&gt;
 apt-get install libnet-ssleay-perl libauthen-pam-perl libio-pty-perl&lt;br /&gt;
 wget http://mirrors.kernel.org/ubuntu/pool/universe/libm/libmd5-perl/libmd5-perl_2.03-1_all.deb&lt;br /&gt;
 sudo dpkg -i libmd5-perl_2.03-1_all.deb&lt;br /&gt;
 sudo wget http://sourceforge.net/projects/webadmin/files/webmin/1.520/webmin_1.520_all.deb/download&lt;br /&gt;
 sudo dpkg -i download&lt;br /&gt;
 sudo apt-get install -f&lt;br /&gt;
&lt;br /&gt;
I use MidNight Commander for file stuff&lt;br /&gt;
 &lt;br /&gt;
 apt-get install mc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 4) Getting the right kernel and parameters &lt;br /&gt;
&lt;br /&gt;
Install the required tools and packages, so open a terminal and type the following,&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install fakeroot kernel-wedge build-essential makedumpfile kernel-package libncurses5 libncurses5-dev&lt;br /&gt;
&lt;br /&gt;
Get the right kernel, at the time of writing 2.6.37 was the best kernel source.&lt;br /&gt;
&lt;br /&gt;
 wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.37.tar.bz2&lt;br /&gt;
 tar -jxvf linux-2.6.37.tar.bz2 -C /usr/src&lt;br /&gt;
 &lt;br /&gt;
Go to the unpack directory&lt;br /&gt;
&lt;br /&gt;
 cd /usr/src/linux-2.6.37&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is a good idea to start with the same .config as the currently running kernel, so type the following,&lt;br /&gt;
&lt;br /&gt;
 sudo cp -vi /boot/config-`uname -r` .config&lt;br /&gt;
&lt;br /&gt;
Now we are ready to customize the build and kernel options.&lt;br /&gt;
&lt;br /&gt;
 sudo make menuconfig&lt;br /&gt;
&lt;br /&gt;
   * set &amp;quot;Bus options (PCI etc.)&amp;quot; -&amp;gt; &amp;quot;Support for DMA Remapping Devices&amp;quot; to &amp;quot;*&amp;quot;&lt;br /&gt;
   * set &amp;quot;Bus options (PCI etc.)&amp;quot; -&amp;gt; &amp;quot;Enable DMA Remapping Devices&amp;quot; to &amp;quot;*&amp;quot;&lt;br /&gt;
   * set &amp;quot;Bus options (PCI etc.)&amp;quot; -&amp;gt; &amp;quot;PCI Stub driver&amp;quot; to &amp;quot;*&amp;quot;&lt;br /&gt;
   This line broke my setup so I took it out * optional setting: set &amp;quot;Bus options (PCI etc.)&amp;quot; -&amp;gt; &amp;quot;Support for Interrupt Remapping&amp;quot; to &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Once you have finished, save and exit. It is now time to compile. However to speed up the build if you have a dual/triple/quad core processor type (one more than the number of cores you have).&lt;br /&gt;
&lt;br /&gt;
 export CONCURRENCY_LEVEL=3&lt;br /&gt;
&lt;br /&gt;
The general rule is 1 + the number of processor cores.&lt;br /&gt;
&lt;br /&gt;
Step 5) Build the new kernel.&lt;br /&gt;
&lt;br /&gt;
 sudo make-kpkg clean&lt;br /&gt;
 fakeroot make-kpkg --initrd --append-to-version=-iommu kernel-image kernel-headers&lt;br /&gt;
&lt;br /&gt;
You can grab a coffee, make a hot meal, have a sleep ;-)&lt;br /&gt;
&lt;br /&gt;
Step 6) Install The New Kernel&lt;br /&gt;
&lt;br /&gt;
After the successful kernel build, you can find two .deb packages in the /usr/src directory.&lt;br /&gt;
 cd .. &lt;br /&gt;
 ls -l linux*&lt;br /&gt;
&lt;br /&gt;
Install them:&lt;br /&gt;
 dpkg -i linux-image-2.6.33-custom_2.6.33-custom-10.00.Custom_amd64.deb&lt;br /&gt;
 dpkg -i linux-headers-2.6.33-custom_2.6.33-custom-10.00.Custom_amd64.deb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 7) Booting with the new kernel&lt;br /&gt;
&lt;br /&gt;
Add the options to enable IOMMU in the kernel commandline&lt;br /&gt;
&lt;br /&gt;
edit /etc/default/grub&lt;br /&gt;
&lt;br /&gt;
 new: GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;quiet splash intel_iommu=on,igfx_off,pass-through&amp;quot;&lt;br /&gt;
 old: #GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;quiet&amp;quot;&lt;br /&gt;
&lt;br /&gt;
update the booting menu&lt;br /&gt;
&lt;br /&gt;
 update-grub&lt;br /&gt;
&lt;br /&gt;
and reboot&lt;br /&gt;
&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
Step 8) Deinstall networkmanager&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get remove network-manager&lt;br /&gt;
&lt;br /&gt;
Step 9) Setup your network, change /etc/network/interfaces to look like this&lt;br /&gt;
&lt;br /&gt;
 # This file describes the network interfaces available on your system&lt;br /&gt;
 # and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The first bridge interface&lt;br /&gt;
 auto bridge_ext&lt;br /&gt;
 iface bridge_ext inet static&lt;br /&gt;
 address 0.0.0.0 #no external access without going through DCERouter first&lt;br /&gt;
 netmask 255.255.255.0&lt;br /&gt;
 broadcast 10.0.0.255 &lt;br /&gt;
 gateway 10.0.0.138&lt;br /&gt;
 bridge_ports eth0&lt;br /&gt;
 bridge_stp off&lt;br /&gt;
 bridge_maxwait 5&lt;br /&gt;
 # The second bridge interface&lt;br /&gt;
 auto bridge_int&lt;br /&gt;
 iface bridge_int inet static&lt;br /&gt;
 address 192.168.80.240&lt;br /&gt;
 netmask 255.255.255.0&lt;br /&gt;
 broadcast 192.168.80.255&lt;br /&gt;
 gateway 192.168.80.1&lt;br /&gt;
 bridge_ports eth1&lt;br /&gt;
 bridge_stp off&lt;br /&gt;
 bridge_maxwait 5&lt;br /&gt;
&lt;br /&gt;
With the above the host will use dcerouter as its way into the internet and thus the protection offered by the firewall. The host has no direct access to the 10.0.0.0 network.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 10) Install Linuxmce&lt;br /&gt;
 sudo apt-get install virt-manager&lt;br /&gt;
&lt;br /&gt;
Add user to administer you virtual machines to the libvirtd group&lt;br /&gt;
 sudo adduser xxx libvirtd&lt;br /&gt;
&lt;br /&gt;
Since there&#039;s no GUI on the server, run Virtual machine manager on another computer. Enable SSH connection for the manager by running this on the client:&lt;br /&gt;
 ssh-keygen -t rsa&lt;br /&gt;
 ssh-copy-id -i ~/.ssh/id_rsa.pub xxx@your_server&lt;br /&gt;
&lt;br /&gt;
Install viewer on the client&lt;br /&gt;
 sudo apt-get install virt-viewer&lt;br /&gt;
&lt;br /&gt;
Download the LMCE ISO file with:&lt;br /&gt;
 mkdir /home/xxx/lmce&lt;br /&gt;
 cd /home/xxx/lmce&lt;br /&gt;
 wget http://linuxmce.iptp.org/snapshots/LinuxMCE-8.10-23645-i386.iso^C&lt;br /&gt;
&lt;br /&gt;
Start installation&lt;br /&gt;
 sudo virt-install --connect qemu:///system --name DCErouter --ram 1024 --file /var/lib/libvirt/images/lmce810.img --cdrom /home/joakim/lmce/LinuxMCE-8.10-23645-i386.iso  --os-type linux --os-variant generic26 -k sv --vnc --vncport 5901&lt;br /&gt;
&lt;br /&gt;
Start a VNC viewer on you other computer:&lt;br /&gt;
 virt-viewer -c qemu+ssh://192.168.1.78/system DCErouter&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Using virt-manager you can now install LinuxMCE. As we are all experts on that I will only give away my xml config file (should be enough ;-))&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;domain type=&#039;kvm&#039;&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;DCERouter&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;uuid&amp;gt;xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx&amp;lt;/uuid&amp;gt;&lt;br /&gt;
  &amp;lt;memory&amp;gt;2097152&amp;lt;/memory&amp;gt;&lt;br /&gt;
  &amp;lt;currentMemory&amp;gt;2097152&amp;lt;/currentMemory&amp;gt;&lt;br /&gt;
  &amp;lt;vcpu&amp;gt;2&amp;lt;/vcpu&amp;gt;&lt;br /&gt;
  &amp;lt;os&amp;gt;&lt;br /&gt;
    &amp;lt;type arch=&#039;x86_64&#039; machine=&#039;pc-0.11&#039;&amp;gt;hvm&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;boot dev=&#039;hd&#039;/&amp;gt;&lt;br /&gt;
  &amp;lt;/os&amp;gt;&lt;br /&gt;
  &amp;lt;features&amp;gt;&lt;br /&gt;
    &amp;lt;acpi/&amp;gt;&lt;br /&gt;
    &amp;lt;apic/&amp;gt;&lt;br /&gt;
    &amp;lt;pae/&amp;gt;&lt;br /&gt;
  &amp;lt;/features&amp;gt;&lt;br /&gt;
  &amp;lt;clock offset=&#039;utc&#039;/&amp;gt;&lt;br /&gt;
  &amp;lt;on_poweroff&amp;gt;destroy&amp;lt;/on_poweroff&amp;gt;&lt;br /&gt;
  &amp;lt;on_reboot&amp;gt;restart&amp;lt;/on_reboot&amp;gt;&lt;br /&gt;
  &amp;lt;on_crash&amp;gt;restart&amp;lt;/on_crash&amp;gt;&lt;br /&gt;
  &amp;lt;devices&amp;gt;&lt;br /&gt;
    &amp;lt;emulator&amp;gt;/usr/bin/kvm&amp;lt;/emulator&amp;gt;&lt;br /&gt;
    &amp;lt;disk type=&#039;block&#039; device=&#039;disk&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source dev=&#039;/dev/sdc&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev=&#039;hda&#039; bus=&#039;ide&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;disk type=&#039;file&#039; device=&#039;cdrom&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;target dev=&#039;hdc&#039; bus=&#039;ide&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;readonly/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;interface type=&#039;bridge&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;mac address=&#039;xx:xx:xx:xx:xx:xx&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;source bridge=&#039;bridge_ext&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/interface&amp;gt;&lt;br /&gt;
    &amp;lt;interface type=&#039;bridge&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;mac address=&#039;xx:xx:xx:xx:xx:xx&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;source bridge=&#039;bridge_int&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;model type=&#039;virtio&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/interface&amp;gt;&lt;br /&gt;
    &amp;lt;serial type=&#039;pty&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;target port=&#039;0&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/serial&amp;gt;&lt;br /&gt;
    &amp;lt;console type=&#039;pty&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;target port=&#039;0&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/console&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&#039;tablet&#039; bus=&#039;usb&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&#039;mouse&#039; bus=&#039;ps2&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;graphics type=&#039;vnc&#039; port=&#039;-1&#039; autoport=&#039;yes&#039; keymap=&#039;en-us&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;video&amp;gt;&lt;br /&gt;
      &amp;lt;model type=&#039;cirrus&#039; vram=&#039;9216&#039; heads=&#039;1&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/video&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;pci&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;address domain=&#039;0x0000&#039; bus=&#039;0x02&#039; slot=&#039;0x00&#039; function=&#039;0x0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;pci&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;address domain=&#039;0x0000&#039; bus=&#039;0x03&#039; slot=&#039;0x08&#039; function=&#039;0x0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;pci&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;address domain=&#039;0x0000&#039; bus=&#039;0x03&#039; slot=&#039;0x09&#039; function=&#039;0x0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;usb&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;vendor id=&#039;0x0403&#039;/&amp;gt;&lt;br /&gt;
        &amp;lt;product id=&#039;0xf2d0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;pci&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;address domain=&#039;0x0000&#039; bus=&#039;0x00&#039; slot=&#039;0x1b&#039; function=&#039;0x0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
  &amp;lt;/devices&amp;gt;&lt;br /&gt;
 &amp;lt;/domain&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 11) Enjoying building a test enviroment, inline upgrade etc.&lt;br /&gt;
&lt;br /&gt;
Step 12) I chose to put my media on the host via a Samba share which will be detected as a NAS. This will simplify things when performing upgrades and test. Because I am using LVM also expansion is easy ;-)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Lmce_kvm.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
== Hints/Known Issues/Working Hardware ==&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AMD/ATI Hardware&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- NVidia Chipset 3600 with Opteron Socket F has full KVM support and works fine with LMCE 8.10. &amp;lt;br&amp;gt;&lt;br /&gt;
- ATI-driver 9.8 supports kernel 2.6.30&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Keyboard Layout&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- As you can&#039;t choose the keyboard-layout in virtual-manager, simply change the keymap in the xml-file e.g. from &amp;quot;en-us&amp;quot; to &amp;quot;de&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Networking&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- Step 11) is not needed if the physical network devices are configured as &#039;auto ethx \ iface ethx inet manual&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- The virtual LMCE runs fine with only one NIC provided to it. The setup automatically configures a sub-NIC which works well. I would suggest to have the host provide the internet-access, so vLMCE can&#039;t mess it up at the installation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PCI-Passthrough at KVM&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- PCI-Passthrough only works if the full PCI-device is transferred to the virtual machine. So if the PCI-Slot has sub-functions (e.g. Firewire) all of the &#039;functions&#039; have to be adressed to the virtual machine with the &amp;lt;hostdev&amp;gt; section of Step 12). To look up your PCI-device-tree, use &#039;lspci -t&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 (Tyan S2915-E)&lt;br /&gt;
 [0000:00]-+-00.0&lt;br /&gt;
           +-01.0&lt;br /&gt;
           +-01.1&lt;br /&gt;
           +-02.0&lt;br /&gt;
           +-02.1&lt;br /&gt;
           +-04.0&lt;br /&gt;
           +-05.0&lt;br /&gt;
           +-05.1&lt;br /&gt;
           +-06.0-[0000:01]----04.0                                           (&amp;lt;- PCI-Slot = DVB-card)&lt;br /&gt;
                             \-04.1                                           (&amp;lt;- Firewire, either disable in Bios or -&amp;gt;KVM)&lt;br /&gt;
           +-06.1&lt;br /&gt;
           +-08.0&lt;br /&gt;
           +-09.0&lt;br /&gt;
           +-0d.0-[0000:02-04]--+-00.0-[0000:03]----04.0&lt;br /&gt;
           |                    \-00.1-[0000:04]--&lt;br /&gt;
           +-0f.0-[0000:05]--+-00.0&lt;br /&gt;
           |                 \-00.1&lt;br /&gt;
           +-18.0&lt;br /&gt;
           +-18.1&lt;br /&gt;
           +-18.2&lt;br /&gt;
           +-18.3&lt;br /&gt;
           \-18.4&lt;br /&gt;
&lt;br /&gt;
- PCIe-devices do not have this restriction.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Please note that each change in the .xml-files is activated only after rebooting the libvirtd. You can do this manually by killing and restarting the process &amp;quot;libvirtd&amp;quot; or by a host reboot.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Problems with PVR-150 not responding&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
During usage it turned out that sometimes recordings failed having a total size of 0 B. Live TV has not worked stable at all. Checking the mythbackend logs shows that /dev/video0 was not responding as expected.&lt;br /&gt;
Furthermore I detected DMA errors in the log of the host.&lt;br /&gt;
&lt;br /&gt;
I am now testing the commandline option iommu=on,igfx_off,pass-through, where pass-through should be able to iron out the DMA errors.&lt;br /&gt;
&lt;br /&gt;
Because the behaviour was not stable I also installed the mercurial ivtv drivers (within the VM ofcourse!!!!):&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install mercurial&lt;br /&gt;
 cd /usr/src&lt;br /&gt;
 sudo hg clone http://linuxtv.org/hg/v4l-dvb&lt;br /&gt;
 cd v4l-dvb&lt;br /&gt;
 sudo make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo make unload&lt;br /&gt;
 sudo make load&lt;br /&gt;
&lt;br /&gt;
You will have to rebuild after a kernel change.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Clicking sound on Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 02)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When passing-through my audio card I noticed hick ups in the MP3&#039;s and a message in kern.log;&lt;br /&gt;
&lt;br /&gt;
 hda-intel: IRQ timing workaround is activated for card #0. Suggest a bigger bdl_pos_adj.&lt;br /&gt;
&lt;br /&gt;
edit alsa-base.conf;&lt;br /&gt;
&lt;br /&gt;
 vim /etc/modprobe.dalsa-base.conf&lt;br /&gt;
&lt;br /&gt;
add the following line at the bottom;&lt;br /&gt;
&lt;br /&gt;
 options snd-hda-intel model=3stack-dig&lt;br /&gt;
 options snd-hda-intel enable_msi=1&lt;br /&gt;
 options snd-hda-intel single_cmd=1&lt;br /&gt;
&lt;br /&gt;
and reboot (reload alsa does not seem to have the full effect)&lt;br /&gt;
&lt;br /&gt;
Tip from [https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/274424 Bugs Launchpad]&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Installing_LinuxMCE_on_VM_via_KVM_on_Ubuntu_10.10_Server&amp;diff=26970</id>
		<title>Installing LinuxMCE on VM via KVM on Ubuntu 10.10 Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Installing_LinuxMCE_on_VM_via_KVM_on_Ubuntu_10.10_Server&amp;diff=26970"/>
		<updated>2011-02-14T20:28:45Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Virtualization]]&lt;br /&gt;
[[Category: Documentation]]&lt;br /&gt;
[[Category: Tutorials]]&lt;br /&gt;
&lt;br /&gt;
{{versioninfo|810Status=still testing|810UpdatedDate=9th february 20101|810UpdatedBy=JoakimL}}&lt;br /&gt;
&lt;br /&gt;
This is based on daballiemo&#039;s [[http://wiki.linuxmce.org/index.php/Installing_LinuMCE_on_Virtual_Machine_via_KVM&lt;br /&gt;
== &#039;&#039;&#039;KVM: To baldly go where (almost) no man has gone before&#039;&#039;&#039; ==]]&lt;br /&gt;
&amp;lt;&amp;lt;&amp;lt; This is not complete yet, follow at own risk&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this overview I will try to follow the installation path to get LCME 8.10 into a virtual machine on Ubuntu 10.10 which uses USB devices from the host.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Machine details first:&lt;br /&gt;
&lt;br /&gt;
* Motherboard: ASUS P5E VM DO with bios 10.1&lt;br /&gt;
* CPU: AMD AM2 4400+&lt;br /&gt;
* 2 Gb DDR-2 Memory&lt;br /&gt;
* 1 onboard GbE Nic&lt;br /&gt;
* 1 PCI-E GbE Nic&lt;br /&gt;
* 1 Hauppauge WinStick Nova T2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 lspci&lt;br /&gt;
 00:00.0 RAM memory: nVidia Corporation MCP65 Memory Controller (rev a3)&lt;br /&gt;
 00:01.0 ISA bridge: nVidia Corporation MCP65 LPC Bridge (rev a3)&lt;br /&gt;
 00:01.1 SMBus: nVidia Corporation MCP65 SMBus (rev a1)&lt;br /&gt;
 00:01.2 RAM memory: nVidia Corporation MCP65 Memory Controller (rev a1)&lt;br /&gt;
 00:02.0 USB Controller: nVidia Corporation MCP65 USB Controller (rev a3)&lt;br /&gt;
 00:02.1 USB Controller: nVidia Corporation MCP65 USB Controller (rev a3)&lt;br /&gt;
 00:07.0 Audio device: nVidia Corporation MCP65 High Definition Audio (rev a1)&lt;br /&gt;
 00:08.0 PCI bridge: nVidia Corporation MCP65 PCI bridge (rev a1)&lt;br /&gt;
 00:09.0 IDE interface: nVidia Corporation MCP65 IDE (rev a1)&lt;br /&gt;
 00:0a.0 IDE interface: nVidia Corporation MCP65 SATA Controller (rev a3)&lt;br /&gt;
 00:0b.0 PCI bridge: nVidia Corporation Device 045b (rev a1)&lt;br /&gt;
 00:0c.0 PCI bridge: nVidia Corporation MCP65 PCI Express bridge (rev a1)&lt;br /&gt;
 00:0d.0 PCI bridge: nVidia Corporation MCP65 PCI Express bridge (rev a1)&lt;br /&gt;
 00:0e.0 PCI bridge: nVidia Corporation MCP65 PCI Express bridge (rev a1)&lt;br /&gt;
 00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration&lt;br /&gt;
 00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map&lt;br /&gt;
 00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller&lt;br /&gt;
 00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control&lt;br /&gt;
 01:0a.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)&lt;br /&gt;
 03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 01)&lt;br /&gt;
 04:00.0 VGA compatible controller: nVidia Corporation G86 [GeForce 8500 GT] (rev a1)&lt;br /&gt;
&lt;br /&gt;
Step 1) Install Ubuntu 10.10 server 64 bit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 2) Make the system current:&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get update&lt;br /&gt;
  sudo apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 3) Add some management tools:&lt;br /&gt;
&lt;br /&gt;
I use webmin to give my server a fixed ip address and perform other administrative tasks.&lt;br /&gt;
&lt;br /&gt;
 apt-get install libnet-ssleay-perl libauthen-pam-perl libio-pty-perl&lt;br /&gt;
 wget http://mirrors.kernel.org/ubuntu/pool/universe/libm/libmd5-perl/libmd5-perl_2.03-1_all.deb&lt;br /&gt;
 sudo dpkg -i libmd5-perl_2.03-1_all.deb&lt;br /&gt;
 sudo wget http://sourceforge.net/projects/webadmin/files/webmin/1.520/webmin_1.520_all.deb/download&lt;br /&gt;
 sudo dpkg -i download&lt;br /&gt;
 sudo apt-get install -f&lt;br /&gt;
&lt;br /&gt;
I use MidNight Commander for file stuff&lt;br /&gt;
 &lt;br /&gt;
 apt-get install mc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 4) Getting the right kernel and parameters &lt;br /&gt;
&lt;br /&gt;
Install the required tools and packages, so open a terminal and type the following,&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install fakeroot kernel-wedge build-essential makedumpfile kernel-package libncurses5 libncurses5-dev&lt;br /&gt;
&lt;br /&gt;
Get the right kernel, at the time of writing 2.6.37 was the best kernel source.&lt;br /&gt;
&lt;br /&gt;
 wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.37.tar.bz2&lt;br /&gt;
 tar -jxvf linux-2.6.37.tar.bz2 -C /usr/src&lt;br /&gt;
 &lt;br /&gt;
Go to the unpack directory&lt;br /&gt;
&lt;br /&gt;
 cd /usr/src/linux-2.6.37&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is a good idea to start with the same .config as the currently running kernel, so type the following,&lt;br /&gt;
&lt;br /&gt;
 sudo cp -vi /boot/config-`uname -r` .config&lt;br /&gt;
&lt;br /&gt;
Now we are ready to customize the build and kernel options.&lt;br /&gt;
&lt;br /&gt;
 sudo make menuconfig&lt;br /&gt;
&lt;br /&gt;
   * set &amp;quot;Bus options (PCI etc.)&amp;quot; -&amp;gt; &amp;quot;Support for DMA Remapping Devices&amp;quot; to &amp;quot;*&amp;quot;&lt;br /&gt;
   * set &amp;quot;Bus options (PCI etc.)&amp;quot; -&amp;gt; &amp;quot;Enable DMA Remapping Devices&amp;quot; to &amp;quot;*&amp;quot;&lt;br /&gt;
   * set &amp;quot;Bus options (PCI etc.)&amp;quot; -&amp;gt; &amp;quot;PCI Stub driver&amp;quot; to &amp;quot;*&amp;quot;&lt;br /&gt;
   This line broke my setup so I took it out * optional setting: set &amp;quot;Bus options (PCI etc.)&amp;quot; -&amp;gt; &amp;quot;Support for Interrupt Remapping&amp;quot; to &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Once you have finished, save and exit. It is now time to compile. However to speed up the build if you have a dual/triple/quad core processor type (one more than the number of cores you have).&lt;br /&gt;
&lt;br /&gt;
 export CONCURRENCY_LEVEL=3&lt;br /&gt;
&lt;br /&gt;
The general rule is 1 + the number of processor cores.&lt;br /&gt;
&lt;br /&gt;
Step 5) Build the new kernel.&lt;br /&gt;
&lt;br /&gt;
 sudo make-kpkg clean&lt;br /&gt;
 fakeroot make-kpkg --initrd --append-to-version=-iommu kernel-image kernel-headers&lt;br /&gt;
&lt;br /&gt;
You can grab a coffee, make a hot meal, have a sleep ;-)&lt;br /&gt;
&lt;br /&gt;
Step 6) Install The New Kernel&lt;br /&gt;
&lt;br /&gt;
After the successful kernel build, you can find two .deb packages in the /usr/src directory.&lt;br /&gt;
 cd .. &lt;br /&gt;
 ls -l linux*&lt;br /&gt;
&lt;br /&gt;
Install them:&lt;br /&gt;
 dpkg -i linux-image-2.6.33-custom_2.6.33-custom-10.00.Custom_amd64.deb&lt;br /&gt;
 dpkg -i linux-headers-2.6.33-custom_2.6.33-custom-10.00.Custom_amd64.deb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 7) Booting with the new kernel&lt;br /&gt;
&lt;br /&gt;
Add the options to enable IOMMU in the kernel commandline&lt;br /&gt;
&lt;br /&gt;
edit /etc/default/grub&lt;br /&gt;
&lt;br /&gt;
 new: GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;quiet splash intel_iommu=on,igfx_off,pass-through&amp;quot;&lt;br /&gt;
 old: #GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;quiet&amp;quot;&lt;br /&gt;
&lt;br /&gt;
update the booting menu&lt;br /&gt;
&lt;br /&gt;
 update-grub&lt;br /&gt;
&lt;br /&gt;
and reboot&lt;br /&gt;
&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
Step 8) Deinstall networkmanager&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get remove network-manager&lt;br /&gt;
&lt;br /&gt;
Step 9) Setup your network, change /etc/network/interfaces to look like this&lt;br /&gt;
&lt;br /&gt;
 # This file describes the network interfaces available on your system&lt;br /&gt;
 # and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The first bridge interface&lt;br /&gt;
 auto bridge_ext&lt;br /&gt;
 iface bridge_ext inet static&lt;br /&gt;
 address 0.0.0.0 #no external access without going through DCERouter first&lt;br /&gt;
 netmask 255.255.255.0&lt;br /&gt;
 broadcast 10.0.0.255 &lt;br /&gt;
 gateway 10.0.0.138&lt;br /&gt;
 bridge_ports eth0&lt;br /&gt;
 bridge_stp off&lt;br /&gt;
 bridge_maxwait 5&lt;br /&gt;
 # The second bridge interface&lt;br /&gt;
 auto bridge_int&lt;br /&gt;
 iface bridge_int inet static&lt;br /&gt;
 address 192.168.80.240&lt;br /&gt;
 netmask 255.255.255.0&lt;br /&gt;
 broadcast 192.168.80.255&lt;br /&gt;
 gateway 192.168.80.1&lt;br /&gt;
 bridge_ports eth1&lt;br /&gt;
 bridge_stp off&lt;br /&gt;
 bridge_maxwait 5&lt;br /&gt;
&lt;br /&gt;
With the above the host will use dcerouter as its way into the internet and thus the protection offered by the firewall. The host has no direct access to the 10.0.0.0 network.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 10) Install Linuxmce&lt;br /&gt;
 sudo apt-get install virt-manager&lt;br /&gt;
&lt;br /&gt;
Add user to administer you virtual machines to the libvirtd group&lt;br /&gt;
 sudo adduser xxx libvirtd&lt;br /&gt;
&lt;br /&gt;
Since there&#039;s no GUI on the server, run Virtual machine manager on another computer. Enable SSH connection for the manager by running this on the client:&lt;br /&gt;
 ssh-keygen -t rsa&lt;br /&gt;
 ssh-copy-id -i ~/.ssh/id_rsa.pub xxx@your_server&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Using virt-manager you can now install LinuxMCE. As we are all experts on that I will only give away my xml config file (should be enough ;-))&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;domain type=&#039;kvm&#039;&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;DCERouter&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;uuid&amp;gt;xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx&amp;lt;/uuid&amp;gt;&lt;br /&gt;
  &amp;lt;memory&amp;gt;2097152&amp;lt;/memory&amp;gt;&lt;br /&gt;
  &amp;lt;currentMemory&amp;gt;2097152&amp;lt;/currentMemory&amp;gt;&lt;br /&gt;
  &amp;lt;vcpu&amp;gt;2&amp;lt;/vcpu&amp;gt;&lt;br /&gt;
  &amp;lt;os&amp;gt;&lt;br /&gt;
    &amp;lt;type arch=&#039;x86_64&#039; machine=&#039;pc-0.11&#039;&amp;gt;hvm&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;boot dev=&#039;hd&#039;/&amp;gt;&lt;br /&gt;
  &amp;lt;/os&amp;gt;&lt;br /&gt;
  &amp;lt;features&amp;gt;&lt;br /&gt;
    &amp;lt;acpi/&amp;gt;&lt;br /&gt;
    &amp;lt;apic/&amp;gt;&lt;br /&gt;
    &amp;lt;pae/&amp;gt;&lt;br /&gt;
  &amp;lt;/features&amp;gt;&lt;br /&gt;
  &amp;lt;clock offset=&#039;utc&#039;/&amp;gt;&lt;br /&gt;
  &amp;lt;on_poweroff&amp;gt;destroy&amp;lt;/on_poweroff&amp;gt;&lt;br /&gt;
  &amp;lt;on_reboot&amp;gt;restart&amp;lt;/on_reboot&amp;gt;&lt;br /&gt;
  &amp;lt;on_crash&amp;gt;restart&amp;lt;/on_crash&amp;gt;&lt;br /&gt;
  &amp;lt;devices&amp;gt;&lt;br /&gt;
    &amp;lt;emulator&amp;gt;/usr/bin/kvm&amp;lt;/emulator&amp;gt;&lt;br /&gt;
    &amp;lt;disk type=&#039;block&#039; device=&#039;disk&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source dev=&#039;/dev/sdc&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev=&#039;hda&#039; bus=&#039;ide&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;disk type=&#039;file&#039; device=&#039;cdrom&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;target dev=&#039;hdc&#039; bus=&#039;ide&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;readonly/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;interface type=&#039;bridge&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;mac address=&#039;xx:xx:xx:xx:xx:xx&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;source bridge=&#039;bridge_ext&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/interface&amp;gt;&lt;br /&gt;
    &amp;lt;interface type=&#039;bridge&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;mac address=&#039;xx:xx:xx:xx:xx:xx&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;source bridge=&#039;bridge_int&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;model type=&#039;virtio&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/interface&amp;gt;&lt;br /&gt;
    &amp;lt;serial type=&#039;pty&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;target port=&#039;0&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/serial&amp;gt;&lt;br /&gt;
    &amp;lt;console type=&#039;pty&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;target port=&#039;0&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/console&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&#039;tablet&#039; bus=&#039;usb&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&#039;mouse&#039; bus=&#039;ps2&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;graphics type=&#039;vnc&#039; port=&#039;-1&#039; autoport=&#039;yes&#039; keymap=&#039;en-us&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;video&amp;gt;&lt;br /&gt;
      &amp;lt;model type=&#039;cirrus&#039; vram=&#039;9216&#039; heads=&#039;1&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/video&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;pci&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;address domain=&#039;0x0000&#039; bus=&#039;0x02&#039; slot=&#039;0x00&#039; function=&#039;0x0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;pci&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;address domain=&#039;0x0000&#039; bus=&#039;0x03&#039; slot=&#039;0x08&#039; function=&#039;0x0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;pci&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;address domain=&#039;0x0000&#039; bus=&#039;0x03&#039; slot=&#039;0x09&#039; function=&#039;0x0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;usb&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;vendor id=&#039;0x0403&#039;/&amp;gt;&lt;br /&gt;
        &amp;lt;product id=&#039;0xf2d0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;pci&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;address domain=&#039;0x0000&#039; bus=&#039;0x00&#039; slot=&#039;0x1b&#039; function=&#039;0x0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
  &amp;lt;/devices&amp;gt;&lt;br /&gt;
 &amp;lt;/domain&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 11) Enjoying building a test enviroment, inline upgrade etc.&lt;br /&gt;
&lt;br /&gt;
Step 12) I chose to put my media on the host via a Samba share which will be detected as a NAS. This will simplify things when performing upgrades and test. Because I am using LVM also expansion is easy ;-)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Lmce_kvm.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
== Hints/Known Issues/Working Hardware ==&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AMD/ATI Hardware&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- NVidia Chipset 3600 with Opteron Socket F has full KVM support and works fine with LMCE 8.10. &amp;lt;br&amp;gt;&lt;br /&gt;
- ATI-driver 9.8 supports kernel 2.6.30&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Keyboard Layout&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- As you can&#039;t choose the keyboard-layout in virtual-manager, simply change the keymap in the xml-file e.g. from &amp;quot;en-us&amp;quot; to &amp;quot;de&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Networking&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- Step 11) is not needed if the physical network devices are configured as &#039;auto ethx \ iface ethx inet manual&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- The virtual LMCE runs fine with only one NIC provided to it. The setup automatically configures a sub-NIC which works well. I would suggest to have the host provide the internet-access, so vLMCE can&#039;t mess it up at the installation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PCI-Passthrough at KVM&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- PCI-Passthrough only works if the full PCI-device is transferred to the virtual machine. So if the PCI-Slot has sub-functions (e.g. Firewire) all of the &#039;functions&#039; have to be adressed to the virtual machine with the &amp;lt;hostdev&amp;gt; section of Step 12). To look up your PCI-device-tree, use &#039;lspci -t&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 (Tyan S2915-E)&lt;br /&gt;
 [0000:00]-+-00.0&lt;br /&gt;
           +-01.0&lt;br /&gt;
           +-01.1&lt;br /&gt;
           +-02.0&lt;br /&gt;
           +-02.1&lt;br /&gt;
           +-04.0&lt;br /&gt;
           +-05.0&lt;br /&gt;
           +-05.1&lt;br /&gt;
           +-06.0-[0000:01]----04.0                                           (&amp;lt;- PCI-Slot = DVB-card)&lt;br /&gt;
                             \-04.1                                           (&amp;lt;- Firewire, either disable in Bios or -&amp;gt;KVM)&lt;br /&gt;
           +-06.1&lt;br /&gt;
           +-08.0&lt;br /&gt;
           +-09.0&lt;br /&gt;
           +-0d.0-[0000:02-04]--+-00.0-[0000:03]----04.0&lt;br /&gt;
           |                    \-00.1-[0000:04]--&lt;br /&gt;
           +-0f.0-[0000:05]--+-00.0&lt;br /&gt;
           |                 \-00.1&lt;br /&gt;
           +-18.0&lt;br /&gt;
           +-18.1&lt;br /&gt;
           +-18.2&lt;br /&gt;
           +-18.3&lt;br /&gt;
           \-18.4&lt;br /&gt;
&lt;br /&gt;
- PCIe-devices do not have this restriction.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Please note that each change in the .xml-files is activated only after rebooting the libvirtd. You can do this manually by killing and restarting the process &amp;quot;libvirtd&amp;quot; or by a host reboot.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Problems with PVR-150 not responding&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
During usage it turned out that sometimes recordings failed having a total size of 0 B. Live TV has not worked stable at all. Checking the mythbackend logs shows that /dev/video0 was not responding as expected.&lt;br /&gt;
Furthermore I detected DMA errors in the log of the host.&lt;br /&gt;
&lt;br /&gt;
I am now testing the commandline option iommu=on,igfx_off,pass-through, where pass-through should be able to iron out the DMA errors.&lt;br /&gt;
&lt;br /&gt;
Because the behaviour was not stable I also installed the mercurial ivtv drivers (within the VM ofcourse!!!!):&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install mercurial&lt;br /&gt;
 cd /usr/src&lt;br /&gt;
 sudo hg clone http://linuxtv.org/hg/v4l-dvb&lt;br /&gt;
 cd v4l-dvb&lt;br /&gt;
 sudo make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo make unload&lt;br /&gt;
 sudo make load&lt;br /&gt;
&lt;br /&gt;
You will have to rebuild after a kernel change.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Clicking sound on Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 02)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When passing-through my audio card I noticed hick ups in the MP3&#039;s and a message in kern.log;&lt;br /&gt;
&lt;br /&gt;
 hda-intel: IRQ timing workaround is activated for card #0. Suggest a bigger bdl_pos_adj.&lt;br /&gt;
&lt;br /&gt;
edit alsa-base.conf;&lt;br /&gt;
&lt;br /&gt;
 vim /etc/modprobe.dalsa-base.conf&lt;br /&gt;
&lt;br /&gt;
add the following line at the bottom;&lt;br /&gt;
&lt;br /&gt;
 options snd-hda-intel model=3stack-dig&lt;br /&gt;
 options snd-hda-intel enable_msi=1&lt;br /&gt;
 options snd-hda-intel single_cmd=1&lt;br /&gt;
&lt;br /&gt;
and reboot (reload alsa does not seem to have the full effect)&lt;br /&gt;
&lt;br /&gt;
Tip from [https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/274424 Bugs Launchpad]&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Installing_LinuxMCE_on_VM_via_KVM_on_Ubuntu_10.10_Server&amp;diff=26969</id>
		<title>Installing LinuxMCE on VM via KVM on Ubuntu 10.10 Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Installing_LinuxMCE_on_VM_via_KVM_on_Ubuntu_10.10_Server&amp;diff=26969"/>
		<updated>2011-02-14T18:27:59Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Virtualization]]&lt;br /&gt;
[[Category: Documentation]]&lt;br /&gt;
[[Category: Tutorials]]&lt;br /&gt;
&lt;br /&gt;
{{versioninfo|810Status=still testing|810UpdatedDate=9th february 20101|810UpdatedBy=JoakimL}}&lt;br /&gt;
&lt;br /&gt;
This is based on daballiemo&#039;s [[http://wiki.linuxmce.org/index.php/Installing_LinuMCE_on_Virtual_Machine_via_KVM&lt;br /&gt;
== &#039;&#039;&#039;KVM: To baldly go where (almost) no man has gone before&#039;&#039;&#039; ==]]&lt;br /&gt;
&amp;lt;&amp;lt;&amp;lt; This is not complete yet, follow at own risk&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this overview I will try to follow the installation path to get LCME 8.10 into a virtual machine on Ubuntu 10.10 which uses USB devices from the host.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Machine details first:&lt;br /&gt;
&lt;br /&gt;
* Motherboard: ASUS P5E VM DO with bios 10.1&lt;br /&gt;
* CPU: AMD AM2 4400+&lt;br /&gt;
* 2 Gb DDR-2 Memory&lt;br /&gt;
* 1 onboard GbE Nic&lt;br /&gt;
* 1 PCI-E GbE Nic&lt;br /&gt;
* 1 Hauppauge WinStick Nova T2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 lspci&lt;br /&gt;
 00:00.0 RAM memory: nVidia Corporation MCP65 Memory Controller (rev a3)&lt;br /&gt;
 00:01.0 ISA bridge: nVidia Corporation MCP65 LPC Bridge (rev a3)&lt;br /&gt;
 00:01.1 SMBus: nVidia Corporation MCP65 SMBus (rev a1)&lt;br /&gt;
 00:01.2 RAM memory: nVidia Corporation MCP65 Memory Controller (rev a1)&lt;br /&gt;
 00:02.0 USB Controller: nVidia Corporation MCP65 USB Controller (rev a3)&lt;br /&gt;
 00:02.1 USB Controller: nVidia Corporation MCP65 USB Controller (rev a3)&lt;br /&gt;
 00:07.0 Audio device: nVidia Corporation MCP65 High Definition Audio (rev a1)&lt;br /&gt;
 00:08.0 PCI bridge: nVidia Corporation MCP65 PCI bridge (rev a1)&lt;br /&gt;
 00:09.0 IDE interface: nVidia Corporation MCP65 IDE (rev a1)&lt;br /&gt;
 00:0a.0 IDE interface: nVidia Corporation MCP65 SATA Controller (rev a3)&lt;br /&gt;
 00:0b.0 PCI bridge: nVidia Corporation Device 045b (rev a1)&lt;br /&gt;
 00:0c.0 PCI bridge: nVidia Corporation MCP65 PCI Express bridge (rev a1)&lt;br /&gt;
 00:0d.0 PCI bridge: nVidia Corporation MCP65 PCI Express bridge (rev a1)&lt;br /&gt;
 00:0e.0 PCI bridge: nVidia Corporation MCP65 PCI Express bridge (rev a1)&lt;br /&gt;
 00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration&lt;br /&gt;
 00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map&lt;br /&gt;
 00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller&lt;br /&gt;
 00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control&lt;br /&gt;
 01:0a.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)&lt;br /&gt;
 03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 01)&lt;br /&gt;
 04:00.0 VGA compatible controller: nVidia Corporation G86 [GeForce 8500 GT] (rev a1)&lt;br /&gt;
&lt;br /&gt;
Step 1) Install Ubuntu 10.10 server 64 bit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 2) Make the system current:&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get update&lt;br /&gt;
  sudo apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 3) Add some management tools:&lt;br /&gt;
&lt;br /&gt;
I use webmin to give my server a fixed ip address and perform other administrative tasks.&lt;br /&gt;
&lt;br /&gt;
 apt-get install libnet-ssleay-perl libauthen-pam-perl libio-pty-perl&lt;br /&gt;
 wget http://mirrors.kernel.org/ubuntu/pool/universe/libm/libmd5-perl/libmd5-perl_2.03-1_all.deb&lt;br /&gt;
 sudo dpkg -i libmd5-perl_2.03-1_all.deb&lt;br /&gt;
 sudo wget http://sourceforge.net/projects/webadmin/files/webmin/1.520/webmin_1.520_all.deb/download&lt;br /&gt;
 sudo dpkg -i download&lt;br /&gt;
 sudo apt-get install -f&lt;br /&gt;
&lt;br /&gt;
I use MidNight Commander for file stuff&lt;br /&gt;
 &lt;br /&gt;
 apt-get install mc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 4) Getting the right kernel and parameters &lt;br /&gt;
&lt;br /&gt;
Install the required tools and packages, so open a terminal and type the following,&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install fakeroot kernel-wedge build-essential makedumpfile kernel-package libncurses5 libncurses5-dev&lt;br /&gt;
&lt;br /&gt;
Get the right kernel, at the time of writing 2.6.37 was the best kernel source.&lt;br /&gt;
&lt;br /&gt;
 wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.37.tar.bz2&lt;br /&gt;
 tar -jxvf linux-2.6.37.tar.bz2 -C /usr/src&lt;br /&gt;
 &lt;br /&gt;
Go to the unpack directory&lt;br /&gt;
&lt;br /&gt;
 cd /usr/src/linux-2.6.37&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is a good idea to start with the same .config as the currently running kernel, so type the following,&lt;br /&gt;
&lt;br /&gt;
 sudo cp -vi /boot/config-`uname -r` .config&lt;br /&gt;
&lt;br /&gt;
Now we are ready to customize the build and kernel options.&lt;br /&gt;
&lt;br /&gt;
 sudo make menuconfig&lt;br /&gt;
&lt;br /&gt;
   * set &amp;quot;Bus options (PCI etc.)&amp;quot; -&amp;gt; &amp;quot;Support for DMA Remapping Devices&amp;quot; to &amp;quot;*&amp;quot;&lt;br /&gt;
   * set &amp;quot;Bus options (PCI etc.)&amp;quot; -&amp;gt; &amp;quot;Enable DMA Remapping Devices&amp;quot; to &amp;quot;*&amp;quot;&lt;br /&gt;
   * set &amp;quot;Bus options (PCI etc.)&amp;quot; -&amp;gt; &amp;quot;PCI Stub driver&amp;quot; to &amp;quot;*&amp;quot;&lt;br /&gt;
   This line broke my setup so I took it out * optional setting: set &amp;quot;Bus options (PCI etc.)&amp;quot; -&amp;gt; &amp;quot;Support for Interrupt Remapping&amp;quot; to &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Once you have finished, save and exit. It is now time to compile. However to speed up the build if you have a dual/triple/quad core processor type (one more than the number of cores you have).&lt;br /&gt;
&lt;br /&gt;
 export CONCURRENCY_LEVEL=3&lt;br /&gt;
&lt;br /&gt;
The general rule is 1 + the number of processor cores.&lt;br /&gt;
&lt;br /&gt;
Step 5) Build the new kernel.&lt;br /&gt;
&lt;br /&gt;
 sudo make-kpkg clean&lt;br /&gt;
 fakeroot make-kpkg --initrd --append-to-version=-iommu kernel-image kernel-headers&lt;br /&gt;
&lt;br /&gt;
You can grab a coffee, make a hot meal, have a sleep ;-)&lt;br /&gt;
&lt;br /&gt;
Step 6) Install The New Kernel&lt;br /&gt;
&lt;br /&gt;
After the successful kernel build, you can find two .deb packages in the /usr/src directory.&lt;br /&gt;
 cd .. &lt;br /&gt;
 ls -l linux*&lt;br /&gt;
&lt;br /&gt;
Install them:&lt;br /&gt;
 dpkg -i linux-image-2.6.33-custom_2.6.33-custom-10.00.Custom_amd64.deb&lt;br /&gt;
 dpkg -i linux-headers-2.6.33-custom_2.6.33-custom-10.00.Custom_amd64.deb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 7) Booting with the new kernel&lt;br /&gt;
&lt;br /&gt;
Add the options to enable IOMMU in the kernel commandline&lt;br /&gt;
&lt;br /&gt;
edit /etc/default/grub&lt;br /&gt;
&lt;br /&gt;
 new: GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;quiet splash intel_iommu=on,igfx_off,pass-through&amp;quot;&lt;br /&gt;
 old: #GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;quiet&amp;quot;&lt;br /&gt;
&lt;br /&gt;
update the booting menu&lt;br /&gt;
&lt;br /&gt;
 update-grub&lt;br /&gt;
&lt;br /&gt;
and reboot&lt;br /&gt;
&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
Step 8) Deinstall networkmanager&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get remove network-manager&lt;br /&gt;
&lt;br /&gt;
Step 9) Setup your network, change /etc/network/interfaces to look like this&lt;br /&gt;
&lt;br /&gt;
 # This file describes the network interfaces available on your system&lt;br /&gt;
 # and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The first bridge interface&lt;br /&gt;
 auto bridge_ext&lt;br /&gt;
 iface bridge_ext inet static&lt;br /&gt;
 address 0.0.0.0 #no external access without going through DCERouter first&lt;br /&gt;
 netmask 255.255.255.0&lt;br /&gt;
 broadcast 10.0.0.255 &lt;br /&gt;
 gateway 10.0.0.138&lt;br /&gt;
 bridge_ports eth0&lt;br /&gt;
 bridge_stp off&lt;br /&gt;
 bridge_maxwait 5&lt;br /&gt;
 # The second bridge interface&lt;br /&gt;
 auto bridge_int&lt;br /&gt;
 iface bridge_int inet static&lt;br /&gt;
 address 192.168.80.240&lt;br /&gt;
 netmask 255.255.255.0&lt;br /&gt;
 broadcast 192.168.80.255&lt;br /&gt;
 gateway 192.168.80.1&lt;br /&gt;
 bridge_ports eth1&lt;br /&gt;
 bridge_stp off&lt;br /&gt;
 bridge_maxwait 5&lt;br /&gt;
&lt;br /&gt;
With the above the host will use dcerouter as its way into the internet and thus the protection offered by the firewall. The host has no direct access to the 10.0.0.0 network.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 10) Install Linuxmce&lt;br /&gt;
 sudo apt-get install virt-manager&lt;br /&gt;
&lt;br /&gt;
Add user to administer you virtual machines to the libvirtd group&lt;br /&gt;
 sudo adduser xxx libvirtd&lt;br /&gt;
&lt;br /&gt;
Using virt-manager you can now install LinuxMCE. As we are all experts on that I will only give away my xml config file (should be enough ;-))&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;domain type=&#039;kvm&#039;&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;DCERouter&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;uuid&amp;gt;xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx&amp;lt;/uuid&amp;gt;&lt;br /&gt;
  &amp;lt;memory&amp;gt;2097152&amp;lt;/memory&amp;gt;&lt;br /&gt;
  &amp;lt;currentMemory&amp;gt;2097152&amp;lt;/currentMemory&amp;gt;&lt;br /&gt;
  &amp;lt;vcpu&amp;gt;2&amp;lt;/vcpu&amp;gt;&lt;br /&gt;
  &amp;lt;os&amp;gt;&lt;br /&gt;
    &amp;lt;type arch=&#039;x86_64&#039; machine=&#039;pc-0.11&#039;&amp;gt;hvm&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;boot dev=&#039;hd&#039;/&amp;gt;&lt;br /&gt;
  &amp;lt;/os&amp;gt;&lt;br /&gt;
  &amp;lt;features&amp;gt;&lt;br /&gt;
    &amp;lt;acpi/&amp;gt;&lt;br /&gt;
    &amp;lt;apic/&amp;gt;&lt;br /&gt;
    &amp;lt;pae/&amp;gt;&lt;br /&gt;
  &amp;lt;/features&amp;gt;&lt;br /&gt;
  &amp;lt;clock offset=&#039;utc&#039;/&amp;gt;&lt;br /&gt;
  &amp;lt;on_poweroff&amp;gt;destroy&amp;lt;/on_poweroff&amp;gt;&lt;br /&gt;
  &amp;lt;on_reboot&amp;gt;restart&amp;lt;/on_reboot&amp;gt;&lt;br /&gt;
  &amp;lt;on_crash&amp;gt;restart&amp;lt;/on_crash&amp;gt;&lt;br /&gt;
  &amp;lt;devices&amp;gt;&lt;br /&gt;
    &amp;lt;emulator&amp;gt;/usr/bin/kvm&amp;lt;/emulator&amp;gt;&lt;br /&gt;
    &amp;lt;disk type=&#039;block&#039; device=&#039;disk&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source dev=&#039;/dev/sdc&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev=&#039;hda&#039; bus=&#039;ide&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;disk type=&#039;file&#039; device=&#039;cdrom&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;target dev=&#039;hdc&#039; bus=&#039;ide&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;readonly/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;interface type=&#039;bridge&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;mac address=&#039;xx:xx:xx:xx:xx:xx&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;source bridge=&#039;bridge_ext&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/interface&amp;gt;&lt;br /&gt;
    &amp;lt;interface type=&#039;bridge&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;mac address=&#039;xx:xx:xx:xx:xx:xx&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;source bridge=&#039;bridge_int&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;model type=&#039;virtio&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/interface&amp;gt;&lt;br /&gt;
    &amp;lt;serial type=&#039;pty&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;target port=&#039;0&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/serial&amp;gt;&lt;br /&gt;
    &amp;lt;console type=&#039;pty&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;target port=&#039;0&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/console&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&#039;tablet&#039; bus=&#039;usb&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&#039;mouse&#039; bus=&#039;ps2&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;graphics type=&#039;vnc&#039; port=&#039;-1&#039; autoport=&#039;yes&#039; keymap=&#039;en-us&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;video&amp;gt;&lt;br /&gt;
      &amp;lt;model type=&#039;cirrus&#039; vram=&#039;9216&#039; heads=&#039;1&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/video&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;pci&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;address domain=&#039;0x0000&#039; bus=&#039;0x02&#039; slot=&#039;0x00&#039; function=&#039;0x0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;pci&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;address domain=&#039;0x0000&#039; bus=&#039;0x03&#039; slot=&#039;0x08&#039; function=&#039;0x0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;pci&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;address domain=&#039;0x0000&#039; bus=&#039;0x03&#039; slot=&#039;0x09&#039; function=&#039;0x0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;usb&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;vendor id=&#039;0x0403&#039;/&amp;gt;&lt;br /&gt;
        &amp;lt;product id=&#039;0xf2d0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;pci&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;address domain=&#039;0x0000&#039; bus=&#039;0x00&#039; slot=&#039;0x1b&#039; function=&#039;0x0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
  &amp;lt;/devices&amp;gt;&lt;br /&gt;
 &amp;lt;/domain&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 11) Enjoying building a test enviroment, inline upgrade etc.&lt;br /&gt;
&lt;br /&gt;
Step 12) I chose to put my media on the host via a Samba share which will be detected as a NAS. This will simplify things when performing upgrades and test. Because I am using LVM also expansion is easy ;-)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Lmce_kvm.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
== Hints/Known Issues/Working Hardware ==&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AMD/ATI Hardware&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- NVidia Chipset 3600 with Opteron Socket F has full KVM support and works fine with LMCE 8.10. &amp;lt;br&amp;gt;&lt;br /&gt;
- ATI-driver 9.8 supports kernel 2.6.30&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Keyboard Layout&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- As you can&#039;t choose the keyboard-layout in virtual-manager, simply change the keymap in the xml-file e.g. from &amp;quot;en-us&amp;quot; to &amp;quot;de&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Networking&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- Step 11) is not needed if the physical network devices are configured as &#039;auto ethx \ iface ethx inet manual&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- The virtual LMCE runs fine with only one NIC provided to it. The setup automatically configures a sub-NIC which works well. I would suggest to have the host provide the internet-access, so vLMCE can&#039;t mess it up at the installation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PCI-Passthrough at KVM&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- PCI-Passthrough only works if the full PCI-device is transferred to the virtual machine. So if the PCI-Slot has sub-functions (e.g. Firewire) all of the &#039;functions&#039; have to be adressed to the virtual machine with the &amp;lt;hostdev&amp;gt; section of Step 12). To look up your PCI-device-tree, use &#039;lspci -t&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 (Tyan S2915-E)&lt;br /&gt;
 [0000:00]-+-00.0&lt;br /&gt;
           +-01.0&lt;br /&gt;
           +-01.1&lt;br /&gt;
           +-02.0&lt;br /&gt;
           +-02.1&lt;br /&gt;
           +-04.0&lt;br /&gt;
           +-05.0&lt;br /&gt;
           +-05.1&lt;br /&gt;
           +-06.0-[0000:01]----04.0                                           (&amp;lt;- PCI-Slot = DVB-card)&lt;br /&gt;
                             \-04.1                                           (&amp;lt;- Firewire, either disable in Bios or -&amp;gt;KVM)&lt;br /&gt;
           +-06.1&lt;br /&gt;
           +-08.0&lt;br /&gt;
           +-09.0&lt;br /&gt;
           +-0d.0-[0000:02-04]--+-00.0-[0000:03]----04.0&lt;br /&gt;
           |                    \-00.1-[0000:04]--&lt;br /&gt;
           +-0f.0-[0000:05]--+-00.0&lt;br /&gt;
           |                 \-00.1&lt;br /&gt;
           +-18.0&lt;br /&gt;
           +-18.1&lt;br /&gt;
           +-18.2&lt;br /&gt;
           +-18.3&lt;br /&gt;
           \-18.4&lt;br /&gt;
&lt;br /&gt;
- PCIe-devices do not have this restriction.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Please note that each change in the .xml-files is activated only after rebooting the libvirtd. You can do this manually by killing and restarting the process &amp;quot;libvirtd&amp;quot; or by a host reboot.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Problems with PVR-150 not responding&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
During usage it turned out that sometimes recordings failed having a total size of 0 B. Live TV has not worked stable at all. Checking the mythbackend logs shows that /dev/video0 was not responding as expected.&lt;br /&gt;
Furthermore I detected DMA errors in the log of the host.&lt;br /&gt;
&lt;br /&gt;
I am now testing the commandline option iommu=on,igfx_off,pass-through, where pass-through should be able to iron out the DMA errors.&lt;br /&gt;
&lt;br /&gt;
Because the behaviour was not stable I also installed the mercurial ivtv drivers (within the VM ofcourse!!!!):&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install mercurial&lt;br /&gt;
 cd /usr/src&lt;br /&gt;
 sudo hg clone http://linuxtv.org/hg/v4l-dvb&lt;br /&gt;
 cd v4l-dvb&lt;br /&gt;
 sudo make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo make unload&lt;br /&gt;
 sudo make load&lt;br /&gt;
&lt;br /&gt;
You will have to rebuild after a kernel change.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Clicking sound on Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 02)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When passing-through my audio card I noticed hick ups in the MP3&#039;s and a message in kern.log;&lt;br /&gt;
&lt;br /&gt;
 hda-intel: IRQ timing workaround is activated for card #0. Suggest a bigger bdl_pos_adj.&lt;br /&gt;
&lt;br /&gt;
edit alsa-base.conf;&lt;br /&gt;
&lt;br /&gt;
 vim /etc/modprobe.dalsa-base.conf&lt;br /&gt;
&lt;br /&gt;
add the following line at the bottom;&lt;br /&gt;
&lt;br /&gt;
 options snd-hda-intel model=3stack-dig&lt;br /&gt;
 options snd-hda-intel enable_msi=1&lt;br /&gt;
 options snd-hda-intel single_cmd=1&lt;br /&gt;
&lt;br /&gt;
and reboot (reload alsa does not seem to have the full effect)&lt;br /&gt;
&lt;br /&gt;
Tip from [https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/274424 Bugs Launchpad]&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Installing_LinuxMCE_on_VM_via_KVM_on_Ubuntu_10.10_Server&amp;diff=26968</id>
		<title>Installing LinuxMCE on VM via KVM on Ubuntu 10.10 Server</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Installing_LinuxMCE_on_VM_via_KVM_on_Ubuntu_10.10_Server&amp;diff=26968"/>
		<updated>2011-02-14T18:12:11Z</updated>

		<summary type="html">&lt;p&gt;JoakimL: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Virtualization]]&lt;br /&gt;
[[Category: Documentation]]&lt;br /&gt;
[[Category: Tutorials]]&lt;br /&gt;
&lt;br /&gt;
{{versioninfo|810Status=still testing|810UpdatedDate=9th february 20101|810UpdatedBy=JoakimL}}&lt;br /&gt;
&lt;br /&gt;
This is based on daballiemo&#039;s [[http://wiki.linuxmce.org/index.php/Installing_LinuMCE_on_Virtual_Machine_via_KVM&lt;br /&gt;
== &#039;&#039;&#039;KVM: To baldly go where (almost) no man has gone before&#039;&#039;&#039; ==]]&lt;br /&gt;
&amp;lt;&amp;lt;&amp;lt; This is not complete yet, follow at own risk&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this overview I will try to follow the installation path to get LCME 8.10 into a virtual machine on Ubuntu 10.10 which uses USB devices from the host.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Machine details first:&lt;br /&gt;
&lt;br /&gt;
* Motherboard: ASUS P5E VM DO with bios 10.1&lt;br /&gt;
* CPU: AMD AM2 4400+&lt;br /&gt;
* 2 Gb DDR-2 Memory&lt;br /&gt;
* 1 onboard GbE Nic&lt;br /&gt;
* 1 PCI-E GbE Nic&lt;br /&gt;
* 1 Hauppauge WinStick Nova T2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 lspci&lt;br /&gt;
 00:00.0 RAM memory: nVidia Corporation MCP65 Memory Controller (rev a3)&lt;br /&gt;
 00:01.0 ISA bridge: nVidia Corporation MCP65 LPC Bridge (rev a3)&lt;br /&gt;
 00:01.1 SMBus: nVidia Corporation MCP65 SMBus (rev a1)&lt;br /&gt;
 00:01.2 RAM memory: nVidia Corporation MCP65 Memory Controller (rev a1)&lt;br /&gt;
 00:02.0 USB Controller: nVidia Corporation MCP65 USB Controller (rev a3)&lt;br /&gt;
 00:02.1 USB Controller: nVidia Corporation MCP65 USB Controller (rev a3)&lt;br /&gt;
 00:07.0 Audio device: nVidia Corporation MCP65 High Definition Audio (rev a1)&lt;br /&gt;
 00:08.0 PCI bridge: nVidia Corporation MCP65 PCI bridge (rev a1)&lt;br /&gt;
 00:09.0 IDE interface: nVidia Corporation MCP65 IDE (rev a1)&lt;br /&gt;
 00:0a.0 IDE interface: nVidia Corporation MCP65 SATA Controller (rev a3)&lt;br /&gt;
 00:0b.0 PCI bridge: nVidia Corporation Device 045b (rev a1)&lt;br /&gt;
 00:0c.0 PCI bridge: nVidia Corporation MCP65 PCI Express bridge (rev a1)&lt;br /&gt;
 00:0d.0 PCI bridge: nVidia Corporation MCP65 PCI Express bridge (rev a1)&lt;br /&gt;
 00:0e.0 PCI bridge: nVidia Corporation MCP65 PCI Express bridge (rev a1)&lt;br /&gt;
 00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration&lt;br /&gt;
 00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map&lt;br /&gt;
 00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller&lt;br /&gt;
 00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control&lt;br /&gt;
 01:0a.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)&lt;br /&gt;
 03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 01)&lt;br /&gt;
 04:00.0 VGA compatible controller: nVidia Corporation G86 [GeForce 8500 GT] (rev a1)&lt;br /&gt;
&lt;br /&gt;
Step 1) Install Ubuntu 10.10 server 64 bit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 2) Make the system current:&lt;br /&gt;
&lt;br /&gt;
  sudo apt-get update&lt;br /&gt;
  sudo apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 3) Add some management tools:&lt;br /&gt;
&lt;br /&gt;
I use webmin to give my server a fixed ip address and perform other administrative tasks.&lt;br /&gt;
&lt;br /&gt;
 apt-get install libnet-ssleay-perl libauthen-pam-perl libio-pty-perl&lt;br /&gt;
 wget http://mirrors.kernel.org/ubuntu/pool/universe/libm/libmd5-perl/libmd5-perl_2.03-1_all.deb&lt;br /&gt;
 sudo dpkg -i libmd5-perl_2.03-1_all.deb&lt;br /&gt;
 sudo wget http://sourceforge.net/projects/webadmin/files/webmin/1.520/webmin_1.520_all.deb/download&lt;br /&gt;
 sudo dpkg -i download&lt;br /&gt;
 sudo apt-get install -f&lt;br /&gt;
&lt;br /&gt;
I use MidNight Commander for file stuff&lt;br /&gt;
 &lt;br /&gt;
 apt-get install mc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 4) Getting the right kernel and parameters &lt;br /&gt;
&lt;br /&gt;
Install the required tools and packages, so open a terminal and type the following,&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install fakeroot kernel-wedge build-essential makedumpfile kernel-package libncurses5 libncurses5-dev&lt;br /&gt;
&lt;br /&gt;
Get the right kernel, at the time of writing 2.6.37 was the best kernel source.&lt;br /&gt;
&lt;br /&gt;
 wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.37.tar.bz2&lt;br /&gt;
 tar -jxvf linux-2.6.37.tar.bz2 -C /usr/src&lt;br /&gt;
 &lt;br /&gt;
Go to the unpack directory&lt;br /&gt;
&lt;br /&gt;
 cd /usr/src/linux-2.6.37&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is a good idea to start with the same .config as the currently running kernel, so type the following,&lt;br /&gt;
&lt;br /&gt;
 sudo cp -vi /boot/config-`uname -r` .config&lt;br /&gt;
&lt;br /&gt;
Now we are ready to customize the build and kernel options.&lt;br /&gt;
&lt;br /&gt;
 sudo make menuconfig&lt;br /&gt;
&lt;br /&gt;
   * set &amp;quot;Bus options (PCI etc.)&amp;quot; -&amp;gt; &amp;quot;Support for DMA Remapping Devices&amp;quot; to &amp;quot;*&amp;quot;&lt;br /&gt;
   * set &amp;quot;Bus options (PCI etc.)&amp;quot; -&amp;gt; &amp;quot;Enable DMA Remapping Devices&amp;quot; to &amp;quot;*&amp;quot;&lt;br /&gt;
   * set &amp;quot;Bus options (PCI etc.)&amp;quot; -&amp;gt; &amp;quot;PCI Stub driver&amp;quot; to &amp;quot;*&amp;quot;&lt;br /&gt;
   This line broke my setup so I took it out * optional setting: set &amp;quot;Bus options (PCI etc.)&amp;quot; -&amp;gt; &amp;quot;Support for Interrupt Remapping&amp;quot; to &amp;quot;*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Once you have finished, save and exit. It is now time to compile. However to speed up the build if you have a dual/triple/quad core processor type (one more than the number of cores you have).&lt;br /&gt;
&lt;br /&gt;
 export CONCURRENCY_LEVEL=3&lt;br /&gt;
&lt;br /&gt;
The general rule is 1 + the number of processor cores.&lt;br /&gt;
&lt;br /&gt;
Step 5) Build the new kernel.&lt;br /&gt;
&lt;br /&gt;
 sudo make-kpkg clean&lt;br /&gt;
 fakeroot make-kpkg --initrd --append-to-version=-iommu kernel-image kernel-headers&lt;br /&gt;
&lt;br /&gt;
You can grab a coffee, make a hot meal, have a sleep ;-)&lt;br /&gt;
&lt;br /&gt;
Step 6) Install The New Kernel&lt;br /&gt;
&lt;br /&gt;
After the successful kernel build, you can find two .deb packages in the /usr/src directory.&lt;br /&gt;
 cd .. &lt;br /&gt;
 ls -l linux*&lt;br /&gt;
&lt;br /&gt;
Install them:&lt;br /&gt;
 dpkg -i linux-image-2.6.33-custom_2.6.33-custom-10.00.Custom_amd64.deb&lt;br /&gt;
 dpkg -i linux-headers-2.6.33-custom_2.6.33-custom-10.00.Custom_amd64.deb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 7) Booting with the new kernel&lt;br /&gt;
&lt;br /&gt;
Add the options to enable IOMMU in the kernel commandline&lt;br /&gt;
&lt;br /&gt;
edit /etc/default/grub&lt;br /&gt;
&lt;br /&gt;
 new: GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;quiet splash intel_iommu=on,igfx_off,pass-through&amp;quot;&lt;br /&gt;
 old: #GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;quiet&amp;quot;&lt;br /&gt;
&lt;br /&gt;
update the booting menu&lt;br /&gt;
&lt;br /&gt;
 update-grub&lt;br /&gt;
&lt;br /&gt;
and reboot&lt;br /&gt;
&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
Step 8) Deinstall networkmanager&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get remove network-manager&lt;br /&gt;
&lt;br /&gt;
Step 9) Setup your network, change /etc/network/interfaces to look like this&lt;br /&gt;
&lt;br /&gt;
 # This file describes the network interfaces available on your system&lt;br /&gt;
 # and how to activate them. For more information, see interfaces(5).&lt;br /&gt;
 # The loopback network interface&lt;br /&gt;
 auto lo&lt;br /&gt;
 iface lo inet loopback&lt;br /&gt;
 # The first bridge interface&lt;br /&gt;
 auto bridge_ext&lt;br /&gt;
 iface bridge_ext inet static&lt;br /&gt;
 address 0.0.0.0 #no external access without going through DCERouter first&lt;br /&gt;
 netmask 255.255.255.0&lt;br /&gt;
 broadcast 10.0.0.255 &lt;br /&gt;
 gateway 10.0.0.138&lt;br /&gt;
 bridge_ports eth0&lt;br /&gt;
 bridge_stp off&lt;br /&gt;
 bridge_maxwait 5&lt;br /&gt;
 # The second bridge interface&lt;br /&gt;
 auto bridge_int&lt;br /&gt;
 iface bridge_int inet static&lt;br /&gt;
 address 192.168.80.240&lt;br /&gt;
 netmask 255.255.255.0&lt;br /&gt;
 broadcast 192.168.80.255&lt;br /&gt;
 gateway 192.168.80.1&lt;br /&gt;
 bridge_ports eth1&lt;br /&gt;
 bridge_stp off&lt;br /&gt;
 bridge_maxwait 5&lt;br /&gt;
&lt;br /&gt;
With the above the host will use dcerouter as its way into the internet and thus the protection offered by the firewall. The host has no direct access to the 10.0.0.0 network.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step 10) Install Linuxmce&lt;br /&gt;
 sudo apt-get install virt-manager&lt;br /&gt;
&lt;br /&gt;
Using virt-manager you can now install LinuxMCE. As we are all experts on that I will only give away my xml config file (should be enough ;-))&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;domain type=&#039;kvm&#039;&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;DCERouter&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;uuid&amp;gt;xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx&amp;lt;/uuid&amp;gt;&lt;br /&gt;
  &amp;lt;memory&amp;gt;2097152&amp;lt;/memory&amp;gt;&lt;br /&gt;
  &amp;lt;currentMemory&amp;gt;2097152&amp;lt;/currentMemory&amp;gt;&lt;br /&gt;
  &amp;lt;vcpu&amp;gt;2&amp;lt;/vcpu&amp;gt;&lt;br /&gt;
  &amp;lt;os&amp;gt;&lt;br /&gt;
    &amp;lt;type arch=&#039;x86_64&#039; machine=&#039;pc-0.11&#039;&amp;gt;hvm&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;boot dev=&#039;hd&#039;/&amp;gt;&lt;br /&gt;
  &amp;lt;/os&amp;gt;&lt;br /&gt;
  &amp;lt;features&amp;gt;&lt;br /&gt;
    &amp;lt;acpi/&amp;gt;&lt;br /&gt;
    &amp;lt;apic/&amp;gt;&lt;br /&gt;
    &amp;lt;pae/&amp;gt;&lt;br /&gt;
  &amp;lt;/features&amp;gt;&lt;br /&gt;
  &amp;lt;clock offset=&#039;utc&#039;/&amp;gt;&lt;br /&gt;
  &amp;lt;on_poweroff&amp;gt;destroy&amp;lt;/on_poweroff&amp;gt;&lt;br /&gt;
  &amp;lt;on_reboot&amp;gt;restart&amp;lt;/on_reboot&amp;gt;&lt;br /&gt;
  &amp;lt;on_crash&amp;gt;restart&amp;lt;/on_crash&amp;gt;&lt;br /&gt;
  &amp;lt;devices&amp;gt;&lt;br /&gt;
    &amp;lt;emulator&amp;gt;/usr/bin/kvm&amp;lt;/emulator&amp;gt;&lt;br /&gt;
    &amp;lt;disk type=&#039;block&#039; device=&#039;disk&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source dev=&#039;/dev/sdc&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev=&#039;hda&#039; bus=&#039;ide&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;disk type=&#039;file&#039; device=&#039;cdrom&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;target dev=&#039;hdc&#039; bus=&#039;ide&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;readonly/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;interface type=&#039;bridge&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;mac address=&#039;xx:xx:xx:xx:xx:xx&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;source bridge=&#039;bridge_ext&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/interface&amp;gt;&lt;br /&gt;
    &amp;lt;interface type=&#039;bridge&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;mac address=&#039;xx:xx:xx:xx:xx:xx&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;source bridge=&#039;bridge_int&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;model type=&#039;virtio&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/interface&amp;gt;&lt;br /&gt;
    &amp;lt;serial type=&#039;pty&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;target port=&#039;0&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/serial&amp;gt;&lt;br /&gt;
    &amp;lt;console type=&#039;pty&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;target port=&#039;0&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/console&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&#039;tablet&#039; bus=&#039;usb&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&#039;mouse&#039; bus=&#039;ps2&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;graphics type=&#039;vnc&#039; port=&#039;-1&#039; autoport=&#039;yes&#039; keymap=&#039;en-us&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;video&amp;gt;&lt;br /&gt;
      &amp;lt;model type=&#039;cirrus&#039; vram=&#039;9216&#039; heads=&#039;1&#039;/&amp;gt;&lt;br /&gt;
    &amp;lt;/video&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;pci&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;address domain=&#039;0x0000&#039; bus=&#039;0x02&#039; slot=&#039;0x00&#039; function=&#039;0x0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;pci&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;address domain=&#039;0x0000&#039; bus=&#039;0x03&#039; slot=&#039;0x08&#039; function=&#039;0x0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;pci&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;address domain=&#039;0x0000&#039; bus=&#039;0x03&#039; slot=&#039;0x09&#039; function=&#039;0x0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;usb&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;vendor id=&#039;0x0403&#039;/&amp;gt;&lt;br /&gt;
        &amp;lt;product id=&#039;0xf2d0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
    &amp;lt;hostdev mode=&#039;subsystem&#039; type=&#039;pci&#039; managed=&#039;yes&#039;&amp;gt;&lt;br /&gt;
      &amp;lt;source&amp;gt;&lt;br /&gt;
        &amp;lt;address domain=&#039;0x0000&#039; bus=&#039;0x00&#039; slot=&#039;0x1b&#039; function=&#039;0x0&#039;/&amp;gt;&lt;br /&gt;
      &amp;lt;/source&amp;gt;&lt;br /&gt;
    &amp;lt;/hostdev&amp;gt;&lt;br /&gt;
  &amp;lt;/devices&amp;gt;&lt;br /&gt;
 &amp;lt;/domain&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Step 11) Enjoying building a test enviroment, inline upgrade etc.&lt;br /&gt;
&lt;br /&gt;
Step 12) I chose to put my media on the host via a Samba share which will be detected as a NAS. This will simplify things when performing upgrades and test. Because I am using LVM also expansion is easy ;-)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Lmce_kvm.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
== Hints/Known Issues/Working Hardware ==&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;AMD/ATI Hardware&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- NVidia Chipset 3600 with Opteron Socket F has full KVM support and works fine with LMCE 8.10. &amp;lt;br&amp;gt;&lt;br /&gt;
- ATI-driver 9.8 supports kernel 2.6.30&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Keyboard Layout&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- As you can&#039;t choose the keyboard-layout in virtual-manager, simply change the keymap in the xml-file e.g. from &amp;quot;en-us&amp;quot; to &amp;quot;de&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Networking&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- Step 11) is not needed if the physical network devices are configured as &#039;auto ethx \ iface ethx inet manual&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- The virtual LMCE runs fine with only one NIC provided to it. The setup automatically configures a sub-NIC which works well. I would suggest to have the host provide the internet-access, so vLMCE can&#039;t mess it up at the installation.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PCI-Passthrough at KVM&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
- PCI-Passthrough only works if the full PCI-device is transferred to the virtual machine. So if the PCI-Slot has sub-functions (e.g. Firewire) all of the &#039;functions&#039; have to be adressed to the virtual machine with the &amp;lt;hostdev&amp;gt; section of Step 12). To look up your PCI-device-tree, use &#039;lspci -t&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 (Tyan S2915-E)&lt;br /&gt;
 [0000:00]-+-00.0&lt;br /&gt;
           +-01.0&lt;br /&gt;
           +-01.1&lt;br /&gt;
           +-02.0&lt;br /&gt;
           +-02.1&lt;br /&gt;
           +-04.0&lt;br /&gt;
           +-05.0&lt;br /&gt;
           +-05.1&lt;br /&gt;
           +-06.0-[0000:01]----04.0                                           (&amp;lt;- PCI-Slot = DVB-card)&lt;br /&gt;
                             \-04.1                                           (&amp;lt;- Firewire, either disable in Bios or -&amp;gt;KVM)&lt;br /&gt;
           +-06.1&lt;br /&gt;
           +-08.0&lt;br /&gt;
           +-09.0&lt;br /&gt;
           +-0d.0-[0000:02-04]--+-00.0-[0000:03]----04.0&lt;br /&gt;
           |                    \-00.1-[0000:04]--&lt;br /&gt;
           +-0f.0-[0000:05]--+-00.0&lt;br /&gt;
           |                 \-00.1&lt;br /&gt;
           +-18.0&lt;br /&gt;
           +-18.1&lt;br /&gt;
           +-18.2&lt;br /&gt;
           +-18.3&lt;br /&gt;
           \-18.4&lt;br /&gt;
&lt;br /&gt;
- PCIe-devices do not have this restriction.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
- Please note that each change in the .xml-files is activated only after rebooting the libvirtd. You can do this manually by killing and restarting the process &amp;quot;libvirtd&amp;quot; or by a host reboot.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Problems with PVR-150 not responding&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
During usage it turned out that sometimes recordings failed having a total size of 0 B. Live TV has not worked stable at all. Checking the mythbackend logs shows that /dev/video0 was not responding as expected.&lt;br /&gt;
Furthermore I detected DMA errors in the log of the host.&lt;br /&gt;
&lt;br /&gt;
I am now testing the commandline option iommu=on,igfx_off,pass-through, where pass-through should be able to iron out the DMA errors.&lt;br /&gt;
&lt;br /&gt;
Because the behaviour was not stable I also installed the mercurial ivtv drivers (within the VM ofcourse!!!!):&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install mercurial&lt;br /&gt;
 cd /usr/src&lt;br /&gt;
 sudo hg clone http://linuxtv.org/hg/v4l-dvb&lt;br /&gt;
 cd v4l-dvb&lt;br /&gt;
 sudo make&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo make unload&lt;br /&gt;
 sudo make load&lt;br /&gt;
&lt;br /&gt;
You will have to rebuild after a kernel change.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Clicking sound on Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 02)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When passing-through my audio card I noticed hick ups in the MP3&#039;s and a message in kern.log;&lt;br /&gt;
&lt;br /&gt;
 hda-intel: IRQ timing workaround is activated for card #0. Suggest a bigger bdl_pos_adj.&lt;br /&gt;
&lt;br /&gt;
edit alsa-base.conf;&lt;br /&gt;
&lt;br /&gt;
 vim /etc/modprobe.dalsa-base.conf&lt;br /&gt;
&lt;br /&gt;
add the following line at the bottom;&lt;br /&gt;
&lt;br /&gt;
 options snd-hda-intel model=3stack-dig&lt;br /&gt;
 options snd-hda-intel enable_msi=1&lt;br /&gt;
 options snd-hda-intel single_cmd=1&lt;br /&gt;
&lt;br /&gt;
and reboot (reload alsa does not seem to have the full effect)&lt;br /&gt;
&lt;br /&gt;
Tip from [https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/274424 Bugs Launchpad]&lt;/div&gt;</summary>
		<author><name>JoakimL</name></author>
	</entry>
</feed>