<?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=Jeangot</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=Jeangot"/>
	<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php/Special:Contributions/Jeangot"/>
	<updated>2026-07-21T21:39:22Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=LinuxMCE-0810_beta&amp;diff=28296</id>
		<title>LinuxMCE-0810 beta</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=LinuxMCE-0810_beta&amp;diff=28296"/>
		<updated>2011-08-17T15:14:28Z</updated>

		<summary type="html">&lt;p&gt;Jeangot: &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;
[[Category: Software]]&lt;br /&gt;
This page outlines some information about the Beta, as well as outlining any changes and bugfixes we are applying, just like we did with the alpha2 page.&lt;br /&gt;
&lt;br /&gt;
The installation instructions found on the alpha2 page still apply:&lt;br /&gt;
&lt;br /&gt;
==Installing LinuxMCE-0810==&lt;br /&gt;
Please see detailed instruction on how to install LinuxMCE-0810 and keep it up-to-date with the latest updates [[installing 0810|here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Upcoming fixes... ==&lt;br /&gt;
&#039;&#039;&#039;Note: Please put the name of the package file and the source and bin package number in this list, followed by a small description of what has changed! Hulu Player is not the name of the package, but lmce-hulu-player. It makes the life of the person, who needs to update the repo a lot easier. Thank you!&#039;&#039;&#039;&lt;br /&gt;
* lmce-game-player (673,674)&lt;br /&gt;
**Fixes #1178 - All the FindWindowMatching() calls in the Game Player have been replaced with FindWindowMatchingWMCLASS() calls.&lt;br /&gt;
* lmce-windowutils (677,678)&lt;br /&gt;
**Fixes #1178 -  Game Player was crashing after one game play due to inclusion of window geometry routines which exposed a heap smashing bug present in WindowUtils::FindWindowNamed. The function has been summarily replaced with a much more efficient FindWindowNamedWMCLASS which also does not suffer from this problem. Some sanity checks were also added.&lt;br /&gt;
* pluto-proxy-orbiter (488,487)&lt;br /&gt;
** Includes a fix for the missing /usr/pluto/orbiter/bits&lt;br /&gt;
* pluto-plcbus (767,768)&lt;br /&gt;
** Fixes a segfault, a memory leak on job removal from the queue, cleans up log output and does scan for house code A-E on startup (devices found are shown in the log)&lt;br /&gt;
* pluto-text-to-speech (283,284) &lt;br /&gt;
** Possible fix for #1189 - use 44100 Hz wav file to support more squeeze-devices (at least squeezeslave)&lt;br /&gt;
&lt;br /&gt;
== Update 2011-08-08 24366 ==&lt;br /&gt;
* lmce-game-plugin (672,673)&lt;br /&gt;
** fix a silly bug where the game plugin was crashing the DCERouter on exit.&lt;br /&gt;
* pluto-boot-scripts (234)&lt;br /&gt;
** Add TranslateRemoteSerial.sh to the boot scripts for remote USB port detection.&lt;br /&gt;
** Start hald from linuxmce init.d script.&lt;br /&gt;
* pluto-orbiter (119,138)&lt;br /&gt;
**Add additional attribute types for games to switch to Title when selected. Also change default sort type for Games to system.&lt;br /&gt;
** Change handling of HID devices, to make Gyration remotes work again, without rendering keyboards and mice useless.&lt;br /&gt;
* pluto-pnp-detection (562)&lt;br /&gt;
** Detection scripts for Oppo Digital BDP-93 and JVC DLA-X3/X7/X9 (and probably RSxx series as well)&lt;br /&gt;
* pluto-plutoutils (196,197)&lt;br /&gt;
** Use external script to translate remote usb ports&lt;br /&gt;
* pluto-std-plugins (116,135)&lt;br /&gt;
** fix a silly bug in the pnp plugin to not call ssh to run TranslateSerialPort if the topmost device in the pnpqueue entry is device 1 (the core)&lt;br /&gt;
* pluto-system-database (211)&lt;br /&gt;
** Changes to the USB2Serial detection template 1811.&lt;br /&gt;
** Additional devicedata for Orbiter due to Gyration remotes&lt;br /&gt;
** French language added&lt;br /&gt;
* pluto-updateentarea (341,342)&lt;br /&gt;
**Whoops, add more game lmce mediatypes, so they don&#039;t get automatically generated as np_ mediatypes.&lt;br /&gt;
**Does now correctly translate telecom and security scenario buttons to other languages.&lt;br /&gt;
&lt;br /&gt;
== Update 2011-07-13 24189 ==&lt;br /&gt;
* pluto-avwizard (555,556) - Aspect ratio is now reported properly in final page.&lt;br /&gt;
* lmce-game-database (679) - Metadata additions for MAME 0.142&lt;br /&gt;
* lmce-mame-snaps (681) - Snaps update for MAME 0.142. Huge additions of snaps for a humongous number of game systems. More to come.&lt;br /&gt;
* plutostoragedevices (533) - Fixes so that PlutoStorageDevices_Setup.sh gets called when new storage devices are created.&lt;br /&gt;
* lmce-game-plugin (672,673)&lt;br /&gt;
**16 bit game systems&lt;br /&gt;
* lmce-game-player (673,674)&lt;br /&gt;
**16 bit game systems&lt;br /&gt;
* pluto-orbiter (119,138)&lt;br /&gt;
* pluto-orbiterinstaller - Add install file for fremantle orbiter.&lt;br /&gt;
&lt;br /&gt;
* pluto-proxy-orbiter (488,487)&lt;br /&gt;
** Fixes #1118&lt;br /&gt;
** Dianemo&#039;s changes (yeah, it is not a fix, but a feature)&lt;br /&gt;
* pluto-app-server (145,126)&lt;br /&gt;
** Fixes #1118&lt;br /&gt;
* pluto-website-admin (220)&lt;br /&gt;
** web orbiter changes&lt;br /&gt;
** link to fremantle orbiter&lt;br /&gt;
&lt;br /&gt;
== Update 2011-06-18 24072 ==&lt;br /&gt;
*asterisk&lt;br /&gt;
**We now have our own package to apply a fix for an issue still in the intrepid asterisk release.&lt;br /&gt;
*freepbx&lt;br /&gt;
**Adding a Provides: asterisk-custom-config to make not allow asterisk pull its own asterisk-config package.&lt;br /&gt;
*lmce-game-plugin (672,673)&lt;br /&gt;
**Bookmarks and other tweaks&lt;br /&gt;
*lmce-game-player (673,674)&lt;br /&gt;
**Bookmarks and other tweaks&lt;br /&gt;
*pluto-updatemedia (406,405)&lt;br /&gt;
**Improved heuristics for console game ROMs (the last of it for now)&lt;br /&gt;
*pluto-system-database (211)&lt;br /&gt;
**Modification of PageSetup to fix Safari problem.&lt;br /&gt;
**Adds notification to update file format and media subtype&lt;br /&gt;
**Adds soundcard selection dropdown to media directors page&lt;br /&gt;
*pluto-website-admin (220)&lt;br /&gt;
**Provide link to Maemo 5 Orbiter installer file in the same place, where all the other Orbiters have links.&lt;br /&gt;
*pluto-orbiterinstallers (363)&lt;br /&gt;
**Add fremantle.install&lt;br /&gt;
&lt;br /&gt;
== Update 2011-06-12 new replacement packages ==&lt;br /&gt;
* asterisk - Fixes #1105&lt;br /&gt;
* liblinphone - Fixes #1105&lt;br /&gt;
&lt;br /&gt;
== Update 2011-05-30 24024 ==&lt;br /&gt;
* pluto-system-database (211)&lt;br /&gt;
** Changes for bookmarks&lt;br /&gt;
* lmce-game-plugin (672,673)&lt;br /&gt;
**Bookmarks and other tweaks&lt;br /&gt;
* lmce-game-player (673,674)&lt;br /&gt;
**Bookmarks and other tweaks&lt;br /&gt;
* lmce-windowutils (677,678)&lt;br /&gt;
**Bookmarks and other tweaks&lt;br /&gt;
&lt;br /&gt;
== Update 2011-05-30 24012 ==&lt;br /&gt;
* lmce-sdlmame (682,683)&lt;br /&gt;
** Turns out those need to be built&lt;br /&gt;
* lmce-sdlmess (716,717)&lt;br /&gt;
** Turns out those need to be built, whoops.&lt;br /&gt;
&lt;br /&gt;
== Update 2011-05-26 24012 ==&lt;br /&gt;
* pluto-mythtv-plugin&lt;br /&gt;
** Fixing problems caused by older plugin with newer dcerouter.&lt;br /&gt;
&lt;br /&gt;
== Update 2011-05-25 24012 ==&lt;br /&gt;
* lmce-rain8 &lt;br /&gt;
** Initial support for Rain8net device&lt;br /&gt;
* lmce-ola&lt;br /&gt;
** Initial support for OpenLightingArchitecture device&lt;br /&gt;
* pluto-website-admin (220)&lt;br /&gt;
** lots of fixes including one that was destroying device template device data with spurious backslashes. thanks merkur2k!&lt;br /&gt;
* pluto-system-database (211)&lt;br /&gt;
** many many many many fixes in designer and dce repositories.&lt;br /&gt;
** Fixes #782, #845 use the same variable for sensor type datagrid as the code expects.&lt;br /&gt;
* pluto-std-plugins (116,135)&lt;br /&gt;
** Fix for USB devices to not remove the com port if they fall off unexpectedly.&lt;br /&gt;
* lmce-game-player (673,674)&lt;br /&gt;
* lmce-game-plugin (672,673)&lt;br /&gt;
** Many many many fixes&lt;br /&gt;
* pluto-orbiter (119,138)&lt;br /&gt;
* pluto-proxy-orbiter (488,487)&lt;br /&gt;
** Screen handlers for Capture Card Audio Port and Move File (move file not finished yet)&lt;br /&gt;
* pluto-updatemedia (406,405)&lt;br /&gt;
** Improved heuristics for console game ROMs&lt;br /&gt;
* pluto-pnp-detection (562)&lt;br /&gt;
** Fixes #1066 detection script for Marantz Receivers&lt;br /&gt;
* pluto-boot-scripts (234) &lt;br /&gt;
** fixes #1073 update available sound card device data&lt;br /&gt;
* pluto-system-database (211) &lt;br /&gt;
* pluto-media-database (233)&lt;br /&gt;
** Ref #1022 Adds Season Number attribute to Pluto_Media.AttributeType&lt;br /&gt;
* lmce-mediatomb (702)&lt;br /&gt;
&lt;br /&gt;
== Update 2011-04-14 23901 ==&lt;br /&gt;
* pluto-website-admin (220) &lt;br /&gt;
** Fix bad character in previous fix for event page&lt;br /&gt;
* pluto-updateentarea (341,342) &lt;br /&gt;
** Fixes #664 properly select order number&lt;br /&gt;
&lt;br /&gt;
== Update 2011-04-11 23890 ==&lt;br /&gt;
* pluto-system-database (211) &lt;br /&gt;
** Fixes #15 navigation problems multiple floorplans&lt;br /&gt;
* pluto-website-admin (220) &lt;br /&gt;
** Fixes #1046 adding/removing extra slashes when saving IR codes&lt;br /&gt;
** Fixes #1044 program now available as video sort option&lt;br /&gt;
** Fixes #1002 Adds ability to remove attributes directory wide.&lt;br /&gt;
** Fixes #1020 Auto-tag button for upcoming media tagging addon&lt;br /&gt;
** Fixes #1051 fix deletion of events without criteria&lt;br /&gt;
* pluto-avwizard (555,556)&lt;br /&gt;
** Fixes #865 adds HDMI-0 output which is required for some ATI cards&lt;br /&gt;
* pluto-simplephone (498,499)&lt;br /&gt;
** Fixes #1042 always use password when creating auth info object&lt;br /&gt;
* pluto-zwave-lighting (506,505) &lt;br /&gt;
** Fix bug in logging function&lt;br /&gt;
** Possible fix for #989&lt;br /&gt;
&lt;br /&gt;
== Update 2011-03-26 23855 ==&lt;br /&gt;
* pluto-motion-wrapper (456,455) - Fixes #715, #904 - fix reload issue&lt;br /&gt;
* pluto-boot-scripts (234) &lt;br /&gt;
** Fixes #698, change attribute name colum (and all other longtext columns) in db to utf-8&lt;br /&gt;
** Fixes #1019 fix firewall rules for &amp;quot;both&amp;quot; rules, handle cases where filter ip is NULL&lt;br /&gt;
** Fixes #1035 don&#039;t call plymouth if it does not exists&lt;br /&gt;
** Fixes #1037 fix call to LoadMDModules.sh&lt;br /&gt;
** Fixes #1027 this package had missing dependencies for storage-devices and network-storage&lt;br /&gt;
* pluto-website-admin (220)&lt;br /&gt;
** Refs #662, remove markers on datalogger graph&lt;br /&gt;
** Fixes #901 delete all orbiter data when deleting an Orbiter&lt;br /&gt;
* pluto-orbitergen (226,227)&lt;br /&gt;
** Fixes #133 properly calculate offset for floorplan texts&lt;br /&gt;
** Autogenerate Open/Close/Shade buttons if blinds/drapes etc exist in a room.&lt;br /&gt;
* pluto-zwave-lighting (506,505) &lt;br /&gt;
** Fixes #997 report battery status&lt;br /&gt;
&lt;br /&gt;
== Update 2011-03-07 23802 ==&lt;br /&gt;
&lt;br /&gt;
* pluto-asterisk (270)&lt;br /&gt;
** Added support for Linksys SPA3102 gateway #1012, affinity telecom voip provider #949, voipgo #942&lt;br /&gt;
* pluto-dcerouter (154)&lt;br /&gt;
** Refs #961 make radvd install by default making dcerouter depend on it&lt;br /&gt;
* pluto-website-admin (220) &lt;br /&gt;
** Fixes #940&lt;br /&gt;
** Refs #662 fix graph.php for devices that report multiple events&lt;br /&gt;
** Refs #662 create details page with details graphs&lt;br /&gt;
** Refs #961 basic IPv6 implementation&lt;br /&gt;
** Refs #959 thermostat internal schedules support (z-wave part needs still to be done)&lt;br /&gt;
** Fixes #971 change tcp port for mediatomb to 49153 as djmount has taken 49152&lt;br /&gt;
** Fixes #984 patch from golgoj4, tvdb uses program attribute type&lt;br /&gt;
* pluto-boot-scripts (234)&lt;br /&gt;
** Refs #961 basic IPv6 implementation&lt;br /&gt;
** Refs #970 - Reconfigure dhcp server at every boot &lt;br /&gt;
** Fixes #990 - Use NIS to look up home directory&lt;br /&gt;
* lmce-datalogger-plugin (686,687) &lt;br /&gt;
** Refs #913 also install Image_Color&lt;br /&gt;
* pluto-pnp-detection (562)&lt;br /&gt;
** Refs #1006 - Updates for LG TV template&lt;br /&gt;
* pluto-system-database (211) &lt;br /&gt;
** Refs #1006 - Updates for LG TV template&lt;br /&gt;
** Refs #650 - install picture viewer as default on MDs&lt;br /&gt;
* pluto-plutodhcp (491,330)&lt;br /&gt;
** Refs #970 - Enable internal network dynamic DNS updates&lt;br /&gt;
* lmce-mediatomb (702)&lt;br /&gt;
** Fixes #971 change tcp port to 49153 as djmount has taken 49152&lt;br /&gt;
* lmce-skins-titanium(718)&lt;br /&gt;
** Fixes #305 and #955 - arrows pointing the wrong way in remote screen&lt;br /&gt;
* pluto-proxy-orbiter (487,488)&lt;br /&gt;
** #893 - Fix deletion of pictures, enable play button for pictures&lt;br /&gt;
* pluto-orbiter (119,138)&lt;br /&gt;
** #893 - Fix deletion of pictures, enable play button for pictures&lt;br /&gt;
* pluto-std-plugins (116,135) &lt;br /&gt;
** #893 - Fix deletion of pictures&lt;br /&gt;
** #832 - Fix specific date timed event&lt;br /&gt;
&lt;br /&gt;
== Update 2011-01-05 23579 ==&lt;br /&gt;
* pluto-plutodhcp (491,330) - Refs #920 fix the dhcp template that is being used&lt;br /&gt;
* pluto-boot-script (234) - Fixes Orbiter detection logic&lt;br /&gt;
&lt;br /&gt;
== Update 2011-01-04 23568 ==&lt;br /&gt;
* pluto-boot-script (234) - Refs #920 allow adding entries to the dhcpd.conf file using an external file.&lt;br /&gt;
* pluto-plutodhcp (491,330) - Refs #920 Honor the dhcpd.conf template file&lt;br /&gt;
* pluto-website-admin (220)&lt;br /&gt;
** Refs #226 - Enable SSL support in apache&lt;br /&gt;
* pluto-mythtv-plugin (136,152)&lt;br /&gt;
** Fixes #922 - add storage devices to mythtv even if offline&lt;br /&gt;
* lmce-datalogger-plugin (686,687) &lt;br /&gt;
**Refs #913 Install Image_Canvas-0.3.3C and Image_Graph-0.8.0 apagg&lt;br /&gt;
* pluto-zwave&lt;br /&gt;
** refs #874 - change mutex handling&lt;br /&gt;
* pluto-plcbus&lt;br /&gt;
** refs #918 - adjust dim rate&lt;br /&gt;
&lt;br /&gt;
== Update 2010-12-16 23525 ==&lt;br /&gt;
* pluto-website-admin (220)&lt;br /&gt;
** Refs #907 - Support for web orbiters to use PLUTO_KEY events - Los93soL&lt;br /&gt;
** Refs #708 - wrong media type used when displaying default sort&lt;br /&gt;
* pluto-system-database (211)&lt;br /&gt;
** Refs #913 Updated dependency for datalogger plugin&lt;br /&gt;
** Refs #905 Play All also honors Queue vs Instant play setting&lt;br /&gt;
* lmce-datalogger-plugin (686,687)&lt;br /&gt;
** Refs #913 Install Image_Graph and dependencies in postinst&lt;br /&gt;
* pluto-zwave&lt;br /&gt;
** refs #44 - add smoke detector support&lt;br /&gt;
* pluto-proxy-orbiter (487,488)&lt;br /&gt;
** Refs #905 - New variable substitution to get device data &lt;br /&gt;
* pluto-orbiter (119,138)&lt;br /&gt;
** Refs #905 - New variable substitution to get device data&lt;br /&gt;
* pluto-plcbus&lt;br /&gt;
&lt;br /&gt;
== Update 2010-12-05 23479 ==&lt;br /&gt;
&lt;br /&gt;
* pluto-std-plugins (116,135)&lt;br /&gt;
** #879 - OSD Orbiter does not display after stopping non-pluto media device&lt;br /&gt;
** #880 - Non-pluto audio-only MediaTypes do not have the proper FK_Pipe=1&lt;br /&gt;
** #746 - Follow me volume does not work properly&lt;br /&gt;
** #905 - Implement queue media in Media_Plugin&lt;br /&gt;
* pluto-system-database (211)&lt;br /&gt;
** #860 - Add pnp detection script for ZWave devices&lt;br /&gt;
** #868 - Update Acquos LCxxD6U / LCxxD7u GSD codes to confirm input change&lt;br /&gt;
** #880 - Non-pluto audio-only MediaTypes do not have the proper FK_Pipe=1&lt;br /&gt;
** #883 - Hauppauge HD PVR inputs are not set correctly&lt;br /&gt;
* pluto-capture-card-scripts (580)&lt;br /&gt;
** #883 - Hauppauge HD PVR inputs are not set correctly&lt;br /&gt;
* lmce-dpms-monitor (721,722)&lt;br /&gt;
** #885 - DPMS Monitor now works correctly. DPMS is properly enabled, Timeouts are set, and X buffers are properly flushed after each DPMS request. (tschak)&lt;br /&gt;
* pluto-storage-devices (533)&lt;br /&gt;
** Fixes #884 - No longer ignore bootable partitions - merkur2k&lt;br /&gt;
** #889	New shares on existing file servers are not detected - merkur2k&lt;br /&gt;
* pluto-website-admin (220)&lt;br /&gt;
** Fixes #888 - Display correct description in web orbiter selection dropdown - merkur2k&lt;br /&gt;
** Fixes #869 - Event navigation improvement - thanks apagg!&lt;br /&gt;
** Refs #677 - More colors for energyGraph and some small fixes - apagg&lt;br /&gt;
** #778 Adds TVDB tagging functionality&lt;br /&gt;
** #662 datalogger display sensor report correct - apagg&lt;br /&gt;
** Fixes #866 update imdbphp to imdbphp2&lt;br /&gt;
** Fixes #901 - proper deletion of Orbiter devices&lt;br /&gt;
* mce-diskless-tools (627,628)&lt;br /&gt;
** Fixes #894 - make MythTV Setup show up properly now on Diskless MDs&lt;br /&gt;
* pluto-proxy-orbiter (487,488)&lt;br /&gt;
** #905 - Use orbiter setting &amp;quot;Queue instead of instant play&amp;quot;&lt;br /&gt;
* pluto-orbiter (119,138)&lt;br /&gt;
** #905 - Use orbiter setting &amp;quot;Queue instead of instant play&amp;quot;&lt;br /&gt;
* lmce-shoutcast-radio-plugin (703,704)&lt;br /&gt;
** Fixes #906 - new method of downloading shoutcast data&lt;br /&gt;
&lt;br /&gt;
==Update 2010-11-01 23388 ==&lt;br /&gt;
* asterisk-pluto (269) - all those asterisk changes should finally be deployed&lt;br /&gt;
* lmce-launch-manager - segfault due to db going away&lt;br /&gt;
* pluto-asterisk - added blueface voip provider&lt;br /&gt;
* pluto-boot-script (234) - Refs #315 load ztdummy module at startup&lt;br /&gt;
* pluto-capture-card-script - Refs #854 added HD PVR block info.&lt;br /&gt;
* pluto-mythtv-player - enable networkcontrol port&lt;br /&gt;
* pluto-proxy-orbiter (487,488) - Refs #821 - configuration script for automatic proxy orbiter port selection - merkur2k&lt;br /&gt;
* pluto-std-plugins (116,135)&lt;br /&gt;
** Refs #857 - Added update device command to general info plugin&lt;br /&gt;
** Refs #843 - UpdateEntArea crashes fixed&lt;br /&gt;
* pluto-system-database (211)&lt;br /&gt;
** #854 Add the above file&lt;br /&gt;
** #851 - DCERouter segfaults when exiting&lt;br /&gt;
** #873	Software raid devices do not have &amp;quot;use automatically&amp;quot; option&lt;br /&gt;
* pluto-updateentarea (341,342) &lt;br /&gt;
** Refs #445 don&#039;t put proxy orbiters into MDs EA&lt;br /&gt;
** Refs #843 UpdateEntArea crashes fixed &lt;br /&gt;
* pluto-website-admin (220) - Refs #821 - enable web orbiter in &amp;quot;add orbiter&amp;quot; dropdown in orbiters wizard page - merkur2k&lt;br /&gt;
** Refs #856 - View whole log only displays first 5000 lines&lt;br /&gt;
** Refs #861 - fixes JS path escaping&lt;br /&gt;
** Refs #870 - Web interface for learning IR codes doesn&#039;t work when editing existing device&lt;br /&gt;
* pluto-pnp-detection (562) - Refs #860 - Add pnp detection script for ZWave devices&lt;br /&gt;
* pluto-plutoutils (197,196) - Refs #872 - Fix MySQL timeout issues&lt;br /&gt;
* pluto-dcecommon (193,192) - Refs #872 - Fix MySQL timeout issues&lt;br /&gt;
* pluto-sql2cpp (203,202) - Refs #872 - Fix MySQL timeout issues&lt;br /&gt;
* pluto-tribunetv (599,598) - Refs #872 - Fix MySQL timeout issues&lt;br /&gt;
* pluto-vipshared (200,199) - Refs #872 - Fix MySQL timeout issues&lt;br /&gt;
* pluto-hdhomerun (621,620) - Refs #872 - Fix MySQL timeout issues&lt;br /&gt;
* asterisk-pluto (269) - Refs - #570 Phone book lookup and user validation scripts will now be packaged - Los93soL&lt;br /&gt;
* pluto-simplephone (498,499) - Phone audio now works when connected by HDMI - Los93soL&lt;br /&gt;
* pluto-zwave-lighting (506,505) - Refs #874 - ZWave controller locks up about twice a day&lt;br /&gt;
* pluto-asterisk (270.271) - Added support for WhistlePhone, free ad-supported US calling&lt;br /&gt;
&lt;br /&gt;
== Update 2010-10-13 23333 ==&lt;br /&gt;
* pluto-std-plugins (116,135) -&lt;br /&gt;
** Media Plugin fix to not turn on OSD (TV) if the TV was already off, and was triggered by an orbiter to play audio. Superfluous block of code removed, Thanks uplink!&lt;br /&gt;
** Possible fix for #674, media is not streamed through unnecessary MDs&lt;br /&gt;
** Fixes #849 house mode change event now sends previous mode as parameter, event plugin uses that when processing house mode change events&lt;br /&gt;
* pluto-system-database (211) - esev made changes to the non-pluto-DVD remote to make it much more usable! Thanks!&lt;br /&gt;
* pluto-lirc-wrapper (340,421) - Fixes #822 lirc now depends on required message translation library&lt;br /&gt;
* lmce-mediatomb (702) - Fixes #841&lt;br /&gt;
* pluto-boot-scripts (234) - #848 - honor &amp;quot;enable UpdateMedia&amp;quot; setting in web admin&lt;br /&gt;
* lmce-launch-manager (299,298) - #848 - honor &amp;quot;enable UpdateMedia&amp;quot; setting in web admin&lt;br /&gt;
&lt;br /&gt;
== Update 2010-10-06 23324 ==&lt;br /&gt;
* lmce-linux-igd  (765 - New package for #826 - merkur2k&lt;br /&gt;
* lirc_0.8.3 &lt;br /&gt;
** built in build-replacements.sh, only it is commented atm&lt;br /&gt;
** Refs #822 fixes repeat problems with pronto codes&lt;br /&gt;
* lmce-mediatomb (702) - Generate a more sane config file for mediatomb - merkur2k&lt;br /&gt;
* pluto-boot-script (234) - Mount /home via nfs instead of cifs on media directors, updates for #826 - merkur2k&lt;br /&gt;
* pluto-lirc-wrapper (340,421) - Fixes #822 lirc can now send pronto codes properly&lt;br /&gt;
* pluto-orbiter (119,138) - Fix for #458 - power menu now works correctly to control other media directors from OSD&lt;br /&gt;
* pluto-std-plugins (116,135)&lt;br /&gt;
** Voicemail changes and fixes.&lt;br /&gt;
** Absolute Timed Events are working (thanks TSCHAK)&lt;br /&gt;
** Fixes #833 - possible to compare integer criteria against a list of comma-separated values&lt;br /&gt;
* pluto-system-database (211) - lots of sqlCVS changes.&lt;br /&gt;
* pluto-website-admin (220) - Misc fixes from various tickets - merkur2k&lt;br /&gt;
* pluto-zwave-lighting (505,506) - #44 Improve detection of multi instance devices, possible to resync device data&lt;br /&gt;
* pluto-storage-devices (533) - Add NFS Radar - merkur2k&lt;br /&gt;
* pluto-mythtv-plugin (136,152) - misc storage group fixes - merkur2k&lt;br /&gt;
** &amp;quot;use autumatically&amp;quot; flag for storage devices is now honored&lt;br /&gt;
** better support for remote storage devices (Nas, windows share, etc)&lt;br /&gt;
&lt;br /&gt;
== Update 2010-09-16 23289 ==&lt;br /&gt;
* pluto-boot-scripts (234) &lt;br /&gt;
** enable WOL on boot up again&lt;br /&gt;
** fix HDMI and SPDIF unmuting for AVWizard and successive boots. &lt;br /&gt;
** #813, SetupUsers_Homes.sh no longer executes on media directors, faster boot. &lt;br /&gt;
** #733, BootMessage.sh no longer emits an error.&lt;br /&gt;
* pluto-generic-serial-device (307,335) - fix ethernet device support for GSDs&lt;br /&gt;
* pluto-orbiter (119,138) - #811 - WiiMote support. Change mouse accelleration so that the wiimote can actually traverse the entire width of the screen.&lt;br /&gt;
* pluto-std-plugins - #814 - Display the dimming column on the floor plan for drapes and blinds&lt;br /&gt;
* pluto-updateentarea (341,342) - #815 - Autogenerated scenarios sleep/wakeup do the right thing for blinds/drapes&lt;br /&gt;
* pluto-website-admin (220) #708 - add default media sort options to orbiters page, #636 - fixes special characters for IMDB tagging&lt;br /&gt;
&lt;br /&gt;
== Update 2010-08-29 23259 ==&lt;br /&gt;
* lmce-squeezeslave (763) - Refs #776 wrapper script to start squeezeslave&lt;br /&gt;
* mce-diskless-tools (627,628) - #798 /etc/diskless.conf not being created - merkur2k&lt;br /&gt;
* pluto-app-server (145,126) - #344 Allow power off mode override&lt;br /&gt;
* pluto-asterisk (270,271)&lt;br /&gt;
** Refs #570 Display caller name and picture from LinuxMCE phone book when available - Los93soL&lt;br /&gt;
** Change line ending for create_amp_sipgate_de.pl&lt;br /&gt;
* pluto-slimserver-plugin (424,425) - Refs #776 add squeezeslave template as possible playback device&lt;br /&gt;
* pluto-std-plugins - fix audio album snafu&lt;br /&gt;
* pluto-storage-devices (533) - #799 (re)enable NFS instead of CIFS for internal disk drive sharing - merkur2k&lt;br /&gt;
&lt;br /&gt;
== Update 2010-08-02 23227 ==&lt;br /&gt;
* lmce-datalogger-plugin (686,687) - Refs #104 Add initial support for logging Sensor Tripped Events - Los93soL&lt;br /&gt;
* lmce-datalog-database (753) - Refs #104 Add initial support for logging Sensor Tripped Events - Los93soL&lt;br /&gt;
* pluto-boot-scripts (234) &lt;br /&gt;
** Start the StorageDevices setup in the background during system start, and restart samba as part of the storage devices setup.&lt;br /&gt;
** Fixes #748 Some MAC addresses would get truncated, Thanks Coley - Los93soL&lt;br /&gt;
* pluto-app-server (145,126) - Do proper check to determine if suspend is supported&lt;br /&gt;
* pluto-website-admin (220) - Fixes #569 Don&#039;t assume calls originate from the US - Los93soL&lt;br /&gt;
* asterisk-pluto (269) - Fixes #570 Attempt to lookup caller name in phone book and correct as possible - Los93sol&lt;br /&gt;
* pluto-asterisk (270,271) - Fixes #570 Attempt to lookup caller name in phone book and correct as possible - Los93soL&lt;br /&gt;
&lt;br /&gt;
== Update 2010-07-27 23202 ==&lt;br /&gt;
* asterisk-pluto (269) - Generate all speech for pluto-sos-menus, and generate /etc/asterisk/extensions_custom.conf completely dynamically - Los93soL&lt;br /&gt;
* libxine - Refs [http://svn.linuxmce.org/trac.cgi/ticket/535 #535], Backport of newer Matroska container support form lib-xine 1.1.17.&lt;br /&gt;
* lmce-picture-viewer (754,755) Refs [http://svn.linuxmce.org/trac.cgi/ticket/650 #650], fixes alpha blending of picture viewer&lt;br /&gt;
* pluto-boot-scripts (234) - Refs [http://svn.linuxmce.org/trac.cgi/ticket/758 #758], Fix cameras on MDs by using NFS mount for the camera dir&lt;br /&gt;
* pluto-updatemedia (405,406) - Refs [http://svn.linuxmce.org/trac.cgi/ticket/651 #434], Different handling for VDR files - WARNING!! Playback of VDR recording from video is still not possible!&lt;br /&gt;
* pluto-website-admin (220) - Make sure the phone system is updated with changes made to cell phone notifications via web admin - Los93soL&lt;br /&gt;
* pluto-std-plugins (116,135) - Refs #315 Should fix most of the call transfer issues, please test thoroughly - Los93soL&lt;br /&gt;
&lt;br /&gt;
== Update 2010-07-17 23165 == &lt;br /&gt;
* pluto-boot-scripts (234) - New startup script for the Launch Manager (fixes #753)&lt;br /&gt;
* pluto-website-admin (220)&lt;br /&gt;
** Weborbiter: add missing getNews function (fixes #755)&lt;br /&gt;
** Weborbiter: keep trying to get images/data when an communication error occurs&lt;br /&gt;
** Weborbiter: fix keyboard processing (fixes #754)&lt;br /&gt;
&lt;br /&gt;
== Update 2010-07-16 23161 ==&lt;br /&gt;
* pluto-proxy-orbiter (487,488) - now with committed fixes for the 404 in 7970&lt;br /&gt;
&lt;br /&gt;
== Update 2010-07-14 23155 ==&lt;br /&gt;
* pluto-asterisk (270,271) - Only send extra channel options for transfers when an extra channel is there, also fixes to viatalk create script so things work nicely again&lt;br /&gt;
* pluto-simplephone (498,499) - Whoops!  Missed this package a few days ago, fixes Orbiter phones so they connect with the SIP secret&lt;br /&gt;
* pluto-system-database (211) - Updates to the Size table to include older iPhone/iPod Touch sizes, as well as iPhone4 size.&lt;br /&gt;
* pluto-mythtv-plugin (136,152) - Fixed some incorrect behavior with generating mythtv storage groups&lt;br /&gt;
* lmce-launch-manager (299,298) - Fixed the StartCoreServices.sh from passing wrong Device_ID to Sync2amp.pl causing NAS passwords to become scrabled.&lt;br /&gt;
&lt;br /&gt;
== Update 2010-07-06 23148 ==&lt;br /&gt;
* freepbx - Changelog updated to get a new version number&lt;br /&gt;
* pluto-asterisk (270,271) - Add support for making announcements to phones&lt;br /&gt;
* pluto-dhcpd-plugin (302) - Define helper script as a perl script&lt;br /&gt;
* pluto-std-plugins (116,135) - Small speed up fix for video file list &lt;br /&gt;
* pluto-text-to-speech (283,284) - Add support for making announcements to phones&lt;br /&gt;
* pluto-website-admin (220) - Updates to the new weborbiter&lt;br /&gt;
&lt;br /&gt;
== Update 2010-07-03  ==&lt;br /&gt;
*asterisk-pluto (269)&lt;br /&gt;
** Fix pluto sos menu generates the voice dialogs now&lt;br /&gt;
** Update caller id when sos menu calls out&lt;br /&gt;
*freepbx&lt;br /&gt;
** General dialplan cleanup&lt;br /&gt;
** FreePBX system status works now&lt;br /&gt;
** Fix warnings when updating modules list in FreePBX&lt;br /&gt;
*lmce-hai-omni-rs232 (748,749) - Make sure HAI created devices set HAI as the controlled via device&lt;br /&gt;
*pluto-asterisk (270,271)&lt;br /&gt;
** Update create scripts and abstract redundant code&lt;br /&gt;
** Keep Line_HouseMode in sync when trunks are deleted&lt;br /&gt;
** Transfers are working again&lt;br /&gt;
*pluto-website-admin (220) - Don&#039;t display phone trunk passwords in web admin&lt;br /&gt;
*pluto-dhcpd-plugin (302) - Cisco 7960 (with SIP firmware) will use sip secret now&lt;br /&gt;
*pluto-std-plugins (116,135) - CRITICAL MEDIA PLUGIN FIX IN CMD_Set_Media_Private which was causing the router to rapidly crash due to odd data coming in from MythTV PlugIn. Will investigate further, but this does stop the crashes.&lt;br /&gt;
*pluto-mythtv-plugin (136,152) - Add changes to MythTvSyncDB.sh to always set AlwaysStreamFiles to 1 for media directors.&lt;br /&gt;
*lmce-hulu-player (744,745) - somehow, an older package snuck in. This needs to be rebuilt to fix the hanging bug that somehow reappeared. Yes, I went back and checked the checked in code from a fresh checkin, this will fix it&lt;br /&gt;
*pluto-storage-devices (533) - Added dependencies for nbd-client and nbd-server so that remote playing of DVDs will work, correctly. (Fixes #743)&lt;br /&gt;
* pluto-proxy-orbiter - updates from Dianemo&lt;br /&gt;
&lt;br /&gt;
== Update 2010-06-28 23119 ==&lt;br /&gt;
* asterisk-pluto (269) - Fix fire SOS event and dialplan cleanup - Los93soL&lt;br /&gt;
* freepbx - Fix fire SOS event and dialplan cleanup - Los93soL&lt;br /&gt;
* mjproxy (760,761)&lt;br /&gt;
* pluto-dhcpd-plugin (302) - update configure scripts for grandstream and snom 3xx phones for support of database secret.&lt;br /&gt;
* pluto-mythtv-player (133,152) - Bug #737 - MH Play Media can now set initial channel&lt;br /&gt;
* pluto-std-plugins (116,135) - Bug #736 - CMD_Delete_File in Media PlugIn now will not allow deletion of arbitrary files from the disk, lots of sanity checks. Support for deleting voicemails.&lt;br /&gt;
* pluto-system-database (211)&lt;br /&gt;
* pluto-xine-player (117,136) - enable subtitle support&lt;br /&gt;
* pluto-vdr (468,469) - Bug #737 - MH Play Media can now set initial channel&lt;br /&gt;
* pluto-website-admin (220) - Adds energy monitor that uses state change #677&lt;br /&gt;
&lt;br /&gt;
== Update 2010-06-18 23082 ==&lt;br /&gt;
* lmce-datalogger-plugin (686,687)&lt;br /&gt;
* lmce-datalog-database (753)&lt;br /&gt;
* pluto-boot-scripts (234)&lt;br /&gt;
* pluto-std-plugins (116,135)&lt;br /&gt;
* asterisk-pluto (269)&lt;br /&gt;
* pluto-asterisk (270,271)&lt;br /&gt;
* pluto-website-admin (220)&lt;br /&gt;
* pluto-mythtv-player (133,152) - Fix the missing MythTV Setup in Computing. as the Quick Start Template has moved rows.&lt;br /&gt;
* pluto-mythtv-plugin (134,153) - Fixes #732 - Storage devices not locally attached to core are not added to mythtv storage groups and cleans up some error messages&lt;br /&gt;
&lt;br /&gt;
== Update 2010-06-14 23070 ==&lt;br /&gt;
* pluto-std-plugins (116,135) - Fix to General Info Plugin to allow Firefox Bookmarks to work again. Please test!&lt;br /&gt;
* pluto-boot-scripts (234) - Modify Mozilla.sh to properly output a profile where bookmarks work again.&lt;br /&gt;
* mce-diskless-tools (627,628) - Modify DisklessInteractor to always return i386 until we get a working amd64 build again.&lt;br /&gt;
* vdr - Update to version 1.7.15 &lt;br /&gt;
** Get rid of a few patches&lt;br /&gt;
** Fixes for sound decoding in Denmark&lt;br /&gt;
&lt;br /&gt;
== Update 2010-06-10 23047 ==&lt;br /&gt;
* v4l2-Modules (732) - Fix Debian package naming to allow proper install of dkms package&lt;br /&gt;
&lt;br /&gt;
== Update 2010-06-09 23046 ==&lt;br /&gt;
* lmce-picture-viewer (754,755) Refs #650, start picture viewer minimized&lt;br /&gt;
* pluto-website-admin (220) - Change wording of VDR error message to better reflect what&#039;s going on.&lt;br /&gt;
* v4l2-Modules (732) - Fix debian package naming to allow proper install of dkms package&lt;br /&gt;
&lt;br /&gt;
== Update 2010-06-07 23036 ==&lt;br /&gt;
* pluto-asterisk (270.271) - Fix initial for no voicemail greetings after setup wizard (thanks los93sol)&lt;br /&gt;
* pluto-vdr (469,468) &lt;br /&gt;
** Syntax error fix in StartVDRClient - should start correct on MDs now.&lt;br /&gt;
** Add a default remote.conf so people can use the keyboard to control VDR.&lt;br /&gt;
* pluto-system-database (211) - Add support for TED5000 and Energy Monitoring Events to be used by future devices&lt;br /&gt;
&lt;br /&gt;
== Update 2010-06-01 23002 ==&lt;br /&gt;
* lmce-hulu-player (739,740) - changed the accept() loop to be non-blocking, fixing the hung hulu player issue when the router needs to reload. -TSCHAK &lt;br /&gt;
* mce-diskless-tools (627,628) - cBuckle sent in a bugfix that prevented media directors with more than one NIC from properly being detected. We now assume the booting NIC is eth0. Thanks cBuckle! -TSCHKA&lt;br /&gt;
* pluto-website-admin (220) - Fixes #705, and #706 -TSCHAK&lt;br /&gt;
* pluto-system-database (211) - Fixes to QuickStartTemplate so icons will show. -TSCHAK&lt;br /&gt;
* pluto-std-plugins (116,135) - Fix to General Info Plugin so that it will properly show PNG images&lt;br /&gt;
* pluto-boot-scripts (234) - Fix to UpdateQuickStartIcons.sh to download quick start icons and convert to PNG if needed.&lt;br /&gt;
* lmce-update-system (650,651) - Fix preferences file&lt;br /&gt;
&lt;br /&gt;
== Update 2010-05-20 22959 ==&lt;br /&gt;
* lmce-update-system (650,651) - Setup pinning to the LinuxMCE repository&lt;br /&gt;
* pluto-mythtv-plugin (134,153) - MythTV 0.23 support has been baked in. Thanks mandingo&lt;br /&gt;
* pluto-mythtv-player (133,152)&lt;br /&gt;
&lt;br /&gt;
== Update 2010-05-20 22958 ==&lt;br /&gt;
&lt;br /&gt;
* pluto-orbitergen (226,227) - Orbitergen changed to specify that MIDs are on-screen orbiters. This may change in the future, but I need to test something... --[[User:Tschak909|Tschak909]] 06:22, 9 May 2010 (CEST)&lt;br /&gt;
* pluto-system-database (211) - [http://svn.linuxmce.org/trac.cgi/ticket/684 Toshiba RAS series IR control template]&lt;br /&gt;
* pluto-generic-serial-device (307,335) - [http://svn.linuxmce.org/trac.cgi/ticket/685 access return parameters in GSD device]&lt;br /&gt;
* mythtv-0.23&lt;br /&gt;
&lt;br /&gt;
== Update 2010-04-28 22898  ==&lt;br /&gt;
* pluto-website-admin (220) - [http://svn.linuxmce.org/trac.cgi/ticket/662 Fixes #662 (again ;) )]&lt;br /&gt;
* pluto-system-database (211) - sqlCVS additions for the SmartQ V7 MID&lt;br /&gt;
* pluto-updateentarea (341,342) - code in Setup to allow for devices in the MID category to get media scenarios.&lt;br /&gt;
* pluto-storage-devices (533) - Refs [http://svn.linuxmce.org/trac.cgi/ticket/672 #672]&lt;br /&gt;
* mce-diskless-tools (627,628) - Refs [http://svn.linuxmce.org/trac.cgi/ticket/655 #655]&lt;br /&gt;
&lt;br /&gt;
== Update 2010-04-14 22889 *CLOUD Release* ==&lt;br /&gt;
*  pluto-system-database (211) changes to the repository information for a package&lt;br /&gt;
&lt;br /&gt;
== Update 2010-04-08 22883 ==&lt;br /&gt;
* pluto-boot-script (234) - Change smb.conf template to disable unix extension.&lt;br /&gt;
* pluto-website-admin (220) - [http://svn.linuxmce.org/trac.cgi/ticket/662 Fixes #662]&lt;br /&gt;
* lmce-picture-plugin (756,757) Refs [http://svn.linuxmce.org/trac.cgi/ticket/650 #650] fix pause of slideshow&lt;br /&gt;
* pluto-system-database (211) [http://svn.linuxmce.org/trac.cgi/ticket/650 #650] designer changes for picture viewer&lt;br /&gt;
&lt;br /&gt;
== Update 2010-03-23 22876 ==&lt;br /&gt;
* pluto-std-plugins (116,135) Refs [http://svn.linuxmce.org/trac.cgi/ticket/650 #650], media plugin supports play all for pictures&lt;br /&gt;
* lmce-picture-viewer (754,755) Refs [http://svn.linuxmce.org/trac.cgi/ticket/650 #650], picture viewer&lt;br /&gt;
* lmce-picture-plugin (756,757) Refs [http://svn.linuxmce.org/trac.cgi/ticket/650 #650], picture plugin&lt;br /&gt;
* Pluto PNP Detection Scripts (562), added detection script for Pioneer Elite series of Receivers&lt;br /&gt;
* Pluto Capture Card Setup Scripts (580), added input change scripts for various capture cards&lt;br /&gt;
&lt;br /&gt;
== Update 2010-03-14 22853 ==&lt;br /&gt;
* pluto-website-admin (220) - Refs [http://svn.linuxmce.org/trac.cgi/ticket/637 #637] Reload event plugin configuration when events change (no need to reload router anymore, except after adding/deleting event commands), [http://svn.linuxmce.org/trac.cgi/ticket/648 #648] Fix device template adding to avoid sqlCVS commit problems&lt;br /&gt;
* pluto-orbiter (119,138) [http://svn.linuxmce.org/trac.cgi/ticket/647 #647] Enable event mapping for mouse buttons&lt;br /&gt;
* pluto-system-database (211) [http://svn.linuxmce.org/trac.cgi/ticket/646 #646] Device template for Logitech MX Air mouse&lt;br /&gt;
* pluto-std-plugins (116,135) - Refs [http://svn.linuxmce.org/trac.cgi/ticket/651 #651] fix router crash with boolean event parameters&lt;br /&gt;
&lt;br /&gt;
== Update 2010-03-07 22832 ==&lt;br /&gt;
&lt;br /&gt;
* pluto-zwave-lighting (505,506) - Refs [http://svn.linuxmce.org/trac.cgi/ticket/620 #620] make command for child work again&lt;br /&gt;
* pluto-system-database (211) - new package and package changes for datalogger plugin&lt;br /&gt;
* lmce-datalog-database (753) - datalogger database, refs [http://svn.linuxmce.org/trac.cgi/ticket/630 #630]&lt;br /&gt;
* lmce-datalogger-plugin (686,687) - Refs [http://svn.linuxmce.org/trac.cgi/ticket/630 #630] install automatically, configurable graph display&lt;br /&gt;
* lmce-datalog-db (688,689) - Refs [http://svn.linuxmce.org/trac.cgi/ticket/630 #630]&lt;br /&gt;
* pluto-website-admin (220) - Refs [http://svn.linuxmce.org/trac.cgi/ticket/630 #630], [http://svn.linuxmce.org/trac.cgi/ticket/633 #633], fix for some attribute names not showing up in media browser page, improvements to datalogger section&lt;br /&gt;
* pluto-std-plugins (116,135) - Refs [http://svn.linuxmce.org/trac.cgi/ticket/637 #637] allow event plugin to reload configuration without a router reload&lt;br /&gt;
&lt;br /&gt;
== Update 2010-02-28 22812 ==&lt;br /&gt;
&lt;br /&gt;
Hulu Now works, and the HAI Omni Security panel driver has been checked in and integrated.&lt;br /&gt;
&lt;br /&gt;
* pluto-system-database (211) - Addition of buttons to Hulu Remote (tschak)&lt;br /&gt;
* lmce-hulu-player (739,740) - Hulu Player now uses Hulu Desktop&#039;s LIRCD port via a fake LIRCD Server. (tschak)&lt;br /&gt;
* 751  	HAI Control Program&lt;br /&gt;
* 750 	HAI Control Program Source&lt;br /&gt;
* 749  	LinuxMCE HAI Omni RS232 Panel Support&lt;br /&gt;
* 748 	LinuxMCE HAI Omni RS232 Panel Support Source&lt;br /&gt;
* pluto-zwave-lighting (505,506) - Refs [http://svn.linuxmce.org/trac.cgi/ticket/620 #620] multi instance support for sensors&lt;br /&gt;
* pluto-mplayer-player (657,656) - Refs [http://svn.linuxmce.org/trac.cgi/ticket/471 #471] Finally committed vdpau support for mplayer&lt;br /&gt;
&lt;br /&gt;
== Update 2010-02-23 22803 ==&lt;br /&gt;
* pluto-boot-script (234) &lt;br /&gt;
** Install zaptel-modules and load ztdummy for meetme&lt;br /&gt;
** Disable KDE screensaver upon KDE Desktop start (fixes #600)&lt;br /&gt;
* pluto-dhcpd-plugin (302) - Make sure to transfer database secret into sip_additional.conf&lt;br /&gt;
* pluto-orbiter (119,138) - Color fixes&lt;br /&gt;
* pluto-proxy-orbiter (488,487) - Color fixes - thanks radu&lt;br /&gt;
* pluto-vdr (468,469)&lt;br /&gt;
** Only create setup.conf if it does not contain a remotetimers entry&lt;br /&gt;
** Disable shutdown of system from VDR&lt;br /&gt;
* v4l2-firmware (733) - Added new firmware drivers to support a broader range of DVB cards&lt;br /&gt;
&lt;br /&gt;
== Update 2010-02-18 22795 ==&lt;br /&gt;
* pluto-proxy-orbiter (487,488) Fixes [http://svn.linuxmce.org/trac.cgi/ticket/610 #610]&lt;br /&gt;
&lt;br /&gt;
== Update 2010-02-16 22777 ==&lt;br /&gt;
* pluto-std-plugins (116,135)&lt;br /&gt;
** Fixes event criteria for PK_EventParameter [http://svn.linuxmce.org/trac.cgi/ticket/602 #602]&lt;br /&gt;
** Fixes time of day - can now check againt hh:mm:ss [http://svn.linuxmce.org/trac.cgi/ticket/605 #605]&lt;br /&gt;
** Fixed bug introduced in the two fixes above [http://svn.linuxmce.org/trac.cgi/ticket/608 #608]&lt;br /&gt;
* pluto-vdr (468,469) - Remove SourceCaps entries from default setup.conf&lt;br /&gt;
* pluto-system-database (211) - Hulu Player/PlugIn changes&lt;br /&gt;
* Hulu PlugIn (737,738) - device template constant fixes&lt;br /&gt;
* Hulu Player (739,740) - device template constant fixes&lt;br /&gt;
&lt;br /&gt;
== Update 2010-02-14 22768 ==&lt;br /&gt;
* pluto-xine-player (117,136) - removed dependency for libxine1-ffmpeg&lt;br /&gt;
&lt;br /&gt;
== Update 2010-02-13 22765 ==&lt;br /&gt;
* pluto-std-plugins - fixes #587&lt;br /&gt;
&lt;br /&gt;
== Update 2010-02-12 22763 ==&lt;br /&gt;
* new-installer &lt;br /&gt;
** changes in kdm link management&lt;br /&gt;
** verify kubuntu-desktop is installed&lt;br /&gt;
* pluto-boot-script (234) - Fix copying of desktop link to activate Orbiter into root&#039;s Desktop dir&lt;br /&gt;
* pluto-vdr (469,468) - Only backup setup.conf if it exists.&lt;br /&gt;
&lt;br /&gt;
== Update 2010-02-10 22758 ==&lt;br /&gt;
* pluto-boot-script (234)- Add Activate Orbiter to KDE desktop (#596)&lt;br /&gt;
* mce-diskless-tools (627,628) - Add a link to the desktop to call Activate Orbiter (#596)&lt;br /&gt;
* linux-diskless-image (2.6.27-17) - Update to the latest kernel released by Ubuntu&lt;br /&gt;
* alsa-modules (2.6.27-17) - Update to the latest kernel released by Ubuntu&lt;br /&gt;
* zaptel-modules (2.6.27-17) - Update to the latest kernel released by Ubuntu&lt;br /&gt;
&lt;br /&gt;
== Update 2010-02-08 22754 ==&lt;br /&gt;
* Hulu PlugIn (737,738) - Initial Beta of Hulu Support&lt;br /&gt;
* Hulu Player (739,740) - from TSCHAK&lt;br /&gt;
* Game Player (673,674) - Added support for custom controller files to Game Player - see TankStick DT #2100 for an example.&lt;br /&gt;
* pluto-std-plugins - fixes #587&lt;br /&gt;
&lt;br /&gt;
== Update 2010-02-03 22733 ==&lt;br /&gt;
* MythTV - We provide our own packages (0.22 sources packages from mythbuntu )&lt;br /&gt;
* ZWave Lighting (505,506) - Wizard bugfix&lt;br /&gt;
&lt;br /&gt;
== Update 2010-01-27 22704 ==&lt;br /&gt;
* pluto-photo-screen-saver (582,581) - maintain correct image aspect ratio [http://svn.linuxmce.org/trac.cgi/ticket/568 #568]&lt;br /&gt;
* pluto-vdr (469,468) &lt;br /&gt;
** Use remotetimer for central scheduling&lt;br /&gt;
** Don&#039;t autostart VDR on MD&lt;br /&gt;
** Support VDPAU &lt;br /&gt;
* VDR - We provide our own packages (1.7.11 sources packages from eTobi and free-vdr.de)&lt;br /&gt;
&lt;br /&gt;
==  Update 2010-01-16 22689 ==&lt;br /&gt;
* pluto-boot-scripts (234) - new safe_delete.sh script for safely deleting database entries&lt;br /&gt;
* pluto-cm15a (730,731) - new DCE device, CM15A USB interface for X10&lt;br /&gt;
* pluto-mythtv-plugin (134,153) - Capture card install now goes directly to the setup wizard&lt;br /&gt;
* pluto-orbiter (119,138) - Capture card install now goes directly to the setup wizard&lt;br /&gt;
* pluto-storage-devices (533) - mount no longer echos out errors during ro filesystem&lt;br /&gt;
* pluto-photo-screen-saver (582,581) - Rotate image according to exif tag [http://svn.linuxmce.org/trac.cgi/ticket/566 #566]&lt;br /&gt;
&lt;br /&gt;
== Update 2010-01-08 22669 ==&lt;br /&gt;
*pluto-boot-scripts (234) &lt;br /&gt;
** Purge_Camera_Archives.pl fixed&lt;br /&gt;
** backup/restore fixed&lt;br /&gt;
** enable_wol called from Startup script - WOL for MDs should work again&lt;br /&gt;
*pluto-motion-wrapper (456,455) - Now calls the purge script every 6 hours and on reload&lt;br /&gt;
*pluto-storage-devices (533) &lt;br /&gt;
** Hostname now added to string to be displayed on orbiters when new drives are detected. &lt;br /&gt;
** Boot partitions will be filtered out also.&lt;br /&gt;
*pluto-system-database (211) - changes to MotionWrapper&#039;s motion.conf default options to use new option names&lt;br /&gt;
&lt;br /&gt;
== Update 2009-12-25 22639 - Christmas fix ==&lt;br /&gt;
* freepbx - removal of chan_vpb.so to circumvent coredumps on system without a Voicetronix board (#519)&lt;br /&gt;
* pluto-avwizard (555,556) - modification of startup scripts to not screw the system upon status calls to the startup scripts&lt;br /&gt;
* pluto-boot-scripts (234)&lt;br /&gt;
** modification of startup scripts to not screw the system upon status calls to the startup scripts&lt;br /&gt;
** updated Backup/Restore functionallity&lt;br /&gt;
** fixes  web admin log links for hybrid MD&lt;br /&gt;
** Make sure only a single logrotate configuration file for LinuxMCE exist&lt;br /&gt;
* pluto-hdhomerun(621,620)- Fixes bug where only 1 tuner was added to mythtv&lt;br /&gt;
* pluto-mythtv-plugin (134,153) - Fixes deletion of of hostname from mythconverg.capturecard by creating and using a dummy videosource&lt;br /&gt;
* pluto-simplephone (498,499) - Adds support for password in DeviceData&lt;br /&gt;
* pluto-std-plugins (116,135) - Adds support for specialized interfaces&lt;br /&gt;
* pluto-system-database (211) - Some devicedata changes for SIP phone templates to include devicedata for password&lt;br /&gt;
* pluto-website-admin (220) - Fixes Climate Command Wizard Set Temperature command, Climate Command Wizard also now works with On//Off Climate Devices&lt;br /&gt;
* pluto-orbiter (119,138) - Fixes issue with input devices crashing orbiter [http://svn.linuxmce.org/trac.cgi/ticket/522 #522]&lt;br /&gt;
&lt;br /&gt;
== Update 2009-12-14 22600 ==&lt;br /&gt;
* pluto-dcerouter (154,155) - Fixes broken Delay command&lt;br /&gt;
* pluto-libresolution (545,544) - UseEDID HDMI Audio xorg.conf entry&lt;br /&gt;
* pluto-asterisk (270.271) - Fix for Messagenet configuration script (changing Window&#039;s EOL characters)&lt;br /&gt;
* pluto-system-database (211) - Some devicedata changes for dcerouter delay command and DCS-5300G camera&lt;br /&gt;
* pluto-website-admin (220) - fix HDMI selection in web admin&lt;br /&gt;
* pluto-xine-player (117,136) - removed 1 second sleep after play media. refactored code to stop screen saver&lt;br /&gt;
&lt;br /&gt;
== Update 2009-12-12 22598 ==&lt;br /&gt;
* pluto-website-admin (220) - sql fix from http://svn.linuxmce.org/trac.cgi/changeset/22567&lt;br /&gt;
* pluto-xine-plugin (118,137) - fix for remote audio cd streaming [http://svn.linuxmce.org/trac.cgi/ticket/470 #470] - still not working&lt;br /&gt;
* pluto-xine-player - refactor screen saver handling&lt;br /&gt;
* pluto-disk-drive (122,141) - fix for remote audio cd streaming [http://svn.linuxmce.org/trac.cgi/ticket/470 #470] - still not working&lt;br /&gt;
* pluto-x-scripts (520,523) - fix for audio over HDMI&lt;br /&gt;
* alsa-lib, alsa-utils, lib64asound2, libasound2 - fix for audio over HDMI&lt;br /&gt;
&lt;br /&gt;
== Update 2009-12-06 22569 ==&lt;br /&gt;
* pluto-dce-router (154,155) - now depends on lmce-skins-uita&lt;br /&gt;
* pluto-system-database (211) - new lmce-skins-uita package definition&lt;br /&gt;
* lmce-skins-uita (727) - new skin&lt;br /&gt;
* MPlayer_Player (656,657) - Videos that is played by mplayer can now take advantage of vdpau. (Set hw accel to &amp;quot;auto&amp;quot; or &amp;quot;vdpau&amp;quot;)&lt;br /&gt;
* pluto-xine-player (117,136) - don&#039;t stop screen saver when playing audio [http://svn.linuxmce.org/trac.cgi/ticket/486 #486]&lt;br /&gt;
* pluto-orbiter (119,138) - hide xine when playing audio, keeps screen saver visible [http://svn.linuxmce.org/trac.cgi/ticket/486 #486]&lt;br /&gt;
* Update of Zaptel and other kernel related packages to -16&lt;br /&gt;
&lt;br /&gt;
== Update 2009-12-03 22558 ==&lt;br /&gt;
* Build_Replacement_Package - freepbx (ubuntu/asterisk/freepbx) - Ticket #345 - Fixes the issue of installing new modules in FreePBX.&lt;br /&gt;
* pluto-asterisk (270.271) - Phone Lines fixing - asterisk (src/asterisk) - Ticket #374 - Fixes the issue during the creation procedure of a new phone lines via web LinuxMCE Admin. New MessageNet Provider support.&lt;br /&gt;
* pluto-avwizard (555,556) - Fixes #480 - Fails to identify untouched xorg.conf&lt;br /&gt;
* pluto-boot-scripts (234) &lt;br /&gt;
** Cleanup in nvidia-config&lt;br /&gt;
** MD WOL Problem fixed&lt;br /&gt;
* pluto-website-admin (220)&lt;br /&gt;
** #469 IVR menue will now be regenerated every time a phone line is added.&lt;br /&gt;
** #221 IR commands selection screen now has sort modes to make it easier to sift through all those commands.&lt;br /&gt;
** #219 Various layout improvements to the wizard pages.&lt;br /&gt;
* pluto-xine-player (117,136) - changes for HDMI out&lt;br /&gt;
* pluto-std-plugins (116,135) - Changes to Telecom PlugIn to give proper audio switching behaviour when USB Conference microphones are used for the media director phone. This is of relevance to particular configurations that do not allow concurrent access to the soundcard (such as coax/optical settings). -tschak&lt;br /&gt;
&lt;br /&gt;
== Bugfixes ==&lt;br /&gt;
=== Mythtv-plugin fails to install ===&lt;br /&gt;
Install with apt-get install -f &amp;lt;name-of-package&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jeangot</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Building_LinuxMCE_0810&amp;diff=27092</id>
		<title>Building LinuxMCE 0810</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Building_LinuxMCE_0810&amp;diff=27092"/>
		<updated>2011-03-02T04:31:24Z</updated>

		<summary type="html">&lt;p&gt;Jeangot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category: tutorials]]&lt;br /&gt;
[[category: programmer&#039;s Guide]]&lt;br /&gt;
{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
{{versioninfo|810Status=relevant|810UpdatedDate=8 October 2010|810UpdatedBy=golgoj4}}&lt;br /&gt;
The following steps explain how to install a development environment onto your core in a chroot environment, so that your running core and its database are not affected. Alternatively, you could build on a separate machine or virtual machine with a clean Kubuntu-8.10 install. There are notes to this effect at the end of the page.&lt;br /&gt;
&lt;br /&gt;
==Setting up a chroot environment==&lt;br /&gt;
Start with becoming root on your core. The  following steps will need to be done using super user privileges.&lt;br /&gt;
  sudo su -&lt;br /&gt;
&lt;br /&gt;
===Create the environment===&lt;br /&gt;
 apt-get install debootstrap&lt;br /&gt;
 debootstrap --arch i386 intrepid /media/kubuntu-8.10/ http://old-releases.ubuntu.com/ubuntu&lt;br /&gt;
&lt;br /&gt;
Note: the following steps will also have to be performed after each reboot&lt;br /&gt;
====Mount required directories====&lt;br /&gt;
 mount --bind /dev /media/kubuntu-8.10/dev&lt;br /&gt;
 mount none /media/kubuntu-8.10/proc -t proc&lt;br /&gt;
 mount none /media/kubuntu-8.10/dev/pts -t devpts&lt;br /&gt;
&lt;br /&gt;
====Change-root into the environment====&lt;br /&gt;
 chroot /media/kubuntu-8.10&lt;br /&gt;
&lt;br /&gt;
===Verify apt&#039;s list of repositories===&lt;br /&gt;
Make sure &#039;&#039;/etc/apt/sources.list&#039;&#039; (inside the chroot) contains something very similar to:&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&#039;&#039;old-releases.ubuntu.com&#039;&#039;/ubuntu/ intrepid  main restricted universe multiverse&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&#039;&#039;old-releases.ubuntu.com&#039;&#039;/ubuntu/ intrepid  main restricted universe&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&#039;&#039;old-releases.ubuntu.com&#039;&#039;/ubuntu/ intrepid-updates  main restricted universe multiverse&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&#039;&#039;old-releases.ubuntu.com&#039;&#039;/ubuntu/ intrepid-updates  main restricted universe&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;security.ubuntu.com/ubuntu intrepid-security  main restricted universe&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;security.ubuntu.com/ubuntu intrepid-security  main restricted universe&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://www.e-tobi.net/vdr-experimental/ sid base&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://deb.linuxmce.org/ubuntu/ intrepid beta2&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://deb.linuxmce.org/ubuntu/ 20dev_ubuntu main&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following line is added to the sources.list during the prepare script and should not be added before. [[User:Posde|posde]]&lt;br /&gt;
 deb      &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;debian.slimdevices.com/ stable  main&lt;br /&gt;
&lt;br /&gt;
Add the e-tobi.net GPG key&lt;br /&gt;
 gpg --keyserver pgp.mit.edu --recv-keys F7180D26AEDAA642&lt;br /&gt;
 gpg --export --armor F7180D26AEDAA642 | sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
===Installing needed packages===&lt;br /&gt;
&#039;&#039;&#039;Important!&#039;&#039;&#039; Perform these also &#039;&#039;&#039;after&#039;&#039;&#039; chrooting if you are building in a chrooted environment.&lt;br /&gt;
&lt;br /&gt;
If you get messages like &#039;&#039;/usr/bin/locale: Cannot set LC_MESSAGES to default locale: No such file or directory&#039;&#039;, that meens that $LANG is set. Either clear the LANG or install the needed language pack (english given example given in the code-snip below).&lt;br /&gt;
&lt;br /&gt;
(Leave the root password for MySQL empty.)&lt;br /&gt;
 apt-get update&lt;br /&gt;
 &lt;br /&gt;
 #  Uncomment either of lines below if needed (see explanation above)&lt;br /&gt;
 #unset LANG&lt;br /&gt;
 #apt-get install language-pack-en-base&lt;br /&gt;
 &lt;br /&gt;
 apt-get dist-upgrade&lt;br /&gt;
 apt-get install aptitude openssh-client mysql-server&lt;br /&gt;
&lt;br /&gt;
====Reconfigure MySQL to not open a TCP-IP network port====&lt;br /&gt;
(only needed if you are building in a chrooted environment)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sed &#039;s/^[^#]*bind-address[[:space:]]*=.*$/#&amp;amp;\nskip-networking/&#039; -i /etc/mysql/my.cnf&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Start MySQL Server====&lt;br /&gt;
Do not execute the mysql start before doing the sed statement listed above.&lt;br /&gt;
 /etc/init.d/mysql start&lt;br /&gt;
&lt;br /&gt;
==Building from source==&lt;br /&gt;
For a more in detail description of all the steps involved see [[Building LinuxMCE 0804]]&lt;br /&gt;
&lt;br /&gt;
Currently the focus is on getting the following to work completely.&lt;br /&gt;
&lt;br /&gt;
===Getting started===&lt;br /&gt;
You should only have to do this part once initially.&lt;br /&gt;
&lt;br /&gt;
====Obtaining the build scripts====&lt;br /&gt;
 apt-get install subversion&lt;br /&gt;
 svn co http://svn.linuxmce.org/svn/branches/LinuxMCE-0810/src/Ubuntu_Helpers_NoHardcode&lt;br /&gt;
&lt;br /&gt;
====Installing the build scripts====&lt;br /&gt;
 cd Ubuntu_Helpers_NoHardcode&lt;br /&gt;
 ./install.sh&lt;br /&gt;
&lt;br /&gt;
====Configuring the build scripts====&lt;br /&gt;
 cat &amp;gt;/etc/lmce-build/builder.custom.conf &amp;lt;&amp;lt;EOF&lt;br /&gt;
 &lt;br /&gt;
 # Avoid DVD build step[s]&lt;br /&gt;
 do_not_build_sl_dvd=&amp;quot;yes&amp;quot;&lt;br /&gt;
 do_not_build_dl_dvd=&amp;quot;yes&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Create fake win32 binaries&lt;br /&gt;
 win32_create_fake=&amp;quot;yes&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Point to the development sqlCVS server for 0810&lt;br /&gt;
 sqlcvs_host=&amp;quot;schema.linuxmce.org&amp;quot;&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
===Preparing for build===&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/lmce-build&lt;br /&gt;
&lt;br /&gt;
The preparation steps one at a time (recommended):&lt;br /&gt;
 prepare-scripts/install-build-pkgs.sh&lt;br /&gt;
 prepare-scripts/cd1-prepare.sh&lt;br /&gt;
 prepare-scripts/cd2-prepare.sh&lt;br /&gt;
 prepare-scripts/create-diskless-debootstrap.sh&lt;br /&gt;
 prepare-scripts/import-external-files.sh&lt;br /&gt;
 prepare-scripts/preseed-build-pkgs.sh&lt;br /&gt;
&lt;br /&gt;
Or, you could do them all in one go with:&lt;br /&gt;
 ./prepare.sh&lt;br /&gt;
&lt;br /&gt;
===Building from source===&lt;br /&gt;
&lt;br /&gt;
All the build steps can be executed seperately (recommended at least the first time):&lt;br /&gt;
 build-scripts/checkout-svn.sh&lt;br /&gt;
 build-scripts/import-win32bins.sh&lt;br /&gt;
 build-scripts/build-replacements.sh&lt;br /&gt;
 build-scripts/build-makerelease.sh&lt;br /&gt;
 build-scripts/import-databases.sh&lt;br /&gt;
 build-scripts/build-maindebs.sh&lt;br /&gt;
 build-scripts/get-closed-source-debs.sh&lt;br /&gt;
 build-scripts/create-repo.sh&lt;br /&gt;
 build-scripts/cd1-build.sh&lt;br /&gt;
 build-scripts/cd2-build.sh&lt;br /&gt;
&lt;br /&gt;
Or the following script will run them all:&lt;br /&gt;
 ./build.sh&lt;br /&gt;
&lt;br /&gt;
== Using the build&#039;s output ==&lt;br /&gt;
The build.sh script puts all created deb-files under /var/www. Setup a web server to point to that directory. &lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
In the machine, where you want to test the build, follow the instructions on using the alpha build. After the step pre-install-from-repo.sh, go into /etc/apt/sources.list, and replace the deb.linuxmce.org line with&lt;br /&gt;
 deb &amp;lt;ip-address-of-your-builder&amp;gt; ./&lt;br /&gt;
and re-run apt-get update&lt;br /&gt;
You will find, that two packages are missing. Get those two packages from the regular repository and put them into the builders /var/www directory&lt;br /&gt;
&lt;br /&gt;
 pushd /var/www&lt;br /&gt;
 wget http://deb.linuxmce.org/ubuntu/dists/intrepid/lmce-alpha2/binary-all/libft-perl_1.0_all.deb&lt;br /&gt;
 wget http://deb.linuxmce.org/ubuntu/dists/intrepid/lmce-alpha-latest/binary-all/mail-transport-agent_1.0_all.deb &lt;br /&gt;
 dpkg-scanpackages . &amp;gt;Packages&lt;br /&gt;
 gzip -c Packages &amp;gt; Packages.gz&lt;br /&gt;
 popd&lt;br /&gt;
&lt;br /&gt;
Now, on your new or test core, execute another apt-get update, and you are good to go for the mce-install.sh&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
If you want to speed up building on a multi-core machine, amend build-scripts/build-maindebs.sh and change the call to MakeRelease to include -j &amp;lt;number of cores&amp;gt;. Before executing the build, copy libresolution.so from an older build to your lib dir, and run ldconfig.&lt;br /&gt;
&lt;br /&gt;
=== Without -j 2 ===&lt;br /&gt;
 23:36:44  Compiling and building packages&lt;br /&gt;
 01:42:50  *** STEP: Download closed source debs&lt;br /&gt;
&lt;br /&gt;
 Total: roughly 2h 6minutes for compiling&lt;br /&gt;
&lt;br /&gt;
=== With -j 2 ===&lt;br /&gt;
 13:13:44  Compiling and building packages&lt;br /&gt;
 14:51:56  *** STEP: Download closed source debs&lt;br /&gt;
&lt;br /&gt;
 Total: roughly 1h 38minutes for compiling&lt;br /&gt;
&lt;br /&gt;
=== Notes for installing on a virgin Kubuntu 8.10 installation (no chroot) ===&lt;br /&gt;
* As pointed out above, there is no need to run the command below, IF you are not chroot&#039;ing&lt;br /&gt;
  sed &#039;s/^[^#]*bind-address[[:space:]]*=.*$/#&amp;amp;\nskip-networking/&#039; -i /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
* After you reboot, you will notice that KDE mysteriously vanished, and you will go to a gnome desktop.  I&#039;m not sure why this is, but it does not seem to affect the builder any.&lt;br /&gt;
&lt;br /&gt;
* If you want to run this builder headless (or just want to ability to ssh in to it), then you must configure it for ssh access by installing an ssh server&lt;br /&gt;
 sudo apt-get install openssh-server&lt;/div&gt;</summary>
		<author><name>Jeangot</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Building_LinuxMCE_0810&amp;diff=27040</id>
		<title>Building LinuxMCE 0810</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Building_LinuxMCE_0810&amp;diff=27040"/>
		<updated>2011-02-24T15:52:53Z</updated>

		<summary type="html">&lt;p&gt;Jeangot: /* Building from source */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category: tutorials]]&lt;br /&gt;
[[category: programmer&#039;s Guide]]&lt;br /&gt;
{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
{{versioninfo|810Status=relevant|810UpdatedDate=8 October 2010|810UpdatedBy=golgoj4}}&lt;br /&gt;
The following steps explain how to install a development environment onto your core in a chroot environment, so that your running core and its database are not affected. Alternatively, you could build on a separate machine or virtual machine with a clean Kubuntu-8.10 install. There are notes to this effect at the end of the page.&lt;br /&gt;
&lt;br /&gt;
==Setting up a chroot environment==&lt;br /&gt;
Start with becoming root on your core. The  following steps will need to be done using super user privileges.&lt;br /&gt;
  sudo su -&lt;br /&gt;
&lt;br /&gt;
===Create the environment===&lt;br /&gt;
 apt-get install debootstrap&lt;br /&gt;
 debootstrap --arch i386 intrepid /media/kubuntu-8.10/ http://old-releases.ubuntu.com/ubuntu&lt;br /&gt;
&lt;br /&gt;
Note: the following steps will also have to be performed after each reboot&lt;br /&gt;
====Mount required directories====&lt;br /&gt;
 mount --bind /dev /media/kubuntu-8.10/dev&lt;br /&gt;
 mount none /media/kubuntu-8.10/proc -t proc&lt;br /&gt;
 mount none /media/kubuntu-8.10/dev/pts -t devpts&lt;br /&gt;
&lt;br /&gt;
====Change-root into the environment====&lt;br /&gt;
 chroot /media/kubuntu-8.10&lt;br /&gt;
&lt;br /&gt;
===Verify apt&#039;s list of repositories===&lt;br /&gt;
Make sure &#039;&#039;/etc/apt/sources.list&#039;&#039; (inside the chroot) contains something very similar to:&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&#039;&#039;old-releases.ubuntu.com&#039;&#039;/ubuntu/ intrepid  main restricted universe multiverse&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&#039;&#039;old-releases.ubuntu.com&#039;&#039;/ubuntu/ intrepid  main restricted universe&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&#039;&#039;old-releases.ubuntu.com&#039;&#039;/ubuntu/ intrepid-updates  main restricted universe multiverse&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&#039;&#039;old-releases.ubuntu.com&#039;&#039;/ubuntu/ intrepid-updates  main restricted universe&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;security.ubuntu.com/ubuntu intrepid-security  main restricted universe&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;security.ubuntu.com/ubuntu intrepid-security  main restricted universe&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://www.e-tobi.net/vdr-experimental/ sid base&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://deb.linuxmce.org/ubuntu/ intrepid beta2&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://deb.linuxmce.org/ubuntu/ 20dev_ubuntu main&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;del&amp;gt;deb     &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;www.avenard.org/files/ubuntu-repos/ intrepid release testing&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following line is added to the sources.list during the prepare script and should not be added before. [[User:Posde|posde]]&lt;br /&gt;
 deb      &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;debian.slimdevices.com/ stable  main&lt;br /&gt;
&lt;br /&gt;
The Avenard repository is no longer used. [[User:L3mce|l3mce]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;del&amp;gt;Add the Avenard GPG key&amp;lt;/del&amp;gt;&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install wget&lt;br /&gt;
 &amp;lt;del&amp;gt;wget http://www.avenard.org/files/ubuntu-repos/ubuntu-repos.key &amp;amp;&amp;amp; sudo apt-key add ubuntu-repos.key &amp;amp;&amp;amp; rm ubuntu-repos.key&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the e-tobi.net GPG key&lt;br /&gt;
 gpg --keyserver pgp.mit.edu --recv-keys F7180D26AEDAA642&lt;br /&gt;
 gpg --export --armor F7180D26AEDAA642 | sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
===Installing needed packages===&lt;br /&gt;
&#039;&#039;&#039;Important!&#039;&#039;&#039; Perform these also &#039;&#039;&#039;after&#039;&#039;&#039; chrooting if you are building in a chrooted environment.&lt;br /&gt;
&lt;br /&gt;
If you get messages like &#039;&#039;/usr/bin/locale: Cannot set LC_MESSAGES to default locale: No such file or directory&#039;&#039;, that meens that $LANG is set. Either clear the LANG or install the needed language pack (english given example given in the code-snip below).&lt;br /&gt;
&lt;br /&gt;
(Leave the root password for MySQL empty.)&lt;br /&gt;
 apt-get update&lt;br /&gt;
 &lt;br /&gt;
 #  Uncomment either of lines below if needed (see explanation above)&lt;br /&gt;
 #unset LANG&lt;br /&gt;
 #apt-get install language-pack-en-base&lt;br /&gt;
 &lt;br /&gt;
 apt-get dist-upgrade&lt;br /&gt;
 apt-get install aptitude openssh-client mysql-server&lt;br /&gt;
&lt;br /&gt;
====Reconfigure MySQL to not open a TCP-IP network port====&lt;br /&gt;
(only needed if you are building in a chrooted environment)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sed &#039;s/^[^#]*bind-address[[:space:]]*=.*$/#&amp;amp;\nskip-networking/&#039; -i /etc/mysql/my.cnf&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Start MySQL Server====&lt;br /&gt;
Do not execute the mysql start before doing the sed statement listed above.&lt;br /&gt;
 /etc/init.d/mysql start&lt;br /&gt;
&lt;br /&gt;
==Building from source==&lt;br /&gt;
For a more in detail description of all the steps involved see [[Building LinuxMCE 0804]]&lt;br /&gt;
&lt;br /&gt;
Currently the focus is on getting the following to work completely.&lt;br /&gt;
&lt;br /&gt;
===Getting started===&lt;br /&gt;
You should only have to do this part once initially.&lt;br /&gt;
&lt;br /&gt;
====Obtaining the build scripts====&lt;br /&gt;
 apt-get install subversion&lt;br /&gt;
 svn co http://svn.linuxmce.org/svn/branches/LinuxMCE-0810/src/Ubuntu_Helpers_NoHardcode&lt;br /&gt;
&lt;br /&gt;
====Installing the build scripts====&lt;br /&gt;
 cd Ubuntu_Helpers_NoHardcode&lt;br /&gt;
 ./install.sh&lt;br /&gt;
&lt;br /&gt;
====Configuring the build scripts====&lt;br /&gt;
 cat &amp;gt;/etc/lmce-build/builder.custom.conf &amp;lt;&amp;lt;EOF&lt;br /&gt;
 &lt;br /&gt;
 # Avoid DVD build step[s]&lt;br /&gt;
 do_not_build_sl_dvd=&amp;quot;yes&amp;quot;&lt;br /&gt;
 do_not_build_dl_dvd=&amp;quot;yes&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Create fake win32 binaries&lt;br /&gt;
 win32_create_fake=&amp;quot;yes&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Point to the development sqlCVS server for 0810&lt;br /&gt;
 sqlcvs_host=&amp;quot;schema.linuxmce.org&amp;quot;&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
===Preparing for build===&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/lmce-build&lt;br /&gt;
&lt;br /&gt;
The preparation steps one at a time (recommended):&lt;br /&gt;
 prepare-scripts/install-build-pkgs.sh&lt;br /&gt;
 prepare-scripts/cd1-prepare.sh&lt;br /&gt;
 prepare-scripts/cd2-prepare.sh&lt;br /&gt;
 prepare-scripts/create-diskless-debootstrap.sh&lt;br /&gt;
 prepare-scripts/import-external-files.sh&lt;br /&gt;
 prepare-scripts/preseed-build-pkgs.sh&lt;br /&gt;
&lt;br /&gt;
Or, you could do them all in one go with:&lt;br /&gt;
 ./prepare.sh&lt;br /&gt;
&lt;br /&gt;
===Building from source===&lt;br /&gt;
&lt;br /&gt;
All the build steps can be executed seperately (recommended at least the first time):&lt;br /&gt;
 build-scripts/checkout-svn.sh&lt;br /&gt;
 build-scripts/import-win32bins.sh&lt;br /&gt;
 build-scripts/build-replacements.sh&lt;br /&gt;
 build-scripts/build-makerelease.sh&lt;br /&gt;
 build-scripts/import-databases.sh&lt;br /&gt;
 build-scripts/build-maindebs.sh&lt;br /&gt;
 build-scripts/get-closed-source-debs.sh&lt;br /&gt;
 build-scripts/create-repo.sh&lt;br /&gt;
 build-scripts/cd1-build.sh&lt;br /&gt;
 build-scripts/cd2-build.sh&lt;br /&gt;
&lt;br /&gt;
Or the following script will run them all:&lt;br /&gt;
 ./build.sh&lt;br /&gt;
&lt;br /&gt;
== Using the build&#039;s output ==&lt;br /&gt;
The build.sh script puts all created deb-files under /var/www. Setup a web server to point to that directory. &lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
In the machine, where you want to test the build, follow the instructions on using the alpha build. After the step pre-install-from-repo.sh, go into /etc/apt/sources.list, and replace the deb.linuxmce.org line with&lt;br /&gt;
 deb &amp;lt;ip-address-of-your-builder&amp;gt; ./&lt;br /&gt;
and re-run apt-get update&lt;br /&gt;
You will find, that two packages are missing. Get those two packages from the regular repository and put them into the builders /var/www directory&lt;br /&gt;
&lt;br /&gt;
 pushd /var/www&lt;br /&gt;
 wget http://deb.linuxmce.org/ubuntu/dists/intrepid/lmce-alpha2/binary-all/libft-perl_1.0_all.deb&lt;br /&gt;
 wget http://deb.linuxmce.org/ubuntu/dists/intrepid/lmce-alpha-latest/binary-all/mail-transport-agent_1.0_all.deb &lt;br /&gt;
 dpkg-scanpackages . &amp;gt;Packages&lt;br /&gt;
 gzip -c Packages &amp;gt; Packages.gz&lt;br /&gt;
 popd&lt;br /&gt;
&lt;br /&gt;
Now, on your new or test core, execute another apt-get update, and you are good to go for the mce-install.sh&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
If you want to speed up building on a multi-core machine, amend build-scripts/build-maindebs.sh and change the call to MakeRelease to include -j &amp;lt;number of cores&amp;gt;. Before executing the build, copy libresolution.so from an older build to your lib dir, and run ldconfig.&lt;br /&gt;
&lt;br /&gt;
=== Without -j 2 ===&lt;br /&gt;
 23:36:44  Compiling and building packages&lt;br /&gt;
 01:42:50  *** STEP: Download closed source debs&lt;br /&gt;
&lt;br /&gt;
 Total: roughly 2h 6minutes for compiling&lt;br /&gt;
&lt;br /&gt;
=== With -j 2 ===&lt;br /&gt;
 13:13:44  Compiling and building packages&lt;br /&gt;
 14:51:56  *** STEP: Download closed source debs&lt;br /&gt;
&lt;br /&gt;
 Total: roughly 1h 38minutes for compiling&lt;br /&gt;
&lt;br /&gt;
=== Error during prepare step ===&lt;br /&gt;
If you get an error during the prepare stage&lt;br /&gt;
 E: Couldn&#039;t find package libvdpau-dev&lt;br /&gt;
&amp;lt;del&amp;gt;make sure to have avenard repo in your builders sources.list&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;del&amp;gt;deb http://www.avenard.org/files/ubuntu-repos/ intrepid release testing&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Notes for installing on a virgin Kubuntu 8.10 installation (no chroot) ===&lt;br /&gt;
* As pointed out above, there is no need to run the command below, IF you are not chroot&#039;ing&lt;br /&gt;
  sed &#039;s/^[^#]*bind-address[[:space:]]*=.*$/#&amp;amp;\nskip-networking/&#039; -i /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
* After you reboot, you will notice that KDE mysteriously vanished, and you will go to a gnome desktop.  I&#039;m not sure why this is, but it does not seem to affect the builder any.&lt;br /&gt;
&lt;br /&gt;
* If you want to run this builder headless (or just want to ability to ssh in to it), then you must configure it for ssh access by installing an ssh server&lt;br /&gt;
 sudo apt-get install openssh-server&lt;/div&gt;</summary>
		<author><name>Jeangot</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Building_LinuxMCE_0810&amp;diff=27034</id>
		<title>Building LinuxMCE 0810</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Building_LinuxMCE_0810&amp;diff=27034"/>
		<updated>2011-02-23T16:59:23Z</updated>

		<summary type="html">&lt;p&gt;Jeangot: /* Installing the build scripts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category: tutorials]]&lt;br /&gt;
[[category: programmer&#039;s Guide]]&lt;br /&gt;
{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
{{versioninfo|810Status=relevant|810UpdatedDate=8 October 2010|810UpdatedBy=golgoj4}}&lt;br /&gt;
The following steps explain how to install a development environment onto your core in a chroot environment, so that your running core and its database are not affected. Alternatively, you could build on a separate machine or virtual machine with a clean Kubuntu-8.10 install. There are notes to this effect at the end of the page.&lt;br /&gt;
&lt;br /&gt;
==Setting up a chroot environment==&lt;br /&gt;
Start with becoming root on your core. The  following steps will need to be done using super user privileges.&lt;br /&gt;
  sudo su -&lt;br /&gt;
&lt;br /&gt;
===Create the environment===&lt;br /&gt;
 apt-get install debootstrap&lt;br /&gt;
 debootstrap --arch i386 intrepid /media/kubuntu-8.10/ http://old-releases.ubuntu.com/ubuntu&lt;br /&gt;
&lt;br /&gt;
Note: the following steps will also have to be performed after each reboot&lt;br /&gt;
====Mount required directories====&lt;br /&gt;
 mount --bind /dev /media/kubuntu-8.10/dev&lt;br /&gt;
 mount none /media/kubuntu-8.10/proc -t proc&lt;br /&gt;
 mount none /media/kubuntu-8.10/dev/pts -t devpts&lt;br /&gt;
&lt;br /&gt;
====Change-root into the environment====&lt;br /&gt;
 chroot /media/kubuntu-8.10&lt;br /&gt;
&lt;br /&gt;
===Verify apt&#039;s list of repositories===&lt;br /&gt;
Make sure &#039;&#039;/etc/apt/sources.list&#039;&#039; (inside the chroot) contains something very similar to:&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&#039;&#039;old-releases.ubuntu.com&#039;&#039;/ubuntu/ intrepid  main restricted universe multiverse&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&#039;&#039;old-releases.ubuntu.com&#039;&#039;/ubuntu/ intrepid  main restricted universe&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&#039;&#039;old-releases.ubuntu.com&#039;&#039;/ubuntu/ intrepid-updates  main restricted universe multiverse&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&#039;&#039;old-releases.ubuntu.com&#039;&#039;/ubuntu/ intrepid-updates  main restricted universe&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;security.ubuntu.com/ubuntu intrepid-security  main restricted universe&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;security.ubuntu.com/ubuntu intrepid-security  main restricted universe&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://www.e-tobi.net/vdr-experimental/ sid base&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://deb.linuxmce.org/ubuntu/ intrepid beta2&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://deb.linuxmce.org/ubuntu/ 20dev_ubuntu main&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;del&amp;gt;deb     &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;www.avenard.org/files/ubuntu-repos/ intrepid release testing&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following line is added to the sources.list during the prepare script and should not be added before. [[User:Posde|posde]]&lt;br /&gt;
 deb      &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;debian.slimdevices.com/ stable  main&lt;br /&gt;
&lt;br /&gt;
The Avenard repository is no longer used. [[User:L3mce|l3mce]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;del&amp;gt;Add the Avenard GPG key&amp;lt;/del&amp;gt;&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install wget&lt;br /&gt;
 &amp;lt;del&amp;gt;wget http://www.avenard.org/files/ubuntu-repos/ubuntu-repos.key &amp;amp;&amp;amp; sudo apt-key add ubuntu-repos.key &amp;amp;&amp;amp; rm ubuntu-repos.key&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the e-tobi.net GPG key&lt;br /&gt;
 gpg --keyserver pgp.mit.edu --recv-keys F7180D26AEDAA642&lt;br /&gt;
 gpg --export --armor F7180D26AEDAA642 | sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
===Installing needed packages===&lt;br /&gt;
&#039;&#039;&#039;Important!&#039;&#039;&#039; Perform these also &#039;&#039;&#039;after&#039;&#039;&#039; chrooting if you are building in a chrooted environment.&lt;br /&gt;
&lt;br /&gt;
If you get messages like &#039;&#039;/usr/bin/locale: Cannot set LC_MESSAGES to default locale: No such file or directory&#039;&#039;, that meens that $LANG is set. Either clear the LANG or install the needed language pack (english given example given in the code-snip below).&lt;br /&gt;
&lt;br /&gt;
(Leave the root password for MySQL empty.)&lt;br /&gt;
 apt-get update&lt;br /&gt;
 &lt;br /&gt;
 #  Uncomment either of lines below if needed (see explanation above)&lt;br /&gt;
 #unset LANG&lt;br /&gt;
 #apt-get install language-pack-en-base&lt;br /&gt;
 &lt;br /&gt;
 apt-get dist-upgrade&lt;br /&gt;
 apt-get install aptitude openssh-client mysql-server&lt;br /&gt;
&lt;br /&gt;
====Reconfigure MySQL to not open a TCP-IP network port====&lt;br /&gt;
(only needed if you are building in a chrooted environment)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sed &#039;s/^[^#]*bind-address[[:space:]]*=.*$/#&amp;amp;\nskip-networking/&#039; -i /etc/mysql/my.cnf&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Start MySQL Server====&lt;br /&gt;
Do not execute the mysql start before doing the sed statement listed above.&lt;br /&gt;
 /etc/init.d/mysql start&lt;br /&gt;
&lt;br /&gt;
==Building from source==&lt;br /&gt;
For a more in detail description of all the steps involved see [[Building LinuxMCE 0804]]&lt;br /&gt;
&lt;br /&gt;
Currently the focus is on getting the following to work completely.&lt;br /&gt;
&lt;br /&gt;
===Getting started===&lt;br /&gt;
You should only have to do this part once initially.&lt;br /&gt;
&lt;br /&gt;
====Obtaining the build scripts====&lt;br /&gt;
 apt-get install subversion&lt;br /&gt;
 svn co http://svn.linuxmce.org/svn/branches/LinuxMCE-0810/src/Ubuntu_Helpers_NoHardcode&lt;br /&gt;
&lt;br /&gt;
====Installing the build scripts====&lt;br /&gt;
 cd Ubuntu_Helpers_NoHardcode&lt;br /&gt;
 ./install.sh&lt;br /&gt;
&lt;br /&gt;
====Configuring the build scripts====&lt;br /&gt;
 cat &amp;gt;/etc/lmce-build/builder.custom.conf &amp;lt;&amp;lt;EOF&lt;br /&gt;
 &lt;br /&gt;
 # Avoid DVD build step[s]&lt;br /&gt;
 do_not_build_sl_dvd=&amp;quot;yes&amp;quot;&lt;br /&gt;
 do_not_build_dl_dvd=&amp;quot;yes&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Create fake win32 binaries&lt;br /&gt;
 win32_create_fake=&amp;quot;yes&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Point to the development sqlCVS server for 0810&lt;br /&gt;
 sqlcvs_host=&amp;quot;schema.linuxmce.org&amp;quot;&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
===Preparing for build===&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/lmce-build&lt;br /&gt;
&lt;br /&gt;
The preparation steps one at a time (recommended):&lt;br /&gt;
 prepare-scripts/install-build-pkgs.sh&lt;br /&gt;
 prepare-scripts/cd1-prepare.sh&lt;br /&gt;
 prepare-scripts/cd2-prepare.sh&lt;br /&gt;
 prepare-scripts/create-diskless-debootstrap.sh&lt;br /&gt;
 prepare-scripts/import-external-files.sh&lt;br /&gt;
 prepare-scripts/preseed-build-pkgs.sh&lt;br /&gt;
&lt;br /&gt;
Or, you could do them all in one go with:&lt;br /&gt;
 ./prepare.sh&lt;br /&gt;
&lt;br /&gt;
===Building from source===&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/lmce-build&lt;br /&gt;
&lt;br /&gt;
All the build steps can be executed seperately (recommended at least the first time):&lt;br /&gt;
 build-scripts/checkout-svn.sh&lt;br /&gt;
 build-scripts/import-win32bins.sh&lt;br /&gt;
 build-scripts/build-replacements.sh&lt;br /&gt;
 build-scripts/build-makerelease.sh&lt;br /&gt;
 build-scripts/import-databases.sh&lt;br /&gt;
 build-scripts/build-maindebs.sh&lt;br /&gt;
 build-scripts/get-closed-source-debs.sh&lt;br /&gt;
 build-scripts/create-repo.sh&lt;br /&gt;
 build-scripts/cd1-build.sh&lt;br /&gt;
 build-scripts/cd2-build.sh&lt;br /&gt;
&lt;br /&gt;
Or the following script will run them all:&lt;br /&gt;
 ./build.sh&lt;br /&gt;
&lt;br /&gt;
== Using the build&#039;s output ==&lt;br /&gt;
The build.sh script puts all created deb-files under /var/www. Setup a web server to point to that directory. &lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
In the machine, where you want to test the build, follow the instructions on using the alpha build. After the step pre-install-from-repo.sh, go into /etc/apt/sources.list, and replace the deb.linuxmce.org line with&lt;br /&gt;
 deb &amp;lt;ip-address-of-your-builder&amp;gt; ./&lt;br /&gt;
and re-run apt-get update&lt;br /&gt;
You will find, that two packages are missing. Get those two packages from the regular repository and put them into the builders /var/www directory&lt;br /&gt;
&lt;br /&gt;
 pushd /var/www&lt;br /&gt;
 wget http://deb.linuxmce.org/ubuntu/dists/intrepid/lmce-alpha2/binary-all/libft-perl_1.0_all.deb&lt;br /&gt;
 wget http://deb.linuxmce.org/ubuntu/dists/intrepid/lmce-alpha-latest/binary-all/mail-transport-agent_1.0_all.deb &lt;br /&gt;
 dpkg-scanpackages . &amp;gt;Packages&lt;br /&gt;
 gzip -c Packages &amp;gt; Packages.gz&lt;br /&gt;
 popd&lt;br /&gt;
&lt;br /&gt;
Now, on your new or test core, execute another apt-get update, and you are good to go for the mce-install.sh&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
If you want to speed up building on a multi-core machine, amend build-scripts/build-maindebs.sh and change the call to MakeRelease to include -j &amp;lt;number of cores&amp;gt;. Before executing the build, copy libresolution.so from an older build to your lib dir, and run ldconfig.&lt;br /&gt;
&lt;br /&gt;
=== Without -j 2 ===&lt;br /&gt;
 23:36:44  Compiling and building packages&lt;br /&gt;
 01:42:50  *** STEP: Download closed source debs&lt;br /&gt;
&lt;br /&gt;
 Total: roughly 2h 6minutes for compiling&lt;br /&gt;
&lt;br /&gt;
=== With -j 2 ===&lt;br /&gt;
 13:13:44  Compiling and building packages&lt;br /&gt;
 14:51:56  *** STEP: Download closed source debs&lt;br /&gt;
&lt;br /&gt;
 Total: roughly 1h 38minutes for compiling&lt;br /&gt;
&lt;br /&gt;
=== Error during prepare step ===&lt;br /&gt;
If you get an error during the prepare stage&lt;br /&gt;
 E: Couldn&#039;t find package libvdpau-dev&lt;br /&gt;
&amp;lt;del&amp;gt;make sure to have avenard repo in your builders sources.list&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;del&amp;gt;deb http://www.avenard.org/files/ubuntu-repos/ intrepid release testing&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Notes for installing on a virgin Kubuntu 8.10 installation (no chroot) ===&lt;br /&gt;
* As pointed out above, there is no need to run the command below, IF you are not chroot&#039;ing&lt;br /&gt;
  sed &#039;s/^[^#]*bind-address[[:space:]]*=.*$/#&amp;amp;\nskip-networking/&#039; -i /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
* After you reboot, you will notice that KDE mysteriously vanished, and you will go to a gnome desktop.  I&#039;m not sure why this is, but it does not seem to affect the builder any.&lt;br /&gt;
&lt;br /&gt;
* If you want to run this builder headless (or just want to ability to ssh in to it), then you must configure it for ssh access by installing an ssh server&lt;br /&gt;
 sudo apt-get install openssh-server&lt;/div&gt;</summary>
		<author><name>Jeangot</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Building_LinuxMCE_0810&amp;diff=27033</id>
		<title>Building LinuxMCE 0810</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Building_LinuxMCE_0810&amp;diff=27033"/>
		<updated>2011-02-23T16:57:15Z</updated>

		<summary type="html">&lt;p&gt;Jeangot: /* Configuring the build scripts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category: tutorials]]&lt;br /&gt;
[[category: programmer&#039;s Guide]]&lt;br /&gt;
{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
{{versioninfo|810Status=relevant|810UpdatedDate=8 October 2010|810UpdatedBy=golgoj4}}&lt;br /&gt;
The following steps explain how to install a development environment onto your core in a chroot environment, so that your running core and its database are not affected. Alternatively, you could build on a separate machine or virtual machine with a clean Kubuntu-8.10 install. There are notes to this effect at the end of the page.&lt;br /&gt;
&lt;br /&gt;
==Setting up a chroot environment==&lt;br /&gt;
Start with becoming root on your core. The  following steps will need to be done using super user privileges.&lt;br /&gt;
  sudo su -&lt;br /&gt;
&lt;br /&gt;
===Create the environment===&lt;br /&gt;
 apt-get install debootstrap&lt;br /&gt;
 debootstrap --arch i386 intrepid /media/kubuntu-8.10/ http://old-releases.ubuntu.com/ubuntu&lt;br /&gt;
&lt;br /&gt;
Note: the following steps will also have to be performed after each reboot&lt;br /&gt;
====Mount required directories====&lt;br /&gt;
 mount --bind /dev /media/kubuntu-8.10/dev&lt;br /&gt;
 mount none /media/kubuntu-8.10/proc -t proc&lt;br /&gt;
 mount none /media/kubuntu-8.10/dev/pts -t devpts&lt;br /&gt;
&lt;br /&gt;
====Change-root into the environment====&lt;br /&gt;
 chroot /media/kubuntu-8.10&lt;br /&gt;
&lt;br /&gt;
===Verify apt&#039;s list of repositories===&lt;br /&gt;
Make sure &#039;&#039;/etc/apt/sources.list&#039;&#039; (inside the chroot) contains something very similar to:&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&#039;&#039;old-releases.ubuntu.com&#039;&#039;/ubuntu/ intrepid  main restricted universe multiverse&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&#039;&#039;old-releases.ubuntu.com&#039;&#039;/ubuntu/ intrepid  main restricted universe&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&#039;&#039;old-releases.ubuntu.com&#039;&#039;/ubuntu/ intrepid-updates  main restricted universe multiverse&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&#039;&#039;old-releases.ubuntu.com&#039;&#039;/ubuntu/ intrepid-updates  main restricted universe&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;security.ubuntu.com/ubuntu intrepid-security  main restricted universe&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;security.ubuntu.com/ubuntu intrepid-security  main restricted universe&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://www.e-tobi.net/vdr-experimental/ sid base&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://deb.linuxmce.org/ubuntu/ intrepid beta2&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://deb.linuxmce.org/ubuntu/ 20dev_ubuntu main&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;del&amp;gt;deb     &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;www.avenard.org/files/ubuntu-repos/ intrepid release testing&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following line is added to the sources.list during the prepare script and should not be added before. [[User:Posde|posde]]&lt;br /&gt;
 deb      &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;debian.slimdevices.com/ stable  main&lt;br /&gt;
&lt;br /&gt;
The Avenard repository is no longer used. [[User:L3mce|l3mce]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;del&amp;gt;Add the Avenard GPG key&amp;lt;/del&amp;gt;&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install wget&lt;br /&gt;
 &amp;lt;del&amp;gt;wget http://www.avenard.org/files/ubuntu-repos/ubuntu-repos.key &amp;amp;&amp;amp; sudo apt-key add ubuntu-repos.key &amp;amp;&amp;amp; rm ubuntu-repos.key&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the e-tobi.net GPG key&lt;br /&gt;
 gpg --keyserver pgp.mit.edu --recv-keys F7180D26AEDAA642&lt;br /&gt;
 gpg --export --armor F7180D26AEDAA642 | sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
===Installing needed packages===&lt;br /&gt;
&#039;&#039;&#039;Important!&#039;&#039;&#039; Perform these also &#039;&#039;&#039;after&#039;&#039;&#039; chrooting if you are building in a chrooted environment.&lt;br /&gt;
&lt;br /&gt;
If you get messages like &#039;&#039;/usr/bin/locale: Cannot set LC_MESSAGES to default locale: No such file or directory&#039;&#039;, that meens that $LANG is set. Either clear the LANG or install the needed language pack (english given example given in the code-snip below).&lt;br /&gt;
&lt;br /&gt;
(Leave the root password for MySQL empty.)&lt;br /&gt;
 apt-get update&lt;br /&gt;
 &lt;br /&gt;
 #  Uncomment either of lines below if needed (see explanation above)&lt;br /&gt;
 #unset LANG&lt;br /&gt;
 #apt-get install language-pack-en-base&lt;br /&gt;
 &lt;br /&gt;
 apt-get dist-upgrade&lt;br /&gt;
 apt-get install aptitude openssh-client mysql-server&lt;br /&gt;
&lt;br /&gt;
====Reconfigure MySQL to not open a TCP-IP network port====&lt;br /&gt;
(only needed if you are building in a chrooted environment)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sed &#039;s/^[^#]*bind-address[[:space:]]*=.*$/#&amp;amp;\nskip-networking/&#039; -i /etc/mysql/my.cnf&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Start MySQL Server====&lt;br /&gt;
Do not execute the mysql start before doing the sed statement listed above.&lt;br /&gt;
 /etc/init.d/mysql start&lt;br /&gt;
&lt;br /&gt;
==Building from source==&lt;br /&gt;
For a more in detail description of all the steps involved see [[Building LinuxMCE 0804]]&lt;br /&gt;
&lt;br /&gt;
Currently the focus is on getting the following to work completely.&lt;br /&gt;
&lt;br /&gt;
===Getting started===&lt;br /&gt;
You should only have to do this part once initially.&lt;br /&gt;
&lt;br /&gt;
====Obtaining the build scripts====&lt;br /&gt;
 apt-get install subversion&lt;br /&gt;
 svn co http://svn.linuxmce.org/svn/branches/LinuxMCE-0810/src/Ubuntu_Helpers_NoHardcode&lt;br /&gt;
&lt;br /&gt;
====Installing the build scripts====&lt;br /&gt;
 cd Ubuntu_Helpers_NoHardcode&lt;br /&gt;
 ./install.sh&lt;br /&gt;
 cd /usr/local/lmce-build&lt;br /&gt;
&lt;br /&gt;
====Configuring the build scripts====&lt;br /&gt;
 cat &amp;gt;/etc/lmce-build/builder.custom.conf &amp;lt;&amp;lt;EOF&lt;br /&gt;
 &lt;br /&gt;
 # Avoid DVD build step[s]&lt;br /&gt;
 do_not_build_sl_dvd=&amp;quot;yes&amp;quot;&lt;br /&gt;
 do_not_build_dl_dvd=&amp;quot;yes&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Create fake win32 binaries&lt;br /&gt;
 win32_create_fake=&amp;quot;yes&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Point to the development sqlCVS server for 0810&lt;br /&gt;
 sqlcvs_host=&amp;quot;schema.linuxmce.org&amp;quot;&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
===Preparing for build===&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/lmce-build&lt;br /&gt;
&lt;br /&gt;
The preparation steps one at a time (recommended):&lt;br /&gt;
 prepare-scripts/install-build-pkgs.sh&lt;br /&gt;
 prepare-scripts/cd1-prepare.sh&lt;br /&gt;
 prepare-scripts/cd2-prepare.sh&lt;br /&gt;
 prepare-scripts/create-diskless-debootstrap.sh&lt;br /&gt;
 prepare-scripts/import-external-files.sh&lt;br /&gt;
 prepare-scripts/preseed-build-pkgs.sh&lt;br /&gt;
&lt;br /&gt;
Or, you could do them all in one go with:&lt;br /&gt;
 ./prepare.sh&lt;br /&gt;
&lt;br /&gt;
===Building from source===&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/lmce-build&lt;br /&gt;
&lt;br /&gt;
All the build steps can be executed seperately (recommended at least the first time):&lt;br /&gt;
 build-scripts/checkout-svn.sh&lt;br /&gt;
 build-scripts/import-win32bins.sh&lt;br /&gt;
 build-scripts/build-replacements.sh&lt;br /&gt;
 build-scripts/build-makerelease.sh&lt;br /&gt;
 build-scripts/import-databases.sh&lt;br /&gt;
 build-scripts/build-maindebs.sh&lt;br /&gt;
 build-scripts/get-closed-source-debs.sh&lt;br /&gt;
 build-scripts/create-repo.sh&lt;br /&gt;
 build-scripts/cd1-build.sh&lt;br /&gt;
 build-scripts/cd2-build.sh&lt;br /&gt;
&lt;br /&gt;
Or the following script will run them all:&lt;br /&gt;
 ./build.sh&lt;br /&gt;
&lt;br /&gt;
== Using the build&#039;s output ==&lt;br /&gt;
The build.sh script puts all created deb-files under /var/www. Setup a web server to point to that directory. &lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
In the machine, where you want to test the build, follow the instructions on using the alpha build. After the step pre-install-from-repo.sh, go into /etc/apt/sources.list, and replace the deb.linuxmce.org line with&lt;br /&gt;
 deb &amp;lt;ip-address-of-your-builder&amp;gt; ./&lt;br /&gt;
and re-run apt-get update&lt;br /&gt;
You will find, that two packages are missing. Get those two packages from the regular repository and put them into the builders /var/www directory&lt;br /&gt;
&lt;br /&gt;
 pushd /var/www&lt;br /&gt;
 wget http://deb.linuxmce.org/ubuntu/dists/intrepid/lmce-alpha2/binary-all/libft-perl_1.0_all.deb&lt;br /&gt;
 wget http://deb.linuxmce.org/ubuntu/dists/intrepid/lmce-alpha-latest/binary-all/mail-transport-agent_1.0_all.deb &lt;br /&gt;
 dpkg-scanpackages . &amp;gt;Packages&lt;br /&gt;
 gzip -c Packages &amp;gt; Packages.gz&lt;br /&gt;
 popd&lt;br /&gt;
&lt;br /&gt;
Now, on your new or test core, execute another apt-get update, and you are good to go for the mce-install.sh&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
If you want to speed up building on a multi-core machine, amend build-scripts/build-maindebs.sh and change the call to MakeRelease to include -j &amp;lt;number of cores&amp;gt;. Before executing the build, copy libresolution.so from an older build to your lib dir, and run ldconfig.&lt;br /&gt;
&lt;br /&gt;
=== Without -j 2 ===&lt;br /&gt;
 23:36:44  Compiling and building packages&lt;br /&gt;
 01:42:50  *** STEP: Download closed source debs&lt;br /&gt;
&lt;br /&gt;
 Total: roughly 2h 6minutes for compiling&lt;br /&gt;
&lt;br /&gt;
=== With -j 2 ===&lt;br /&gt;
 13:13:44  Compiling and building packages&lt;br /&gt;
 14:51:56  *** STEP: Download closed source debs&lt;br /&gt;
&lt;br /&gt;
 Total: roughly 1h 38minutes for compiling&lt;br /&gt;
&lt;br /&gt;
=== Error during prepare step ===&lt;br /&gt;
If you get an error during the prepare stage&lt;br /&gt;
 E: Couldn&#039;t find package libvdpau-dev&lt;br /&gt;
&amp;lt;del&amp;gt;make sure to have avenard repo in your builders sources.list&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;del&amp;gt;deb http://www.avenard.org/files/ubuntu-repos/ intrepid release testing&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Notes for installing on a virgin Kubuntu 8.10 installation (no chroot) ===&lt;br /&gt;
* As pointed out above, there is no need to run the command below, IF you are not chroot&#039;ing&lt;br /&gt;
  sed &#039;s/^[^#]*bind-address[[:space:]]*=.*$/#&amp;amp;\nskip-networking/&#039; -i /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
* After you reboot, you will notice that KDE mysteriously vanished, and you will go to a gnome desktop.  I&#039;m not sure why this is, but it does not seem to affect the builder any.&lt;br /&gt;
&lt;br /&gt;
* If you want to run this builder headless (or just want to ability to ssh in to it), then you must configure it for ssh access by installing an ssh server&lt;br /&gt;
 sudo apt-get install openssh-server&lt;/div&gt;</summary>
		<author><name>Jeangot</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Building_LinuxMCE_0810&amp;diff=27032</id>
		<title>Building LinuxMCE 0810</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Building_LinuxMCE_0810&amp;diff=27032"/>
		<updated>2011-02-23T16:44:46Z</updated>

		<summary type="html">&lt;p&gt;Jeangot: /* Getting started */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category: tutorials]]&lt;br /&gt;
[[category: programmer&#039;s Guide]]&lt;br /&gt;
{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
{{versioninfo|810Status=relevant|810UpdatedDate=8 October 2010|810UpdatedBy=golgoj4}}&lt;br /&gt;
The following steps explain how to install a development environment onto your core in a chroot environment, so that your running core and its database are not affected. Alternatively, you could build on a separate machine or virtual machine with a clean Kubuntu-8.10 install. There are notes to this effect at the end of the page.&lt;br /&gt;
&lt;br /&gt;
==Setting up a chroot environment==&lt;br /&gt;
Start with becoming root on your core. The  following steps will need to be done using super user privileges.&lt;br /&gt;
  sudo su -&lt;br /&gt;
&lt;br /&gt;
===Create the environment===&lt;br /&gt;
 apt-get install debootstrap&lt;br /&gt;
 debootstrap --arch i386 intrepid /media/kubuntu-8.10/ http://old-releases.ubuntu.com/ubuntu&lt;br /&gt;
&lt;br /&gt;
Note: the following steps will also have to be performed after each reboot&lt;br /&gt;
====Mount required directories====&lt;br /&gt;
 mount --bind /dev /media/kubuntu-8.10/dev&lt;br /&gt;
 mount none /media/kubuntu-8.10/proc -t proc&lt;br /&gt;
 mount none /media/kubuntu-8.10/dev/pts -t devpts&lt;br /&gt;
&lt;br /&gt;
====Change-root into the environment====&lt;br /&gt;
 chroot /media/kubuntu-8.10&lt;br /&gt;
&lt;br /&gt;
===Verify apt&#039;s list of repositories===&lt;br /&gt;
Make sure &#039;&#039;/etc/apt/sources.list&#039;&#039; (inside the chroot) contains something very similar to:&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&#039;&#039;old-releases.ubuntu.com&#039;&#039;/ubuntu/ intrepid  main restricted universe multiverse&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&#039;&#039;old-releases.ubuntu.com&#039;&#039;/ubuntu/ intrepid  main restricted universe&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&#039;&#039;old-releases.ubuntu.com&#039;&#039;/ubuntu/ intrepid-updates  main restricted universe multiverse&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&#039;&#039;old-releases.ubuntu.com&#039;&#039;/ubuntu/ intrepid-updates  main restricted universe&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;security.ubuntu.com/ubuntu intrepid-security  main restricted universe&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;security.ubuntu.com/ubuntu intrepid-security  main restricted universe&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://www.e-tobi.net/vdr-experimental/ sid base&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://deb.linuxmce.org/ubuntu/ intrepid beta2&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://deb.linuxmce.org/ubuntu/ 20dev_ubuntu main&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;del&amp;gt;deb     &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;www.avenard.org/files/ubuntu-repos/ intrepid release testing&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following line is added to the sources.list during the prepare script and should not be added before. [[User:Posde|posde]]&lt;br /&gt;
 deb      &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;debian.slimdevices.com/ stable  main&lt;br /&gt;
&lt;br /&gt;
The Avenard repository is no longer used. [[User:L3mce|l3mce]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;del&amp;gt;Add the Avenard GPG key&amp;lt;/del&amp;gt;&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install wget&lt;br /&gt;
 &amp;lt;del&amp;gt;wget http://www.avenard.org/files/ubuntu-repos/ubuntu-repos.key &amp;amp;&amp;amp; sudo apt-key add ubuntu-repos.key &amp;amp;&amp;amp; rm ubuntu-repos.key&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the e-tobi.net GPG key&lt;br /&gt;
 gpg --keyserver pgp.mit.edu --recv-keys F7180D26AEDAA642&lt;br /&gt;
 gpg --export --armor F7180D26AEDAA642 | sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
===Installing needed packages===&lt;br /&gt;
&#039;&#039;&#039;Important!&#039;&#039;&#039; Perform these also &#039;&#039;&#039;after&#039;&#039;&#039; chrooting if you are building in a chrooted environment.&lt;br /&gt;
&lt;br /&gt;
If you get messages like &#039;&#039;/usr/bin/locale: Cannot set LC_MESSAGES to default locale: No such file or directory&#039;&#039;, that meens that $LANG is set. Either clear the LANG or install the needed language pack (english given example given in the code-snip below).&lt;br /&gt;
&lt;br /&gt;
(Leave the root password for MySQL empty.)&lt;br /&gt;
 apt-get update&lt;br /&gt;
 &lt;br /&gt;
 #  Uncomment either of lines below if needed (see explanation above)&lt;br /&gt;
 #unset LANG&lt;br /&gt;
 #apt-get install language-pack-en-base&lt;br /&gt;
 &lt;br /&gt;
 apt-get dist-upgrade&lt;br /&gt;
 apt-get install aptitude openssh-client mysql-server&lt;br /&gt;
&lt;br /&gt;
====Reconfigure MySQL to not open a TCP-IP network port====&lt;br /&gt;
(only needed if you are building in a chrooted environment)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sed &#039;s/^[^#]*bind-address[[:space:]]*=.*$/#&amp;amp;\nskip-networking/&#039; -i /etc/mysql/my.cnf&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Start MySQL Server====&lt;br /&gt;
Do not execute the mysql start before doing the sed statement listed above.&lt;br /&gt;
 /etc/init.d/mysql start&lt;br /&gt;
&lt;br /&gt;
==Building from source==&lt;br /&gt;
For a more in detail description of all the steps involved see [[Building LinuxMCE 0804]]&lt;br /&gt;
&lt;br /&gt;
Currently the focus is on getting the following to work completely.&lt;br /&gt;
&lt;br /&gt;
===Getting started===&lt;br /&gt;
You should only have to do this part once initially.&lt;br /&gt;
&lt;br /&gt;
====Obtaining the build scripts====&lt;br /&gt;
 apt-get install subversion&lt;br /&gt;
 svn co http://svn.linuxmce.org/svn/branches/LinuxMCE-0810/src/Ubuntu_Helpers_NoHardcode&lt;br /&gt;
&lt;br /&gt;
====Installing the build scripts====&lt;br /&gt;
 cd Ubuntu_Helpers_NoHardcode&lt;br /&gt;
 ./install.sh&lt;br /&gt;
 cd /usr/local/lmce-build&lt;br /&gt;
&lt;br /&gt;
====Configuring the build scripts====&lt;br /&gt;
 cat &amp;gt;/etc/lmce-build/builder.custom.conf &amp;lt;&amp;lt;EOF&lt;br /&gt;
 &lt;br /&gt;
 # Uncomment to avoid DVD build step[s]&lt;br /&gt;
 do_not_build_sl_dvd=&amp;quot;yes&amp;quot;&lt;br /&gt;
 do_not_build_dl_dvd=&amp;quot;yes&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Uncomment to create fake win32 binaries&lt;br /&gt;
 win32_create_fake=&amp;quot;yes&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Point to the development sqlCVS server for 0810&lt;br /&gt;
 sqlcvs_host=&amp;quot;schema.linuxmce.org&amp;quot;&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
===Preparing for build===&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/lmce-build&lt;br /&gt;
&lt;br /&gt;
The preparation steps one at a time (recommended):&lt;br /&gt;
 prepare-scripts/install-build-pkgs.sh&lt;br /&gt;
 prepare-scripts/cd1-prepare.sh&lt;br /&gt;
 prepare-scripts/cd2-prepare.sh&lt;br /&gt;
 prepare-scripts/create-diskless-debootstrap.sh&lt;br /&gt;
 prepare-scripts/import-external-files.sh&lt;br /&gt;
 prepare-scripts/preseed-build-pkgs.sh&lt;br /&gt;
&lt;br /&gt;
Or, you could do them all in one go with:&lt;br /&gt;
 ./prepare.sh&lt;br /&gt;
&lt;br /&gt;
===Building from source===&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/lmce-build&lt;br /&gt;
&lt;br /&gt;
All the build steps can be executed seperately (recommended at least the first time):&lt;br /&gt;
 build-scripts/checkout-svn.sh&lt;br /&gt;
 build-scripts/import-win32bins.sh&lt;br /&gt;
 build-scripts/build-replacements.sh&lt;br /&gt;
 build-scripts/build-makerelease.sh&lt;br /&gt;
 build-scripts/import-databases.sh&lt;br /&gt;
 build-scripts/build-maindebs.sh&lt;br /&gt;
 build-scripts/get-closed-source-debs.sh&lt;br /&gt;
 build-scripts/create-repo.sh&lt;br /&gt;
 build-scripts/cd1-build.sh&lt;br /&gt;
 build-scripts/cd2-build.sh&lt;br /&gt;
&lt;br /&gt;
Or the following script will run them all:&lt;br /&gt;
 ./build.sh&lt;br /&gt;
&lt;br /&gt;
== Using the build&#039;s output ==&lt;br /&gt;
The build.sh script puts all created deb-files under /var/www. Setup a web server to point to that directory. &lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
In the machine, where you want to test the build, follow the instructions on using the alpha build. After the step pre-install-from-repo.sh, go into /etc/apt/sources.list, and replace the deb.linuxmce.org line with&lt;br /&gt;
 deb &amp;lt;ip-address-of-your-builder&amp;gt; ./&lt;br /&gt;
and re-run apt-get update&lt;br /&gt;
You will find, that two packages are missing. Get those two packages from the regular repository and put them into the builders /var/www directory&lt;br /&gt;
&lt;br /&gt;
 pushd /var/www&lt;br /&gt;
 wget http://deb.linuxmce.org/ubuntu/dists/intrepid/lmce-alpha2/binary-all/libft-perl_1.0_all.deb&lt;br /&gt;
 wget http://deb.linuxmce.org/ubuntu/dists/intrepid/lmce-alpha-latest/binary-all/mail-transport-agent_1.0_all.deb &lt;br /&gt;
 dpkg-scanpackages . &amp;gt;Packages&lt;br /&gt;
 gzip -c Packages &amp;gt; Packages.gz&lt;br /&gt;
 popd&lt;br /&gt;
&lt;br /&gt;
Now, on your new or test core, execute another apt-get update, and you are good to go for the mce-install.sh&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
If you want to speed up building on a multi-core machine, amend build-scripts/build-maindebs.sh and change the call to MakeRelease to include -j &amp;lt;number of cores&amp;gt;. Before executing the build, copy libresolution.so from an older build to your lib dir, and run ldconfig.&lt;br /&gt;
&lt;br /&gt;
=== Without -j 2 ===&lt;br /&gt;
 23:36:44  Compiling and building packages&lt;br /&gt;
 01:42:50  *** STEP: Download closed source debs&lt;br /&gt;
&lt;br /&gt;
 Total: roughly 2h 6minutes for compiling&lt;br /&gt;
&lt;br /&gt;
=== With -j 2 ===&lt;br /&gt;
 13:13:44  Compiling and building packages&lt;br /&gt;
 14:51:56  *** STEP: Download closed source debs&lt;br /&gt;
&lt;br /&gt;
 Total: roughly 1h 38minutes for compiling&lt;br /&gt;
&lt;br /&gt;
=== Error during prepare step ===&lt;br /&gt;
If you get an error during the prepare stage&lt;br /&gt;
 E: Couldn&#039;t find package libvdpau-dev&lt;br /&gt;
&amp;lt;del&amp;gt;make sure to have avenard repo in your builders sources.list&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;del&amp;gt;deb http://www.avenard.org/files/ubuntu-repos/ intrepid release testing&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Notes for installing on a virgin Kubuntu 8.10 installation (no chroot) ===&lt;br /&gt;
* As pointed out above, there is no need to run the command below, IF you are not chroot&#039;ing&lt;br /&gt;
  sed &#039;s/^[^#]*bind-address[[:space:]]*=.*$/#&amp;amp;\nskip-networking/&#039; -i /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
* After you reboot, you will notice that KDE mysteriously vanished, and you will go to a gnome desktop.  I&#039;m not sure why this is, but it does not seem to affect the builder any.&lt;br /&gt;
&lt;br /&gt;
* If you want to run this builder headless (or just want to ability to ssh in to it), then you must configure it for ssh access by installing an ssh server&lt;br /&gt;
 sudo apt-get install openssh-server&lt;/div&gt;</summary>
		<author><name>Jeangot</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Building_LinuxMCE_0810&amp;diff=27031</id>
		<title>Building LinuxMCE 0810</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Building_LinuxMCE_0810&amp;diff=27031"/>
		<updated>2011-02-23T16:25:07Z</updated>

		<summary type="html">&lt;p&gt;Jeangot: /* Start MySQL Server */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category: tutorials]]&lt;br /&gt;
[[category: programmer&#039;s Guide]]&lt;br /&gt;
{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
{{versioninfo|810Status=relevant|810UpdatedDate=8 October 2010|810UpdatedBy=golgoj4}}&lt;br /&gt;
The following steps explain how to install a development environment onto your core in a chroot environment, so that your running core and its database are not affected. Alternatively, you could build on a separate machine or virtual machine with a clean Kubuntu-8.10 install. There are notes to this effect at the end of the page.&lt;br /&gt;
&lt;br /&gt;
==Setting up a chroot environment==&lt;br /&gt;
Start with becoming root on your core. The  following steps will need to be done using super user privileges.&lt;br /&gt;
  sudo su -&lt;br /&gt;
&lt;br /&gt;
===Create the environment===&lt;br /&gt;
 apt-get install debootstrap&lt;br /&gt;
 debootstrap --arch i386 intrepid /media/kubuntu-8.10/ http://old-releases.ubuntu.com/ubuntu&lt;br /&gt;
&lt;br /&gt;
Note: the following steps will also have to be performed after each reboot&lt;br /&gt;
====Mount required directories====&lt;br /&gt;
 mount --bind /dev /media/kubuntu-8.10/dev&lt;br /&gt;
 mount none /media/kubuntu-8.10/proc -t proc&lt;br /&gt;
 mount none /media/kubuntu-8.10/dev/pts -t devpts&lt;br /&gt;
&lt;br /&gt;
====Change-root into the environment====&lt;br /&gt;
 chroot /media/kubuntu-8.10&lt;br /&gt;
&lt;br /&gt;
===Verify apt&#039;s list of repositories===&lt;br /&gt;
Make sure &#039;&#039;/etc/apt/sources.list&#039;&#039; (inside the chroot) contains something very similar to:&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&#039;&#039;old-releases.ubuntu.com&#039;&#039;/ubuntu/ intrepid  main restricted universe multiverse&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&#039;&#039;old-releases.ubuntu.com&#039;&#039;/ubuntu/ intrepid  main restricted universe&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&#039;&#039;old-releases.ubuntu.com&#039;&#039;/ubuntu/ intrepid-updates  main restricted universe multiverse&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&#039;&#039;old-releases.ubuntu.com&#039;&#039;/ubuntu/ intrepid-updates  main restricted universe&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;security.ubuntu.com/ubuntu intrepid-security  main restricted universe&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;security.ubuntu.com/ubuntu intrepid-security  main restricted universe&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://www.e-tobi.net/vdr-experimental/ sid base&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://deb.linuxmce.org/ubuntu/ intrepid beta2&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://deb.linuxmce.org/ubuntu/ 20dev_ubuntu main&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;del&amp;gt;deb     &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;www.avenard.org/files/ubuntu-repos/ intrepid release testing&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following line is added to the sources.list during the prepare script and should not be added before. [[User:Posde|posde]]&lt;br /&gt;
 deb      &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;debian.slimdevices.com/ stable  main&lt;br /&gt;
&lt;br /&gt;
The Avenard repository is no longer used. [[User:L3mce|l3mce]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;del&amp;gt;Add the Avenard GPG key&amp;lt;/del&amp;gt;&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install wget&lt;br /&gt;
 &amp;lt;del&amp;gt;wget http://www.avenard.org/files/ubuntu-repos/ubuntu-repos.key &amp;amp;&amp;amp; sudo apt-key add ubuntu-repos.key &amp;amp;&amp;amp; rm ubuntu-repos.key&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the e-tobi.net GPG key&lt;br /&gt;
 gpg --keyserver pgp.mit.edu --recv-keys F7180D26AEDAA642&lt;br /&gt;
 gpg --export --armor F7180D26AEDAA642 | sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
===Installing needed packages===&lt;br /&gt;
&#039;&#039;&#039;Important!&#039;&#039;&#039; Perform these also &#039;&#039;&#039;after&#039;&#039;&#039; chrooting if you are building in a chrooted environment.&lt;br /&gt;
&lt;br /&gt;
If you get messages like &#039;&#039;/usr/bin/locale: Cannot set LC_MESSAGES to default locale: No such file or directory&#039;&#039;, that meens that $LANG is set. Either clear the LANG or install the needed language pack (english given example given in the code-snip below).&lt;br /&gt;
&lt;br /&gt;
(Leave the root password for MySQL empty.)&lt;br /&gt;
 apt-get update&lt;br /&gt;
 &lt;br /&gt;
 #  Uncomment either of lines below if needed (see explanation above)&lt;br /&gt;
 #unset LANG&lt;br /&gt;
 #apt-get install language-pack-en-base&lt;br /&gt;
 &lt;br /&gt;
 apt-get dist-upgrade&lt;br /&gt;
 apt-get install aptitude openssh-client mysql-server&lt;br /&gt;
&lt;br /&gt;
====Reconfigure MySQL to not open a TCP-IP network port====&lt;br /&gt;
(only needed if you are building in a chrooted environment)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sed &#039;s/^[^#]*bind-address[[:space:]]*=.*$/#&amp;amp;\nskip-networking/&#039; -i /etc/mysql/my.cnf&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Start MySQL Server====&lt;br /&gt;
Do not execute the mysql start before doing the sed statement listed above.&lt;br /&gt;
 /etc/init.d/mysql start&lt;br /&gt;
&lt;br /&gt;
==Building from source==&lt;br /&gt;
For a more in detail description of all the steps involved see [[Building LinuxMCE 0804]]&lt;br /&gt;
&lt;br /&gt;
Currently the focus is on getting the following to work completely.&lt;br /&gt;
&lt;br /&gt;
===Getting started===&lt;br /&gt;
You should only have to do this part once initially.&lt;br /&gt;
&lt;br /&gt;
The following steps will require superuser privileges, and it is &#039;&#039;&#039;always&#039;&#039;&#039; wise to refresh the packages list beforehand.&lt;br /&gt;
 sudo su -&lt;br /&gt;
 apt-get update&lt;br /&gt;
&lt;br /&gt;
====Obtaining the build scripts====&lt;br /&gt;
 apt-get install subversion&lt;br /&gt;
 svn co http://svn.linuxmce.org/svn/branches/LinuxMCE-0810/src/Ubuntu_Helpers_NoHardcode&lt;br /&gt;
&lt;br /&gt;
====Installing the build scripts====&lt;br /&gt;
 cd Ubuntu_Helpers_NoHardcode&lt;br /&gt;
 ./install.sh&lt;br /&gt;
 cd /usr/local/lmce-build&lt;br /&gt;
&lt;br /&gt;
====Configuring the build scripts====&lt;br /&gt;
 cat &amp;gt;/etc/lmce-build/builder.custom.conf &amp;lt;&amp;lt;EOF&lt;br /&gt;
 &lt;br /&gt;
 # Uncomment to avoid DVD build step[s]&lt;br /&gt;
 do_not_build_sl_dvd=&amp;quot;yes&amp;quot;&lt;br /&gt;
 do_not_build_dl_dvd=&amp;quot;yes&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Uncomment to create fake win32 binaries&lt;br /&gt;
 win32_create_fake=&amp;quot;yes&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Point to the development sqlCVS server for 0810&lt;br /&gt;
 sqlcvs_host=&amp;quot;schema.linuxmce.org&amp;quot;&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
===Preparing for build===&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/lmce-build&lt;br /&gt;
&lt;br /&gt;
The preparation steps one at a time (recommended):&lt;br /&gt;
 prepare-scripts/install-build-pkgs.sh&lt;br /&gt;
 prepare-scripts/cd1-prepare.sh&lt;br /&gt;
 prepare-scripts/cd2-prepare.sh&lt;br /&gt;
 prepare-scripts/create-diskless-debootstrap.sh&lt;br /&gt;
 prepare-scripts/import-external-files.sh&lt;br /&gt;
 prepare-scripts/preseed-build-pkgs.sh&lt;br /&gt;
&lt;br /&gt;
Or, you could do them all in one go with:&lt;br /&gt;
 ./prepare.sh&lt;br /&gt;
&lt;br /&gt;
===Building from source===&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/lmce-build&lt;br /&gt;
&lt;br /&gt;
All the build steps can be executed seperately (recommended at least the first time):&lt;br /&gt;
 build-scripts/checkout-svn.sh&lt;br /&gt;
 build-scripts/import-win32bins.sh&lt;br /&gt;
 build-scripts/build-replacements.sh&lt;br /&gt;
 build-scripts/build-makerelease.sh&lt;br /&gt;
 build-scripts/import-databases.sh&lt;br /&gt;
 build-scripts/build-maindebs.sh&lt;br /&gt;
 build-scripts/get-closed-source-debs.sh&lt;br /&gt;
 build-scripts/create-repo.sh&lt;br /&gt;
 build-scripts/cd1-build.sh&lt;br /&gt;
 build-scripts/cd2-build.sh&lt;br /&gt;
&lt;br /&gt;
Or the following script will run them all:&lt;br /&gt;
 ./build.sh&lt;br /&gt;
&lt;br /&gt;
== Using the build&#039;s output ==&lt;br /&gt;
The build.sh script puts all created deb-files under /var/www. Setup a web server to point to that directory. &lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
In the machine, where you want to test the build, follow the instructions on using the alpha build. After the step pre-install-from-repo.sh, go into /etc/apt/sources.list, and replace the deb.linuxmce.org line with&lt;br /&gt;
 deb &amp;lt;ip-address-of-your-builder&amp;gt; ./&lt;br /&gt;
and re-run apt-get update&lt;br /&gt;
You will find, that two packages are missing. Get those two packages from the regular repository and put them into the builders /var/www directory&lt;br /&gt;
&lt;br /&gt;
 pushd /var/www&lt;br /&gt;
 wget http://deb.linuxmce.org/ubuntu/dists/intrepid/lmce-alpha2/binary-all/libft-perl_1.0_all.deb&lt;br /&gt;
 wget http://deb.linuxmce.org/ubuntu/dists/intrepid/lmce-alpha-latest/binary-all/mail-transport-agent_1.0_all.deb &lt;br /&gt;
 dpkg-scanpackages . &amp;gt;Packages&lt;br /&gt;
 gzip -c Packages &amp;gt; Packages.gz&lt;br /&gt;
 popd&lt;br /&gt;
&lt;br /&gt;
Now, on your new or test core, execute another apt-get update, and you are good to go for the mce-install.sh&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
If you want to speed up building on a multi-core machine, amend build-scripts/build-maindebs.sh and change the call to MakeRelease to include -j &amp;lt;number of cores&amp;gt;. Before executing the build, copy libresolution.so from an older build to your lib dir, and run ldconfig.&lt;br /&gt;
&lt;br /&gt;
=== Without -j 2 ===&lt;br /&gt;
 23:36:44  Compiling and building packages&lt;br /&gt;
 01:42:50  *** STEP: Download closed source debs&lt;br /&gt;
&lt;br /&gt;
 Total: roughly 2h 6minutes for compiling&lt;br /&gt;
&lt;br /&gt;
=== With -j 2 ===&lt;br /&gt;
 13:13:44  Compiling and building packages&lt;br /&gt;
 14:51:56  *** STEP: Download closed source debs&lt;br /&gt;
&lt;br /&gt;
 Total: roughly 1h 38minutes for compiling&lt;br /&gt;
&lt;br /&gt;
=== Error during prepare step ===&lt;br /&gt;
If you get an error during the prepare stage&lt;br /&gt;
 E: Couldn&#039;t find package libvdpau-dev&lt;br /&gt;
&amp;lt;del&amp;gt;make sure to have avenard repo in your builders sources.list&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;del&amp;gt;deb http://www.avenard.org/files/ubuntu-repos/ intrepid release testing&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Notes for installing on a virgin Kubuntu 8.10 installation (no chroot) ===&lt;br /&gt;
* As pointed out above, there is no need to run the command below, IF you are not chroot&#039;ing&lt;br /&gt;
  sed &#039;s/^[^#]*bind-address[[:space:]]*=.*$/#&amp;amp;\nskip-networking/&#039; -i /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
* After you reboot, you will notice that KDE mysteriously vanished, and you will go to a gnome desktop.  I&#039;m not sure why this is, but it does not seem to affect the builder any.&lt;br /&gt;
&lt;br /&gt;
* If you want to run this builder headless (or just want to ability to ssh in to it), then you must configure it for ssh access by installing an ssh server&lt;br /&gt;
 sudo apt-get install openssh-server&lt;/div&gt;</summary>
		<author><name>Jeangot</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Building_LinuxMCE_0810&amp;diff=27030</id>
		<title>Building LinuxMCE 0810</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Building_LinuxMCE_0810&amp;diff=27030"/>
		<updated>2011-02-23T16:12:49Z</updated>

		<summary type="html">&lt;p&gt;Jeangot: /* Verify apt&amp;#039;s list of repositories */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category: tutorials]]&lt;br /&gt;
[[category: programmer&#039;s Guide]]&lt;br /&gt;
{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
{{versioninfo|810Status=relevant|810UpdatedDate=8 October 2010|810UpdatedBy=golgoj4}}&lt;br /&gt;
The following steps explain how to install a development environment onto your core in a chroot environment, so that your running core and its database are not affected. Alternatively, you could build on a separate machine or virtual machine with a clean Kubuntu-8.10 install. There are notes to this effect at the end of the page.&lt;br /&gt;
&lt;br /&gt;
==Setting up a chroot environment==&lt;br /&gt;
Start with becoming root on your core. The  following steps will need to be done using super user privileges.&lt;br /&gt;
  sudo su -&lt;br /&gt;
&lt;br /&gt;
===Create the environment===&lt;br /&gt;
 apt-get install debootstrap&lt;br /&gt;
 debootstrap --arch i386 intrepid /media/kubuntu-8.10/ http://old-releases.ubuntu.com/ubuntu&lt;br /&gt;
&lt;br /&gt;
Note: the following steps will also have to be performed after each reboot&lt;br /&gt;
====Mount required directories====&lt;br /&gt;
 mount --bind /dev /media/kubuntu-8.10/dev&lt;br /&gt;
 mount none /media/kubuntu-8.10/proc -t proc&lt;br /&gt;
 mount none /media/kubuntu-8.10/dev/pts -t devpts&lt;br /&gt;
&lt;br /&gt;
====Change-root into the environment====&lt;br /&gt;
 chroot /media/kubuntu-8.10&lt;br /&gt;
&lt;br /&gt;
===Verify apt&#039;s list of repositories===&lt;br /&gt;
Make sure &#039;&#039;/etc/apt/sources.list&#039;&#039; (inside the chroot) contains something very similar to:&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&#039;&#039;old-releases.ubuntu.com&#039;&#039;/ubuntu/ intrepid  main restricted universe multiverse&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&#039;&#039;old-releases.ubuntu.com&#039;&#039;/ubuntu/ intrepid  main restricted universe&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&#039;&#039;old-releases.ubuntu.com&#039;&#039;/ubuntu/ intrepid-updates  main restricted universe multiverse&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&#039;&#039;old-releases.ubuntu.com&#039;&#039;/ubuntu/ intrepid-updates  main restricted universe&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;security.ubuntu.com/ubuntu intrepid-security  main restricted universe&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;security.ubuntu.com/ubuntu intrepid-security  main restricted universe&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://www.e-tobi.net/vdr-experimental/ sid base&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://deb.linuxmce.org/ubuntu/ intrepid beta2&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://deb.linuxmce.org/ubuntu/ 20dev_ubuntu main&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;del&amp;gt;deb     &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;www.avenard.org/files/ubuntu-repos/ intrepid release testing&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following line is added to the sources.list during the prepare script and should not be added before. [[User:Posde|posde]]&lt;br /&gt;
 deb      &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;debian.slimdevices.com/ stable  main&lt;br /&gt;
&lt;br /&gt;
The Avenard repository is no longer used. [[User:L3mce|l3mce]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;del&amp;gt;Add the Avenard GPG key&amp;lt;/del&amp;gt;&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install wget&lt;br /&gt;
 &amp;lt;del&amp;gt;wget http://www.avenard.org/files/ubuntu-repos/ubuntu-repos.key &amp;amp;&amp;amp; sudo apt-key add ubuntu-repos.key &amp;amp;&amp;amp; rm ubuntu-repos.key&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the e-tobi.net GPG key&lt;br /&gt;
 gpg --keyserver pgp.mit.edu --recv-keys F7180D26AEDAA642&lt;br /&gt;
 gpg --export --armor F7180D26AEDAA642 | sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
===Installing needed packages===&lt;br /&gt;
&#039;&#039;&#039;Important!&#039;&#039;&#039; Perform these also &#039;&#039;&#039;after&#039;&#039;&#039; chrooting if you are building in a chrooted environment.&lt;br /&gt;
&lt;br /&gt;
If you get messages like &#039;&#039;/usr/bin/locale: Cannot set LC_MESSAGES to default locale: No such file or directory&#039;&#039;, that meens that $LANG is set. Either clear the LANG or install the needed language pack (english given example given in the code-snip below).&lt;br /&gt;
&lt;br /&gt;
(Leave the root password for MySQL empty.)&lt;br /&gt;
 apt-get update&lt;br /&gt;
 &lt;br /&gt;
 #  Uncomment either of lines below if needed (see explanation above)&lt;br /&gt;
 #unset LANG&lt;br /&gt;
 #apt-get install language-pack-en-base&lt;br /&gt;
 &lt;br /&gt;
 apt-get dist-upgrade&lt;br /&gt;
 apt-get install aptitude openssh-client mysql-server&lt;br /&gt;
&lt;br /&gt;
====Reconfigure MySQL to not open a TCP-IP network port====&lt;br /&gt;
(only needed if you are building in a chrooted environment)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sed &#039;s/^[^#]*bind-address[[:space:]]*=.*$/#&amp;amp;\nskip-networking/&#039; -i /etc/mysql/my.cnf&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Start MySQL Server====&lt;br /&gt;
Do not execute the mysql start before doing the sed statement listed in the &#039;&#039;&#039;Installing needed packages section&#039;&#039;&#039; below to reconfigure MySQL.&lt;br /&gt;
 /etc/init.d/mysql start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Building from source==&lt;br /&gt;
For a more in detail description of all the steps involved see [[Building LinuxMCE 0804]]&lt;br /&gt;
&lt;br /&gt;
Currently the focus is on getting the following to work completely.&lt;br /&gt;
&lt;br /&gt;
===Getting started===&lt;br /&gt;
You should only have to do this part once initially.&lt;br /&gt;
&lt;br /&gt;
The following steps will require superuser privileges, and it is &#039;&#039;&#039;always&#039;&#039;&#039; wise to refresh the packages list beforehand.&lt;br /&gt;
 sudo su -&lt;br /&gt;
 apt-get update&lt;br /&gt;
&lt;br /&gt;
====Obtaining the build scripts====&lt;br /&gt;
 apt-get install subversion&lt;br /&gt;
 svn co http://svn.linuxmce.org/svn/branches/LinuxMCE-0810/src/Ubuntu_Helpers_NoHardcode&lt;br /&gt;
&lt;br /&gt;
====Installing the build scripts====&lt;br /&gt;
 cd Ubuntu_Helpers_NoHardcode&lt;br /&gt;
 ./install.sh&lt;br /&gt;
 cd /usr/local/lmce-build&lt;br /&gt;
&lt;br /&gt;
====Configuring the build scripts====&lt;br /&gt;
 cat &amp;gt;/etc/lmce-build/builder.custom.conf &amp;lt;&amp;lt;EOF&lt;br /&gt;
 &lt;br /&gt;
 # Uncomment to avoid DVD build step[s]&lt;br /&gt;
 do_not_build_sl_dvd=&amp;quot;yes&amp;quot;&lt;br /&gt;
 do_not_build_dl_dvd=&amp;quot;yes&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Uncomment to create fake win32 binaries&lt;br /&gt;
 win32_create_fake=&amp;quot;yes&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Point to the development sqlCVS server for 0810&lt;br /&gt;
 sqlcvs_host=&amp;quot;schema.linuxmce.org&amp;quot;&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
===Preparing for build===&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/lmce-build&lt;br /&gt;
&lt;br /&gt;
The preparation steps one at a time (recommended):&lt;br /&gt;
 prepare-scripts/install-build-pkgs.sh&lt;br /&gt;
 prepare-scripts/cd1-prepare.sh&lt;br /&gt;
 prepare-scripts/cd2-prepare.sh&lt;br /&gt;
 prepare-scripts/create-diskless-debootstrap.sh&lt;br /&gt;
 prepare-scripts/import-external-files.sh&lt;br /&gt;
 prepare-scripts/preseed-build-pkgs.sh&lt;br /&gt;
&lt;br /&gt;
Or, you could do them all in one go with:&lt;br /&gt;
 ./prepare.sh&lt;br /&gt;
&lt;br /&gt;
===Building from source===&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/lmce-build&lt;br /&gt;
&lt;br /&gt;
All the build steps can be executed seperately (recommended at least the first time):&lt;br /&gt;
 build-scripts/checkout-svn.sh&lt;br /&gt;
 build-scripts/import-win32bins.sh&lt;br /&gt;
 build-scripts/build-replacements.sh&lt;br /&gt;
 build-scripts/build-makerelease.sh&lt;br /&gt;
 build-scripts/import-databases.sh&lt;br /&gt;
 build-scripts/build-maindebs.sh&lt;br /&gt;
 build-scripts/get-closed-source-debs.sh&lt;br /&gt;
 build-scripts/create-repo.sh&lt;br /&gt;
 build-scripts/cd1-build.sh&lt;br /&gt;
 build-scripts/cd2-build.sh&lt;br /&gt;
&lt;br /&gt;
Or the following script will run them all:&lt;br /&gt;
 ./build.sh&lt;br /&gt;
&lt;br /&gt;
== Using the build&#039;s output ==&lt;br /&gt;
The build.sh script puts all created deb-files under /var/www. Setup a web server to point to that directory. &lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
In the machine, where you want to test the build, follow the instructions on using the alpha build. After the step pre-install-from-repo.sh, go into /etc/apt/sources.list, and replace the deb.linuxmce.org line with&lt;br /&gt;
 deb &amp;lt;ip-address-of-your-builder&amp;gt; ./&lt;br /&gt;
and re-run apt-get update&lt;br /&gt;
You will find, that two packages are missing. Get those two packages from the regular repository and put them into the builders /var/www directory&lt;br /&gt;
&lt;br /&gt;
 pushd /var/www&lt;br /&gt;
 wget http://deb.linuxmce.org/ubuntu/dists/intrepid/lmce-alpha2/binary-all/libft-perl_1.0_all.deb&lt;br /&gt;
 wget http://deb.linuxmce.org/ubuntu/dists/intrepid/lmce-alpha-latest/binary-all/mail-transport-agent_1.0_all.deb &lt;br /&gt;
 dpkg-scanpackages . &amp;gt;Packages&lt;br /&gt;
 gzip -c Packages &amp;gt; Packages.gz&lt;br /&gt;
 popd&lt;br /&gt;
&lt;br /&gt;
Now, on your new or test core, execute another apt-get update, and you are good to go for the mce-install.sh&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
If you want to speed up building on a multi-core machine, amend build-scripts/build-maindebs.sh and change the call to MakeRelease to include -j &amp;lt;number of cores&amp;gt;. Before executing the build, copy libresolution.so from an older build to your lib dir, and run ldconfig.&lt;br /&gt;
&lt;br /&gt;
=== Without -j 2 ===&lt;br /&gt;
 23:36:44  Compiling and building packages&lt;br /&gt;
 01:42:50  *** STEP: Download closed source debs&lt;br /&gt;
&lt;br /&gt;
 Total: roughly 2h 6minutes for compiling&lt;br /&gt;
&lt;br /&gt;
=== With -j 2 ===&lt;br /&gt;
 13:13:44  Compiling and building packages&lt;br /&gt;
 14:51:56  *** STEP: Download closed source debs&lt;br /&gt;
&lt;br /&gt;
 Total: roughly 1h 38minutes for compiling&lt;br /&gt;
&lt;br /&gt;
=== Error during prepare step ===&lt;br /&gt;
If you get an error during the prepare stage&lt;br /&gt;
 E: Couldn&#039;t find package libvdpau-dev&lt;br /&gt;
&amp;lt;del&amp;gt;make sure to have avenard repo in your builders sources.list&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;del&amp;gt;deb http://www.avenard.org/files/ubuntu-repos/ intrepid release testing&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Notes for installing on a virgin Kubuntu 8.10 installation (no chroot) ===&lt;br /&gt;
* As pointed out above, there is no need to run the command below, IF you are not chroot&#039;ing&lt;br /&gt;
  sed &#039;s/^[^#]*bind-address[[:space:]]*=.*$/#&amp;amp;\nskip-networking/&#039; -i /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
* After you reboot, you will notice that KDE mysteriously vanished, and you will go to a gnome desktop.  I&#039;m not sure why this is, but it does not seem to affect the builder any.&lt;br /&gt;
&lt;br /&gt;
* If you want to run this builder headless (or just want to ability to ssh in to it), then you must configure it for ssh access by installing an ssh server&lt;br /&gt;
 sudo apt-get install openssh-server&lt;/div&gt;</summary>
		<author><name>Jeangot</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Building_LinuxMCE_0810&amp;diff=27029</id>
		<title>Building LinuxMCE 0810</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Building_LinuxMCE_0810&amp;diff=27029"/>
		<updated>2011-02-23T16:10:45Z</updated>

		<summary type="html">&lt;p&gt;Jeangot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category: tutorials]]&lt;br /&gt;
[[category: programmer&#039;s Guide]]&lt;br /&gt;
{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
{{versioninfo|810Status=relevant|810UpdatedDate=8 October 2010|810UpdatedBy=golgoj4}}&lt;br /&gt;
The following steps explain how to install a development environment onto your core in a chroot environment, so that your running core and its database are not affected. Alternatively, you could build on a separate machine or virtual machine with a clean Kubuntu-8.10 install. There are notes to this effect at the end of the page.&lt;br /&gt;
&lt;br /&gt;
==Setting up a chroot environment==&lt;br /&gt;
Start with becoming root on your core. The  following steps will need to be done using super user privileges.&lt;br /&gt;
  sudo su -&lt;br /&gt;
&lt;br /&gt;
===Create the environment===&lt;br /&gt;
 apt-get install debootstrap&lt;br /&gt;
 debootstrap --arch i386 intrepid /media/kubuntu-8.10/ http://old-releases.ubuntu.com/ubuntu&lt;br /&gt;
&lt;br /&gt;
Note: the following steps will also have to be performed after each reboot&lt;br /&gt;
====Mount required directories====&lt;br /&gt;
 mount --bind /dev /media/kubuntu-8.10/dev&lt;br /&gt;
 mount none /media/kubuntu-8.10/proc -t proc&lt;br /&gt;
 mount none /media/kubuntu-8.10/dev/pts -t devpts&lt;br /&gt;
&lt;br /&gt;
====Change-root into the environment====&lt;br /&gt;
 chroot /media/kubuntu-8.10&lt;br /&gt;
&lt;br /&gt;
===Verify apt&#039;s list of repositories===&lt;br /&gt;
Make sure &#039;&#039;/etc/apt/sources.list&#039;&#039; (inside the chroot) contains something very similar to:&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&#039;&#039;us.archive.ubuntu.com&#039;&#039;/ubuntu/ intrepid  main restricted universe multiverse&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&#039;&#039;us.archive.ubuntu.com&#039;&#039;/ubuntu/ intrepid  main restricted universe&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&#039;&#039;us.archive.ubuntu.com&#039;&#039;/ubuntu/ intrepid-updates  main restricted universe multiverse&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&#039;&#039;us.archive.ubuntu.com&#039;&#039;/ubuntu/ intrepid-updates  main restricted universe&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;security.ubuntu.com/ubuntu intrepid-security  main restricted universe&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;security.ubuntu.com/ubuntu intrepid-security  main restricted universe&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://www.e-tobi.net/vdr-experimental/ sid base&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://deb.linuxmce.org/ubuntu/ intrepid beta2&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://deb.linuxmce.org/ubuntu/ 20dev_ubuntu main&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;del&amp;gt;deb     &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;www.avenard.org/files/ubuntu-repos/ intrepid release testing&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following line is added to the sources.list during the prepare script and should not be added before. [[User:Posde|posde]]&lt;br /&gt;
 deb      &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;debian.slimdevices.com/ stable  main&lt;br /&gt;
&lt;br /&gt;
The Avenard repository is no longer used. [[User:L3mce|l3mce]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;del&amp;gt;Add the Avenard GPG key&amp;lt;/del&amp;gt;&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install wget&lt;br /&gt;
 &amp;lt;del&amp;gt;wget http://www.avenard.org/files/ubuntu-repos/ubuntu-repos.key &amp;amp;&amp;amp; sudo apt-key add ubuntu-repos.key &amp;amp;&amp;amp; rm ubuntu-repos.key&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the e-tobi.net GPG key&lt;br /&gt;
 gpg --keyserver pgp.mit.edu --recv-keys F7180D26AEDAA642&lt;br /&gt;
 gpg --export --armor F7180D26AEDAA642 | sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
===Installing needed packages===&lt;br /&gt;
&#039;&#039;&#039;Important!&#039;&#039;&#039; Perform these also &#039;&#039;&#039;after&#039;&#039;&#039; chrooting if you are building in a chrooted environment.&lt;br /&gt;
&lt;br /&gt;
If you get messages like &#039;&#039;/usr/bin/locale: Cannot set LC_MESSAGES to default locale: No such file or directory&#039;&#039;, that meens that $LANG is set. Either clear the LANG or install the needed language pack (english given example given in the code-snip below).&lt;br /&gt;
&lt;br /&gt;
(Leave the root password for MySQL empty.)&lt;br /&gt;
 apt-get update&lt;br /&gt;
 &lt;br /&gt;
 #  Uncomment either of lines below if needed (see explanation above)&lt;br /&gt;
 #unset LANG&lt;br /&gt;
 #apt-get install language-pack-en-base&lt;br /&gt;
 &lt;br /&gt;
 apt-get dist-upgrade&lt;br /&gt;
 apt-get install aptitude openssh-client mysql-server&lt;br /&gt;
&lt;br /&gt;
====Reconfigure MySQL to not open a TCP-IP network port====&lt;br /&gt;
(only needed if you are building in a chrooted environment)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sed &#039;s/^[^#]*bind-address[[:space:]]*=.*$/#&amp;amp;\nskip-networking/&#039; -i /etc/mysql/my.cnf&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Start MySQL Server====&lt;br /&gt;
Do not execute the mysql start before doing the sed statement listed in the &#039;&#039;&#039;Installing needed packages section&#039;&#039;&#039; below to reconfigure MySQL.&lt;br /&gt;
 /etc/init.d/mysql start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Building from source==&lt;br /&gt;
For a more in detail description of all the steps involved see [[Building LinuxMCE 0804]]&lt;br /&gt;
&lt;br /&gt;
Currently the focus is on getting the following to work completely.&lt;br /&gt;
&lt;br /&gt;
===Getting started===&lt;br /&gt;
You should only have to do this part once initially.&lt;br /&gt;
&lt;br /&gt;
The following steps will require superuser privileges, and it is &#039;&#039;&#039;always&#039;&#039;&#039; wise to refresh the packages list beforehand.&lt;br /&gt;
 sudo su -&lt;br /&gt;
 apt-get update&lt;br /&gt;
&lt;br /&gt;
====Obtaining the build scripts====&lt;br /&gt;
 apt-get install subversion&lt;br /&gt;
 svn co http://svn.linuxmce.org/svn/branches/LinuxMCE-0810/src/Ubuntu_Helpers_NoHardcode&lt;br /&gt;
&lt;br /&gt;
====Installing the build scripts====&lt;br /&gt;
 cd Ubuntu_Helpers_NoHardcode&lt;br /&gt;
 ./install.sh&lt;br /&gt;
 cd /usr/local/lmce-build&lt;br /&gt;
&lt;br /&gt;
====Configuring the build scripts====&lt;br /&gt;
 cat &amp;gt;/etc/lmce-build/builder.custom.conf &amp;lt;&amp;lt;EOF&lt;br /&gt;
 &lt;br /&gt;
 # Uncomment to avoid DVD build step[s]&lt;br /&gt;
 do_not_build_sl_dvd=&amp;quot;yes&amp;quot;&lt;br /&gt;
 do_not_build_dl_dvd=&amp;quot;yes&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Uncomment to create fake win32 binaries&lt;br /&gt;
 win32_create_fake=&amp;quot;yes&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Point to the development sqlCVS server for 0810&lt;br /&gt;
 sqlcvs_host=&amp;quot;schema.linuxmce.org&amp;quot;&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
===Preparing for build===&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/lmce-build&lt;br /&gt;
&lt;br /&gt;
The preparation steps one at a time (recommended):&lt;br /&gt;
 prepare-scripts/install-build-pkgs.sh&lt;br /&gt;
 prepare-scripts/cd1-prepare.sh&lt;br /&gt;
 prepare-scripts/cd2-prepare.sh&lt;br /&gt;
 prepare-scripts/create-diskless-debootstrap.sh&lt;br /&gt;
 prepare-scripts/import-external-files.sh&lt;br /&gt;
 prepare-scripts/preseed-build-pkgs.sh&lt;br /&gt;
&lt;br /&gt;
Or, you could do them all in one go with:&lt;br /&gt;
 ./prepare.sh&lt;br /&gt;
&lt;br /&gt;
===Building from source===&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/lmce-build&lt;br /&gt;
&lt;br /&gt;
All the build steps can be executed seperately (recommended at least the first time):&lt;br /&gt;
 build-scripts/checkout-svn.sh&lt;br /&gt;
 build-scripts/import-win32bins.sh&lt;br /&gt;
 build-scripts/build-replacements.sh&lt;br /&gt;
 build-scripts/build-makerelease.sh&lt;br /&gt;
 build-scripts/import-databases.sh&lt;br /&gt;
 build-scripts/build-maindebs.sh&lt;br /&gt;
 build-scripts/get-closed-source-debs.sh&lt;br /&gt;
 build-scripts/create-repo.sh&lt;br /&gt;
 build-scripts/cd1-build.sh&lt;br /&gt;
 build-scripts/cd2-build.sh&lt;br /&gt;
&lt;br /&gt;
Or the following script will run them all:&lt;br /&gt;
 ./build.sh&lt;br /&gt;
&lt;br /&gt;
== Using the build&#039;s output ==&lt;br /&gt;
The build.sh script puts all created deb-files under /var/www. Setup a web server to point to that directory. &lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
In the machine, where you want to test the build, follow the instructions on using the alpha build. After the step pre-install-from-repo.sh, go into /etc/apt/sources.list, and replace the deb.linuxmce.org line with&lt;br /&gt;
 deb &amp;lt;ip-address-of-your-builder&amp;gt; ./&lt;br /&gt;
and re-run apt-get update&lt;br /&gt;
You will find, that two packages are missing. Get those two packages from the regular repository and put them into the builders /var/www directory&lt;br /&gt;
&lt;br /&gt;
 pushd /var/www&lt;br /&gt;
 wget http://deb.linuxmce.org/ubuntu/dists/intrepid/lmce-alpha2/binary-all/libft-perl_1.0_all.deb&lt;br /&gt;
 wget http://deb.linuxmce.org/ubuntu/dists/intrepid/lmce-alpha-latest/binary-all/mail-transport-agent_1.0_all.deb &lt;br /&gt;
 dpkg-scanpackages . &amp;gt;Packages&lt;br /&gt;
 gzip -c Packages &amp;gt; Packages.gz&lt;br /&gt;
 popd&lt;br /&gt;
&lt;br /&gt;
Now, on your new or test core, execute another apt-get update, and you are good to go for the mce-install.sh&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
If you want to speed up building on a multi-core machine, amend build-scripts/build-maindebs.sh and change the call to MakeRelease to include -j &amp;lt;number of cores&amp;gt;. Before executing the build, copy libresolution.so from an older build to your lib dir, and run ldconfig.&lt;br /&gt;
&lt;br /&gt;
=== Without -j 2 ===&lt;br /&gt;
 23:36:44  Compiling and building packages&lt;br /&gt;
 01:42:50  *** STEP: Download closed source debs&lt;br /&gt;
&lt;br /&gt;
 Total: roughly 2h 6minutes for compiling&lt;br /&gt;
&lt;br /&gt;
=== With -j 2 ===&lt;br /&gt;
 13:13:44  Compiling and building packages&lt;br /&gt;
 14:51:56  *** STEP: Download closed source debs&lt;br /&gt;
&lt;br /&gt;
 Total: roughly 1h 38minutes for compiling&lt;br /&gt;
&lt;br /&gt;
=== Error during prepare step ===&lt;br /&gt;
If you get an error during the prepare stage&lt;br /&gt;
 E: Couldn&#039;t find package libvdpau-dev&lt;br /&gt;
&amp;lt;del&amp;gt;make sure to have avenard repo in your builders sources.list&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;del&amp;gt;deb http://www.avenard.org/files/ubuntu-repos/ intrepid release testing&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Notes for installing on a virgin Kubuntu 8.10 installation (no chroot) ===&lt;br /&gt;
* As pointed out above, there is no need to run the command below, IF you are not chroot&#039;ing&lt;br /&gt;
  sed &#039;s/^[^#]*bind-address[[:space:]]*=.*$/#&amp;amp;\nskip-networking/&#039; -i /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
* After you reboot, you will notice that KDE mysteriously vanished, and you will go to a gnome desktop.  I&#039;m not sure why this is, but it does not seem to affect the builder any.&lt;br /&gt;
&lt;br /&gt;
* If you want to run this builder headless (or just want to ability to ssh in to it), then you must configure it for ssh access by installing an ssh server&lt;br /&gt;
 sudo apt-get install openssh-server&lt;/div&gt;</summary>
		<author><name>Jeangot</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Building_LinuxMCE_0810&amp;diff=27028</id>
		<title>Building LinuxMCE 0810</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Building_LinuxMCE_0810&amp;diff=27028"/>
		<updated>2011-02-23T16:09:54Z</updated>

		<summary type="html">&lt;p&gt;Jeangot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category: tutorials]]&lt;br /&gt;
[[category: programmer&#039;s Guide]]&lt;br /&gt;
{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
&lt;br /&gt;
{{versioninfo|810Status=relevant|810UpdatedDate=8 October 2010|810UpdatedBy=golgoj4}}&lt;br /&gt;
The following steps explain how to install a development environment in a chroot environment, so that your running core and its database are not affected. Alternatively, you could build on a clean Kubuntu-8.10 install. There are notes to this effect at the end of the page.&lt;br /&gt;
&lt;br /&gt;
==Setting up a chroot environment==&lt;br /&gt;
Start with becoming root on your core. The  following steps will need to be done using super user privileges.&lt;br /&gt;
  sudo su -&lt;br /&gt;
&lt;br /&gt;
===Create the environment===&lt;br /&gt;
 apt-get install debootstrap&lt;br /&gt;
 debootstrap --arch i386 intrepid /media/kubuntu-8.10/ http://old-releases.ubuntu.com/ubuntu&lt;br /&gt;
&lt;br /&gt;
Note: the following steps will also have to be performed after each reboot&lt;br /&gt;
====Mount required directories====&lt;br /&gt;
 mount --bind /dev /media/kubuntu-8.10/dev&lt;br /&gt;
 mount none /media/kubuntu-8.10/proc -t proc&lt;br /&gt;
 mount none /media/kubuntu-8.10/dev/pts -t devpts&lt;br /&gt;
&lt;br /&gt;
====Change-root into the environment====&lt;br /&gt;
 chroot /media/kubuntu-8.10&lt;br /&gt;
&lt;br /&gt;
===Verify apt&#039;s list of repositories===&lt;br /&gt;
Make sure &#039;&#039;/etc/apt/sources.list&#039;&#039; (inside the chroot) contains something very similar to:&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&#039;&#039;us.archive.ubuntu.com&#039;&#039;/ubuntu/ intrepid  main restricted universe multiverse&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&#039;&#039;us.archive.ubuntu.com&#039;&#039;/ubuntu/ intrepid  main restricted universe&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&#039;&#039;us.archive.ubuntu.com&#039;&#039;/ubuntu/ intrepid-updates  main restricted universe multiverse&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;&#039;&#039;us.archive.ubuntu.com&#039;&#039;/ubuntu/ intrepid-updates  main restricted universe&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;security.ubuntu.com/ubuntu intrepid-security  main restricted universe&lt;br /&gt;
 deb-src &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;security.ubuntu.com/ubuntu intrepid-security  main restricted universe&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://www.e-tobi.net/vdr-experimental/ sid base&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://deb.linuxmce.org/ubuntu/ intrepid beta2&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 deb     &amp;lt;nowiki&amp;gt;http://deb.linuxmce.org/ubuntu/ 20dev_ubuntu main&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;del&amp;gt;deb     &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;www.avenard.org/files/ubuntu-repos/ intrepid release testing&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following line is added to the sources.list during the prepare script and should not be added before. [[User:Posde|posde]]&lt;br /&gt;
 deb      &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;debian.slimdevices.com/ stable  main&lt;br /&gt;
&lt;br /&gt;
The Avenard repository is no longer used. [[User:L3mce|l3mce]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;del&amp;gt;Add the Avenard GPG key&amp;lt;/del&amp;gt;&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get install wget&lt;br /&gt;
 &amp;lt;del&amp;gt;wget http://www.avenard.org/files/ubuntu-repos/ubuntu-repos.key &amp;amp;&amp;amp; sudo apt-key add ubuntu-repos.key &amp;amp;&amp;amp; rm ubuntu-repos.key&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the e-tobi.net GPG key&lt;br /&gt;
 gpg --keyserver pgp.mit.edu --recv-keys F7180D26AEDAA642&lt;br /&gt;
 gpg --export --armor F7180D26AEDAA642 | sudo apt-key add -&lt;br /&gt;
&lt;br /&gt;
===Installing needed packages===&lt;br /&gt;
&#039;&#039;&#039;Important!&#039;&#039;&#039; Perform these also &#039;&#039;&#039;after&#039;&#039;&#039; chrooting if you are building in a chrooted environment.&lt;br /&gt;
&lt;br /&gt;
If you get messages like &#039;&#039;/usr/bin/locale: Cannot set LC_MESSAGES to default locale: No such file or directory&#039;&#039;, that meens that $LANG is set. Either clear the LANG or install the needed language pack (english given example given in the code-snip below).&lt;br /&gt;
&lt;br /&gt;
(Leave the root password for MySQL empty.)&lt;br /&gt;
 apt-get update&lt;br /&gt;
 &lt;br /&gt;
 #  Uncomment either of lines below if needed (see explanation above)&lt;br /&gt;
 #unset LANG&lt;br /&gt;
 #apt-get install language-pack-en-base&lt;br /&gt;
 &lt;br /&gt;
 apt-get dist-upgrade&lt;br /&gt;
 apt-get install aptitude openssh-client mysql-server&lt;br /&gt;
&lt;br /&gt;
====Reconfigure MySQL to not open a TCP-IP network port====&lt;br /&gt;
(only needed if you are building in a chrooted environment)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;sed &#039;s/^[^#]*bind-address[[:space:]]*=.*$/#&amp;amp;\nskip-networking/&#039; -i /etc/mysql/my.cnf&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Start MySQL Server====&lt;br /&gt;
Do not execute the mysql start before doing the sed statement listed in the &#039;&#039;&#039;Installing needed packages section&#039;&#039;&#039; below to reconfigure MySQL.&lt;br /&gt;
 /etc/init.d/mysql start&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Building from source==&lt;br /&gt;
For a more in detail description of all the steps involved see [[Building LinuxMCE 0804]]&lt;br /&gt;
&lt;br /&gt;
Currently the focus is on getting the following to work completely.&lt;br /&gt;
&lt;br /&gt;
===Getting started===&lt;br /&gt;
You should only have to do this part once initially.&lt;br /&gt;
&lt;br /&gt;
The following steps will require superuser privileges, and it is &#039;&#039;&#039;always&#039;&#039;&#039; wise to refresh the packages list beforehand.&lt;br /&gt;
 sudo su -&lt;br /&gt;
 apt-get update&lt;br /&gt;
&lt;br /&gt;
====Obtaining the build scripts====&lt;br /&gt;
 apt-get install subversion&lt;br /&gt;
 svn co http://svn.linuxmce.org/svn/branches/LinuxMCE-0810/src/Ubuntu_Helpers_NoHardcode&lt;br /&gt;
&lt;br /&gt;
====Installing the build scripts====&lt;br /&gt;
 cd Ubuntu_Helpers_NoHardcode&lt;br /&gt;
 ./install.sh&lt;br /&gt;
 cd /usr/local/lmce-build&lt;br /&gt;
&lt;br /&gt;
====Configuring the build scripts====&lt;br /&gt;
 cat &amp;gt;/etc/lmce-build/builder.custom.conf &amp;lt;&amp;lt;EOF&lt;br /&gt;
 &lt;br /&gt;
 # Uncomment to avoid DVD build step[s]&lt;br /&gt;
 do_not_build_sl_dvd=&amp;quot;yes&amp;quot;&lt;br /&gt;
 do_not_build_dl_dvd=&amp;quot;yes&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # Uncomment to create fake win32 binaries&lt;br /&gt;
 win32_create_fake=&amp;quot;yes&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # Point to the development sqlCVS server for 0810&lt;br /&gt;
 sqlcvs_host=&amp;quot;schema.linuxmce.org&amp;quot;&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
===Preparing for build===&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/lmce-build&lt;br /&gt;
&lt;br /&gt;
The preparation steps one at a time (recommended):&lt;br /&gt;
 prepare-scripts/install-build-pkgs.sh&lt;br /&gt;
 prepare-scripts/cd1-prepare.sh&lt;br /&gt;
 prepare-scripts/cd2-prepare.sh&lt;br /&gt;
 prepare-scripts/create-diskless-debootstrap.sh&lt;br /&gt;
 prepare-scripts/import-external-files.sh&lt;br /&gt;
 prepare-scripts/preseed-build-pkgs.sh&lt;br /&gt;
&lt;br /&gt;
Or, you could do them all in one go with:&lt;br /&gt;
 ./prepare.sh&lt;br /&gt;
&lt;br /&gt;
===Building from source===&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/lmce-build&lt;br /&gt;
&lt;br /&gt;
All the build steps can be executed seperately (recommended at least the first time):&lt;br /&gt;
 build-scripts/checkout-svn.sh&lt;br /&gt;
 build-scripts/import-win32bins.sh&lt;br /&gt;
 build-scripts/build-replacements.sh&lt;br /&gt;
 build-scripts/build-makerelease.sh&lt;br /&gt;
 build-scripts/import-databases.sh&lt;br /&gt;
 build-scripts/build-maindebs.sh&lt;br /&gt;
 build-scripts/get-closed-source-debs.sh&lt;br /&gt;
 build-scripts/create-repo.sh&lt;br /&gt;
 build-scripts/cd1-build.sh&lt;br /&gt;
 build-scripts/cd2-build.sh&lt;br /&gt;
&lt;br /&gt;
Or the following script will run them all:&lt;br /&gt;
 ./build.sh&lt;br /&gt;
&lt;br /&gt;
== Using the build&#039;s output ==&lt;br /&gt;
The build.sh script puts all created deb-files under /var/www. Setup a web server to point to that directory. &lt;br /&gt;
 sudo apt-get install apache2&lt;br /&gt;
&lt;br /&gt;
In the machine, where you want to test the build, follow the instructions on using the alpha build. After the step pre-install-from-repo.sh, go into /etc/apt/sources.list, and replace the deb.linuxmce.org line with&lt;br /&gt;
 deb &amp;lt;ip-address-of-your-builder&amp;gt; ./&lt;br /&gt;
and re-run apt-get update&lt;br /&gt;
You will find, that two packages are missing. Get those two packages from the regular repository and put them into the builders /var/www directory&lt;br /&gt;
&lt;br /&gt;
 pushd /var/www&lt;br /&gt;
 wget http://deb.linuxmce.org/ubuntu/dists/intrepid/lmce-alpha2/binary-all/libft-perl_1.0_all.deb&lt;br /&gt;
 wget http://deb.linuxmce.org/ubuntu/dists/intrepid/lmce-alpha-latest/binary-all/mail-transport-agent_1.0_all.deb &lt;br /&gt;
 dpkg-scanpackages . &amp;gt;Packages&lt;br /&gt;
 gzip -c Packages &amp;gt; Packages.gz&lt;br /&gt;
 popd&lt;br /&gt;
&lt;br /&gt;
Now, on your new or test core, execute another apt-get update, and you are good to go for the mce-install.sh&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
If you want to speed up building on a multi-core machine, amend build-scripts/build-maindebs.sh and change the call to MakeRelease to include -j &amp;lt;number of cores&amp;gt;. Before executing the build, copy libresolution.so from an older build to your lib dir, and run ldconfig.&lt;br /&gt;
&lt;br /&gt;
=== Without -j 2 ===&lt;br /&gt;
 23:36:44  Compiling and building packages&lt;br /&gt;
 01:42:50  *** STEP: Download closed source debs&lt;br /&gt;
&lt;br /&gt;
 Total: roughly 2h 6minutes for compiling&lt;br /&gt;
&lt;br /&gt;
=== With -j 2 ===&lt;br /&gt;
 13:13:44  Compiling and building packages&lt;br /&gt;
 14:51:56  *** STEP: Download closed source debs&lt;br /&gt;
&lt;br /&gt;
 Total: roughly 1h 38minutes for compiling&lt;br /&gt;
&lt;br /&gt;
=== Error during prepare step ===&lt;br /&gt;
If you get an error during the prepare stage&lt;br /&gt;
 E: Couldn&#039;t find package libvdpau-dev&lt;br /&gt;
&amp;lt;del&amp;gt;make sure to have avenard repo in your builders sources.list&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;del&amp;gt;deb http://www.avenard.org/files/ubuntu-repos/ intrepid release testing&amp;lt;/del&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Notes for installing on a virgin Kubuntu 8.10 installation (no chroot) ===&lt;br /&gt;
* As pointed out above, there is no need to run the command below, IF you are not chroot&#039;ing&lt;br /&gt;
  sed &#039;s/^[^#]*bind-address[[:space:]]*=.*$/#&amp;amp;\nskip-networking/&#039; -i /etc/mysql/my.cnf&lt;br /&gt;
&lt;br /&gt;
* After you reboot, you will notice that KDE mysteriously vanished, and you will go to a gnome desktop.  I&#039;m not sure why this is, but it does not seem to affect the builder any.&lt;br /&gt;
&lt;br /&gt;
* If you want to run this builder headless (or just want to ability to ssh in to it), then you must configure it for ssh access by installing an ssh server&lt;br /&gt;
 sudo apt-get install openssh-server&lt;/div&gt;</summary>
		<author><name>Jeangot</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Developers_Guide&amp;diff=26876</id>
		<title>Developers Guide</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Developers_Guide&amp;diff=26876"/>
		<updated>2011-02-03T16:19:47Z</updated>

		<summary type="html">&lt;p&gt;Jeangot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Programmer&#039;s Guide]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
LinuxMCE developer’s guide&lt;br /&gt;
Document version 1.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==1. Architecture==&lt;br /&gt;
&lt;br /&gt;
LinuxMCE uses a modular architecture. The heart of LinuxMCE, the &#039;main application&#039; DCERouter is nothing but a general-purpose message router. It has absolutely no code relating to any of LinuxMCE’s functionality--it just relays messages between &amp;quot;Devices&amp;quot;. The functionality of LinuxMCE is entirely in separate programs (aka &amp;quot;Devices&amp;quot;) which all run independently and communicate with each other by passing messages through DCERouter over sockets. &lt;br /&gt;
&lt;br /&gt;
[[Image:LMCE_Architecture_mini.jpg|frame|none|LinuxMCE architecture – the devices]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The plug-in’s are also devices, but instead of running as separate binaries, they run as dynamic libraries in DCERouter’s memory space.&lt;br /&gt;
A LinuxMCE system can have one or more Media Directors (MD’s). Also, a Core machine can have also the functionality of a Media Director. We call it a Hybrid:&lt;br /&gt;
&lt;br /&gt;
[[Image:LMCE_Architecture_-_the_machines.jpg|frame|none|Linux MCE architecture – the machines]]&lt;br /&gt;
&lt;br /&gt;
==2. DCE== &lt;br /&gt;
&lt;br /&gt;
DCE (Data, Commands and Events) is a lightweight network protocol allowing any device to access its configuration (ie data) from a central database, send + receive commands, and fire + respond to events.&lt;br /&gt;
&lt;br /&gt;
The DCE protocol can be implemented with any device that supports standard networking. LinuxMCE provides a DCE library written in Ansi C++ that implements the protocol on any socket-compatible operating system, and has been tested on Linux and Windows. Porting to other languages should not be a big task. Because the messaging is socket-based, any device, regardless of operating system or language, can be used with any other device.&lt;br /&gt;
&lt;br /&gt;
In each installation there is also one DCE Router, through which all messages are routed. An &amp;quot;installation&amp;quot; is a group of devices treated as a unit, and normally corresponds to a physical residence.&lt;br /&gt;
&lt;br /&gt;
The DCE Router is itself quite simple. It just opens a port for incoming connections. When a device connects, the device sends its unique ID, or Mac Address. The DCE Router does a lookup in a database, and returns that device&#039;s data (configuration). DCERouter also sends back a list of all the other devices in the installation with basic information including the commands they know how to implement. The DCE Device then opens a minimum of 2 socket connections to the router. One is for incoming messages (usually commands) from the router, another for outgoing messages (usually events) to it. The DCE Library, which implements the protocol for DCE Devices and the DCE Router, will also open a 3rd socket connection so that it has 2 outgoing sockets: 1 dedicated for sending events and the other for sending other types of messages, like requests and commands to other devices.&lt;br /&gt;
&lt;br /&gt;
All messages go through the router. The devices do not communicate directly to each other. The message will contain information such as the destination device, the type of message, the message id and any number of optional parameters. The router does nothing with the message but forward it to the destination device or devices if the message is being sent to more than one. The DCE library, from which DCE Devices and the DCE Router are derived, knows how to receive incoming messages of the type command and route them to a message handler in the DCE Device. &lt;br /&gt;
&lt;br /&gt;
Another important library is PlutoUtils. It has cross-platform wrapper classes to handle file, strings, processes, threads synchronization, database utils, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==3. DCERouter==&lt;br /&gt;
&lt;br /&gt;
When a DCE Device connects, DCERouter gives it its configuration data and is responsible for receiving and forwarding any messages to and from the devices that connect to it. The most common types of messages are commands and events. All communication goes through DCE Router. If a doorbell device fires an event that the button was pushed, that event goes to DCERouter, which will forward it whatever plug-in has indicated it wants to handle that type of event. If the plug-in then wants to send a command to the media player, this command goes first to the DCE Router, which will then forward it to the media player. The DCE Devices never communicate with each other directly--everything goes through DCE Router. Devices can create their own types of messages specific to them--not just commands and events. For example, a DVD player may send a message that contains a screen capture, or a TV program may send a stream of messages with streaming video. To DCE Router it makes no difference. Messages just have sources and destinations, and DCE Router does not care what type of message it is.&lt;br /&gt;
&lt;br /&gt;
DCERouter also allows you to Message Interceptors. This means a device or plug-in can say that it wants to pre-process all messages that meet a certain criteria. For example, a security plug-in may want to see all events relating to security.&lt;br /&gt;
Plug-in’s are DCE Devices that run within the DCERouter&#039;s memory space. They are DCE Devices just like any other and they are created like any other DCE Device. The code is the same, it&#039;s just a compilation option whether the device is built as a normal DCE Device, which runs in its own memory space and communicates with DCERouter over a socket, or if it&#039;s a plug-in which gets loaded into DCERouter&#039;s memory space. Plug-in’s have the ability to get pointers to the in-memory instance of the other plug-ins so they can share memory and call each others methods.&lt;br /&gt;
&lt;br /&gt;
See below a simplified class diagram for DCERouter:&lt;br /&gt;
[[Image:DCERouter.jpg|frame|none|Simplified class diagram for the DCE router]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==4. The binary communication protocol==&lt;br /&gt;
&lt;br /&gt;
===4.1 Introduction===&lt;br /&gt;
A device can create a command connection and one or more event connections to the router. &lt;br /&gt;
*The command connection is used as an incoming connection and device will use it to receive message from the router (commands). &lt;br /&gt;
*An event connection is used by the device as an outgoing connection to notify the router about events or the deliver commands to other devices. &lt;br /&gt;
The DCERouter process is listening on 3450 port. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===4.2. How to create an event connection===&lt;br /&gt;
Here is how the handshake is made for an event connection: &lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt; Device sends: &lt;br /&gt;
EVENT &amp;lt;my_device_id&amp;gt; &#039;\n&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt; The router will respond with : &lt;br /&gt;
OK &amp;lt;my_device_id&amp;gt; IP=&amp;lt;device_ip_address&amp;gt; &#039;\n&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt; To send a message, the device will send : &lt;br /&gt;
MESSAGE &amp;lt;size_of_binary_message&amp;gt; &#039;\n&#039; &lt;br /&gt;
&lt;br /&gt;
and then:&lt;br /&gt;
&amp;lt;serialized_binary_message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===4.3 How to serialize data===&lt;br /&gt;
DCE uses SerializeClass to serialize/deserialize data. &lt;br /&gt;
The sources can be found here : src/SerializeClass/Serialize.h/cpp. &lt;br /&gt;
The deserialize the data, the deserializing module must know the way the data was serialized like this: &lt;br /&gt;
* 4 bytes, unsigned long&lt;br /&gt;
* 1 byte, unsigned char &lt;br /&gt;
&lt;br /&gt;
Primitives: &lt;br /&gt;
* 8 bytes, unsigned int64 &lt;br /&gt;
* 8 bytes, int64 &lt;br /&gt;
* 4 bytes, unsigned long &lt;br /&gt;
* 4 bytes, unsigned short &lt;br /&gt;
* 1 byte, unsigned char &lt;br /&gt;
* 1 byte, char &lt;br /&gt;
* 4 byte, long &lt;br /&gt;
* 4 bytes, float &lt;br /&gt;
* 8 bytes, double &lt;br /&gt;
* 2 bytes, short&lt;br /&gt;
&lt;br /&gt;
Complex types: &lt;br /&gt;
&lt;br /&gt;
#string &lt;br /&gt;
#*STR_LENGTH bytes, the array with chars &lt;br /&gt;
#*1 byte, &#039;/0&#039; (value 0x00) &lt;br /&gt;
#:&lt;br /&gt;
#block of data &lt;br /&gt;
#*BLOCK_LENGTH bytes, the array with bytes &lt;br /&gt;
#:&lt;br /&gt;
#vector of strings &lt;br /&gt;
#*VECT_LENGTH bytes, the number of strings from vector &lt;br /&gt;
#*string 0 &lt;br /&gt;
#*string 1 &lt;br /&gt;
#*... &lt;br /&gt;
#*string VECT_LENGTH - 1 &lt;br /&gt;
&lt;br /&gt;
Other complex types serialized (see SerializeClass.cpp for details) : &lt;br /&gt;
* map&amp;lt;int,string&amp;gt; &lt;br /&gt;
* map&amp;lt;u_int64_t,string&amp;gt; &lt;br /&gt;
* map&amp;lt;int,int&amp;gt; &lt;br /&gt;
* map&amp;lt;string,string&amp;gt; &lt;br /&gt;
* vector&amp;lt;int&amp;gt; &lt;br /&gt;
* vector&amp;lt; pair&amp;lt;int,int&amp;gt; &amp;gt; &lt;br /&gt;
* map&amp;lt;string, pair&amp;lt;int,int&amp;gt; &amp;gt; &lt;br /&gt;
&lt;br /&gt;
SerializeClass also allowed you to serialize/deserialize custom objects. Examples: &lt;br /&gt;
* PlutoColor &lt;br /&gt;
* PlutoPoint &lt;br /&gt;
* PlutoSize &lt;br /&gt;
* PlutoRectangle &lt;br /&gt;
* PlutoDataBlock&lt;br /&gt;
&lt;br /&gt;
===4.4 How to serialize a message===&lt;br /&gt;
&lt;br /&gt;
The class used by DCE is Message class from src/DCE/Message.h/cpp unit. &lt;br /&gt;
&lt;br /&gt;
This is how the raw data looks like into a binary message: &lt;br /&gt;
&lt;br /&gt;
* long, value must be 1234 (magic number) &lt;br /&gt;
* long, &amp;lt;device_from_id&amp;gt; &lt;br /&gt;
* long, &amp;lt;device_to_id&amp;gt; &lt;br /&gt;
* long, &amp;lt;device_group_to_id&amp;gt; &lt;br /&gt;
* long, &amp;lt;message_id&amp;gt; &lt;br /&gt;
* long, &amp;lt;message_priority&amp;gt; &lt;br /&gt;
* long, &amp;lt;message_type&amp;gt; &lt;br /&gt;
* long, &amp;lt;device_category_to&amp;gt; &lt;br /&gt;
* long, &amp;lt;device_template_to&amp;gt; &lt;br /&gt;
* unsigned char, &amp;lt;include_children&amp;gt; &lt;br /&gt;
* long, &amp;lt;message_broadcast_level&amp;gt; &lt;br /&gt;
* long, &amp;lt;message_retry&amp;gt; &lt;br /&gt;
* unsigned char, &amp;lt;relative_to_sender&amp;gt; &lt;br /&gt;
* long, &amp;lt;expected_response&amp;gt; &lt;br /&gt;
* string, &amp;lt;device_list_to&amp;gt; &lt;br /&gt;
* unsigned long, &amp;lt;number_of_string_parameters&amp;gt; &lt;br /&gt;
**	foreach &amp;lt;string_parameter&amp;gt; &lt;br /&gt;
***	long, &amp;lt;string_parameter_id&amp;gt; &lt;br /&gt;
***     string, &amp;lt;string_parameter_value&amp;gt; &lt;br /&gt;
**	end_foreach &lt;br /&gt;
* unsigned long, &amp;lt;number_of_data_parameters&amp;gt; &lt;br /&gt;
**	foreach &amp;lt;data_parameter&amp;gt; &lt;br /&gt;
***	long, &amp;lt;data_parameter_id&amp;gt; &lt;br /&gt;
***	unsigned long, &amp;lt;data_parameter_length&amp;gt; &lt;br /&gt;
***	array of bytes, &amp;lt;data_parameter_value&amp;gt; &lt;br /&gt;
**      end_foreach &lt;br /&gt;
* unsigned long, &amp;lt;number_of_extra_messages&amp;gt; &lt;br /&gt;
**	foreach &amp;lt;extra_message&amp;gt; &lt;br /&gt;
***	unsigned long, &amp;lt;serialized_extra_message_length&amp;gt; &lt;br /&gt;
***	array of bytes, &amp;lt;serialized_extra_message_value&amp;gt; &lt;br /&gt;
**	end_foreach &lt;br /&gt;
* unsigned long, must be 6789 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Enums:&#039;&#039;&#039; &lt;br /&gt;
* enum eBroadcastLevel { BL_None=0, BL_DirectSiblings=1, BL_SameComputer=2, BL_SameRoom=3, BL_SameHouse=4, BL_AllHouses=5 }; &lt;br /&gt;
* enum eRetry { MR_None=0, MR_Retry=1, MR_Persist=2 }; &lt;br /&gt;
* enum eExpectedResponse { ER_None=0, ER_ReplyMessage, ER_ReplyString, ER_DeliveryConfirmation }; &lt;br /&gt;
* message types: enum { MESSAGETYPE_COMMAND=1, MESSAGETYPE_EVENT=2, MESSAGETYPE_DATAPARM_CHANGE=3, MESSAGETYPE_REPLY=4, MESSAGETYPE_DATAPARM_REQUEST=5, MESSAGETYPE_LOG=6, MESSAGETYPE_SYSCOMMAND=7, MESSAGETYPE_REGISTER_INTERCEPTOR=8, MESSAGETYPE_MESSAGE_INTERCEPTED=9, MESSAGETYPE_EXEC_COMMAND_GROUP=10, MESSAGETYPE_START_PING=11, MESSAGETYPE_STOP_PING=12, MESSAGETYPE_PURGE_INTERCEPTORS=13, MESSAGETYPE_PENDING_TASKS=14 }; &lt;br /&gt;
* message priority : enum { PRIORITY_LOW=0, PRIORITY_NORMAL=1, PRIORITY_HIGH=2, PRIORITY_URGENT=3 }; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important notes:&#039;&#039;&#039; &lt;br /&gt;
* when sending to device template, set &amp;lt;device_template_to&amp;gt; to desired device template and also &amp;lt;device_to_id&amp;gt; to -2000 (DEVICEID_MASTERDEVICE) &lt;br /&gt;
* when sending to device category, set &amp;lt;device_category_to&amp;gt; to desired device category and also &amp;lt;device_to_id&amp;gt; to -2001 (DEVICEID_CATEGORY) &lt;br /&gt;
* when sending to a list with devices, set &amp;lt;device_list_to&amp;gt; to comma delimited list with devices and also &amp;lt;device_to_id&amp;gt; to -2002 (DEVICEID_LIST). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example:&#039;&#039;&#039; &lt;br /&gt;
Here is the pseudocode to send the &amp;quot;on&amp;quot; command to a light switch. &lt;br /&gt;
We&#039;ll assume that the your device has #id 250 and the light switch has device #id 100 &lt;br /&gt;
&lt;br /&gt;
*MyDevice.Connect(router_ip, 3450 /*port*/)&lt;br /&gt;
*MyDevice.SendData(&amp;quot;EVENT 250\n&amp;quot;) &lt;br /&gt;
*MyDevice.ReceiveData() //until you&#039;ll get a &#039;\n&#039; ; you should receive: &amp;quot;OK 250 IP=&amp;lt;device_ip_address&amp;gt; &#039;\n&#039;; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;next: creating a message&#039;&#039;&#039; &lt;br /&gt;
let&#039;s say MyData is an array of bytes &lt;br /&gt;
*SerializeLong(MyData, 1234) //magic number &lt;br /&gt;
*SerializeLong(MyData, 250) //my id &lt;br /&gt;
*SerializeLong(MyData, 100) //the light switch &lt;br /&gt;
*SerializeLong(MyData, 0) //not used now &lt;br /&gt;
*SerializeLong(MyData, 192) //message id of command &#039;on&#039; &lt;br /&gt;
*SerializeLong(MyData, 1) //normal priority &lt;br /&gt;
*SerializeLong(MyData, 1) //message type : command &lt;br /&gt;
*SerializeLong(MyData, 0) //not used now &lt;br /&gt;
*SerializeLong(MyData, 0) //not used now &lt;br /&gt;
*SerializeUnsignedChar(MyData, 0) //not including children &lt;br /&gt;
*SerializeLong(MyData, 0) //broadcast level : none &lt;br /&gt;
*SerializeLong(MyData, 0) //don&#039;t retry &lt;br /&gt;
*SerializeUnsignedChar(MyData, 0) //relative to sender false &lt;br /&gt;
*SerializeLong(MyData, 3) //delivery confirmation &lt;br /&gt;
*SerializeString(MyData, &amp;quot;&amp;quot;) //device list to empty &lt;br /&gt;
*SerializeUnsignedLong(MyData, 2) //2 parameters &lt;br /&gt;
*SerializeLong(MyData, 98) //parameter type #98 &lt;br /&gt;
*SerializeString(MyData, &amp;quot;&amp;quot;) //empty value &lt;br /&gt;
*SerializeLong(MyData, 97) //parameter type #97 &lt;br /&gt;
*SerializeString(MyData, &amp;quot;&amp;quot;) //empty value &lt;br /&gt;
*SerializeUnsignedLong(MyData, 0) //no binary parameters &lt;br /&gt;
*SerializeUnsignedLong(MyData, 0) //no extra messages &lt;br /&gt;
*SerializeUnsignedLong(6789) //magic number &lt;br /&gt;
&lt;br /&gt;
*MyDevice.SendData(&amp;quot;MESSAGE &amp;quot; + MyData.length() + &#039;\n&#039;) &lt;br /&gt;
*MyDevice.SendData(MyData) &lt;br /&gt;
*MyDevice.ReceiveData() //until you&#039;ll get a &#039;\n&#039; ; you should receive: &amp;quot;OK&amp;quot; or an error message &lt;br /&gt;
&lt;br /&gt;
*MyDevice.CloseConnection();&lt;br /&gt;
&lt;br /&gt;
===4.5 How to serialize data-grids ===&lt;br /&gt;
&#039;&#039;&#039;Complex objects:&#039;&#039;&#039; &lt;br /&gt;
# DataGridCellSerializableData &lt;br /&gt;
#* unsigned long, &amp;lt;sizeof(DataGridCellSerializableData)&amp;gt; &lt;br /&gt;
#* unsigned long, &amp;lt;graphic_length&amp;gt; &lt;br /&gt;
#* unsigned long, &amp;lt;message_length&amp;gt; &lt;br /&gt;
#* unsigned long, &amp;lt;text_length&amp;gt; &lt;br /&gt;
#* unsigned long, &amp;lt;value_length&amp;gt; &lt;br /&gt;
#* unsigned long, &amp;lt;image_path_length&amp;gt; &lt;br /&gt;
#* unsigned long, &amp;lt;number_of_attributes_length&amp;gt; &lt;br /&gt;
#* unsigned long, &amp;lt;attributes_length&amp;gt; &lt;br /&gt;
#* int, &amp;lt;alternate_color&amp;gt; &lt;br /&gt;
#* unsigned long, &amp;lt;graphic_format&amp;gt; &lt;br /&gt;
#* unsigned char, &amp;lt;selectable&amp;gt; &lt;br /&gt;
#* int, &amp;lt;style_detail&amp;gt; &lt;br /&gt;
#* int, &amp;lt;col_span&amp;gt; &lt;br /&gt;
#* int, &amp;lt;row_span&amp;gt; &lt;br /&gt;
#* unsigned char, &amp;lt;dont_fire_grid_event&amp;gt; &lt;br /&gt;
#:&lt;br /&gt;
#:Enums: &lt;br /&gt;
#* enum eGraphicFormat { GR_UNKNOWN=0, GR_JPG=1, GR_GIF=2, GR_TIF=3, GR_PNG=4, GR_MNG=5, GR_BMP=6, GR_OCG=7, GR_PFG=8 }; &lt;br /&gt;
#:&lt;br /&gt;
# DataGridCell &lt;br /&gt;
#* DataGridCellSerializableData, &amp;lt;datagrid_cell_serializable_data&amp;gt; &lt;br /&gt;
#* array of chars, &amp;lt;text&amp;gt; &lt;br /&gt;
#* array of chars, &amp;lt;value&amp;gt; &lt;br /&gt;
#* array of bytes, &amp;lt;graphic_data&amp;gt; &lt;br /&gt;
#* array of bytes, &amp;lt;message_data&amp;gt; &lt;br /&gt;
#* array of chars, &amp;lt;image_path&amp;gt; &lt;br /&gt;
#*:&lt;br /&gt;
#**	foreach &amp;lt;cell_attribute&amp;gt; &lt;br /&gt;
#***	array of chars ended with &#039;\0&#039; , &amp;lt;cell_attribute_name&amp;gt; &lt;br /&gt;
#***	array of chars ended with &#039;\0&#039;, &amp;lt;cell_attribute_value&amp;gt; &lt;br /&gt;
#**	end_foreach &lt;br /&gt;
#:&lt;br /&gt;
#DataGridTableSerializableData &lt;br /&gt;
#* int, &amp;lt;total_number_of_columns&amp;gt; &lt;br /&gt;
#* int, &amp;lt;total_number_of_rows&amp;gt; &lt;br /&gt;
#* unsigned char, &amp;lt;keep_row_header&amp;gt; &lt;br /&gt;
#* unsigned char, &amp;lt;keep_column_header&amp;gt; &lt;br /&gt;
#* int, &amp;lt;column_count&amp;gt; &lt;br /&gt;
#* int, &amp;lt;row_count&amp;gt; &lt;br /&gt;
#* int, &amp;lt;starting_column&amp;gt; &lt;br /&gt;
#* int, &amp;lt;starting_row&amp;gt; &lt;br /&gt;
#* int, &amp;lt;cell_count&amp;gt; &lt;br /&gt;
#:&lt;br /&gt;
#DataGridTableCellIndex &lt;br /&gt;
#* unsigned int, &amp;lt;column_row_type&amp;gt; &lt;br /&gt;
#* unsigned int, &amp;lt;size&amp;gt; &lt;br /&gt;
#:&lt;br /&gt;
#DataGridTable &lt;br /&gt;
#* unsigned long, &amp;lt;sizeof(DataGridTableSerializableData)&amp;gt; &lt;br /&gt;
#* array of DataGridTableCellIndex, &amp;lt;col * row * sizeof(DataGridTableCellIndex)&amp;gt; &lt;br /&gt;
#* array of DataGridCell, &amp;lt;col * row * serialized DataGridCell&amp;gt; &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Additional step: lzo compression/decompression &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; can be disabled if compiled with DISABLE_LZO_DATAGRID &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==5. The devices==&lt;br /&gt;
&lt;br /&gt;
Each device has associated an interface, which we call device template. A device template is a set of commands to be implemented, events which can be fired by the device and device data (persistent information for device).&lt;br /&gt;
To create device templates and modify them, go to LinuxMCE Web Admin -&amp;gt; Advanced -&amp;gt; Configuration -&amp;gt; Device Templates.&lt;br /&gt;
To generate the C++ code for the device implementing a device template interface, you must use DCEGen tool, specifying the database ip address and the device template number.&lt;br /&gt;
Here is the simplified class diagram for one of the devices (App_Server):&lt;br /&gt;
&lt;br /&gt;
[[Image:App_Server.jpg|frame|none|Simplified class diagram for a DCE device]]&lt;br /&gt;
&lt;br /&gt;
The classes App_Server_Event, App_Server_Command and App_Server_Data are generated using DCEGen tool. The base classes for them are implemented in DCE Library.&lt;br /&gt;
&lt;br /&gt;
==6. App_Server device==&lt;br /&gt;
&lt;br /&gt;
App_Server device is present by default on all LinuxMCE machines. It spawns/kills applications, handles volume of sound on that machine, restarts/halts the device.&lt;br /&gt;
&lt;br /&gt;
# Implemented commands:&lt;br /&gt;
#*CMD_Spawn_Application - Spawns an application&lt;br /&gt;
#*CMD_Kill_Application - Kills an application&lt;br /&gt;
#*CMD_Application_Is_Running - Checks if the given application is running.&lt;br /&gt;
#*CMD_Halt_Device - Halts or reboots this device&lt;br /&gt;
#*CMD_Vol_Up - Increases the volume 1%&lt;br /&gt;
#*CMD_Vol_Down - Decreases the volume 1%&lt;br /&gt;
#*CMD_Set_Volume - Sets the volume to a specific level between 0-100&lt;br /&gt;
#*CMD_Mute - Toggles mute/unmute&lt;br /&gt;
#: &lt;br /&gt;
#: &lt;br /&gt;
#It doesn’t fire any events.&lt;br /&gt;
#: &lt;br /&gt;
#: &lt;br /&gt;
#It has the following device data:&lt;br /&gt;
#*Discrete Volume&lt;br /&gt;
#*Volume Level&lt;br /&gt;
&lt;br /&gt;
==7. Photo_Screen_Saver device==&lt;br /&gt;
&lt;br /&gt;
The photo screen saver (PSS) displays pictures when there is no video playing, even if you just happen to be listening to music. By default, the photos come from Flickr and are downloaded regularly to local drive.&lt;br /&gt;
&lt;br /&gt;
PSS is a OpenGL application and it slides pictures and fades them between transitions. &lt;br /&gt;
&lt;br /&gt;
1. Implemented commands&lt;br /&gt;
&lt;br /&gt;
The list with pictures is taken by sending a command to Orbiter Plugin : CMD_Get_Screen_Saver_Files which has an output parameter Filename. The filenames are delimited by a ‘\n’ character.&lt;br /&gt;
&lt;br /&gt;
The PSS animations are started/stopped using CMD_On/CMD_Off commands. To force PSS reload the list with pictures from Orbiter Plugin, CMD_Reload is used.&lt;br /&gt;
&lt;br /&gt;
When PSS starts, it should check every 10 minutes if there are any pictures downloaded and ready to be displayed. If there are pictures to display it should display them on CMD_On command and refresh the list with pictures every 24 hours.&lt;br /&gt;
&lt;br /&gt;
2. It doesn’t fire any events&lt;br /&gt;
&lt;br /&gt;
3. Device data:&lt;br /&gt;
* ZoomTime - Value in miliseconds that a zoom effect will take &lt;br /&gt;
* FadeTime - value in miliseconds that a fade effect will take &lt;br /&gt;
* Name - The window name to activate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==8. Media Player device==&lt;br /&gt;
&lt;br /&gt;
Currently there are two Media Players in LinuxMCE, the primary Xine_Player and &lt;br /&gt;
secondary MPlayer_Player.&lt;br /&gt;
First one is based one the Xine engine (http://xinehq.de) and supports the &lt;br /&gt;
following formats:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;File formats (System layer / media types)supported:&#039;&#039;&#039;&lt;br /&gt;
**direct DVD playback (of unlocked/unencrypted DVDs, see below)&lt;br /&gt;
** Video CD&lt;br /&gt;
** Audio CD&lt;br /&gt;
** mpeg program streams (.mpg, .mpeg)&lt;br /&gt;
** mpeg transport streams (.ts)&lt;br /&gt;
** ogg (.ogg, .ogm)&lt;br /&gt;
** avi (.avi)&lt;br /&gt;
** asf (.asf, .wmv, .wma)&lt;br /&gt;
** quicktime (.mov, .mp4)&lt;br /&gt;
** mpeg-video (.mpv, .m2v)&lt;br /&gt;
** mpeg-audio (.mp2, .mp3)&lt;br /&gt;
** Sega Saturn FILM (.cpk)&lt;br /&gt;
** Id Software RoQ (.roq)&lt;br /&gt;
** wav (.wav)&lt;br /&gt;
** Autodesk FLIC (.fli)&lt;br /&gt;
** real (.rm, .ra, .ram)&lt;br /&gt;
** raw dv (.dv)&lt;br /&gt;
** network graphics format (.png, .mng)&lt;br /&gt;
** Creative Voice (.voc)&lt;br /&gt;
** Sun/NeXT SND/AU (.snd, .au)&lt;br /&gt;
** Wing Commander III (.mve)&lt;br /&gt;
** Westwood Studios files (.vqa, .aud)&lt;br /&gt;
** Electronic Arts WVE (.wve)&lt;br /&gt;
** AIFF (.aif, .aiff)&lt;br /&gt;
** YUV4MPEG2 (.y4m)&lt;br /&gt;
** SMJPEG (.mjpg)&lt;br /&gt;
** raw AC3 (.ac3)&lt;br /&gt;
** Dialogic VOX (.vox)&lt;br /&gt;
** TechnoTrend PVA (.pva)&lt;br /&gt;
** Playstation STR (.str)&lt;br /&gt;
** Nullsoft Video (.nsv)&lt;br /&gt;
** 4X Technologies (.4xm)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Video codecs supported:&#039;&#039;&#039;&lt;br /&gt;
** mpeg 1/2&lt;br /&gt;
** mpeg 4 (aka OpenDivX)&lt;br /&gt;
** ms mpeg 4&lt;br /&gt;
** divx 3/4/5&lt;br /&gt;
** windows media video 7 &amp;amp; 8&lt;br /&gt;
** motion jpeg&lt;br /&gt;
** Cinepak&lt;br /&gt;
** DV&lt;br /&gt;
** ms video 1 (msvc)&lt;br /&gt;
** ms rle&lt;br /&gt;
** Sorenson SVQ1/SVQ3 (often used in Quicktime trailers)&lt;br /&gt;
** creative yuv (cyuv)&lt;br /&gt;
** roq video&lt;br /&gt;
** QT RLE, SMC, RPZA&lt;br /&gt;
** theora&lt;br /&gt;
** via external binary/win32 codecs (not included in xine):&lt;br /&gt;
** Indeo 3.1-5.0&lt;br /&gt;
** Window Media Video 8,9&lt;br /&gt;
** On2 VP3.1&lt;br /&gt;
** I263&lt;br /&gt;
** Real Media 2.0, 3.0, 4.0&lt;br /&gt;
* currently unsupported/untested Formats:&lt;br /&gt;
** 3ivx&lt;br /&gt;
** h263 (aka Real Video 1.0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Audio codecs&#039;&#039;&#039;&lt;br /&gt;
** mpeg audio (layer 1,2,3)&lt;br /&gt;
** a/52 (aka ac3, dolby digital)&lt;br /&gt;
** aac (used in .mp4 files)&lt;br /&gt;
** dts (via external decoder)&lt;br /&gt;
** vorbis&lt;br /&gt;
** pcm&lt;br /&gt;
** adpcm (MS/IMA/DVI/Dialogic)&lt;br /&gt;
** mu-law and A-law&lt;br /&gt;
** roq dpcm&lt;br /&gt;
** Real Media dnet audio&lt;br /&gt;
** Real Media 28.8 audio&lt;br /&gt;
** DivX audio (WMA)&lt;br /&gt;
** GSM 6.10&lt;br /&gt;
** FLAC&lt;br /&gt;
** NSF (NES sound format)&lt;br /&gt;
** Speex&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The MPlayer_Player is used as the fallback player for the formats Xine doesn&#039;t &lt;br /&gt;
support/supports not well and currently is used for playing HD-DVD/Bluray &lt;br /&gt;
video files and disks.&lt;br /&gt;
&lt;br /&gt;
A media player device plays all kind of media: audio and video, stored media or from cd/dvd/hd/bluray drivers, etc.&lt;br /&gt;
&lt;br /&gt;
1. Implemented commands&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Keyboard input:&#039;&#039;&#039; &lt;br /&gt;
** CMD_EnterGo - Select the currently highlighted menu item&lt;br /&gt;
** CMD_Move_Up, CMD_Move_Down, CMD_Move_Left, CMD_Move_Right - Move the highlighter&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Media Player Commands&#039;&#039;&#039;&lt;br /&gt;
** CMD_Pause - Pause the media&lt;br /&gt;
** CMD_Play - Play the media&lt;br /&gt;
** CMD_Skip_Back_ChannelTrack_Lower - Lower the channel, track, station, etc. by 1.  Same as Jump to Pos in Playlist with value -1 for a smart media player&lt;br /&gt;
** CMD_Skip_Fwd_ChannelTrack_Greater - Raise  the channel, track, station, etc. by 1.  Same as Jump to Pos in Playlist with value +1 for a smart media player&lt;br /&gt;
** CMD_Stop - Stop the media&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Menu Navigation&#039;&#039;&#039;&lt;br /&gt;
** CMD_EnterGo - Select the currently highlighted menu item&lt;br /&gt;
** CMD_Move_Up, CMD_Move_Down, CMD_Move_Left, CMD_Move_Right - Move the highlighter&lt;br /&gt;
** CMD_Get_Video_Frame - Gets the current video frame from the media player.&lt;br /&gt;
** CMD_Goto_Media_Menu - Goto to the current media Root Menu.&lt;br /&gt;
** CMD_Navigate_Next - Nagivate to the next possible navigable area. (The actual outcome depends on the specifc device)&lt;br /&gt;
** CMD_Navigate_Prev - Nagivate the previous possible navigable area. (The actual outcome depends on the specific device).&lt;br /&gt;
** CMD_Simulate_Mouse_Click - Simlate a mouse click at a certain position on the screen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Smart DVD commands&#039;&#039;&#039;&lt;br /&gt;
** CMD_Angle – Go to an angle&lt;br /&gt;
** CMD_Audio_Track – Go to an audio track&lt;br /&gt;
** Subtitle – Go to a subtitle&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Smart Media Player&#039;&#039;&#039;&lt;br /&gt;
** CMD_Change_Playback_Speed – Will make the playback to FF with a configurable amount of speed.&lt;br /&gt;
** CMD_Guide - Show guide information.  For a dvd this may be the menu, just like the menu command&lt;br /&gt;
** CMD_Jump_Position_In_Playlist - Jump to a specific position in the playlist, or a track, or a chapter.  Smart media players should also understand the skip fwd/skip back (which non-DCE media players use) to be the same thing as a jump +1 or -1&lt;br /&gt;
** CMD_Jump_To_Position_In_Stream - Jump to a position in the stream, specified in seconds.&lt;br /&gt;
** CMD_Menu - Show a menu associated with this media&lt;br /&gt;
** CMD_Pause_Media - This will stop a media that is currently played. This method should be paired with the &amp;quot;Restart Media&amp;quot; and used when the playback will be stopped and restarted on the same display device.&lt;br /&gt;
** CMD_Play_Media - This command will instruct a Media Player to play a media stream identified by a media descriptor created by the &amp;quot;Create Media&amp;quot; command.&lt;br /&gt;
** CMD_Report_Playback_Position - This will report the playback position of the current stream.&lt;br /&gt;
** CMD_Restart_Media - This will restart a media was paused with the above command&lt;br /&gt;
** CMD_Set_Aspect_Ratio - Force aspect ratio&lt;br /&gt;
** CMD_Set_Media_ID - Set Media ID - information about media stream&lt;br /&gt;
** CMD_Set_Media_Position - Jump to a certain media position&lt;br /&gt;
** CMD_SetZoom - Sets zoom level, relative, absolute or &#039;auto&#039;&lt;br /&gt;
** CMD_Simulate_Keypress - Send a key to the device&#039;s OSD, or simulate keypresses on the device&#039;s panel&lt;br /&gt;
** CMD_Start_Streaming - Like play media, but it means the destination device is not the same as the source&lt;br /&gt;
** CMD_Stop_Media - This will instruct the media player to stop the playback of a media started with the &amp;quot;Play Media&amp;quot; Command&lt;br /&gt;
** CMD_Update_Object_Image - Display an image on the media player&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. &#039;&#039;&#039;It fires the following events&#039;&#039;&#039;&lt;br /&gt;
* EVENT_Menu_Onscreen - A DVD Menu appeared on screen&lt;br /&gt;
* EVENT_Playblack_Completed - Fired when the playback of a stream has completed.&lt;br /&gt;
* EVENT_Playback_Info_Changed – Playback info changed&lt;br /&gt;
* EVENT_Playback_Started – Media has start playing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. &#039;&#039;&#039;Device data:&#039;&#039;&#039;&lt;br /&gt;
* Name - The name of the window for this app&lt;br /&gt;
* Hardware acceleration - driver used&lt;br /&gt;
* Deinterlacing Mode - Movie deinterlacing filter status&lt;br /&gt;
* Port – Time code notification every second&lt;br /&gt;
* Zoom Level – default zoom level&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE:&#039;&#039;&#039; A deviation from design, the media player must bind on a port specified in the device data and report the time code every one second. Any device like an Orbiter could connect to that port and read the time code. Here is the format used for time code:&lt;br /&gt;
Speed,CurrentTime,TotalTime,StreamID,Title,Chapter,MediaType,MediaID,Filename (comma delimited).&lt;br /&gt;
&lt;br /&gt;
==9. Orbiter==&lt;br /&gt;
&lt;br /&gt;
===9.1 Introduction===&lt;br /&gt;
&lt;br /&gt;
The Orbiter is really a device just like any other. The main class, Orbiter, is a normal DCE command implementation. However, the Orbiter class was written so that it has no platform-specific functions, such as graphics and sound. It handles the basic logic, and calls pure virtual functions that derived classes must implement to handle the platform-specific commands. Most of the code and virtually all of the logic is contained in the base classes. Therefore, it is a fairly easy task to make a new version of Orbiter for a platform other than SDL, perhaps one that uses Windows SDK calls, or another image library.&lt;br /&gt;
&lt;br /&gt;
Right now there are implementations of Orbiter using SDL. PocketFrog and OpenGL engines. Orbiter runs on different operation systems like Linux, Windows, Windows CE, Window Mobile, Symbian60. There also implementation for web orbiter (running into a browser) or for a Cisco hard phones (using XML services).&lt;br /&gt;
&lt;br /&gt;
===9.2 Architecture===&lt;br /&gt;
&lt;br /&gt;
[[Image:architecture.jpg|frame|none|Orbiter application architecture]]&lt;br /&gt;
&lt;br /&gt;
The present diagram shows how the Orbiter application architecture looks like. Depending on the Graphic Engine and the platform, the only modules dependent on them are “Renderers – engine specific” and “Orbiter - platform specific”. &lt;br /&gt;
&lt;br /&gt;
====9.2.1. The renderers====&lt;br /&gt;
&lt;br /&gt;
There are two kinds of renders:&lt;br /&gt;
* orbiter renderers&lt;br /&gt;
* object renderers&lt;br /&gt;
&lt;br /&gt;
The orbiter renderers (derived from OrbiterRenderer class) handle the graphic primitives, having pure virtual methods for operations like this:&lt;br /&gt;
* RenderText&lt;br /&gt;
* SolidRectangle&lt;br /&gt;
* HollowRectangle&lt;br /&gt;
* DrawLine&lt;br /&gt;
* FloodFill&lt;br /&gt;
* RenderGraphic&lt;br /&gt;
* ReplaceColorInRectangle&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
and applications flow :&lt;br /&gt;
* event loop&lt;br /&gt;
* configure&lt;br /&gt;
* destroy&lt;br /&gt;
* on quit&lt;br /&gt;
* on reload&lt;br /&gt;
&lt;br /&gt;
However, OrbiterRenderer is not an interface. It also has implemented the logic needed for: &lt;br /&gt;
* render screen action&lt;br /&gt;
* show a progress bar&lt;br /&gt;
* highlighting / un-highlighting objects&lt;br /&gt;
* render shortcuts&lt;br /&gt;
* show / hide popup’s&lt;br /&gt;
* redraw objects&lt;br /&gt;
* refresh screen&lt;br /&gt;
* render object asynchronously&lt;br /&gt;
* object on screen / off screen actions&lt;br /&gt;
* background image loading&lt;br /&gt;
* drawing an arrow&lt;br /&gt;
&lt;br /&gt;
Here is the class diagram for derived OrbiterRenderer‘s:&lt;br /&gt;
&lt;br /&gt;
[[Image:orbiterrenderer.jpg|frame|none|OrbiterRenderer class diagram]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also, there are renderer classes of complex objects like button, data grid, edit box, etc. The base classes for them are : ObjectRenderer, DataGridRenderer. Each renderer is attached to an object like DesignObj_Orbiter, DesignObj_DataGrid. &lt;br /&gt;
&lt;br /&gt;
Here is the class diagram for OpenGL implementation:&lt;br /&gt;
&lt;br /&gt;
[[Image:openGLimplementation.jpg|frame|none|OpenGL implementation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The screens are actually trees of objects. The characteristics of the objects are set using the Designer application and stored in the database, then serialized by OrbiterGen and then deserialized by Orbiter. &lt;br /&gt;
OrbiterGen scales and pre-renders the screens. Also, OrbiterGen embeds in the serialized data info about the actions to be executed when an object is loaded, activated, unloaded, etc.&lt;br /&gt;
&lt;br /&gt;
====9.2.2. Orbiter – platform specific====&lt;br /&gt;
&lt;br /&gt;
Orbiter also has to take care of the input events like mouse click, keyboard events, etc. For example, Orbiter_Win32 is derived from Orbiter class and takes care of enabling the auto-update mechanism. &lt;br /&gt;
Platform specific are the external dialogs with progress bar and prompt user, or the way the composite or masks are used (see OrbiterRenderer_Linux, OrbiterLinux, OrbiterRenderer_SDL_Win32&lt;br /&gt;
&lt;br /&gt;
The Linux version uses XRecord extension to intercept events. The Windows versions use PocketFrog engine’s event loop or SDL event loop.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====9.2.3. Cache image manager====&lt;br /&gt;
&lt;br /&gt;
This module is mainly used by remote orbiters, non-OSD orbiters. Because these orbiters don’t have access to core’s file system, all the graphic files are obtained by network connection and it might be slow. So instead of requesting same image over and over, the image is cached on the local drivers. The collection of images cached are associated with a timestamp (the generation date for the screens). If the user decides to regenerate the screens, the timestamp is changed and the cache is purged and the images are requested, on demand, again from the server.&lt;br /&gt;
&lt;br /&gt;
====9.2.4. Self update module====&lt;br /&gt;
&lt;br /&gt;
The “Self update” module is also used for non-OSD orbiters. Once a new version of the Orbiter XP/CE is available, a new binary data is stored on core’s filesystem. When an non-OSD orbiter starts, compares the md5sum of the current binary with the one from the server. If it’s different, the UpdateBinary is spawned, Orbiter exits and UpdateBinary requests the new binary from server, it downloads it, replaces the old binary and restart Orbiter.&lt;br /&gt;
&lt;br /&gt;
====9.2.5. Simulator====&lt;br /&gt;
&lt;br /&gt;
The simulator is responsible for generating mouse and keyboard events used for stress testing. It also stores some configuration settings.&lt;br /&gt;
&lt;br /&gt;
====9.2.6. Graphic objects====&lt;br /&gt;
&lt;br /&gt;
They are all derived from PlutoGraphic class and store info about the filename, width, height, the block of data and its length, graphic format and graphic management. The operations required are related to loading graphics from a file or a block of data, clearing the data stored, initializations, etc.&lt;br /&gt;
In the derived classes like PocketFrogGraphic, SDLGraphic, OpenGLGraphic, specific info are stored like the Surface for PocketFrong, SDL_Surface for SDL and the texture for OpenGL.&lt;br /&gt;
&lt;br /&gt;
====9.2.7. Orbiter logic module====&lt;br /&gt;
&lt;br /&gt;
Just like any other device, Orbiter is derived from a {Device_name}_Command class, the wrapper class generated by DCEGen to allow the device communicate with the router. However, Orbiter is also derived from OrbiterData and IRReceiverBase.&lt;br /&gt;
&lt;br /&gt;
[[Image:orbiterlogicclassdiagram.jpg|frame|none|Orbiter logic – class diagram]]&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
OrbiterData helps Orbiter deserialize the data needed for its graphic objects, data serialized by OrbiterGen. IRReceiverBase is the base class for all IR receiver devices and it translates IR codes into actions, base on the current screen type and remote layout.&lt;br /&gt;
&lt;br /&gt;
====9.2.7. Mouse handlers====&lt;br /&gt;
&lt;br /&gt;
The goal of handlers is the interpret mouse movements and perform specific actions depending on current screen type. This is one of the main features add in UI2 version.&lt;br /&gt;
&lt;br /&gt;
See below the class diagram:&lt;br /&gt;
&lt;br /&gt;
[[Image:mousehandlers.jpg|frame|none|Mouse handlers – class diagram]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that the mouse handlers are not available for UI1 version of Orbiter.&lt;br /&gt;
&lt;br /&gt;
MouseIterator and MouseGovernor limit the mouse movements the only one move per x ms to prevent extreme numbers of messages burdening the system.&lt;br /&gt;
MouseBehaviour handles special mouse behavior, such as locking axis’s, ramping and acceleration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====9.2.7. HID interface====&lt;br /&gt;
&lt;br /&gt;
This module gets events from the Fiire remote. See below the class diagram:&lt;br /&gt;
&lt;br /&gt;
[[Image:HIDinterface.jpg|frame|none|HID interface – class diagram]]&lt;br /&gt;
&lt;br /&gt;
This code has been augmented by the Generic HID Interface, below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====9.2.8. Generic HID Interface====&lt;br /&gt;
&lt;br /&gt;
The Generic HID Handler is implemented in http://svn.linuxmce.org/trac.cgi/browser/branches/LinuxMCE-0810/src/Orbiter/Linux/GenericHIDInterface.cpp and http://svn.linuxmce.org/trac.cgi/browser/branches/LinuxMCE-0810/src/Orbiter/Linux/GenericHIDInterface.h&lt;br /&gt;
&lt;br /&gt;
And basically consists of:&lt;br /&gt;
&lt;br /&gt;
* UpdateEventFDs - a function which scans /dev/input looking for event* devices, opening them read-only, and setting descriptors in a vector, which...&lt;br /&gt;
* ProcessGenericHIDEvents - is passed back into here, and the vector is iterated, filling the parameters of a select() call to determine which event devices need to be read. Those devices are checked, and passed into... &lt;br /&gt;
* DecodeEventFDs - This takes a file descriptor, and reads it, looking for EV_KEY events, those are found, the resulting key code is grabbed, and 20000 is added to it to indicate a synthetic key event. The resulting keycode is then passed to Orbiter&#039;s event queue, which can then be used by configuration device data for a given remote to map keys. This loop between ProcessGenericHIDEvents and DecodeEventFDs repeats until m_bQuit is set true from orbiter, at which point....&lt;br /&gt;
* CloseEventFDs - closes the file descriptors in the vector, the remainder of CloseEventFDs is procedded, and the thread simply exits.&lt;br /&gt;
&lt;br /&gt;
=====Things left to do=====&lt;br /&gt;
&lt;br /&gt;
The thread handler is still very early in design. It merely passes any EV_KEY value that&#039;s greater than 0 as a KEY_DOWN. For Gyration 3101&#039;s, this also means the value of 2 gets passed as KEY_DOWN. Some interesting things happen as a result, &lt;br /&gt;
&lt;br /&gt;
Held down keys need to be properly handled. --[[User:Tschak909|Tschak909]] 23:11, 27 June 2009 (CEST)&lt;br /&gt;
&lt;br /&gt;
=====How to Implement a Remote Template that uses Generic HID Interface=====&lt;br /&gt;
&lt;br /&gt;
See this page: [[Creating a Device Template for a Remote that uses the kernel input subsystem]]&lt;br /&gt;
&lt;br /&gt;
===9.3 Skinning and User Interface===&lt;br /&gt;
&lt;br /&gt;
====9.3.1 HADesigner====&lt;br /&gt;
The graphics, layout and display for the screens rendered in different Orbiter interfaces for the different UI versions are generated and manipulated using a Windows UI management tool called [[HADesigner_User&#039;s_manual|HADesigner]]. &lt;br /&gt;
&lt;br /&gt;
The following series of screencasts describes the use of the HADesigner tool and the process of generating a brand new UI for a specific plugin for all different variations of the Orbiter UI versions.&lt;br /&gt;
&lt;br /&gt;
Before proceeding, follow the [[Installing_HADesigner | installation instructions for HADesigner]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# [http://www.localeconcept.com/HADesigner-Screencasts/01-basic_hadesigner_fundamentals.html Basic Designer Fundamentals]&lt;br /&gt;
# [http://www.localeconcept.com/HADesigner-Screencasts/ogg/02_designobj_basics_1.ogg Design Object Basics]&lt;br /&gt;
# [http://www.localeconcept.com/HADesigner-Screencasts/ogg/03_ui2_popup_part_1.ogg UI2 Popup Part I]&lt;br /&gt;
# [http://www.localeconcept.com/HADesigner-Screencasts/ogg/04_ui2_popup_part_2.ogg UI2 Popup Part II]&lt;br /&gt;
# [http://www.localeconcept.com/HADesigner-Screencasts/ogg/05_UI1_Orbiter.ogg UI1 Orbiter]&lt;br /&gt;
# [http://www.localeconcept.com/HADesigner-Screencasts/ogg/06_UI1_Full_Screen_OSD.ogg UI1 Full Screen OSD]&lt;br /&gt;
# [http://www.localeconcept.com/HADesigner-Screencasts/ogg/07_UI1_Full_Screen_OSD_2.ogg UI1 Full Screen OSD Part II]&lt;br /&gt;
# [http://www.localeconcept.com/HADesigner-Screencasts/ogg/08_UI1_PDA.ogg UI1 PDA]&lt;br /&gt;
# [http://www.localeconcept.com/HADesigner-Screencasts/ogg/09_Mobile_Remote.ogg Mobile Remote]&lt;br /&gt;
# [http://www.localeconcept.com/HADesigner-Screencasts/ogg/10_cisco_7970_orbiter.ogg Cisco 7970 Orbiter]&lt;br /&gt;
# [http://www.localeconcept.com/HADesigner-Screencasts/ogg/11_Monitor_mode.ogg Monitor Mode]&lt;br /&gt;
&lt;br /&gt;
The Basic skin, included with LinuxMCE, should really not be modified, since it is used extensively by LinuxMCE and Pluto and is known to work.&lt;br /&gt;
&lt;br /&gt;
====9.3.2 UI Design and process====&lt;br /&gt;
The following series of screencasts walks through the design considerations involved in creating a brand new skin for LinuxMCE.&lt;br /&gt;
&lt;br /&gt;
# [http://www.localeconcept.com/Skin-Screencasts/01_introduction_and_aesthetic.ogg Introduction and Aesthetic considerations]&lt;br /&gt;
# [http://www.localeconcept.com/Skin-Screencasts/02_main_menu_first_pass.ogg First Pass at the Main Menu]&lt;br /&gt;
# [http://www.localeconcept.com/Skin-Screencasts/03_main_menu_notes_and_corrections.ogg Main Menu Notes and Corrections]&lt;br /&gt;
# [http://www.localeconcept.com/Skin-Screencasts/04_the_floorplan_buttons.ogg The Floorplan Buttons]&lt;/div&gt;</summary>
		<author><name>Jeangot</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Play_Games_on_LinuxMCE&amp;diff=25089</id>
		<title>Play Games on LinuxMCE</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Play_Games_on_LinuxMCE&amp;diff=25089"/>
		<updated>2010-09-20T05:27:13Z</updated>

		<summary type="html">&lt;p&gt;Jeangot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In addition to audio and video media, LinuxMCE can play games originally designed for many different game systems. LinuxMCE contains a copy of the Multiple Arcade Machine Emulator (MAME) to play arcade games, and the Multiple Emulator Super System (MESS) to play games meant for many home video game systems.&lt;br /&gt;
&lt;br /&gt;
== Supported Systems ==&lt;br /&gt;
&lt;br /&gt;
LinuxMCE currently can support the following game systems:&lt;br /&gt;
&lt;br /&gt;
* [[Arcade games emulated by MAME]]&lt;br /&gt;
* [[Atari 2600]]&lt;br /&gt;
* [[Atari 5200]]&lt;br /&gt;
* [[Atari 7800]]&lt;br /&gt;
&lt;br /&gt;
With each game system, LinuxMCE presents integrated controls for all supported control methods, and provides a seamless way to import, catalog, and play all the games stored on your core or any attached storage device. Simply copy the ROMs into their respective system folders, and LinuxMCE will attempt to identify, and tag each one to the best of its ability.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
Make sure, no ZIP files in the /home/public directory. Any zip files the update media finds it will assume they are game roms. (I now have zipped up ebooks listed as games!!!!!!!)&lt;br /&gt;
&lt;br /&gt;
== Enabling The Game Player ==&lt;br /&gt;
&lt;br /&gt;
To use the Game support, you must enable the Game Player. The Game Player adds support for all the above game systems to a Media Director at once, and &#039;&#039;&#039;you must enable the Game Player on each Media Director you wish to be able to play games.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Quick Instructions for those Familiar with LinuxMCE ===&lt;br /&gt;
&lt;br /&gt;
# Go to http://dcerouter/ (the web admin)&lt;br /&gt;
# from the Top menu, go to Wizard &amp;gt; Devices &amp;gt; [[Media Directors]]&lt;br /&gt;
# Find the media director on which you wish to enable Game Support.&lt;br /&gt;
# Press the [ Edit ] Button next to Software Modules&lt;br /&gt;
# Find the Game Player. Select it by checking its box.&lt;br /&gt;
# Press [ Save ]&lt;br /&gt;
# Watch your nearest orbiter for messages. You should see installation messages. &lt;br /&gt;
## When asked, Press Quick Reload Router&lt;br /&gt;
## When the Orbiter re-appears, it will ask you to regenerate orbiters. Regenerate all orbiters in the house.&lt;br /&gt;
# The Games Button should now be visible under [[Media]]&lt;br /&gt;
&lt;br /&gt;
=== Step by Step Instructions ===&lt;br /&gt;
&lt;br /&gt;
==== Go to http://dcerouter/ ==== &lt;br /&gt;
&lt;br /&gt;
[[Image:WebAdminLogon.png|right|Logging Onto the Web Admin]]&lt;br /&gt;
 &lt;br /&gt;
For information on Logging into the Web Admin, go here: [[LinuxMCE Admin Website]]&lt;br /&gt;
&lt;br /&gt;
==== Go to Wizard &amp;gt; [[Media Directors]] ====&lt;br /&gt;
&lt;br /&gt;
[[Image:WizardMediaDirectors.png|right]]&lt;br /&gt;
&lt;br /&gt;
The Wizard &amp;gt; [[Media Directors]] Page provides everything you need to adjust the operation of each media director in the house. For each system you wish to be able to play games, you need to do these instructions. &lt;br /&gt;
&lt;br /&gt;
==== Press the Edit button next to [[Software Modules]] ====&lt;br /&gt;
&lt;br /&gt;
The Software Modules page allows you to select software that can easily be installed into [[LinuxMCE]] To be installed onto each media director. We want to select the Game Player. &lt;br /&gt;
&lt;br /&gt;
==== Find and Select the Game Player and press Save ====&lt;br /&gt;
&lt;br /&gt;
[[Image:WizardMediaDirectorsSoftwareModulesGamePlayer.png|right]]&lt;br /&gt;
&lt;br /&gt;
If you wish to uninstall the [[Game Player]] at a later time for this media director, simply uncheck the box, and press &#039;&#039;&#039;Save&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Watch your orbiter for Installation Messages ====&lt;br /&gt;
&lt;br /&gt;
Your Orbiter should emit many messages relating to the installation of the software. If this is the first media director you are installing onto, the [[Core]] will also need to install the [[Game PlugIn]] so that it can manage the different [[Game Player]] instances throughout the house. The installation of the Game PlugIn also installs data packages which provide metadata and images for game ROMs to make the automatic game cataloguing process possible. &#039;&#039;&#039;This process of installing the [[Game PlugIn]] the first time can take a long time. Please Be Patient. Subsequent installations do not take as much time.&#039;&#039;&#039; We will improve this installation time significantly in future releases.&lt;br /&gt;
&lt;br /&gt;
==== Reload Your Router ====&lt;br /&gt;
&lt;br /&gt;
Once the installation process is complete, the system will ask you to reload the router. &#039;&#039;You must do this so the system can use the Game Player.&#039;&#039; Press &#039;&#039;&#039;[[Quick Reload Router]]&#039;&#039;&#039; This process should take approximately 15 seconds. &lt;br /&gt;
&lt;br /&gt;
==== Regenerate Your Orbiters ====&lt;br /&gt;
&lt;br /&gt;
Once your router is reloaded, and the system finds the new [[Game Player]] running, it will ask to regenerate all your orbiters in the house so that the Games button will be visible. This process should take approximately 2 minutes, per [[Orbiter]] on average.&lt;br /&gt;
&lt;br /&gt;
== Loading Games onto the system ==&lt;br /&gt;
&lt;br /&gt;
Once the Game PlugIn has been installed, you will then need to install some games, as there are no games included by default. Here are some freely available games: http://mamedev.org/roms You can install them by copying them onto the [[Core]], or any storage device that uses LinuxMCE Folder Structure. The Following example assumes you are copying the ROMs directly onto the [[Core]].&lt;br /&gt;
&lt;br /&gt;
=== Quick Instructions ===&lt;br /&gt;
&lt;br /&gt;
# Open a file window to \\DCEROUTER\public\games&lt;br /&gt;
# Find the target game system.&lt;br /&gt;
# Copy the ROMs to this location. &lt;br /&gt;
&lt;br /&gt;
=== Step by Step Instructions ===&lt;br /&gt;
&lt;br /&gt;
==== Open a File Window to \\DCEROUTER\public\games and Find the Target Game System folder ====&lt;br /&gt;
&lt;br /&gt;
[[Image:DCERouterPublicGames.png|right]]&lt;br /&gt;
&lt;br /&gt;
Using Network Places on Windows, or Connect to Server on Mac or Linux, open a network connection to your [[Core]], select the Public share. You can also select the user shares if you wish to keep ROMs private to a single member of the house, &#039;&#039;Games stored in this manner can only be accessed by entering the user&#039;s PIN number after selecting the user&#039;s name in the [[Media Browser]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve opened the Public, or User folder, Select the Games folder.&lt;br /&gt;
&lt;br /&gt;
Then Find the appropriate Games Folder. Currently the game folders are:&lt;br /&gt;
&lt;br /&gt;
* MAME - Place Arcade games here.&lt;br /&gt;
* a2600 - Place [[Atari 2600]] games here.&lt;br /&gt;
* a5200 - Place [[Atari 5200]] games here.&lt;br /&gt;
* a7800 - Place [[Atari 7800]] games here.&lt;br /&gt;
&lt;br /&gt;
==== Copy over the ROMs ====&lt;br /&gt;
&lt;br /&gt;
Drag over the ROMs from your source media to this target folder.&lt;br /&gt;
&lt;br /&gt;
==== Wait 60 seconds for LinuxMCE to identify and Tag the Media ====&lt;br /&gt;
&lt;br /&gt;
[[Image:GamesList.png|right]]&lt;br /&gt;
&lt;br /&gt;
After 60 seconds, LinuxMCE will have detected the new ROMs, and attempted to tag them. If LinuxMCE can tag them, then it will attach descriptive attributes such as Title, Manufacturer, and Year, and attempt to find and attach a picture of the Box or Cartridge artwork. Right now, metadata is only parsed for MAME games. It is a simple TOSEC parser in place for appropriately named ROMs, but it doesn&#039;t deal with every known variation of TOSEC or the GoodSet, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;If you find box or cartridge artwork for a game that we do not have, we would very much appreciate it if you would send it to one of the developers so that it may be included in the metadata package.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Playing Games ==&lt;br /&gt;
&lt;br /&gt;
Playing Games in LinuxMCE is simple. You merely need to select the Games scenario from the Media Scenarios. &#039;&#039;&#039;The Games scenario will be available in any room with a media director that has the [[Game Player]] installed.&#039;&#039;&#039; then play the game with your desired gaming device.&lt;br /&gt;
&lt;br /&gt;
=== Selecting a Game ===&lt;br /&gt;
tap&lt;br /&gt;
You will then be presented with the [[Media Browser]] which will be populated with every found game for every game system. Should you wish to filter this, you can filter it by either selecting &#039;&#039;&#039;Options&#039;&#039;&#039; on UI1, or by selecting the &#039;&#039;&#039;Sort&#039;&#039;&#039; popup. You can currently sort by:&lt;br /&gt;
&lt;br /&gt;
* Recently Played&lt;br /&gt;
* Filename&lt;br /&gt;
* Title&lt;br /&gt;
* Manufacturer&lt;br /&gt;
* Year&lt;br /&gt;
* Game System&lt;br /&gt;
&lt;br /&gt;
Once a Game has been selected, and the &#039;&#039;&#039;Play&#039;&#039;&#039; button has been pressed, the emulator should start and present the selected game.&lt;br /&gt;
&lt;br /&gt;
=== Using Orbiter Controls for each Game system ===&lt;br /&gt;
&lt;br /&gt;
Because each game system works differently and was interacted with diferently, LinuxMCE provides different Orbiter screens so that you can accurately interact with the emulated version of the game system. Some buttons are also common to all game systems, and some are specific to each game system emulated. &lt;br /&gt;
&lt;br /&gt;
Under UI1, the Game buttons are available on the orbiter screens, for on-screen orbiters, this is selected by:&lt;br /&gt;
&lt;br /&gt;
* Tapping the &#039;&#039;&#039;Menu&#039;&#039;&#039; button on a remote&lt;br /&gt;
* Tapping the &#039;&#039;&#039;Middle Grey&#039;&#039;&#039; button on the Gyration Go Mouse&lt;br /&gt;
&lt;br /&gt;
For non on screen orbiters, you will see the remote appear in the same manner as the videos and music remotes, with all functions visible. &lt;br /&gt;
&lt;br /&gt;
Under UI2, tapping the &#039;&#039;&#039;Menu&#039;&#039;&#039; key will show the same functions as described above in the left most &amp;quot;Now Playing&amp;quot; menu. &lt;br /&gt;
&lt;br /&gt;
==== Common Controls ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[[Power/Off]]&#039;&#039;&#039; - This button, like all other media types, will cause the game to stop, and will return you to the main menu.&lt;br /&gt;
* &#039;&#039;&#039;[[Thumbnail]]&#039;&#039;&#039; - Allows you to take a picture of the screen, to assign to an attrbute, such as the game title. This picture will then show up in the File Browser.&lt;br /&gt;
* &#039;&#039;&#039;[[Bookmarks]]&#039;&#039;&#039; - Allows you to save bookmarks on games and systems that support them. &#039;&#039;Not all game systems support Bookmarks, and due to the way MAME and MESS work, we can&#039;t tell you ahead of time which ones will and wont. Bookmark support is added per system driver and can change as newer versions of MAME and MESS appear.&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;[[View Attributes]]&#039;&#039;&#039; - Allows you to see the attributes of the currently playing game, including the attached artwork.&lt;br /&gt;
* &#039;&#039;&#039;[[P1]]&#039;&#039;&#039; - Tells the system that 1 player is to play. Other Player buttons include P2, P3, and P4, which say 2, 3, and 4 players respectively. Which of these buttons are available on which system varies, and can be called &#039;&#039;&#039;[[Start]]&#039;&#039;&#039; instead.&lt;br /&gt;
* &#039;&#039;&#039;[[Pause]]&#039;&#039;&#039; - Pauses the game. The screen will darken when the game is paused, to serve as a visual cue.&lt;br /&gt;
* &#039;&#039;&#039;[[Reset]]&#039;&#039;&#039; - Resets the game or game system.&lt;br /&gt;
* &#039;&#039;&#039;[[Monitor Mode]]&#039;&#039;&#039; - Toggle. Broadcasts animated images of the playing game to all orbiters in the room. This can be used, for example, to watch the game from somewhere else in the house. No audio is broadcast. Animation will be slower than real time.&lt;br /&gt;
&lt;br /&gt;
You can use any HID based joystick, specifically the X-Arcade tankstick. You can also use the Stelladaptor for Atari 2600 controllers attached for Atari 2600 games.&lt;br /&gt;
&lt;br /&gt;
==== Controls and Notes for each System ====&lt;br /&gt;
&lt;br /&gt;
* [[Atari 2600]] &lt;br /&gt;
* [[Atari 5200]]&lt;br /&gt;
* [[Atari 7800]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important Legal Notice:&#039;&#039;&#039; Obtaining ROM images of games you do not own is illegal in many countries, including the United States of America and countries in the European Union. LinuxMCE does not provide ROM images, nor does it provide, or facilitate the means by which to get ROM images that are still under copyright.&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>Jeangot</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Play_Games_on_LinuxMCE&amp;diff=25088</id>
		<title>Play Games on LinuxMCE</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Play_Games_on_LinuxMCE&amp;diff=25088"/>
		<updated>2010-09-20T05:22:07Z</updated>

		<summary type="html">&lt;p&gt;Jeangot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In addition to audio and video media, LinuxMCE can play games originally designed for many different game systems. LinuxMCE contains a copy of the Multiple Arcade Machine Emulator (MAME) to play arcade games, and the Multiple Emulator Super System (MESS) to play games meant for many home video game systems.&lt;br /&gt;
&lt;br /&gt;
== Supported Systems ==&lt;br /&gt;
&lt;br /&gt;
LinuxMCE currently can support the following game systems:&lt;br /&gt;
&lt;br /&gt;
* [[Arcade games emulated by MAME]]&lt;br /&gt;
* [[Atari 2600]]&lt;br /&gt;
* [[Atari 5200]]&lt;br /&gt;
* [[Atari 7800]]&lt;br /&gt;
&lt;br /&gt;
With each game system, LinuxMCE presents integrated controls for all supported control methods, and provides a seamless way to import, catalog, and play all the games stored on your core or any attached storage device. Simply copy the ROMs into their respective system folders, and LinuxMCE will attempt to identify, and tag each one to the best of its ability.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
Make sure, no ZIP files in the /home/public directory. Any zip files the update media finds it will assume they are game roms. (I now have zipped up ebooks listed as games!!!!!!!)&lt;br /&gt;
&lt;br /&gt;
== Enabling The Game Player ==&lt;br /&gt;
&lt;br /&gt;
To use the Game support, you must enable the Game Player. The Game Player adds support for all the above game systems to a Media Director at once, and &#039;&#039;&#039;you must enable the Game Player on each Media Director you wish to be able to play games.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Quick Instructions for those Familiar with LinuxMCE ===&lt;br /&gt;
&lt;br /&gt;
# Go to http://dcerouter/ (the web admin)&lt;br /&gt;
# from the Top menu, go to Wizard &amp;gt; Devices &amp;gt; [[Media Directors]]&lt;br /&gt;
# Find the media director on which you wish to enable Game Support.&lt;br /&gt;
# Press the [ Edit ] Button next to Software Modules&lt;br /&gt;
# Find the Game Player. Select it by checking its box.&lt;br /&gt;
# Press [ Save ]&lt;br /&gt;
# Watch your nearest orbiter for messages. You should see installation messages. &lt;br /&gt;
## When asked, Press Quick Reload Router&lt;br /&gt;
## When the Orbiter re-appears, it will ask you to regenerate orbiters. Regenerate all orbiters in the house.&lt;br /&gt;
# The Games Button should now be visible under [[Media]]&lt;br /&gt;
&lt;br /&gt;
=== Step by Step Instructions ===&lt;br /&gt;
&lt;br /&gt;
==== Go to http://dcerouter/ ==== &lt;br /&gt;
&lt;br /&gt;
[[Image:WebAdminLogon.png|right|Logging Onto the Web Admin]]&lt;br /&gt;
 &lt;br /&gt;
For information on Logging into the Web Admin, go here: [[LinuxMCE Admin Website]]&lt;br /&gt;
&lt;br /&gt;
==== Go to Wizard &amp;gt; [[Media Directors]] ====&lt;br /&gt;
&lt;br /&gt;
[[Image:WizardMediaDirectors.png|right]]&lt;br /&gt;
&lt;br /&gt;
The Wizard &amp;gt; [[Media Directors]] Page provides everything you need to adjust the operation of each media director in the house. For each system you wish to be able to play games, you need to do these instructions. &lt;br /&gt;
&lt;br /&gt;
==== Press the Edit button next to [[Software Modules]] ====&lt;br /&gt;
&lt;br /&gt;
The Software Modules page allows you to select software that can easily be installed into [[LinuxMCE]] To be installed onto each media director. We want to select the Game Player. &lt;br /&gt;
&lt;br /&gt;
==== Find and Select the Game Player and press Save ====&lt;br /&gt;
&lt;br /&gt;
[[Image:WizardMediaDirectorsSoftwareModulesGamePlayer.png|right]]&lt;br /&gt;
&lt;br /&gt;
If you wish to uninstall the [[Game Player]] at a later time for this media director, simply uncheck the box, and press &#039;&#039;&#039;Save&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Watch your orbiter for Installation Messages ====&lt;br /&gt;
&lt;br /&gt;
Your Orbiter should emit many messages relating to the installation of the software. If this is the first media director you are installing onto, the [[Core]] will also need to install the [[Game PlugIn]] so that it can manage the different [[Game Player]] instances throughout the house. The installation of the Game PlugIn also installs data packages which provide metadata and images for game ROMs to make the automatic game cataloguing process possible. &#039;&#039;&#039;This process of installing the [[Game PlugIn]] the first time can take a long time. Please Be Patient. Subsequent installations do not take as much time.&#039;&#039;&#039; We will improve this installation time significantly in future releases.&lt;br /&gt;
&lt;br /&gt;
==== Reload Your Router ====&lt;br /&gt;
&lt;br /&gt;
Once the installation process is complete, the system will ask you to reload the router. &#039;&#039;You must do this so the system can use the Game Player.&#039;&#039; Press &#039;&#039;&#039;[[Quick Reload Router]]&#039;&#039;&#039; This process should take approximately 15 seconds. &lt;br /&gt;
&lt;br /&gt;
==== Regenerate Your Orbiters ====&lt;br /&gt;
&lt;br /&gt;
Once your router is reloaded, and the system finds the new [[Game Player]] running, it will ask to regenerate all your orbiters in the house so that the Games button will be visible. This process should take approximately 2 minutes, per [[Orbiter]] on average.&lt;br /&gt;
&lt;br /&gt;
== Loading Games onto the system ==&lt;br /&gt;
&lt;br /&gt;
Once the Game PlugIn has been installed, you will then need to install some games. By default, some public domain games are installed, as example, but should you also have more, you can install them by copying them onto the [[Core]], or any storage device that uses LinuxMCE Folder Structure. The Following example assumes you are copying the ROMs directly onto the [[Core]].&lt;br /&gt;
&lt;br /&gt;
=== Quick Instructions ===&lt;br /&gt;
&lt;br /&gt;
# Open a file window to \\DCEROUTER\public\games&lt;br /&gt;
# Find the target game system.&lt;br /&gt;
# Copy the ROMs to this location. &lt;br /&gt;
&lt;br /&gt;
=== Step by Step Instructions ===&lt;br /&gt;
&lt;br /&gt;
==== Open a File Window to \\DCEROUTER\public\games and Find the Target Game System folder ====&lt;br /&gt;
&lt;br /&gt;
[[Image:DCERouterPublicGames.png|right]]&lt;br /&gt;
&lt;br /&gt;
Using Network Places on Windows, or Connect to Server on Mac or Linux, open a network connection to your [[Core]], select the Public share. You can also select the user shares if you wish to keep ROMs private to a single member of the house, &#039;&#039;Games stored in this manner can only be accessed by entering the user&#039;s PIN number after selecting the user&#039;s name in the [[Media Browser]].&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve opened the Public, or User folder, Select the Games folder.&lt;br /&gt;
&lt;br /&gt;
Then Find the appropriate Games Folder. Currently the game folders are:&lt;br /&gt;
&lt;br /&gt;
* MAME - Place Arcade games here.&lt;br /&gt;
* a2600 - Place [[Atari 2600]] games here.&lt;br /&gt;
* a5200 - Place [[Atari 5200]] games here.&lt;br /&gt;
* a7800 - Place [[Atari 7800]] games here.&lt;br /&gt;
&lt;br /&gt;
==== Copy over the ROMs ====&lt;br /&gt;
&lt;br /&gt;
Drag over the ROMs from your source media to this target folder.&lt;br /&gt;
&lt;br /&gt;
==== Wait 60 seconds for LinuxMCE to identify and Tag the Media ====&lt;br /&gt;
&lt;br /&gt;
[[Image:GamesList.png|right]]&lt;br /&gt;
&lt;br /&gt;
After 60 seconds, LinuxMCE will have detected the new ROMs, and attempted to tag them. If LinuxMCE can tag them, then it will attach descriptive attributes such as Title, Manufacturer, and Year, and attempt to find and attach a picture of the Box or Cartridge artwork. Right now, metadata is only parsed for MAME games. It is a simple TOSEC parser in place for appropriately named ROMs, but it doesn&#039;t deal with every known variation of TOSEC or the GoodSet, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;If you find box or cartridge artwork for a game that we do not have, we would very much appreciate it if you would send it to one of the developers so that it may be included in the metadata package.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Playing Games ==&lt;br /&gt;
&lt;br /&gt;
Playing Games in LinuxMCE is simple. You merely need to select the Games scenario from the Media Scenarios. &#039;&#039;&#039;The Games scenario will be available in any room with a media director that has the [[Game Player]] installed.&#039;&#039;&#039; then play the game with your desired gaming device.&lt;br /&gt;
&lt;br /&gt;
=== Selecting a Game ===&lt;br /&gt;
tap&lt;br /&gt;
You will then be presented with the [[Media Browser]] which will be populated with every found game for every game system. Should you wish to filter this, you can filter it by either selecting &#039;&#039;&#039;Options&#039;&#039;&#039; on UI1, or by selecting the &#039;&#039;&#039;Sort&#039;&#039;&#039; popup. You can currently sort by:&lt;br /&gt;
&lt;br /&gt;
* Recently Played&lt;br /&gt;
* Filename&lt;br /&gt;
* Title&lt;br /&gt;
* Manufacturer&lt;br /&gt;
* Year&lt;br /&gt;
* Game System&lt;br /&gt;
&lt;br /&gt;
Once a Game has been selected, and the &#039;&#039;&#039;Play&#039;&#039;&#039; button has been pressed, the emulator should start and present the selected game.&lt;br /&gt;
&lt;br /&gt;
=== Using Orbiter Controls for each Game system ===&lt;br /&gt;
&lt;br /&gt;
Because each game system works differently and was interacted with diferently, LinuxMCE provides different Orbiter screens so that you can accurately interact with the emulated version of the game system. Some buttons are also common to all game systems, and some are specific to each game system emulated. &lt;br /&gt;
&lt;br /&gt;
Under UI1, the Game buttons are available on the orbiter screens, for on-screen orbiters, this is selected by:&lt;br /&gt;
&lt;br /&gt;
* Tapping the &#039;&#039;&#039;Menu&#039;&#039;&#039; button on a remote&lt;br /&gt;
* Tapping the &#039;&#039;&#039;Middle Grey&#039;&#039;&#039; button on the Gyration Go Mouse&lt;br /&gt;
&lt;br /&gt;
For non on screen orbiters, you will see the remote appear in the same manner as the videos and music remotes, with all functions visible. &lt;br /&gt;
&lt;br /&gt;
Under UI2, tapping the &#039;&#039;&#039;Menu&#039;&#039;&#039; key will show the same functions as described above in the left most &amp;quot;Now Playing&amp;quot; menu. &lt;br /&gt;
&lt;br /&gt;
==== Common Controls ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[[Power/Off]]&#039;&#039;&#039; - This button, like all other media types, will cause the game to stop, and will return you to the main menu.&lt;br /&gt;
* &#039;&#039;&#039;[[Thumbnail]]&#039;&#039;&#039; - Allows you to take a picture of the screen, to assign to an attrbute, such as the game title. This picture will then show up in the File Browser.&lt;br /&gt;
* &#039;&#039;&#039;[[Bookmarks]]&#039;&#039;&#039; - Allows you to save bookmarks on games and systems that support them. &#039;&#039;Not all game systems support Bookmarks, and due to the way MAME and MESS work, we can&#039;t tell you ahead of time which ones will and wont. Bookmark support is added per system driver and can change as newer versions of MAME and MESS appear.&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;[[View Attributes]]&#039;&#039;&#039; - Allows you to see the attributes of the currently playing game, including the attached artwork.&lt;br /&gt;
* &#039;&#039;&#039;[[P1]]&#039;&#039;&#039; - Tells the system that 1 player is to play. Other Player buttons include P2, P3, and P4, which say 2, 3, and 4 players respectively. Which of these buttons are available on which system varies, and can be called &#039;&#039;&#039;[[Start]]&#039;&#039;&#039; instead.&lt;br /&gt;
* &#039;&#039;&#039;[[Pause]]&#039;&#039;&#039; - Pauses the game. The screen will darken when the game is paused, to serve as a visual cue.&lt;br /&gt;
* &#039;&#039;&#039;[[Reset]]&#039;&#039;&#039; - Resets the game or game system.&lt;br /&gt;
* &#039;&#039;&#039;[[Monitor Mode]]&#039;&#039;&#039; - Toggle. Broadcasts animated images of the playing game to all orbiters in the room. This can be used, for example, to watch the game from somewhere else in the house. No audio is broadcast. Animation will be slower than real time.&lt;br /&gt;
&lt;br /&gt;
You can use any HID based joystick, specifically the X-Arcade tankstick. You can also use the Stelladaptor for Atari 2600 controllers attached for Atari 2600 games.&lt;br /&gt;
&lt;br /&gt;
==== Controls and Notes for each System ====&lt;br /&gt;
&lt;br /&gt;
* [[Atari 2600]] &lt;br /&gt;
* [[Atari 5200]]&lt;br /&gt;
* [[Atari 7800]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important Legal Notice:&#039;&#039;&#039; Obtaining ROM images of games you do not own is illegal in many countries, including the United States of America and countries in the European Union. LinuxMCE does not provide ROM images, nor does it provide, or facilitate the means by which to get ROM images that are still under copyright.&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>Jeangot</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Play_mkv_files&amp;diff=24948</id>
		<title>Play mkv files</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Play_mkv_files&amp;diff=24948"/>
		<updated>2010-08-24T15:36:47Z</updated>

		<summary type="html">&lt;p&gt;Jeangot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tutorials]]&lt;br /&gt;
&lt;br /&gt;
This page explains how to achieve successful playback of Mkv/H264/X264 files on Linuxmce 810 with some limitations.&lt;br /&gt;
&lt;br /&gt;
The following instructions will allo playback of most types of mkv containers with VDPAU, but the instructions will break VDR.&lt;br /&gt;
&lt;br /&gt;
You will have to forcefully install a backported libxine prepared by niz23. The debs they are located here: http://tschak.homelinux.com/deb/&lt;br /&gt;
They need to be installed all at the same time, with dpkg.&lt;br /&gt;
Note that there is no support for these packages, and they WILL break VDR.&lt;br /&gt;
&lt;br /&gt;
==Troubleshoting==&lt;br /&gt;
Another method, if you see green artifacts, is to rename the files to .m2ts and changing media type to &amp;quot;LinuxMCE Blu-Ray&amp;quot;. This makes LinuxMCE use mplayer to play mkv files instead of xine, however in that case you loose the ability to pause.&lt;/div&gt;</summary>
		<author><name>Jeangot</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Realtek_8168&amp;diff=24345</id>
		<title>Realtek 8168</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Realtek_8168&amp;diff=24345"/>
		<updated>2010-07-12T15:11:43Z</updated>

		<summary type="html">&lt;p&gt;Jeangot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{versioninfo}}&lt;br /&gt;
{| align=&amp;quot;right&amp;quot;&lt;br /&gt;
  | __TOC__&lt;br /&gt;
  |}&lt;br /&gt;
[[Category: Networking]]&lt;br /&gt;
[[Category: Network Adapters]]&lt;br /&gt;
[[Category: Tutorials]]&lt;br /&gt;
&lt;br /&gt;
=The Realtek RTL8168 network card on LinuxMCE=&lt;br /&gt;
&lt;br /&gt;
This card is supposed to work with the r8169 module, but this seems to fail for newer cards. Realtek provides the source code for a r8168 module on [http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&amp;amp;PNid=13&amp;amp;PFid=5&amp;amp;Level=5&amp;amp;Conn=4&amp;amp;DownTypeID=3&amp;amp;GetDown=false#2 their site].&lt;br /&gt;
&lt;br /&gt;
===What you need to do===&lt;br /&gt;
* Download the driver from Realtek (at the time of this article, the version is 8.008.00, released 2008/7/24) to compile the r8168 module&lt;br /&gt;
* Install the linux-source package, to hack into the r8169 module.&lt;br /&gt;
&lt;br /&gt;
The default r8169 module and Realtek&#039;s r8168 overlap on a PCI ID, and that&#039;s why you need the kernel source. You&#039;ll compile the r8169 without the PCI ID that r8168 will associate with.&lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;TODO: Insert section of required packages for the build to work&lt;br /&gt;
&lt;br /&gt;
===Compiling Realtek&#039;s r8168 module===&lt;br /&gt;
&lt;br /&gt;
* [http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&amp;amp;PNid=13&amp;amp;PFid=5&amp;amp;Level=5&amp;amp;Conn=4&amp;amp;DownTypeID=3&amp;amp;GetDown=false#2 Download] the Realtek driver: you&#039;ll get a file called r8168-8.008.00.tar.bz2&lt;br /&gt;
* unpack the file:&lt;br /&gt;
 tar -jxf r8168-8.008.00.tar.bz2&lt;br /&gt;
* switch into the directory that is created:&lt;br /&gt;
 cd r8168-8.008.00&lt;br /&gt;
* build the module:&lt;br /&gt;
 make&lt;br /&gt;
* copy the module to the running kernel:&lt;br /&gt;
 cp src/r8168.ko /lib/modules/2.6.22-14-generic/kernel/drivers/net/&lt;br /&gt;
&lt;br /&gt;
(I believe the last cp step is no longer required as it version 8.012.00 of the driver sources, as it does this as part of the make - colinjones)&lt;br /&gt;
&lt;br /&gt;
===Hacking the r8169 module===&lt;br /&gt;
&lt;br /&gt;
This part is only required if you actually need the r8169 to be in the kernel at the same time as the new r8168 module. You may not need this if your MD has only one r8168 compatible NIC. If so, just move the r8169.ko file out of /lib/modules/2.6.22-14-generic/kernel/drivers/net/ prior to generating the new initrd.mg file, and that module will not be included in the new image.&lt;br /&gt;
&lt;br /&gt;
* Install the kernel source:&lt;br /&gt;
 apt-get install linux-source&lt;br /&gt;
* Un pack the kernel source:&lt;br /&gt;
 cd /usr/src; tar -jxf linux-source-2.6.22.tar.bz2&lt;br /&gt;
* Switch to the kernel directory:&lt;br /&gt;
 cd linux-source-2.6.22&lt;br /&gt;
* Copy the running kernel&#039;s configuration:&lt;br /&gt;
 cp /boot/config-2.6.22-14-generic .config&lt;br /&gt;
* Prepare the kernel so you can build modules:&lt;br /&gt;
 make scripts prepare&lt;br /&gt;
* Apply this patch:&lt;br /&gt;
 patch &amp;lt; r8168.diff&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 --- drivers/net/r8169.c.orig	2008-09-05 17:07:29.000000000 +0300&lt;br /&gt;
 +++ drivers/net/r8169.c	2008-09-04 23:49:51.000000000 +0300&lt;br /&gt;
 @@ -162,7 +162,7 @@&lt;br /&gt;
  	{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK,	0x8129), 0, 0, RTL_CFG_0 },&lt;br /&gt;
  	{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK,	0x8136), 0, 0, RTL_CFG_2 },&lt;br /&gt;
  	{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK,	0x8167), 0, 0, RTL_CFG_0 },&lt;br /&gt;
 -	{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK,	0x8168), 0, 0, RTL_CFG_1 },&lt;br /&gt;
 +	//{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK,	0x8168), 0, 0, RTL_CFG_1 },&lt;br /&gt;
  	{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK,	0x8169), 0, 0, RTL_CFG_0 },&lt;br /&gt;
  	{ PCI_DEVICE(PCI_VENDOR_ID_DLINK,	0x4300), 0, 0, RTL_CFG_0 },&lt;br /&gt;
  	{ PCI_DEVICE(0x1259,			0xc107), 0, 0, RTL_CFG_0 },&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Build the network modules:&lt;br /&gt;
 make M=`pwd`/drivers/net modules&lt;br /&gt;
* Confirm that the new r8169 module doesn&#039;t have the &amp;quot;pci:v000010ECd00008168sv&amp;quot; alias:&lt;br /&gt;
 modinfo drivers/net/r8169.ko&lt;br /&gt;
* Copy the new r8169.ko to the running kernel:&lt;br /&gt;
 cp drivers/net/r8169.ko /lib/modules/2.6.22-14-generic/kernel/drivers/net/&lt;br /&gt;
* Run depmod&lt;br /&gt;
 depmod&lt;br /&gt;
* Load the module:&lt;br /&gt;
 modprobe r8168&lt;br /&gt;
&lt;br /&gt;
=== MDs ===&lt;br /&gt;
After you created the modules as described above:&lt;br /&gt;
&lt;br /&gt;
* Copy the modules to all the affected MD filesystems, in the corresponding location&lt;br /&gt;
* Follow the instructions on the [[Unrecognized NIC]] page&lt;br /&gt;
&lt;br /&gt;
== Asus M3A78-EM Please Note!!!! This driver was for LMCE version 710 !!!! Not valid for 810!!! ==&lt;br /&gt;
Here are the steps required to get this motherboard&#039;s Realtek 8168 Gigabit Ethernet Working for an MD.&lt;br /&gt;
&lt;br /&gt;
To save some steps, I will make my driver available here for LinxMCE version 710.  : [http://dataless.jeromenet.org/r8168.ko r8168 driver]&lt;br /&gt;
This can be used on the Realtek 8111B/8111C chipsets as well, that is what my motherboard says, just before PXE boot.&lt;br /&gt;
&lt;br /&gt;
--[[User:Sethj|Sethj]] 12:50, 12 December 2008 (CET)&lt;br /&gt;
&lt;br /&gt;
[[Generic_PC#Manual_Setup_of_a_Media_Director | First I manually created the Media Director]] from the [[LinuxMCE Admin Website]]. Did not want it to build an AMD64 image, wanted to stay with i386, and I knew the MAC address of the new MD onboard NIC. Ran &amp;quot;Setup Diskless MD&amp;quot; when that completed I clicked the &amp;quot;Rebuild Image&amp;quot; for the new MD. While that was running I completed the next few things. Wait for this to complete, and then continue.&lt;br /&gt;
&lt;br /&gt;
* Download the driver package for Linux from Asus&#039; web site here : [http://support.asus.com/download/download.aspx?SLanguage=en-us&amp;amp;model=M3A78-EM LinuxDrivers.zip] - It is under &amp;quot;Others&amp;quot;&lt;br /&gt;
* unzip the package to /usr/src&lt;br /&gt;
 sudo su&lt;br /&gt;
 cd /usr/src&lt;br /&gt;
 unzip -qq /path/to/LinuxDrivers.zip&lt;br /&gt;
 cd /usr/src/LinuxDrivers/LAN/r8168-8.003.00/r8168-8.003.00&lt;br /&gt;
 make&lt;br /&gt;
 cp src/r8168.ko /lib/modules/2.6.22-14-generic/kernel/drivers/net/&lt;br /&gt;
 mv /lib/modules/2.6.22-14-generic/kernel/drivers/net/r8169.ko /lib/modules/2.6.22-14-generic/kernel/drivers/net/r8169.ko.not&lt;br /&gt;
 depmod -a&lt;br /&gt;
 /usr/pluto/bin/Diskless_BuildDefaultImage.sh&lt;br /&gt;
 cp /lib/modules/2.6.22-14-generic/kernel/drivers/net/r8168.ko /usr/pluto/diskless/&amp;lt;moon #&amp;gt;/lib/modules/2.6.22-14-generic/kernel/drivers/net&lt;br /&gt;
 vi /usr/pluto/diskless/&amp;lt;moon #&amp;gt;/etc/initramfs-tools/modules&lt;br /&gt;
 added r8168 and saved&lt;br /&gt;
 cd /usr/pluto/diskless&lt;br /&gt;
 chroot &amp;lt;moon #&amp;gt;&lt;br /&gt;
 mv /lib/modules/2.6.22-14-generic/kernel/drivers/net/r8169.ko /lib/modules/2.6.22-14-generic/kernel/drivers/net/r8169.ko.not&lt;br /&gt;
 depmod -a /lib/modules/2.6.22-14-generic/kernel/drivers/net/r8168.ko&lt;br /&gt;
 cd /boot&lt;br /&gt;
 update-initramfs -uv&lt;br /&gt;
 (scrolled up to verify the new module was added it was at the top of the output)&lt;br /&gt;
 for S and G&#039;s ran depmod -a again&lt;br /&gt;
 exit out of the chroot&lt;br /&gt;
&lt;br /&gt;
Now boot or reboot the MD.&lt;br /&gt;
&lt;br /&gt;
For a Core:&lt;br /&gt;
&lt;br /&gt;
* Get some means to download and store [url]http://dataless.jeromenet.org/r8168.ko[/url], as you may not have internet (no 2nd nic) !!!!!Please note. This driver is for LinuxMCE 710!!!!&lt;br /&gt;
I used a pen drive.&lt;br /&gt;
* Once you have this file, boot the system in Safe Mode, using option 2 in grub (press ESC when system starts to get to grub)&lt;br /&gt;
after the system comes up, you will have your dcerouter# prompt. Insert pen drive, mount it some where: I did:&lt;br /&gt;
&lt;br /&gt;
 mkdir /mnt/temp&lt;br /&gt;
 mount /dev/sdx1 /mnt/temp (insert your letter for &amp;quot;x&amp;quot; in this, you can find it with dmesg&lt;br /&gt;
 cp /mnt/temp/r8168.ko /lib/modules/2.6.22-14-generic/kernel/drivers/net/&lt;br /&gt;
 mv /lib/modules/2.6.22-14-generic/kernel/drivers/net/r8169.ko /lib/modules/2.6.22-14-generic/kernel/drivers/net/r8169.ko.not&lt;br /&gt;
 depmod -a /lib/modules/2.6.22-14-generic/kernel/drivers/net/r8168.ko&lt;br /&gt;
 vi /etc/initramfs-tools/modules&lt;br /&gt;
 add r8168&lt;br /&gt;
 cd /boot &lt;br /&gt;
 update-initramfs -uv&lt;br /&gt;
 (scroll up to verify the new module was added)&lt;br /&gt;
&lt;br /&gt;
* Now reboot, and that should sort it out.&lt;/div&gt;</summary>
		<author><name>Jeangot</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Setting_Up_A_Development_Environment&amp;diff=17240</id>
		<title>Setting Up A Development Environment</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Setting_Up_A_Development_Environment&amp;diff=17240"/>
		<updated>2009-01-23T16:13:21Z</updated>

		<summary type="html">&lt;p&gt;Jeangot: &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;
[[Category: Tutorials]]&lt;br /&gt;
[[Category: Development]]&lt;br /&gt;
[[Category: Programmer&#039;s Guide]]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;/!\ WARNING: at the moment the sources are moving, so there are some  bugs related to sources versions. you may not be able to compile&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
See also: [[Building From Source]]&lt;br /&gt;
&lt;br /&gt;
See also: [[Building_LinuxMCE]] (these are the build scripts for the official cd build)&lt;br /&gt;
&lt;br /&gt;
I have seen a lot of questions on how to set up a development environment for LMCE.&lt;br /&gt;
As a person with limited programming experience in c++, I can tell you that you don&#039;t have to be a master-level programmer to get your feet wet&lt;br /&gt;
and examine the source code, and even make changes that add new features or fix existing bugs. It just takes a little patience, some help from experienced members,&lt;br /&gt;
and a willingness to learn. There is a lot of information and help available in the forums, the wiki, and the linuxmce channel on IRC freenode servers.&lt;br /&gt;
&lt;br /&gt;
That being said, dev work can also be risky business. You can seriously damage your installation compiling and testing changes, so &#039;&#039;&#039;USE THIS INFORMATION AT YOUR OWN RISK!&#039;&#039;&#039;&lt;br /&gt;
If you really want to get started developing, the best advice I can give is to get a separate computer to set up as a development machine, so you don&#039;t damage your existing LinuxMCE installation accidentally! That way, if you make a change that LMCE really doesn&#039;t like, you won&#039;t trash your personally installation. (Too bad I don&#039;t follow my own advice, as I&#039;ve done this before!)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;The following tutorial represents my experiences only, and may not necessarily be the best or correct way to do things - though it has worked very well for me.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
As I am a linux user, I am going to describe this process as I set up a development environment on my core from a computer running Ubuntu linux. Other linux variants will be very similar, if not the same. For Windows users, there is equivalent software that you can use, though I can&#039;t name any off of the top of my head - you will have to do your own research on that one.&lt;br /&gt;
&lt;br /&gt;
Be sure to set aside a free evening to set up your development environment, as it can take several hours to complete!&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Preface ==&lt;br /&gt;
The first thing I found surprising when I went to set up my first development environment is that it must be set up on your core. To my knowledge, you can&#039;t just make changes to the source on your desktop computer, compile them on your desktop computer, then upload them to the core. Everything must reside on the core, and you can have access to the source on your normal desktop over SSH (covered later). For those that aren&#039;t keen with working with a command line over ssh, this will take some getting used to (as was my case). But, once you get used to it, its not a bad development environment, and it even got me more familiar with the command line, and linux commands, which is something I&#039;ve been meaning to do anyways.&lt;br /&gt;
Lets get started...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Setting Up the Development Environment ==&lt;br /&gt;
Once you have a LinuxMCE Core up and running, the first thing we have to do is learn how to connect to it from our Desktop computer. On my Ubuntu desktop, I open a terminal via Applications-&amp;gt;Accessories-&amp;gt;Terminal. &lt;br /&gt;
We will now use SSH to connect to out core - enter the following into the terminal:&lt;br /&gt;
 ssh linuxmce@192.168.80.1&lt;br /&gt;
When prompted for a password, enter &amp;quot;linuxmce&amp;quot;.&lt;br /&gt;
&#039;&#039;(You may be prompted for a password several times during the setup of your development environment - this will always be &amp;quot;linuxmce&amp;quot;)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Congratulations! You are now logged into the core over SSH from a remote computer! Now its time to install some packages needed for development. In the terminal, type:&lt;br /&gt;
 sudo apt-get install subversion build-essential ccache&lt;br /&gt;
This will install Subversion (SVN), which is needed to keep your local copy of the source code in sync with the latest changes, and well as some development libraries.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For my development environment, I decided to keep everything in my Home directory. The source can actually go many places, but I prefer using the Home directory. Lets go there now...&lt;br /&gt;
 cd ~/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To check out the most recent source code, run the following:&lt;br /&gt;
  svn co http://svn.linuxmce.org/svn/trunk&lt;br /&gt;
&lt;br /&gt;
if you have already compiled the sources, the make wo&#039;nt install some packages required(since they are supposed to have already been installed). thus you need to run in trunk/&lt;br /&gt;
 make clean&lt;br /&gt;
 cp /usr/pluto/lib/* /src/lib/ -R&lt;br /&gt;
&lt;br /&gt;
And finally, lets do a compile. This is necessary to setup more development packages, populate the source code with make files, etc. (Don&#039;t worry, this won&#039;t alter your current installation!)  &lt;br /&gt;
 cd trunk&lt;br /&gt;
 ./configure&lt;br /&gt;
 make&lt;br /&gt;
 &lt;br /&gt;
Now go take a break. This part may take a while!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;GREAT!&#039;&#039;&#039; You now have the most recent version of the source code available to you and you will be able to compile changes!  You can run svn update at any time from within the trunk directory to get the latest changes that have been committed to SVN.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now that this is finished, you are now ready to compile changes in the source code, then copy the resulting file to the appropriate place in the core.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;A quick example&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Since I am familiar with the CM11A source, I will use it as an example...&lt;br /&gt;
First i cd into the CM11A directory&lt;br /&gt;
 cd ~/lmce/src/CM11A&lt;br /&gt;
Next I make changes to devicepoll.cpp..&lt;br /&gt;
Now I want to compile my changes.. But first I have found it good practice to delete any old object files etc. before compiling, so I usually run&lt;br /&gt;
 rm *.o&lt;br /&gt;
 rm CM11A&lt;br /&gt;
This removes the last resulting CM11A binary if present, as well as the object files that might be present from my last compile.&lt;br /&gt;
Next I compile the changes..&lt;br /&gt;
 make bin&lt;br /&gt;
Once it is finished compiling, I have a new CM11A binary that just needs moved to the right place in the core.. In this instance it is /usr/pluto/bin/ (/usr/pluto/lib/ is another hot-spot to check, usually for .so files)&lt;br /&gt;
First, I remove the original file that I will be replacing..&lt;br /&gt;
 sudo rm /usr/pluto/bin/CM11A&lt;br /&gt;
then I copy my newly compiled binary over..&lt;br /&gt;
 sudo cp CM11A /usr/pluto/bin/CM11A&lt;br /&gt;
Now with a &amp;quot;quick reload router&amp;quot; from one of my orbiters, my changes will be in effect!&lt;br /&gt;
&lt;br /&gt;
A quick note - if &amp;quot;make bin&amp;quot; does not work, you may need to run &amp;quot;make so&amp;quot; for some sources that end up being library files, and yet others require just &amp;quot;make&amp;quot;. I&#039;m not sure if there is a golden rule to all of this, but I just try each of them until one of them works. Then, for the most part, you can search /usr/pluto/bin and /usr/pluto/lib to see where the resulting compiled file should go.&lt;br /&gt;
Also, I have noticed that a &amp;quot;Full reload router&amp;quot; is necessary if you replace a library file (*.so)&lt;br /&gt;
&lt;br /&gt;
== Helpful Tools and Hints ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Compiling changes and where to put them on the core&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
As stated above, I am not sure if there is a golden rule to this, but depending on what you are trying to compile, you will have to use one of the following:&lt;br /&gt;
 make&lt;br /&gt;
 make bin&lt;br /&gt;
 make so&lt;br /&gt;
If you try one and get an error, try another one (i&#039;m sure there is a better approach to this!)&lt;br /&gt;
For the most part, you should be able to search through /usr/pluto/bin and /usr/pluto/lib to see where the resulting file should go.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Using VNC to remotely view the on-screen orbiter&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
As an Ubuntu user, I will explain it from how I do it from Ubuntu.&lt;br /&gt;
&lt;br /&gt;
First, ssh to the core, and install VNC&lt;br /&gt;
 ssh linuxmce@192.168.80.1&lt;br /&gt;
Now lets install VNC&lt;br /&gt;
 sudo apt-get install x11vnc&lt;br /&gt;
Ok, once it is installed, run the VNC Server from the core&lt;br /&gt;
 x11vnc&lt;br /&gt;
&lt;br /&gt;
Now that you have a VNC server running on the core, lets start the client on our Ubuntu desktop:&lt;br /&gt;
First, open another terminal on your desktop&lt;br /&gt;
now run the following command (in the new terminal, not the terminal that is SSH&#039;d into the core!)&lt;br /&gt;
 vncviewer 192.168.80.1:0&lt;br /&gt;
&lt;br /&gt;
Now you can take professional developer-grade screenshots of our on-screen orbiters!&lt;br /&gt;
(There are other tools available to take full recorded screencasts of these VNC sessions, but I&#039;ve never used one)&lt;br /&gt;
Also note, that the VNC playback is not at full framerate - this is normal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Navigating the core remotely with GUI&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unless you like editing source code in a terminal with vim, you will want to make things easier on yourself, and set things up so you can graphically browse the directory tree on the core, and edit source code files with gedit or a similar editor...&lt;br /&gt;
In ubuntu, go to Places-&amp;gt;Connect To Server&lt;br /&gt;
A &amp;quot;Connect Tto Server&amp;quot; window will appear. Fill it out as follows:&lt;br /&gt;
Service Type - SSH&lt;br /&gt;
Server - 192.168.80.1&lt;br /&gt;
Port - 22&lt;br /&gt;
Folder - /&lt;br /&gt;
User Name - linuxmce&lt;br /&gt;
Name to use for connection - &amp;lt;anything you want&amp;gt; (I use Access Core Files)&lt;br /&gt;
&lt;br /&gt;
You will now have a network folder on your desktop that you can access files with - without having to use the command line. (the first time you will be prompted for a password, which of course is &#039;linuxmce&#039;. Double clicking files will now open them in your preferred desktop editor!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SSH-ing into a Media Director&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I&#039;m sure there is a better way, but here is what I do:&lt;br /&gt;
&lt;br /&gt;
1)ssh into the core&lt;br /&gt;
 ssh linuxmce@192.168.80.1&lt;br /&gt;
..enter password &#039;linuxmce&#039;&lt;br /&gt;
&lt;br /&gt;
2) navigate to /usr/pluto/diskless&lt;br /&gt;
 cd /usr/pluto/diskless&lt;br /&gt;
&lt;br /&gt;
3) get the &amp;quot;moon numbers&amp;quot; of the media directors&lt;br /&gt;
 ls&lt;br /&gt;
note that each media director has a unique 3-digit number.. you will need this number in the following steps..&lt;br /&gt;
&lt;br /&gt;
4) change over to the root user:&lt;br /&gt;
 sudo su&lt;br /&gt;
...enter password &#039;linuxmce&#039;&lt;br /&gt;
&lt;br /&gt;
5) ssh into one of the media directors&lt;br /&gt;
 ssh moonxxx&lt;br /&gt;
(xxx is the 3-digit number of one of the media directors)&lt;br /&gt;
&lt;br /&gt;
You are now in the Media Director&#039;s file system, be careful, as you are root!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Installing phpMyAdmin to examine database structure etc.&#039;&#039;&#039;&lt;br /&gt;
phpMyAdmin is a graphical (web based) mysql front end that makes looking through the vast LMCE databases effortless. While I would never recommend adding or removing anything directly to the database this way, having a view of the database structure and the ability to easily browse through the tables really helps to understand LMCE and how it works much better. It also makes for a good reference when you are looking for primary keys that are so popular as device data. Now you can look up all of your options.&lt;br /&gt;
&lt;br /&gt;
First, lets ssh into the core&lt;br /&gt;
 ssh linuxmce@192.168.80.1&lt;br /&gt;
(use password linuxmce)&lt;br /&gt;
&lt;br /&gt;
Now lets switch to the directory where the admin web pages are stored&lt;br /&gt;
 cd /var/www/&lt;br /&gt;
&lt;br /&gt;
...and download the tarball&lt;br /&gt;
 sudo wget http://internap.dl.sourceforge.net/sourceforge/phpmyadmin/phpMyAdmin-2.11.7-rc1-english.tar.gz&lt;br /&gt;
&lt;br /&gt;
Once the tarball is finished downloading, its time to extract it&lt;br /&gt;
 sudo tar -xzvf  phpMyAdmin-2.11.7-rc1-english.tar.gz&lt;br /&gt;
&lt;br /&gt;
You will now notice that if you list the directory contents (with ls), that you have a new phpMyAdmin-2.11.7-rc1-english directory. Thats fine, but who wants to type that in their web browser when they want to use phpMyAdmin. Lets rename it to something easier&lt;br /&gt;
 sudo mv phpMyAdmin-2.11.7-rc1-english phpmyadmin&lt;br /&gt;
&lt;br /&gt;
thats it! Now you can check out the database and learn from it. Again, be careful, as you can really, truely screw things up internally if you go adding and deleting entries.&lt;br /&gt;
To go to phpMyAdmin, in your web browser, just type 192.168.80.1/phpmyadmin&lt;/div&gt;</summary>
		<author><name>Jeangot</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Unrecognized_NIC&amp;diff=16931</id>
		<title>Unrecognized NIC</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Unrecognized_NIC&amp;diff=16931"/>
		<updated>2009-01-02T21:38:57Z</updated>

		<summary type="html">&lt;p&gt;Jeangot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Hardware]]&lt;br /&gt;
[[Category: Networking]]&lt;br /&gt;
[[Category: Troubleshooting]]&lt;br /&gt;
[[Category: Tutorials]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; If you have a r8168 NIC, see the [[r8168]] page first.&lt;br /&gt;
&lt;br /&gt;
Every now and then, people come along with NICs that are not directly supported by LinuxMCE. Typically when this happens you will see a &#039;Kernel Panic&#039; during the initial PXE boot process. The following information should help to get even those NICs to work. As an example, the ASUS P5K is used, which is using the Attansic L1 NIC. You may have another chipset used in your NIC which will mean that you need to find out what the chipset is and importantly what kernel module is used to add support for it. Googling the chipset name and the words &#039;kernel module&#039; will normally throw up some links to help you get the module name. Once you have that information you are ready to follow the simple steps outlined below;&lt;br /&gt;
== Modify modules on core ==&lt;br /&gt;
To get a NIC to work, you have to modify a file;&lt;br /&gt;
 sudo &amp;lt;editor-of-choice&amp;gt; /etc/initramfs-tools-interactor/modules&lt;br /&gt;
and add a single line for your NICs kernel module. In the above case the name of the module is&lt;br /&gt;
 atl1&lt;br /&gt;
Or for the Marvell Yukon 88E8055 chip for example add;&lt;br /&gt;
 sky2&lt;br /&gt;
After adding the above line (and saving the change of course ;-) ), you have to recreate the initial ramdisk. For 0704 do;&lt;br /&gt;
 /usr/pluto/bin/Diskless_BuildDefaultImage.sh&lt;br /&gt;
or maybe&lt;br /&gt;
 mkinitramfs -d /etc/initramfs-tools-interactor/ -o /tftpboot/default/initrd&lt;br /&gt;
is enough.&lt;br /&gt;
&lt;br /&gt;
This will create a new initial ramdisk for the first boot of new MDs containing the atl1 module (or in your case for whichever module you have added). Now, the first boot of the diskless MD will succeed and a new diskless media director will be created.&lt;br /&gt;
&lt;br /&gt;
== Modify the media director initial ramdisk ==&lt;br /&gt;
To boot this diskless MD later on, the configuration for this new device has to be modified to include the above line as well. Look in the directory structure under /usr/pluto/diskless. Each media director has a directory named with the ID of the director in here. Go into the /usr/pluto/diskless/&amp;lt;mediadirector-id&amp;gt;/etc and edit the file modules to also contain&lt;br /&gt;
 atl1&lt;br /&gt;
&lt;br /&gt;
Also, go into &#039;&#039;&#039;/usr/pluto/diskless/&amp;lt;mediadirector-id&amp;gt;/etc/initramfs-tools&#039;&#039;&#039; and put the line into a file called modules. After this, chroot into the directory of the media directory, and re-create the initial ramdisk.&lt;br /&gt;
&lt;br /&gt;
To create a new initial ram disk the command is&lt;br /&gt;
 cd /usr/pluto/diskless/&lt;br /&gt;
 chroot &amp;lt;mediadirector-id&amp;gt;&lt;br /&gt;
 depmod&lt;br /&gt;
 cd /boot&lt;br /&gt;
 mkinitramfs -o initrd.img-`uname -r` `uname -r`&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Now reboot your media director. Everything should come up, the way it is meant to.&lt;br /&gt;
== Caveat ==&lt;br /&gt;
Whenever you click Regenerate this media director, you have to redo the step for the initial ramdisk of the media director.&lt;br /&gt;
The above steps do not work, if the media director and the core utilize two different CPU architectures,ie. one is using AMD64 the other i386 (chroot won&#039;t work).&lt;/div&gt;</summary>
		<author><name>Jeangot</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Adding_new_computing_apps&amp;diff=14885</id>
		<title>Adding new computing apps</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Adding_new_computing_apps&amp;diff=14885"/>
		<updated>2008-07-14T20:58:28Z</updated>

		<summary type="html">&lt;p&gt;Jeangot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In the &amp;quot;computing&amp;quot; screen can be added new applications.&lt;br /&gt;
&lt;br /&gt;
To add a new application, a template must be used, and the window class for that application must be known.&lt;br /&gt;
Window class is a property of every X11 application.&lt;br /&gt;
&lt;br /&gt;
The WM_CLASS property (of type STRING without control characters) contains two consecutive null-terminated strings. These specify the Instance and Class names to be used by both the client and the window manager for looking up resources for the application or as identifying information.&lt;br /&gt;
&lt;br /&gt;
==On a LinuxMCE computer==&lt;br /&gt;
Go to computing screen.&lt;br /&gt;
&lt;br /&gt;
Press admin =&amp;gt; firefox should appear&lt;br /&gt;
&lt;br /&gt;
Press Ctrl-Alt-F2 =&amp;gt; you are at a login prompt&lt;br /&gt;
&lt;br /&gt;
Log in&lt;br /&gt;
&lt;br /&gt;
run the command&lt;br /&gt;
    export DISPLAY=:0&lt;br /&gt;
now you can launch GUI applications from this console&lt;br /&gt;
    launch your application&lt;br /&gt;
&lt;br /&gt;
Press Ctrl-Alt-F7 and wait until your application appears&lt;br /&gt;
&lt;br /&gt;
Press Ctrl-Alt-F3 and log in again&lt;br /&gt;
&lt;br /&gt;
type these commands&lt;br /&gt;
    export DISPLAY=:0&lt;br /&gt;
    xprop | grep WM_CLASS&lt;br /&gt;
&lt;br /&gt;
Press Ctrl-Alt-F7 =&amp;gt; the cursor changed his shape to &amp;quot;+&amp;quot;&lt;br /&gt;
    Click somewhere in your application&lt;br /&gt;
=&amp;gt; the cursor changes back to &amp;quot;normal&amp;quot; cursor&lt;br /&gt;
&lt;br /&gt;
Press Ctrl-Alt-F3 and look into your console: a line like this should appear&lt;br /&gt;
    WM_CLASS(STRING) = &amp;quot;class_instance&amp;quot;, &amp;quot;class_Name&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    class_instance.class_Name is the string that will be used in the template for your application&lt;br /&gt;
    Remember this string, and pay attention to lowercase and uppercase characters&lt;br /&gt;
&lt;br /&gt;
You can close your application an your consoles now&lt;br /&gt;
&lt;br /&gt;
==On another computer==&lt;br /&gt;
Launch a terminal&lt;br /&gt;
&lt;br /&gt;
Launch your application&lt;br /&gt;
&lt;br /&gt;
Type in your terminal:&lt;br /&gt;
    xprop | grep WM_CLASS&lt;br /&gt;
&lt;br /&gt;
=&amp;gt; the cursor changed his shape to &amp;quot;+&amp;quot;&lt;br /&gt;
    Click somewhere in your application&lt;br /&gt;
=&amp;gt; the cursor changes back to &amp;quot;normal&amp;quot; cursor&lt;br /&gt;
&lt;br /&gt;
Look in your terminal: a line like this should appear&lt;br /&gt;
    WM_CLASS(STRING) = &amp;quot;class_instance&amp;quot;, &amp;quot;class_Name&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    class_instance.class_Name is the string that will be used in the template for your application&lt;br /&gt;
    Remember this string, and pay attention to lowercase and uppercase characters&lt;br /&gt;
&lt;br /&gt;
You can close your application an your terminal now&lt;br /&gt;
&lt;br /&gt;
==Using the WM_CLASS string in the template==&lt;br /&gt;
..... to be written .....&lt;br /&gt;
&lt;br /&gt;
[[Category: Tutorials]]&lt;/div&gt;</summary>
		<author><name>Jeangot</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Computing_screen&amp;diff=14884</id>
		<title>Computing screen</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Computing_screen&amp;diff=14884"/>
		<updated>2008-07-14T20:46:23Z</updated>

		<summary type="html">&lt;p&gt;Jeangot: /* How to add &amp;quot;installed programs&amp;quot; */&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;
[[Category: Programmer&#039;s Guide]]&lt;br /&gt;
[[Category: Tutorials]]&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The Computing screen allows you to use external applications, like Mozilla Firefox or MythTV Setup. There are two columns on the screen -- one for installed programs and one for web bookmarks.&lt;br /&gt;
&lt;br /&gt;
== How to add &amp;quot;installed programs&amp;quot;==&lt;br /&gt;
The &amp;quot;Computing&amp;quot; button on the Orbiter menu brings up a list of &amp;quot;installed programs&amp;quot; and &amp;quot;Web bookmarks.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
http://wiki.linuxmce.org/index.php/Adding_new_computing_apps&lt;br /&gt;
&lt;br /&gt;
== How to use ==&lt;br /&gt;
&lt;br /&gt;
=== For OnScreen Orbiters ===&lt;br /&gt;
The on-screen Orbiter menu is used by a [[Media Director]].&lt;br /&gt;
&lt;br /&gt;
On the on-screen Orbiter main menu, click the &amp;quot;Computing&amp;quot; button. This will bring up a screen displaying &amp;quot;Installed programs&amp;quot; and &amp;quot;Web bookmarks&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you click on a web bookmark, Firefox be used to start the webpage in fullscreen mode (except the &amp;quot;Home&amp;quot; and &amp;quot;Stop&amp;quot; buttons, which will be displayed at the bottom of the screen). The keyboard and mouse will control Firefox; events and orbiter will ignore the keyboard until Firefox is closed.&lt;br /&gt;
&lt;br /&gt;
If you click on an Installed Program, the &amp;quot;Application Desktop&amp;quot; will appear, running the installed program. Below the &amp;quot;Desktop&amp;quot; button will be a label that indicates the name of the external application running. To close the external application, press the &amp;quot;Exit&amp;quot; button. (If no external application is running, the label, &amp;quot;Desktop&amp;quot; and &amp;quot;Exit&amp;quot; buttons will be hidden.)&lt;br /&gt;
&lt;br /&gt;
Whenever you then click the home button, the main menu will reappear.&lt;br /&gt;
&lt;br /&gt;
=== For other Orbiters ===&lt;br /&gt;
For Orbiters that do not use the on-screen Orbiter menu (such as webpads, mobile phones, and PDAs), the procedure is similar.&lt;br /&gt;
&lt;br /&gt;
*If xine or another media player is running while using hte Computing features, the xine window won&#039;t be visible.&lt;br /&gt;
*If an external application is running and you wish play a movie, xine will be visible instead of the Orbiter menu.&lt;br /&gt;
&lt;br /&gt;
== Programming details ==&lt;br /&gt;
&lt;br /&gt;
To encapsulate the logic for the Computing screen, a Screen Handler is used. The ScreenHandler is overridden by the SCREEN_Computing method. &lt;br /&gt;
&lt;br /&gt;
=== SCREEN_Computing method ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Callbacks for cbObjectSelected and cbDataGridSelected events are registered.&lt;br /&gt;
&lt;br /&gt;
*Decide if this Orbiter is an on-screen OSD orbiter (in which case we will know the status of any external application that might be started) or not (in which case we will use &#039;Get Active Application&#039; to get the info from the Orbiter in use&lt;br /&gt;
&lt;br /&gt;
*If there is an external application running, show the &amp;quot;Desktop&amp;quot; and &amp;quot;Exit&amp;quot; buttons and the associated label; if not, these objects will be hidden.&lt;br /&gt;
&lt;br /&gt;
=== Computing_ObjectSelected callback method ===&lt;br /&gt;
&lt;br /&gt;
If the user presses &amp;quot;Exit&amp;quot; button, Orbiter will send a &amp;quot;kill application&amp;quot; command to App_Server and returns to the main menu display. Any information related to an external application running is reset.&lt;br /&gt;
&lt;br /&gt;
If the user presses &amp;quot;Remote&amp;quot; button, the controlled Orbiter is sent to the &amp;quot;Application Desktop&amp;quot; screen and an &amp;quot;Activate Window&amp;quot; (using the window class of the external application as a parameter) is sent to controlled Orbiter. The Orbiter already should have the information about the external application.&lt;br /&gt;
&lt;br /&gt;
=== Computing_DatagridSelected callback method ===&lt;br /&gt;
&lt;br /&gt;
Once a cell is clicked in the Computing screen menu, this callback method is invoked. The cell has embedded in its value variable a comma delimited list with parameters about the application to run (window class, description, etc.). A &amp;quot;Spawn Application&amp;quot; command is sent to App_Server and the controlled Orbiter will be notified so that a &amp;quot;Active Window&amp;quot; command about the external application is started.&lt;br /&gt;
&lt;br /&gt;
=== Activate Window command ===&lt;br /&gt;
&lt;br /&gt;
This command is implemented in the overridden version of OrbiterLinux. In here, a small module called &amp;quot;Windows List Manager&amp;quot; is notified about the application to activate. When Orbiter goes to the &amp;quot;Application Desktop&amp;quot; screen, RenderDesktop is called and OrbiterLinux will know that it&#039;s time to find the external application&#039;s window and to activate it and set its position.&lt;/div&gt;</summary>
		<author><name>Jeangot</name></author>
	</entry>
	<entry>
		<id>http://wiki.linuxmce.org/index.php?title=Building_From_Source&amp;diff=14053</id>
		<title>Building From Source</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxmce.org/index.php?title=Building_From_Source&amp;diff=14053"/>
		<updated>2008-06-19T04:11:11Z</updated>

		<summary type="html">&lt;p&gt;Jeangot: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Building on 0710 =&lt;br /&gt;
See also: [[Setting_Up_A_Development_Environment]]&lt;br /&gt;
== Preparations ==&lt;br /&gt;
Set up a directory for the development tree. For example type the following in a shell as &amp;quot;linuxmce&amp;quot; user:&lt;br /&gt;
 cd /usr/src&lt;br /&gt;
 sudo mkdir lmce&lt;br /&gt;
 sudo chown linuxmce lmce&lt;br /&gt;
 cd lmce&lt;br /&gt;
&lt;br /&gt;
Install Subversion&lt;br /&gt;
 sudo apt-get install subversion&lt;br /&gt;
&lt;br /&gt;
Fetch the source:&lt;br /&gt;
 svn co http://svn.charonmedia.org/svn/trunk&lt;br /&gt;
&lt;br /&gt;
Copy the libraries needed for to bootstrap:&lt;br /&gt;
 cp /usr/pluto/lib/* trunk/src/lib&lt;br /&gt;
&lt;br /&gt;
Run configure:&lt;br /&gt;
 cd trunk&lt;br /&gt;
 ./configure&lt;br /&gt;
&lt;br /&gt;
For the svn.linuxmce.com source there is no configure script yet. Run these to prepare bootstrapping (ONLY FOR THE SVN.LINUXMCE.COM source, NOT the charonmedia):&lt;br /&gt;
 find . -iname Makefile -exec sed -e &#039;s/&amp;lt;-mkr_t_compile_defines-&amp;gt;/-DKDE_LMCE -DDEBUG -DTHREAD_LOG -DLOG_ALL_QUERIES -I\/opt\/libxine1-pluto\/include -I\/opt\/libsdl1.2-1.2.7+1.2.8cvs20041007\/include -I\/opt\/libsdl1.2-1.2.7+1.2.8cvs20041007\/include\/SD/&#039; -i &#039;{}&#039; \;&lt;br /&gt;
 find . -iname Makefile -exec sed -e &#039;s/&amp;lt;-mkr_t_compile_libs-&amp;gt;/-L\/opt\/libxine1-pluto\/lib -L\/opt\/libsdl1.2-1.2.7+1.2.8cvs20041007\/lib/&#039; -i &#039;{}&#039; \;&lt;br /&gt;
&lt;br /&gt;
== Building ==&lt;br /&gt;
Run make:&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
= Building on 0604 =&lt;br /&gt;
&#039;&#039;&#039;Source code for LinuxMCE 0704 is on the [[Mirrors]].  This page hasn&#039;t been updated for 0704 yet&#039;&#039;&#039;&lt;br /&gt;
== Before You Begin==&lt;br /&gt;
The build script is tested and designed to run on Ubuntu 6.10 x86 but it can be changed to work on various platforms or at least to give others a starting point on how to do it. It&#039;ll be harder to port it to non deb based distributions since the software depends on many debian specific stuff but this i hope  to be change over time.&lt;br /&gt;
&lt;br /&gt;
Also since this script was written with a single goal in mind -- to get everything done -- I might have left, by mistake, some lines of code that may not run on your computers (hardcoded paths and stuff like this). But I rely on you to at least try to fix them before asking for help but if the problem is not so obvious I would gladly give you advice.&lt;br /&gt;
&lt;br /&gt;
== The Build Scripts ==&lt;br /&gt;
The build scripts are in sourceforge svn so to get them you will need subversion installed.&lt;br /&gt;
 sudo apt-get install subversion&lt;br /&gt;
 svn co https://linuxmce.svn.sourceforge.net/svnroot/linuxmce/trunk/src/Ubuntu_Helpers&lt;br /&gt;
&lt;br /&gt;
Before running the build script, i insist that you take a look over it so that you know what is doing and not run it blindly. &lt;br /&gt;
&lt;br /&gt;
The main script that you need to run would be BuildUbuntu.sh. This script should checkout the svn for you, compile the source, build the packages, build an iso and everything else so you can end up with a usable linuxmce build. In this script you can find some functions that are called one by one to perform several operations, here&#039;s a short description:&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Install_Build_Needed_Packages&#039;&#039;: This will install all the deb packages that you will need to build the sourcecode. Probably you will only need to run it once and comment it after the first run on BuildPackages.sh.&lt;br /&gt;
*&#039;&#039;Create Diskless Archive&#039;&#039;: Runs a debootstrap to create a base filesystem for Diskless Media Directors. It&#039;s needed later when it&#039;ll be packed in a deb packages. You also don&#039;t need to run this every time but is safer to leave it uncommented so that the diskless archive will have the latest ubuntu updates.&lt;br /&gt;
*&#039;&#039;Import_Skins&#039;&#039;: Since linuxmce uses a lot of pngs for the all sort of skins, you won&#039;t find them in the svn. This function will download a tar.bz2 archive with all the skins and unpack it so that the package builder will now where to take it from.&lt;br /&gt;
*&#039;&#039;Checkout_Svn&#039;&#039;: Will do a svn checkout on sourceforge to get all the needed sources&lt;br /&gt;
*&#039;&#039;Build_Replacements&#039;&#039;: LinuxMCE needs some 3rd party some packages that are not part of ubuntu distribution. This function will build / get them for you.&lt;br /&gt;
*&#039;&#039;Build_MakeRelease_Binary&#039;&#039;: This function compiles the building tools that will do the compilation / package creation of all the other packages by using information stored in the pluto_main_build database.&lt;br /&gt;
*&#039;&#039;Import_Build_Database&#039;&#039;: Imports a fresh copy of the pluto databases needed at build time.&lt;br /&gt;
*&#039;&#039;Create_Fake_Windows_Binaries&#039;&#039;: Orbiter and other aplications don&#039;t only run on Linux. Usually the pluto guys compile their applications on windows and put the binaries on the linux build machine so that package creating application will know where to get them. Since we can&#039;t compile windows binaries on linux i made this function that creates some fake binary files with a touch so that the package builder won&#039;t fail to run.&lt;br /&gt;
*&#039;&#039;Build_Pluto_Stuff&#039;&#039;: Uses MakeRelase to compile the sources and build packages out of them&lt;br /&gt;
*&#039;&#039;Create_Local_Repository&#039;&#039;: Optional you can create a local repository so that you can easily test your debs.&lt;br /&gt;
&lt;br /&gt;
There is also the get-packages.sh script that is called by BuildUbuntu.sh and has the goal to create and iso with all the needed packages for a linuxmce installation.&lt;br /&gt;
&lt;br /&gt;
== Source Code Location ==&lt;br /&gt;
&lt;br /&gt;
Our source code is located on sourceforge and you can get it by svn from : http://svn.charonmedia.org/svn/&lt;br /&gt;
&lt;br /&gt;
The png used for the skins are located here : http://www.linuxmce.com/linuxmce-skins-1.0.tar.bz2&lt;br /&gt;
&lt;br /&gt;
The sql dumps of the databases needed for the build : http://www.linuxmce.com/linuxmce-databases-1.0.tar.gz&lt;br /&gt;
&lt;br /&gt;
[[Category: Tutorials]]&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Jeangot</name></author>
	</entry>
</feed>