<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://kodi.wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Borromini</id>
	<title>Official Kodi Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://kodi.wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Borromini"/>
	<link rel="alternate" type="text/html" href="https://kodi.wiki/view/Special:Contributions/Borromini"/>
	<updated>2026-06-18T01:53:43Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://kodi.wiki/index.php?title=Add-on:Arctic:_Zephyr&amp;diff=92626</id>
		<title>Add-on:Arctic: Zephyr</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Add-on:Arctic:_Zephyr&amp;diff=92626"/>
		<updated>2015-04-16T19:27:16Z</updated>

		<summary type="html">&lt;p&gt;Borromini: Confirmed custom home item support&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Addon &lt;br /&gt;
|Name=Arctic: Zephyr&lt;br /&gt;
|provider-name=jurialmunkey&lt;br /&gt;
|ID=skin.arctic.zephyr&lt;br /&gt;
|latest-version=1.2.4&lt;br /&gt;
|extension point=xbmc.gui.skin&lt;br /&gt;
|provides=&lt;br /&gt;
|Summary=Clean, minimal, elegant, simple, light.&lt;br /&gt;
|Description=Arctic: Zephyr is the third iteration of the Arctic skin created by jurialmunkey. Arctic focuses on being simple, clean and minimalistic with a light spin.&lt;br /&gt;
|Platform=all&lt;br /&gt;
|Language=&lt;br /&gt;
|License=&lt;br /&gt;
|Forum=&lt;br /&gt;
|Website=&lt;br /&gt;
|Source=&lt;br /&gt;
|Email=&lt;br /&gt;
|broken=&lt;br /&gt;
|icon url=http://mirrors.kodi.tv/addons/helix/skin.arctic.zephyr/icon.png}}&lt;br /&gt;
&lt;br /&gt;
{{Skin features&lt;br /&gt;
 | custom home items = {{yes}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Helix add-on repository]]&lt;/div&gt;</summary>
		<author><name>Borromini</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Archive:Chromebox&amp;diff=77711</id>
		<title>Archive:Chromebox</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Archive:Chromebox&amp;diff=77711"/>
		<updated>2014-07-27T17:11:36Z</updated>

		<summary type="html">&lt;p&gt;Borromini: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox information appliance&lt;br /&gt;
| name = Asus Chromebox&lt;br /&gt;
| image = [[File:Asus_chromebox.jpg|300px]]&lt;br /&gt;
| manufacturer = Asus&lt;br /&gt;
| releasedate = 2014-03-14 (US)&lt;br /&gt;
| os =  Chrome OS&lt;br /&gt;
| cpu = Intel® Celeron 2955U (M004U) / Intel® Core i3-4010U (M075U)&lt;br /&gt;
| graphics  = Intel® HD Graphics 4000 (M004U) / Intel® HD Graphics 4400 (M075U)&lt;br /&gt;
| storage = 16GB internal SSD&lt;br /&gt;
| memory = 2 GB (M004U) / 4GB (M075U), Dual Channel, DDR3 at 1600MHz&lt;br /&gt;
| connectivity = HDMI, Displayport, Bluetooth 4.0, USB 3.0, Wifi 802.11 a/b/g/n, 10/100/1000 Ethernet, 2 -in-1 Card Reader, Audio jack&lt;br /&gt;
| dimensions = 4.88 x 4.88 x 1.65 inch (WxDxH)&lt;br /&gt;
}}&lt;br /&gt;
[[File:Asus_chromebox_ports.jpg|right|300px|Asus Chromebox Rear Ports|thumb]]&lt;br /&gt;
[[File:Asus_chromebox_ports_2.jpg|right|300px|Asus Chromebox Side/Front Ports|thumb]]&lt;br /&gt;
{{mininav|[[Devices]]|[[x86 hardware]]}}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;The ASUS Chromebox is a small lightweight intel PC that runs Chrome OS and can be made to boot into other linux versions. It features HDMI, Displayport, USB 3 ports, gig ethernet, SD card slot, and internal wireless-n networking. This page is a collection of links, information, tips, and guides related to running XBMC on the ASUS Chromebox line of computers.&lt;br /&gt;
&lt;br /&gt;
Nearly all of these steps will be the same on the HP Chromebox. The hardware is almost identical except for only having 1 dimm instead of the 2 the ASUS has.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Device Preparation ==&lt;br /&gt;
&lt;br /&gt;
=== Put in Developer Mode ===&lt;br /&gt;
&lt;br /&gt;
Putting the ChromeBox in developer mode will allow you to access the underlying Linux operating system features necessary for installing XBMC.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING&#039;&#039;&#039;: This will erase all user data on the device.&lt;br /&gt;
&lt;br /&gt;
With the device powered off:&lt;br /&gt;
# Insert a paperclip into the hole left of the SD card slot and press the recovery button&lt;br /&gt;
# Power on the device, then remove the paper clip&lt;br /&gt;
# When greeted with the recovery screen, press CTRL-D to enter developer mode&lt;br /&gt;
# Press the recovery button (with paperclip) to confirm.  &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
After confirming, the device will reboot and wipe any existing user data - this will take ~5 minutes.  Afterwards, the ChromeBox will be in developer mode (as opposed to standard/verified boot mode), and the developer boot screen will be shown at each boot.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The developer boot screen has some scary text about OS verification being off, with instructions to hit [SPACE] if you want to re-enable it.  This will return the device from developer mode to standard/verified boot mode, so don&#039;t do that.  The developer mode boot screen has a ~30s delay, followed by two beeps, before booting.  You can skip the delay by pressing [CTRL-D] to immediately boot into ChromeOS.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Recoverybutton.png|300px]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Disable Firmware Write Protect ===&lt;br /&gt;
&lt;br /&gt;
Disabling the firmware write protect will allow us to shorten the developer boot screen timeout (from 30s to ~1s) in a dial boot configuration, and optionally boot directly to the legacy BIOS (and into Ubuntu or OpenELEC).  This is also necessary for standalone setups so that the stock firmware can be updated.&lt;br /&gt;
&lt;br /&gt;
With the device powered off and unplugged:&lt;br /&gt;
&lt;br /&gt;
# Remove (4) rubber feet from bottom of unit&lt;br /&gt;
# Remove (4) screws under rubber feet&lt;br /&gt;
# Separate two halves of unit.  Tip: partially insert the screw removed from the notched end, but do not re-thread it. Use it to help separate the two halves. &lt;br /&gt;
# Remove write-protect screw circled below:&lt;br /&gt;
#::[[File:Inside-chrome1.jpg|300px]]&lt;br /&gt;
# Reassemble in reverse order&lt;br /&gt;
&lt;br /&gt;
The write-protect screw can be left out permanently.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Perform a Factory Reset ===&lt;br /&gt;
&lt;br /&gt;
A factory reset is not needed on a Standalone setup, but must be performed prior to any dual-boot installation.&lt;br /&gt;
&lt;br /&gt;
Google&#039;s recovery tool seems to be picky about what kind/size of USB/SD media you use.  I&#039;ve had the best luck with 4GB/8GB media, but YMMV.&lt;br /&gt;
Anecdotally, creating the recovery media from within ChromeOS seems to be the most reliable method.&lt;br /&gt;
&lt;br /&gt;
# Create recovery media using step 2 of Google&#039;s instructions here: https://support.google.com/chromebook/answer/1080595?hl=en or open chrome://imageburner on the device&lt;br /&gt;
# With the device powered off, use a paperclip to press the Recovery button and power on the device&lt;br /&gt;
# Insert the recovery media (USB or SD) when prompted&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Note that this will re-partition the internal hard drive and restore the original copy of ChromeOS, erasing anything else on the drive.  The ChromeBox will still be left in developer mode, and if you changed the boot options they will still be set.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
If you&#039;re having trouble creating the recovery media using Google&#039;s recovery tool above, you can manually download the recovery image and write it to a USB stick:&lt;br /&gt;
:*Download Recovery image: https://dl.google.com/dl/edgedl/chromeos/recovery/chromeos_5500.130.0_panther_recovery_stable-channel_mp.bin.zip&lt;br /&gt;
:* Download Win32 Disk Imager: http://sourceforge.net/projects/win32diskimager/&lt;br /&gt;
:* Unzip the recovery image; the file should be ~1.5 GB&lt;br /&gt;
:* Rename the recovery image extension from .bin to .img&lt;br /&gt;
:* Write the image to your USB media using Win32 Disk Imager&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installing XBMC ==&lt;br /&gt;
&lt;br /&gt;
XBMC can be installed via OpenELEC or Ubuntu+XBMC, in either a standalone or dual boot configuration.  This is accomplished via the ChromeBox E-Z Setup script, which must be run from either ChromeOS or ChromiumOS.&lt;br /&gt;
&lt;br /&gt;
To run the ChromeBox E-Z Setup script, perform the following steps:&lt;br /&gt;
&lt;br /&gt;
# Power on and boot to ChromeOS/ChromiumOS.  Do not log in, but ensure a network connection is established.&lt;br /&gt;
# Hit CTRL-ALT-F2 to open command prompt&lt;br /&gt;
# Login with user chronos (no password required for ChromeOS; ChromiumOS uses &#039;password&#039;)&lt;br /&gt;
# Download and run the ChromeBox setup script with the commands: &lt;br /&gt;
#: &amp;lt;nowiki&amp;gt;curl -L -O http://goo.gl/3Tfu5W&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#: &amp;lt;nowiki&amp;gt;sudo bash 3Tfu5W &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Full instructions and explanation of the script&#039;s usage can be found at the following forum thread: http://forum.xbmc.org/showthread.php?tid=194362&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Updating XBMC ===&lt;br /&gt;
&lt;br /&gt;
==== OpenELEC ====&lt;br /&gt;
&lt;br /&gt;
The Chromebox is a pretty run-of-the-mill x86_64 Intel system (albeit, like the NUC, with an ultra low power processor). The standard OpenELEC builds - labeled &#039;Generic x86_64&#039; - work perfectly well, and it is recommended to use OpenELEC&#039;s auto-update feature (System --&amp;gt; OpenELEC --&amp;gt; System --&amp;gt; Automatic Updates: auto).  If that doesn&#039;t work for some reason, you can manually update using the instructions on the [http://wiki.openelec.tv/index.php?title=Updating_OpenELEC OpenELEC wiki].&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Known issues + Fixes/Workarounds ==&lt;br /&gt;
&lt;br /&gt;
Installation:&lt;br /&gt;
:* Some keyboards seem to have issues working on the ChromeOS developer boot screen (before the OS is booted), and therefore cannot be used to setup/install XBMC on a ChromeBox.  The Logitech K400 is one of these, so use another keyboard to install if yours doesn&#039;t appear to be working.&lt;br /&gt;
&lt;br /&gt;
Color Range Selection:&lt;br /&gt;
:* This topic is a bit of a minefield, but [http://forum.xbmc.org/showthread.php?tid=176718&amp;amp;pid=1756704#pid1756704 this post on the forums is a good read].  It&#039;s for a NUC, but it applies to the ChromeBox as well. On some displays, the display and Intel video driver are not able to automatically sync up (in terms of which color space is being used), leading to incorrect black/white levels.  You can download/play the following video clip to test: [https://dl.dropboxusercontent.com/u/98309225/1-Grayscale%20Ramp%20.mp4 Grayscale Ramp test] (file courtesy of avsforum.com).  The correct output will show the grayscale ramp having a smooth transition (rather than stair steps) from 16-235, with solid black/white past the dots at the ends.  See: [https://dl.dropboxusercontent.com/u/98309225/grayscale_ramp_good.png correct grayscale ramp].&lt;br /&gt;
:*: Solution: add the following line to the autostart script and reboot the device:&lt;br /&gt;
:*::&amp;lt;nowiki&amp;gt;xrandr --output HDMI1 --set &amp;quot;Broadcast RGB&amp;quot; &amp;quot;Full&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
:*: Use &#039;DP1&#039; instead of &#039;HDMI1&#039; if connected via the DisplayPort output. See [http://wiki.openelec.tv/index.php?title=Autostart.sh the OpenELEC Autostart wiki page] for more info.  &lt;br /&gt;
:*: You may also need to select the XBMC option &#039;Used limited color range&#039; under Settings--&amp;gt;System--&amp;gt;Video Output.  Use the video clip and image above as a guide.&lt;br /&gt;
&lt;br /&gt;
No Audio on Wakeup&lt;br /&gt;
:* Some displays/AVRs don&#039;t successfully handshake when resuming from suspend, leading to no audio output until the audio output device is changed or the device rebooted.&lt;br /&gt;
:*: Solution: add the following line to the autostart script and reboot the device:&lt;br /&gt;
:*::&amp;lt;nowiki&amp;gt;xrandr --output HDMI1 --set &amp;quot;audio&amp;quot; &amp;quot;on&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
:*: Use &#039;DP1&#039; instead of &#039;HDMI1&#039; if connected via the DisplayPort output. See [http://wiki.openelec.tv/index.php?title=Autostart.sh the OpenELEC Autostart wiki page] for more info.&lt;br /&gt;
&lt;br /&gt;
Video Playback:&lt;br /&gt;
:* An Intel Linux video driver bug ( https://bugs.freedesktop.org/show_bug.cgi?id=78960 ) causes intermittent freezes/pauses. &lt;br /&gt;
:*: Workaround: (OpenELEC) enable the &#039;Use SW filter for VAAPI&#039; option Settings--&amp;gt;Video--&amp;gt;Acceleration.&lt;br /&gt;
:*: Workaround: (XBMC 13.2+?) disable the &#039;Prefer VAAPI Rendering&#039; option Settings--&amp;gt;Video--&amp;gt;Acceleration.&lt;br /&gt;
:* Another Intel Linux video driver bug (which is much more rare -- https://bugs.freedesktop.org/show_bug.cgi?id=81447 ) causes intermittent freezes/pauses. &lt;br /&gt;
:*: Recommendation: use settings above, but if playback issues are encountered, disable hardware acceleration under Settings--&amp;gt;Video--&amp;gt;Acceleration. Be sure to enable multi-threaded software decoding as well.&lt;br /&gt;
:* With the stock firmware, some kernels have high idle CPU usage on one core with a single channel/single 2GB stick of RAM; 4GB (2x2GB, or any dual-channel configuration) has no issue.  Standalone setups running coreboot firmware do not have this issue regardless of memory configuration.&lt;br /&gt;
&lt;br /&gt;
Remote Controls:&lt;br /&gt;
:* Some MCE remote IR receivers do not currently work with USB 3.0 ports under Linux due to a bug in the mceusb kernel driver.  OpenELEC (4.0+) already includes a fix for this.  The version of Ubuntu installed by the ChromeBox setup script in a dual boot setup also includes this fix.  &lt;br /&gt;
&lt;br /&gt;
:: For standalone Ubuntu (or any other distro) installs, a custom kernel will need to be compiled with the fixed driver.  The patch is available [http://pastebin.com/REqHTekE here], but the application of the patch and installation of the fixed driver is beyond the scope of this wiki.  A user on ubuntuforums has made a precompiled fixed driver available with instructions here: http://ubuntuforums.org/showthread.php?t=2203116&amp;amp;p=13007838#post13007838&lt;br /&gt;
&lt;br /&gt;
:: It appears that the fix for MCE remotes will be included in the 3.16 kernel, so once that is available, MCE remotes should work out of the box for everyone.&lt;br /&gt;
&lt;br /&gt;
Power Management:&lt;br /&gt;
:* Suspend/resume is generally problematic with the stock firmware (dual boot setups - OpenELEC will reboot on resume), but seems to work reliably in standalone setups running the coreboot firmware.  Resume via IR remote (USB) and wake-on-lan (eg, via YATSE) work perfectly well.&lt;br /&gt;
&lt;br /&gt;
Misc:&lt;br /&gt;
:* Some USB3 external hard drives seem to have issues booting.  Issue is under investigation.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Recommended Accessories / Hardware Upgrades ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
RAM:&lt;br /&gt;
: The ChromeBox has two (2) 204-Pin SODIMM slots, which accept 1.35V DDR3-1600 (PC3-12800) modules.  Known working modules include:&lt;br /&gt;
:* Crucial CT25664BF160B (2GB, 1.35v/1.5v)&lt;br /&gt;
:* Crucial CT2CP51264BF160B (8GB [4GB x2] 1.35v/1.5v)&lt;br /&gt;
:* Crucial CT2KIT102464BF160B (16GB [8GB x2] 1.35v/1.5v)&lt;br /&gt;
:* Hynix HMT351S6CFR8C-PB (2GB, OEM)&lt;br /&gt;
: &amp;lt;br /&amp;gt;&lt;br /&gt;
: Crucial also has a list of 1.35v-only compatible modules here: http://www.crucial.com/usa/en/compatible-memory-for/ASUS/chromebox&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
SDD:&lt;br /&gt;
: The ChromeBox uses a single M.2 SATA III SSD (42mm); stock is a 16GB SanDisk unit.  Compatible upgrades include:&lt;br /&gt;
:* MyDigitalSSD MDM242-SC2-128 (128GB)&lt;br /&gt;
:* MyDigitalSSD MDM242-SB-064 (64GB)&lt;br /&gt;
:* MyDigitalSSD MDM242-SB-032 (32GB)&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Remote Controls:&lt;br /&gt;
: The ChromeBox does not have a built-in IR sensor, and must therefore use an external USB receiver.  In general, any remote listed on the XBMC wiki as fully working under Linux should be fine.  A Microsoft eHome compatible remote/receiver is one of the most compatible, subject to the limitations listed in the &#039;Known Issues&#039; section above.  Specific models tested as working include:&lt;br /&gt;
:* [http://flirc.tv/ Flirc]&lt;br /&gt;
:*: Flirc users need to set the &amp;quot;sleep detection&amp;quot; bit and program a wake key when setting it up, otherwise absolutely any IR signal will wake up your box from sleep.&lt;br /&gt;
:* HP IR receiver model 5188-1667 (MCE/eHome)&lt;br /&gt;
:* HP IR receiver model 5187-4593 (MCE/eHome)&lt;br /&gt;
:* Microsoft IR receiver model 1040 (MCE/eHome)&lt;br /&gt;
:* HP remote/receiver kit [http://www.amazon.com/dp/B00AYE6JDO/ OVU400102/71] (MCE/eHome, includes 5187-4593 receiver)&lt;br /&gt;
:* Microsoft XBOX 360 remote (with MCE/eHome receiver or Flirc)&lt;br /&gt;
:* Microsoft XBOX One remote (with MCE/eHome receiver or Flirc)&lt;br /&gt;
:* Logitech Harmony remotes (programmed as Microsoft Media Center Extender, with MCE/eHome receiver or Flirc)&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware/BIOS Updating ==&lt;br /&gt;
&lt;br /&gt;
The ChromeBox&#039;s firmware consists of two main parts: the firmware itself (coreboot), and the Legacy BIOS (SeaBIOS).  Users running a dual-boot configuration only need be concerned with updating the Legacy BIOS portion.  Users running a standalone setup should update the custom coreboot firmware only, as it already contains an updated Legacy BIOS, which is not able to be updated separately.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Updating the Legacy BIOS ===&lt;br /&gt;
&lt;br /&gt;
Dual-boot users should simply boot to ChromeOS and re-download/re-run the setup script, choosing the &#039;&#039;&#039;Update Legacy BIOS&#039;&#039;&#039; option under the Dual Boot heading.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Updating Coreboot ===&lt;br /&gt;
&lt;br /&gt;
Standalone users should also re-download/re-run the setup script, but instead choosing the &#039;&#039;&#039;coreboot firmware install/update&#039;&#039;&#039; option under the Standalone heading.  Since standalone users can no longer run ChromeOS, the firmware update must be performed using ChromiumOS, the open-source version of ChromeOS.  Follow the instructions in the section below to create the ChromiumOS USB stick, boot it, and then run the setup script as per above to update.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Restoring the Stock Firmware ===&lt;br /&gt;
If you have used the ChromeBox Setup Script&#039;s Standalone setup option, or otherwise manually updated the ChromeBox&#039;s firmware with a custom Coreboot build, it is necessary to restore the stock firmware before [[ASUS_Chromebox#Perform_a_Factory_Reset|performing a factory reset]] to re-load ChromeOS.&lt;br /&gt;
&lt;br /&gt;
In order to do this, we will create a bootable USB stick with ChromiumOS (the open-source version of ChromeOS) and use that to re-flash the stock firmware, which you backed up before flashing the Coreboot firmware.  If you didn&#039;t make a backup, we can use a copy extracted from Google&#039;s recovery image, but an actual backup is preferred.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Create ChromiumOS USB Stick&lt;br /&gt;
#:* Download the latest AMD64OS daily build from http://arnoldthebat.co.uk/wordpress/chromium-os/.  Be sure it&#039;s the AMD64OS version, and the image version (.img.7z) and not the virtual machine version (.vdi.7z).  Example: Camd64OS-20140527010101.img.7z&lt;br /&gt;
#:* Follow the instructions at the link above to extract and copy the image onto a USB disk.  You will need at least a 4GB drive, and the contents of it will be erased.  I recommend a USB2 device as USB3 devices seem to be flaky on the ChromeBox.  Do &#039;&#039;&#039;NOT&#039;&#039;&#039; use the same USB stick that you used for your firmware backup&lt;br /&gt;
# Get a ChromiumOS Shell Prompt&lt;br /&gt;
#:* Connect the ChromiumOS USB stick to the ChromeBox, power on, and select the USB stick from the boot menu.  Boot into ChromiumOS&lt;br /&gt;
#:* Open a shell the same way as in ChromeOS: [CTRL]-[ALT]-[F2] and login as user &#039;chronos&#039; with password &#039;password&#039;&lt;br /&gt;
# Copy firmware backup file&lt;br /&gt;
#:* If you have your firmware backup on USB, connect it now, then run the following commands from the shell prompt&lt;br /&gt;
#:*:&amp;lt;nowiki&amp;gt;mkdir /tmp/usb&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#:*:&amp;lt;nowiki&amp;gt;sudo mount /dev/sdc /tmp/usb (If this fails, use /dev/sdc1 instead of /dev/sdc)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#:*:&amp;lt;nowiki&amp;gt;cp /tmp/usb/stock-firmware.rom ./&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#:*:&amp;lt;nowiki&amp;gt;sudo umount /tmp/usb&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#:* If you don&#039;t have a firmware backup, then run the following command to download one extracted from the recovery image&lt;br /&gt;
#:*:&amp;lt;nowiki&amp;gt;curl -L -o stock-firmware.bin https://dl.dropboxusercontent.com/u/98309225/firmware-panther-factory-recovery.bin&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Restore stock firmware&lt;br /&gt;
#:* After completing the above, then run the following commands from the shell prompt&lt;br /&gt;
#:*:&amp;lt;nowiki&amp;gt;sudo flashrom -w stock-firmware.bin&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#:*Assuming it is successful, then:&lt;br /&gt;
#:*:&amp;lt;nowiki&amp;gt;sudo poweroff&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can now remove the ChromiumOS USB drive (and firmware backup USB drive).  Proceed to [[ASUS_Chromebox#Perform_a_Factory_Reset|Perform_a_Factory_Reset]] above to restore/reload ChromeOS.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Old / Deprecated Content ==&lt;br /&gt;
&lt;br /&gt;
The steps below are now performed automatically by the ChromeBox setup script, but may still be useful in troubleshooting or recovery.&lt;br /&gt;
&lt;br /&gt;
=== Set Developer Boot Flags ===&lt;br /&gt;
&lt;br /&gt;
Setting the following boot flags will allow you to boot  either to a backup copy of ChromeOS on USB/SD (using CTRL-U) or to the legacy BIOS (using CTRL-L) and into Ubuntu or OpenELEC.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important: These boot flags must be set before installing either Ubuntu or OpenELEC.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
To set the developer mode boot flags, perform the following steps:&lt;br /&gt;
&lt;br /&gt;
# Power on and boot to ChromeOS. &lt;br /&gt;
# Press CTRL-ALT-F2 to open a shell.&lt;br /&gt;
# Login as user chronos, no password is needed.&lt;br /&gt;
# Run the commands:&lt;br /&gt;
#: &amp;lt;nowiki&amp;gt;sudo crossystem dev_boot_usb=1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#: &amp;lt;nowiki&amp;gt;sudo crossystem dev_boot_legacy=1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Create a Backup Copy of ChromeOS (on USB/SD)===&lt;br /&gt;
&lt;br /&gt;
If you plan on wiping ChromeOS to install OpenELEC (vs dual booting), it&#039;s a good idea to have a backup copy of ChromeOS on USB that you can boot to if necessary.  These instructions assume you have already put the ChromeBox into developer mode and set the developer boot flags as per above.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; As part of creating the USB backup copy, the stock legacy BIOS will be restored, so you will need to (re)flash the fixed legacy BIOS &#039;&#039;&#039;after&#039;&#039;&#039; performing this step.&lt;br /&gt;
&lt;br /&gt;
To create a bootable USB copy of ChromeOS, perform the following steps:&lt;br /&gt;
&lt;br /&gt;
# Power on and boot to ChromeOS. &lt;br /&gt;
#: Press CTRL-ALT-F2 to open a shell.&lt;br /&gt;
#: Login as user chronos, no password is needed.&lt;br /&gt;
#: &lt;br /&gt;
# Insert a USB stick or SD card (8GB minimum) and run the command:&lt;br /&gt;
#: &amp;lt;nowiki&amp;gt;sudo fdisk -l | grep &#039;Disk /dev/sd&#039;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#: &lt;br /&gt;
#: This will list all the drives your ChromeBox sees. The main internal HDD is /dev/sda, any connected USB/SD devices will be /dev/sdb, /dev/sdc, etc.  Identify the device corresponding to the USB/SD card you inserted (compare sizes). &lt;br /&gt;
#:&lt;br /&gt;
# Run the following command to copy/install ChromeOS to your USB/SD card:&lt;br /&gt;
#: &amp;lt;nowiki&amp;gt;sudo chromeos-install --skip_src_removable --skip_dst_removable --skip_vblock --dst /dev/sdb (or whatever your device is from above step)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#:&lt;br /&gt;
# When the process completes, your Chromebook will reboot. Now with the USB/SD card still inserted, Press CTRL-U to boot the USB/SD copy of ChromeOS. On first boot, it will want to repair itself and then reboot to the standard login screen.&lt;br /&gt;
#:&lt;br /&gt;
# Lets confirm we&#039;re booted off of the external device.&lt;br /&gt;
#: Press CTRL-ALT-F2 to open a shell.&lt;br /&gt;
#: Login as user chronos, no password is needed.&lt;br /&gt;
#: Run the command:&lt;br /&gt;
#:: &amp;lt;nowiki&amp;gt;rootdev -s -d &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#:&lt;br /&gt;
We should see the same device as identified in step 2 above, instead of /dev/sda for the internal HDD.&lt;br /&gt;
Now we have a backup ChromeOS install that we can boot into at will using CTRL-U on the dev boot screen&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Update the Legacy BIOS ===&lt;br /&gt;
&lt;br /&gt;
It is necessary to update the legacy BIOS to enable booting from USB/SD media, or if replacing ChromeOS with Ubuntu/OpenELEC, as the stock legacy BIOS is completely broken.  If you are dual booting and using either the ChrUbuntu or ChrOpenELEC scripts to install, then this step is performed by those scripts and does not need to be done manually.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
To update the legacy BIOS:&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Power on and boot to ChromeOS&lt;br /&gt;
# Hit CTRL-ALT-F2 to open a shell&lt;br /&gt;
# Login with user chronos (no password required)&lt;br /&gt;
# Download the updated legacy BIOS with the command: &lt;br /&gt;
#: &amp;lt;nowiki&amp;gt;curl -L -O http://johnlewis.ie/asus-chromebox-SeaBIOS-new.bin&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Flash the new bios with the command:&lt;br /&gt;
#: &amp;lt;nowiki&amp;gt;sudo flashrom -w -i RW_LEGACY:asus-chromebox-SeaBIOS-new.bin&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
This updated legacy BIOS has a ~5s wait on the &#039;Press ECS to show boot menu&#039; screen.  If you would prefer a shorter wait (~1.5s), use the following file/commands instead of those listed in steps 4/5 above:&lt;br /&gt;
: &amp;lt;nowiki&amp;gt;curl -L -O https://dl.dropboxusercontent.com/u/98309225/cbox-seabios-nowait.bin&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
: &amp;lt;nowiki&amp;gt;sudo flashrom -w -i RW_LEGACY:cbox-seabios-nowait.bin&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The md5sum on cbox-seabios-nowait.bin is F1290EC96AC77026044E29E62B40F6CC&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Set Firmware Boot Flags ===&lt;br /&gt;
&lt;br /&gt;
With the firmware write-protect disabled, we can shorten the default developer-mode boot wait time (from 30s to ~1s) and set the ChromeBox to default to booting the legacy BIOS (and into Ubuntu or OpenELEC) instead of requiring CTRL-D or CTRL-L to be pressed each time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important: If you are going to wipe ChromeOS and have a dedicated OpenELEC/Ubuntu setup (and don&#039;t care to make a bootable USB copy of ChromeOS), then these boot flags must be set before installing either Ubuntu or OpenELEC.  If you are going to be dual booting, then this step must be performed AFTER installation.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
To set the firmware boot flags, perform the following steps:&lt;br /&gt;
&lt;br /&gt;
* Power on and boot to ChromeOS&lt;br /&gt;
* Hit CTRL-ALT-F2 to get to command prompt&lt;br /&gt;
* Login with user chronos (no password required)&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
To shorten the boot wait time only, run the command:&lt;br /&gt;
: sudo set_gbb_flags.sh 0x1&lt;br /&gt;
: (This is the same as immediately pressing CTRL-D)&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
To shorten the boot wait time and set the default boot to the legacy BIOS:&lt;br /&gt;
: sudo set_gbb_flags.sh 0x489&lt;br /&gt;
: (This is the same as immediately pressing CTRL-L)&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
To set the default to legacy boot only (keeping the 30s timeout), run the command:&lt;br /&gt;
: sudo set_gbb_flags.sh 0x488&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
To reset these options to default, use:&lt;br /&gt;
: sudo set_gbb_flags.sh 0x0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* http://www.deconetworks.com/chromebox-full-linux-desktop/&lt;br /&gt;
* http://www.willispickering.com/content/upgrade-asus-chromebox-add-more-memory-and-ssd-and-ubuntu&lt;br /&gt;
* http://johnlewis.ie/asus-chromebox-owners-rejoice/&lt;br /&gt;
* http://forum.xbmc.org/showthread.php?tid=185329&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
[[Category:HTPC]]&lt;br /&gt;
[[Category:x86]]&lt;/div&gt;</summary>
		<author><name>Borromini</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Archive:Chromebox&amp;diff=77710</id>
		<title>Archive:Chromebox</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Archive:Chromebox&amp;diff=77710"/>
		<updated>2014-07-27T17:08:27Z</updated>

		<summary type="html">&lt;p&gt;Borromini: Clarified that the Chromebox is a regular Intel x86_64 box and hence OpenELEC&amp;#039;s generic 64 bit image is the best fit. Previous wording seemed a bit confusing (the generic x86_64 bit only being mentioned at the end of the paragraph).&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox information appliance&lt;br /&gt;
| name = Asus Chromebox&lt;br /&gt;
| image = [[File:Asus_chromebox.jpg|300px]]&lt;br /&gt;
| manufacturer = Asus&lt;br /&gt;
| releasedate = 2014-03-14 (US)&lt;br /&gt;
| os =  Chrome OS&lt;br /&gt;
| cpu = Intel® Celeron 2955U (M004U) / Intel® Core i3-4010U (M075U)&lt;br /&gt;
| graphics  = Intel® HD Graphics 4000 (M004U) / Intel® HD Graphics 4400 (M075U)&lt;br /&gt;
| storage = 16GB internal SSD&lt;br /&gt;
| memory = 2 GB (M004U) / 4GB (M075U), Dual Channel, DDR3 at 1600MHz&lt;br /&gt;
| connectivity = HDMI, Displayport, Bluetooth 4.0, USB 3.0, Wifi 802.11 a/b/g/n, 10/100/1000 Ethernet, 2 -in-1 Card Reader, Audio jack&lt;br /&gt;
| dimensions = 4.88 x 4.88 x 1.65 inch (WxDxH)&lt;br /&gt;
}}&lt;br /&gt;
[[File:Asus_chromebox_ports.jpg|right|300px|Asus Chromebox Rear Ports|thumb]]&lt;br /&gt;
[[File:Asus_chromebox_ports_2.jpg|right|300px|Asus Chromebox Side/Front Ports|thumb]]&lt;br /&gt;
{{mininav|[[Devices]]|[[x86 hardware]]}}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot; /&amp;gt;The ASUS Chromebox is a small lightweight intel PC that runs Chrome OS and can be made to boot into other linux versions. It features HDMI, Displayport, USB 3 ports, gig ethernet, SD card slot, and internal wireless-n networking. This page is a collection of links, information, tips, and guides related to running XBMC on the ASUS Chromebox line of computers.&lt;br /&gt;
&lt;br /&gt;
Nearly all of these steps will be the same on the HP Chromebox. The hardware is almost identical except for only having 1 dimm instead of the 2 the ASUS has.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Device Preparation ==&lt;br /&gt;
&lt;br /&gt;
=== Put in Developer Mode ===&lt;br /&gt;
&lt;br /&gt;
Putting the ChromeBox in developer mode will allow you to access the underlying Linux operating system features necessary for installing XBMC.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING&#039;&#039;&#039;: This will erase all user data on the device.&lt;br /&gt;
&lt;br /&gt;
With the device powered off:&lt;br /&gt;
# Insert a paperclip into the hole left of the SD card slot and press the recovery button&lt;br /&gt;
# Power on the device, then remove the paper clip&lt;br /&gt;
# When greeted with the recovery screen, press CTRL-D to enter developer mode&lt;br /&gt;
# Press the recovery button (with paperclip) to confirm.  &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
After confirming, the device will reboot and wipe any existing user data - this will take ~5 minutes.  Afterwards, the ChromeBox will be in developer mode (as opposed to standard/verified boot mode), and the developer boot screen will be shown at each boot.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The developer boot screen has some scary text about OS verification being off, with instructions to hit [SPACE] if you want to re-enable it.  This will return the device from developer mode to standard/verified boot mode, so don&#039;t do that.  The developer mode boot screen has a ~30s delay, followed by two beeps, before booting.  You can skip the delay by pressing [CTRL-D] to immediately boot into ChromeOS.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:Recoverybutton.png|300px]]&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Disable Firmware Write Protect ===&lt;br /&gt;
&lt;br /&gt;
Disabling the firmware write protect will allow us to shorten the developer boot screen timeout (from 30s to ~1s) in a dial boot configuration, and optionally boot directly to the legacy BIOS (and into Ubuntu or OpenELEC).  This is also necessary for standalone setups so that the stock firmware can be updated.&lt;br /&gt;
&lt;br /&gt;
With the device powered off and unplugged:&lt;br /&gt;
&lt;br /&gt;
# Remove (4) rubber feet from bottom of unit&lt;br /&gt;
# Remove (4) screws under rubber feet&lt;br /&gt;
# Separate two halves of unit.  Tip: partially insert the screw removed from the notched end, but do not re-thread it. Use it to help separate the two halves. &lt;br /&gt;
# Remove write-protect screw circled below:&lt;br /&gt;
#::[[File:Inside-chrome1.jpg|300px]]&lt;br /&gt;
# Reassemble in reverse order&lt;br /&gt;
&lt;br /&gt;
The write-protect screw can be left out permanently.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Perform a Factory Reset ===&lt;br /&gt;
&lt;br /&gt;
A factory reset is not needed on a Standalone setup, but must be performed prior to any dual-boot installation.&lt;br /&gt;
&lt;br /&gt;
Google&#039;s recovery tool seems to be picky about what kind/size of USB/SD media you use.  I&#039;ve had the best luck with 4GB/8GB media, but YMMV.&lt;br /&gt;
Anecdotally, creating the recovery media from within ChromeOS seems to be the most reliable method.&lt;br /&gt;
&lt;br /&gt;
# Create recovery media using step 2 of Google&#039;s instructions here: https://support.google.com/chromebook/answer/1080595?hl=en or open chrome://imageburner on the device&lt;br /&gt;
# With the device powered off, use a paperclip to press the Recovery button and power on the device&lt;br /&gt;
# Insert the recovery media (USB or SD) when prompted&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Note that this will re-partition the internal hard drive and restore the original copy of ChromeOS, erasing anything else on the drive.  The ChromeBox will still be left in developer mode, and if you changed the boot options they will still be set.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
If you&#039;re having trouble creating the recovery media using Google&#039;s recovery tool above, you can manually download the recovery image and write it to a USB stick:&lt;br /&gt;
:*Download Recovery image: https://dl.google.com/dl/edgedl/chromeos/recovery/chromeos_5500.130.0_panther_recovery_stable-channel_mp.bin.zip&lt;br /&gt;
:* Download Win32 Disk Imager: http://sourceforge.net/projects/win32diskimager/&lt;br /&gt;
:* Unzip the recovery image; the file should be ~1.5 GB&lt;br /&gt;
:* Rename the recovery image extension from .bin to .img&lt;br /&gt;
:* Write the image to your USB media using Win32 Disk Imager&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installing XBMC ==&lt;br /&gt;
&lt;br /&gt;
XBMC can be installed via OpenELEC or Ubuntu+XBMC, in either a standalone or dual boot configuration.  This is accomplished via the ChromeBox E-Z Setup script, which must be run from either ChromeOS or ChromiumOS.&lt;br /&gt;
&lt;br /&gt;
To run the ChromeBox E-Z Setup script, perform the following steps:&lt;br /&gt;
&lt;br /&gt;
# Power on and boot to ChromeOS/ChromiumOS.  Do not log in, but ensure a network connection is established.&lt;br /&gt;
# Hit CTRL-ALT-F2 to open command prompt&lt;br /&gt;
# Login with user chronos (no password required for ChromeOS; ChromiumOS uses &#039;password&#039;)&lt;br /&gt;
# Download and run the ChromeBox setup script with the commands: &lt;br /&gt;
#: &amp;lt;nowiki&amp;gt;curl -L -O http://goo.gl/3Tfu5W&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#: &amp;lt;nowiki&amp;gt;sudo bash 3Tfu5W &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Full instructions and explanation of the script&#039;s usage can be found at the following forum thread: http://forum.xbmc.org/showthread.php?tid=194362&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Updating XBMC ===&lt;br /&gt;
&lt;br /&gt;
==== OpenELEC ====&lt;br /&gt;
&lt;br /&gt;
The Chromebox is a pretty run-of-the-mill x86_64 Intel system (albeit, like the NUC, with an ultra low power processor). The standard OpenELEC builds - labeled &#039;Generic x86_64&#039; work perfectly well, and it is recommended to use OpenELEC&#039;s auto-update feature (System --&amp;gt; OpenELEC --&amp;gt; System --&amp;gt; Automatic Updates: auto).  If that doesn&#039;t work for some reason, you can manually update using the instructions on the [http://wiki.openelec.tv/index.php?title=Updating_OpenELEC OpenELEC wiki].&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Known issues + Fixes/Workarounds ==&lt;br /&gt;
&lt;br /&gt;
Installation:&lt;br /&gt;
:* Some keyboards seem to have issues working on the ChromeOS developer boot screen (before the OS is booted), and therefore cannot be used to setup/install XBMC on a ChromeBox.  The Logitech K400 is one of these, so use another keyboard to install if yours doesn&#039;t appear to be working.&lt;br /&gt;
&lt;br /&gt;
Color Range Selection:&lt;br /&gt;
:* This topic is a bit of a minefield, but [http://forum.xbmc.org/showthread.php?tid=176718&amp;amp;pid=1756704#pid1756704 this post on the forums is a good read].  It&#039;s for a NUC, but it applies to the ChromeBox as well. On some displays, the display and Intel video driver are not able to automatically sync up (in terms of which color space is being used), leading to incorrect black/white levels.  You can download/play the following video clip to test: [https://dl.dropboxusercontent.com/u/98309225/1-Grayscale%20Ramp%20.mp4 Grayscale Ramp test] (file courtesy of avsforum.com).  The correct output will show the grayscale ramp having a smooth transition (rather than stair steps) from 16-235, with solid black/white past the dots at the ends.  See: [https://dl.dropboxusercontent.com/u/98309225/grayscale_ramp_good.png correct grayscale ramp].&lt;br /&gt;
:*: Solution: add the following line to the autostart script and reboot the device:&lt;br /&gt;
:*::&amp;lt;nowiki&amp;gt;xrandr --output HDMI1 --set &amp;quot;Broadcast RGB&amp;quot; &amp;quot;Full&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
:*: Use &#039;DP1&#039; instead of &#039;HDMI1&#039; if connected via the DisplayPort output. See [http://wiki.openelec.tv/index.php?title=Autostart.sh the OpenELEC Autostart wiki page] for more info.  &lt;br /&gt;
:*: You may also need to select the XBMC option &#039;Used limited color range&#039; under Settings--&amp;gt;System--&amp;gt;Video Output.  Use the video clip and image above as a guide.&lt;br /&gt;
&lt;br /&gt;
No Audio on Wakeup&lt;br /&gt;
:* Some displays/AVRs don&#039;t successfully handshake when resuming from suspend, leading to no audio output until the audio output device is changed or the device rebooted.&lt;br /&gt;
:*: Solution: add the following line to the autostart script and reboot the device:&lt;br /&gt;
:*::&amp;lt;nowiki&amp;gt;xrandr --output HDMI1 --set &amp;quot;audio&amp;quot; &amp;quot;on&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
:*: Use &#039;DP1&#039; instead of &#039;HDMI1&#039; if connected via the DisplayPort output. See [http://wiki.openelec.tv/index.php?title=Autostart.sh the OpenELEC Autostart wiki page] for more info.&lt;br /&gt;
&lt;br /&gt;
Video Playback:&lt;br /&gt;
:* An Intel Linux video driver bug ( https://bugs.freedesktop.org/show_bug.cgi?id=78960 ) causes intermittent freezes/pauses. &lt;br /&gt;
:*: Workaround: (OpenELEC) enable the &#039;Use SW filter for VAAPI&#039; option Settings--&amp;gt;Video--&amp;gt;Acceleration.&lt;br /&gt;
:*: Workaround: (XBMC 13.2+?) disable the &#039;Prefer VAAPI Rendering&#039; option Settings--&amp;gt;Video--&amp;gt;Acceleration.&lt;br /&gt;
:* Another Intel Linux video driver bug (which is much more rare -- https://bugs.freedesktop.org/show_bug.cgi?id=81447 ) causes intermittent freezes/pauses. &lt;br /&gt;
:*: Recommendation: use settings above, but if playback issues are encountered, disable hardware acceleration under Settings--&amp;gt;Video--&amp;gt;Acceleration. Be sure to enable multi-threaded software decoding as well.&lt;br /&gt;
:* With the stock firmware, some kernels have high idle CPU usage on one core with a single channel/single 2GB stick of RAM; 4GB (2x2GB, or any dual-channel configuration) has no issue.  Standalone setups running coreboot firmware do not have this issue regardless of memory configuration.&lt;br /&gt;
&lt;br /&gt;
Remote Controls:&lt;br /&gt;
:* Some MCE remote IR receivers do not currently work with USB 3.0 ports under Linux due to a bug in the mceusb kernel driver.  OpenELEC (4.0+) already includes a fix for this.  The version of Ubuntu installed by the ChromeBox setup script in a dual boot setup also includes this fix.  &lt;br /&gt;
&lt;br /&gt;
:: For standalone Ubuntu (or any other distro) installs, a custom kernel will need to be compiled with the fixed driver.  The patch is available [http://pastebin.com/REqHTekE here], but the application of the patch and installation of the fixed driver is beyond the scope of this wiki.  A user on ubuntuforums has made a precompiled fixed driver available with instructions here: http://ubuntuforums.org/showthread.php?t=2203116&amp;amp;p=13007838#post13007838&lt;br /&gt;
&lt;br /&gt;
:: It appears that the fix for MCE remotes will be included in the 3.16 kernel, so once that is available, MCE remotes should work out of the box for everyone.&lt;br /&gt;
&lt;br /&gt;
Power Management:&lt;br /&gt;
:* Suspend/resume is generally problematic with the stock firmware (dual boot setups - OpenELEC will reboot on resume), but seems to work reliably in standalone setups running the coreboot firmware.  Resume via IR remote (USB) and wake-on-lan (eg, via YATSE) work perfectly well.&lt;br /&gt;
&lt;br /&gt;
Misc:&lt;br /&gt;
:* Some USB3 external hard drives seem to have issues booting.  Issue is under investigation.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Recommended Accessories / Hardware Upgrades ==&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
RAM:&lt;br /&gt;
: The ChromeBox has two (2) 204-Pin SODIMM slots, which accept 1.35V DDR3-1600 (PC3-12800) modules.  Known working modules include:&lt;br /&gt;
:* Crucial CT25664BF160B (2GB, 1.35v/1.5v)&lt;br /&gt;
:* Crucial CT2CP51264BF160B (8GB [4GB x2] 1.35v/1.5v)&lt;br /&gt;
:* Crucial CT2KIT102464BF160B (16GB [8GB x2] 1.35v/1.5v)&lt;br /&gt;
:* Hynix HMT351S6CFR8C-PB (2GB, OEM)&lt;br /&gt;
: &amp;lt;br /&amp;gt;&lt;br /&gt;
: Crucial also has a list of 1.35v-only compatible modules here: http://www.crucial.com/usa/en/compatible-memory-for/ASUS/chromebox&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
SDD:&lt;br /&gt;
: The ChromeBox uses a single M.2 SATA III SSD (42mm); stock is a 16GB SanDisk unit.  Compatible upgrades include:&lt;br /&gt;
:* MyDigitalSSD MDM242-SC2-128 (128GB)&lt;br /&gt;
:* MyDigitalSSD MDM242-SB-064 (64GB)&lt;br /&gt;
:* MyDigitalSSD MDM242-SB-032 (32GB)&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Remote Controls:&lt;br /&gt;
: The ChromeBox does not have a built-in IR sensor, and must therefore use an external USB receiver.  In general, any remote listed on the XBMC wiki as fully working under Linux should be fine.  A Microsoft eHome compatible remote/receiver is one of the most compatible, subject to the limitations listed in the &#039;Known Issues&#039; section above.  Specific models tested as working include:&lt;br /&gt;
:* [http://flirc.tv/ Flirc]&lt;br /&gt;
:*: Flirc users need to set the &amp;quot;sleep detection&amp;quot; bit and program a wake key when setting it up, otherwise absolutely any IR signal will wake up your box from sleep.&lt;br /&gt;
:* HP IR receiver model 5188-1667 (MCE/eHome)&lt;br /&gt;
:* HP IR receiver model 5187-4593 (MCE/eHome)&lt;br /&gt;
:* Microsoft IR receiver model 1040 (MCE/eHome)&lt;br /&gt;
:* HP remote/receiver kit [http://www.amazon.com/dp/B00AYE6JDO/ OVU400102/71] (MCE/eHome, includes 5187-4593 receiver)&lt;br /&gt;
:* Microsoft XBOX 360 remote (with MCE/eHome receiver or Flirc)&lt;br /&gt;
:* Microsoft XBOX One remote (with MCE/eHome receiver or Flirc)&lt;br /&gt;
:* Logitech Harmony remotes (programmed as Microsoft Media Center Extender, with MCE/eHome receiver or Flirc)&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware/BIOS Updating ==&lt;br /&gt;
&lt;br /&gt;
The ChromeBox&#039;s firmware consists of two main parts: the firmware itself (coreboot), and the Legacy BIOS (SeaBIOS).  Users running a dual-boot configuration only need be concerned with updating the Legacy BIOS portion.  Users running a standalone setup should update the custom coreboot firmware only, as it already contains an updated Legacy BIOS, which is not able to be updated separately.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Updating the Legacy BIOS ===&lt;br /&gt;
&lt;br /&gt;
Dual-boot users should simply boot to ChromeOS and re-download/re-run the setup script, choosing the &#039;&#039;&#039;Update Legacy BIOS&#039;&#039;&#039; option under the Dual Boot heading.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Updating Coreboot ===&lt;br /&gt;
&lt;br /&gt;
Standalone users should also re-download/re-run the setup script, but instead choosing the &#039;&#039;&#039;coreboot firmware install/update&#039;&#039;&#039; option under the Standalone heading.  Since standalone users can no longer run ChromeOS, the firmware update must be performed using ChromiumOS, the open-source version of ChromeOS.  Follow the instructions in the section below to create the ChromiumOS USB stick, boot it, and then run the setup script as per above to update.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Restoring the Stock Firmware ===&lt;br /&gt;
If you have used the ChromeBox Setup Script&#039;s Standalone setup option, or otherwise manually updated the ChromeBox&#039;s firmware with a custom Coreboot build, it is necessary to restore the stock firmware before [[ASUS_Chromebox#Perform_a_Factory_Reset|performing a factory reset]] to re-load ChromeOS.&lt;br /&gt;
&lt;br /&gt;
In order to do this, we will create a bootable USB stick with ChromiumOS (the open-source version of ChromeOS) and use that to re-flash the stock firmware, which you backed up before flashing the Coreboot firmware.  If you didn&#039;t make a backup, we can use a copy extracted from Google&#039;s recovery image, but an actual backup is preferred.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Create ChromiumOS USB Stick&lt;br /&gt;
#:* Download the latest AMD64OS daily build from http://arnoldthebat.co.uk/wordpress/chromium-os/.  Be sure it&#039;s the AMD64OS version, and the image version (.img.7z) and not the virtual machine version (.vdi.7z).  Example: Camd64OS-20140527010101.img.7z&lt;br /&gt;
#:* Follow the instructions at the link above to extract and copy the image onto a USB disk.  You will need at least a 4GB drive, and the contents of it will be erased.  I recommend a USB2 device as USB3 devices seem to be flaky on the ChromeBox.  Do &#039;&#039;&#039;NOT&#039;&#039;&#039; use the same USB stick that you used for your firmware backup&lt;br /&gt;
# Get a ChromiumOS Shell Prompt&lt;br /&gt;
#:* Connect the ChromiumOS USB stick to the ChromeBox, power on, and select the USB stick from the boot menu.  Boot into ChromiumOS&lt;br /&gt;
#:* Open a shell the same way as in ChromeOS: [CTRL]-[ALT]-[F2] and login as user &#039;chronos&#039; with password &#039;password&#039;&lt;br /&gt;
# Copy firmware backup file&lt;br /&gt;
#:* If you have your firmware backup on USB, connect it now, then run the following commands from the shell prompt&lt;br /&gt;
#:*:&amp;lt;nowiki&amp;gt;mkdir /tmp/usb&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#:*:&amp;lt;nowiki&amp;gt;sudo mount /dev/sdc /tmp/usb (If this fails, use /dev/sdc1 instead of /dev/sdc)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#:*:&amp;lt;nowiki&amp;gt;cp /tmp/usb/stock-firmware.rom ./&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#:*:&amp;lt;nowiki&amp;gt;sudo umount /tmp/usb&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#:* If you don&#039;t have a firmware backup, then run the following command to download one extracted from the recovery image&lt;br /&gt;
#:*:&amp;lt;nowiki&amp;gt;curl -L -o stock-firmware.bin https://dl.dropboxusercontent.com/u/98309225/firmware-panther-factory-recovery.bin&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Restore stock firmware&lt;br /&gt;
#:* After completing the above, then run the following commands from the shell prompt&lt;br /&gt;
#:*:&amp;lt;nowiki&amp;gt;sudo flashrom -w stock-firmware.bin&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#:*Assuming it is successful, then:&lt;br /&gt;
#:*:&amp;lt;nowiki&amp;gt;sudo poweroff&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can now remove the ChromiumOS USB drive (and firmware backup USB drive).  Proceed to [[ASUS_Chromebox#Perform_a_Factory_Reset|Perform_a_Factory_Reset]] above to restore/reload ChromeOS.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Old / Deprecated Content ==&lt;br /&gt;
&lt;br /&gt;
The steps below are now performed automatically by the ChromeBox setup script, but may still be useful in troubleshooting or recovery.&lt;br /&gt;
&lt;br /&gt;
=== Set Developer Boot Flags ===&lt;br /&gt;
&lt;br /&gt;
Setting the following boot flags will allow you to boot  either to a backup copy of ChromeOS on USB/SD (using CTRL-U) or to the legacy BIOS (using CTRL-L) and into Ubuntu or OpenELEC.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important: These boot flags must be set before installing either Ubuntu or OpenELEC.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
To set the developer mode boot flags, perform the following steps:&lt;br /&gt;
&lt;br /&gt;
# Power on and boot to ChromeOS. &lt;br /&gt;
# Press CTRL-ALT-F2 to open a shell.&lt;br /&gt;
# Login as user chronos, no password is needed.&lt;br /&gt;
# Run the commands:&lt;br /&gt;
#: &amp;lt;nowiki&amp;gt;sudo crossystem dev_boot_usb=1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#: &amp;lt;nowiki&amp;gt;sudo crossystem dev_boot_legacy=1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Create a Backup Copy of ChromeOS (on USB/SD)===&lt;br /&gt;
&lt;br /&gt;
If you plan on wiping ChromeOS to install OpenELEC (vs dual booting), it&#039;s a good idea to have a backup copy of ChromeOS on USB that you can boot to if necessary.  These instructions assume you have already put the ChromeBox into developer mode and set the developer boot flags as per above.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; As part of creating the USB backup copy, the stock legacy BIOS will be restored, so you will need to (re)flash the fixed legacy BIOS &#039;&#039;&#039;after&#039;&#039;&#039; performing this step.&lt;br /&gt;
&lt;br /&gt;
To create a bootable USB copy of ChromeOS, perform the following steps:&lt;br /&gt;
&lt;br /&gt;
# Power on and boot to ChromeOS. &lt;br /&gt;
#: Press CTRL-ALT-F2 to open a shell.&lt;br /&gt;
#: Login as user chronos, no password is needed.&lt;br /&gt;
#: &lt;br /&gt;
# Insert a USB stick or SD card (8GB minimum) and run the command:&lt;br /&gt;
#: &amp;lt;nowiki&amp;gt;sudo fdisk -l | grep &#039;Disk /dev/sd&#039;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#: &lt;br /&gt;
#: This will list all the drives your ChromeBox sees. The main internal HDD is /dev/sda, any connected USB/SD devices will be /dev/sdb, /dev/sdc, etc.  Identify the device corresponding to the USB/SD card you inserted (compare sizes). &lt;br /&gt;
#:&lt;br /&gt;
# Run the following command to copy/install ChromeOS to your USB/SD card:&lt;br /&gt;
#: &amp;lt;nowiki&amp;gt;sudo chromeos-install --skip_src_removable --skip_dst_removable --skip_vblock --dst /dev/sdb (or whatever your device is from above step)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#:&lt;br /&gt;
# When the process completes, your Chromebook will reboot. Now with the USB/SD card still inserted, Press CTRL-U to boot the USB/SD copy of ChromeOS. On first boot, it will want to repair itself and then reboot to the standard login screen.&lt;br /&gt;
#:&lt;br /&gt;
# Lets confirm we&#039;re booted off of the external device.&lt;br /&gt;
#: Press CTRL-ALT-F2 to open a shell.&lt;br /&gt;
#: Login as user chronos, no password is needed.&lt;br /&gt;
#: Run the command:&lt;br /&gt;
#:: &amp;lt;nowiki&amp;gt;rootdev -s -d &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#:&lt;br /&gt;
We should see the same device as identified in step 2 above, instead of /dev/sda for the internal HDD.&lt;br /&gt;
Now we have a backup ChromeOS install that we can boot into at will using CTRL-U on the dev boot screen&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Update the Legacy BIOS ===&lt;br /&gt;
&lt;br /&gt;
It is necessary to update the legacy BIOS to enable booting from USB/SD media, or if replacing ChromeOS with Ubuntu/OpenELEC, as the stock legacy BIOS is completely broken.  If you are dual booting and using either the ChrUbuntu or ChrOpenELEC scripts to install, then this step is performed by those scripts and does not need to be done manually.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
To update the legacy BIOS:&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Power on and boot to ChromeOS&lt;br /&gt;
# Hit CTRL-ALT-F2 to open a shell&lt;br /&gt;
# Login with user chronos (no password required)&lt;br /&gt;
# Download the updated legacy BIOS with the command: &lt;br /&gt;
#: &amp;lt;nowiki&amp;gt;curl -L -O http://johnlewis.ie/asus-chromebox-SeaBIOS-new.bin&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Flash the new bios with the command:&lt;br /&gt;
#: &amp;lt;nowiki&amp;gt;sudo flashrom -w -i RW_LEGACY:asus-chromebox-SeaBIOS-new.bin&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
This updated legacy BIOS has a ~5s wait on the &#039;Press ECS to show boot menu&#039; screen.  If you would prefer a shorter wait (~1.5s), use the following file/commands instead of those listed in steps 4/5 above:&lt;br /&gt;
: &amp;lt;nowiki&amp;gt;curl -L -O https://dl.dropboxusercontent.com/u/98309225/cbox-seabios-nowait.bin&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
: &amp;lt;nowiki&amp;gt;sudo flashrom -w -i RW_LEGACY:cbox-seabios-nowait.bin&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The md5sum on cbox-seabios-nowait.bin is F1290EC96AC77026044E29E62B40F6CC&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
=== Set Firmware Boot Flags ===&lt;br /&gt;
&lt;br /&gt;
With the firmware write-protect disabled, we can shorten the default developer-mode boot wait time (from 30s to ~1s) and set the ChromeBox to default to booting the legacy BIOS (and into Ubuntu or OpenELEC) instead of requiring CTRL-D or CTRL-L to be pressed each time.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important: If you are going to wipe ChromeOS and have a dedicated OpenELEC/Ubuntu setup (and don&#039;t care to make a bootable USB copy of ChromeOS), then these boot flags must be set before installing either Ubuntu or OpenELEC.  If you are going to be dual booting, then this step must be performed AFTER installation.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
To set the firmware boot flags, perform the following steps:&lt;br /&gt;
&lt;br /&gt;
* Power on and boot to ChromeOS&lt;br /&gt;
* Hit CTRL-ALT-F2 to get to command prompt&lt;br /&gt;
* Login with user chronos (no password required)&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
To shorten the boot wait time only, run the command:&lt;br /&gt;
: sudo set_gbb_flags.sh 0x1&lt;br /&gt;
: (This is the same as immediately pressing CTRL-D)&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
To shorten the boot wait time and set the default boot to the legacy BIOS:&lt;br /&gt;
: sudo set_gbb_flags.sh 0x489&lt;br /&gt;
: (This is the same as immediately pressing CTRL-L)&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
To set the default to legacy boot only (keeping the 30s timeout), run the command:&lt;br /&gt;
: sudo set_gbb_flags.sh 0x488&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
To reset these options to default, use:&lt;br /&gt;
: sudo set_gbb_flags.sh 0x0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* http://www.deconetworks.com/chromebox-full-linux-desktop/&lt;br /&gt;
* http://www.willispickering.com/content/upgrade-asus-chromebox-add-more-memory-and-ssd-and-ubuntu&lt;br /&gt;
* http://johnlewis.ie/asus-chromebox-owners-rejoice/&lt;br /&gt;
* http://forum.xbmc.org/showthread.php?tid=185329&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
[[Category:HTPC]]&lt;br /&gt;
[[Category:x86]]&lt;/div&gt;</summary>
		<author><name>Borromini</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Smart_playlists&amp;diff=76583</id>
		<title>Smart playlists</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Smart_playlists&amp;diff=76583"/>
		<updated>2014-06-07T20:10:11Z</updated>

		<summary type="html">&lt;p&gt;Borromini: /* Fields */  Set possibility to use the &amp;quot;dateadded&amp;quot; flag with movies to &amp;quot;yes&amp;quot;.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[Playlists]] }}&lt;br /&gt;
&amp;lt;section begin=&amp;quot;intro&amp;quot;/&amp;gt;XBMC supports &#039;&#039;&#039;smart playlists&#039;&#039;&#039; for all types of media (excluding pictures), which essentially use a set of rules to limit the results from the [[XBMC databases|databases]]. This means that to be able to create a smart playlist in the GUI, music/video &#039;&#039;must&#039;&#039; first be added to the libraries using a [[Scrapers|scraper]] [[Add-ons|addon]] or by creating [[NFO files]]. Smart playlist can be created either by using the built-in GUI smart playlist editor accessible from the [[Playlists]] section, or by creating an [[w:XML|XML]] file with the extension XSP (&#039;&#039;&#039;X&#039;&#039;&#039;BMC &#039;&#039;&#039;S&#039;&#039;&#039;mart &#039;&#039;&#039;P&#039;&#039;&#039;laylist).&amp;lt;section end=&amp;quot;intro&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Creating a smart playlist in the GUI ==&lt;br /&gt;
=== Smart playlist for music ===&lt;br /&gt;
{{highlight|Music -&amp;gt; Playlists -&amp;gt; New smart playlist|bordered=yes}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=600px heights=340px&amp;gt;&lt;br /&gt;
Image:Musicxsp1.png|{{big|&#039;&#039;&#039;Step 1:&#039;&#039;&#039;}} Select &amp;quot;Music&amp;quot; on main menu.&lt;br /&gt;
Image:Musicxsp2.png|{{big|&#039;&#039;&#039;Step 2:&#039;&#039;&#039;}} Select &amp;quot;Playlists&amp;quot; from the options.&lt;br /&gt;
Image:Musicxsp3.png|{{big|&#039;&#039;&#039;Step 3:&#039;&#039;&#039;}} Select &amp;quot;New smart playlist&amp;quot; from the options.&lt;br /&gt;
Image:Musicxsp4.png|{{big|&#039;&#039;&#039;Step 4:&#039;&#039;&#039;}} Fill in with the desired options and when done press OK.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Smart playlist for video ===&lt;br /&gt;
{{highlight|Video -&amp;gt; Playlists -&amp;gt; New smart playlist|bordered=yes}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=600px heights=340px&amp;gt;&lt;br /&gt;
Image:Videoxsp1.png|{{big|&#039;&#039;&#039;Step 1:&#039;&#039;&#039;}} Select &amp;quot;Videos&amp;quot; on main menu.&lt;br /&gt;
Image:Videoxsp2.png|{{big|&#039;&#039;&#039;Step 2:&#039;&#039;&#039;}} Select &amp;quot;Playlists&amp;quot; from the options.&lt;br /&gt;
Image:Videoxsp3.png|{{big|&#039;&#039;&#039;Step 3:&#039;&#039;&#039;}} Select &amp;quot;New smart playlist&amp;quot; from the options.&lt;br /&gt;
Image:Videoxsp4.png|{{big|&#039;&#039;&#039;Step 4:&#039;&#039;&#039;}} Fill in with the desired options and when done press OK.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Format of a smart playlist file ==&lt;br /&gt;
Smart playlists are plain text files that can be parsed by an XML reader (e.g. [[w:Visual_studio|Visual Studio]] and [[w:Notepad%2B%2B|Notepad++]]). Any text editor can be used to create them. They should be saved with the extension XSP and placed in your [[userdata]] directory, as there is only limited support for smart playlists saved outside of the userdata folder.&lt;br /&gt;
&lt;br /&gt;
The format is as follows:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;smartplaylist type=&amp;quot;songs&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;All U2 from after 1990&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;match&amp;gt;all&amp;lt;/match&amp;gt;&lt;br /&gt;
    &amp;lt;rule field=&amp;quot;artist&amp;quot; operator=&amp;quot;is&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;value&amp;gt;U2&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/rule&amp;gt;&lt;br /&gt;
    &amp;lt;rule field=&amp;quot;year&amp;quot; operator=&amp;quot;greaterthan&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;value&amp;gt;1990&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/rule&amp;gt;&lt;br /&gt;
    &amp;lt;limit&amp;gt;50&amp;lt;/limit&amp;gt;&lt;br /&gt;
    &amp;lt;order direction=&amp;quot;descending&amp;quot;&amp;gt;playcount&amp;lt;/order&amp;gt;&lt;br /&gt;
&amp;lt;/smartplaylist&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Types ===&lt;br /&gt;
Smart playlists can be of one of the following types:&lt;br /&gt;
* songs (default)&lt;br /&gt;
* albums&lt;br /&gt;
* movies&lt;br /&gt;
* tvshows&lt;br /&gt;
* episodes&lt;br /&gt;
* musicvideos&lt;br /&gt;
* mixed (audio and music videos)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;smartplaylist type=&amp;quot;songs&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Name and Match ===&lt;br /&gt;
Basically there are two header tags, &amp;lt;code&amp;gt;&amp;lt;name&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;match&amp;gt;&amp;lt;/code&amp;gt; and then a set of &amp;lt;code&amp;gt;&amp;lt;rule&amp;gt;&amp;lt;/code&amp;gt; tags that define the rules to use, along with an &amp;lt;code&amp;gt;&amp;lt;order&amp;gt;&amp;lt;/code&amp;gt; tag to allow sorting and a &amp;lt;code&amp;gt;&amp;lt;limit&amp;gt;&amp;lt;/code&amp;gt; tag to limit the returned results. &lt;br /&gt;
{{Note|that the tags and attributes are all case-sensitive.}} &lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;name&amp;gt;&amp;lt;/code&amp;gt; tag is the name of the playlist and the &amp;lt;code&amp;gt;&amp;lt;match&amp;gt;&amp;lt;/code&amp;gt; tag indicates how the &amp;lt;code&amp;gt;&amp;lt;rule&amp;gt;&amp;lt;/code&amp;gt; tags should be matched. If &amp;lt;code&amp;gt;&amp;lt;match&amp;gt;all&amp;lt;/match&amp;gt;&amp;lt;/code&amp;gt; like in the above example, then only songs which satisfy all the &amp;lt;code&amp;gt;&amp;lt;rule&amp;gt;&amp;lt;/code&amp;gt;&#039;s will be included. If &amp;lt;code&amp;gt;&amp;lt;match&amp;gt;one&amp;lt;/match&amp;gt;&amp;lt;/code&amp;gt; is specified, then songs that satisfy any one (or more) of the &amp;lt;code&amp;gt;&amp;lt;rule&amp;gt;&amp;lt;/code&amp;gt;&#039;s will be included.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;name&amp;gt;All U2 from after 1990&amp;lt;/name&amp;gt;&lt;br /&gt;
&amp;lt;match&amp;gt;all&amp;lt;/match&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Rules ===&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;rule&amp;gt;&amp;lt;/code&amp;gt; tags, of which there can be as many as you wish, have two attributes (&amp;lt;code&amp;gt;field&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;operator&amp;lt;/code&amp;gt;) and a &amp;lt;code&amp;gt;&amp;lt;value&amp;gt;&amp;lt;/code&amp;gt; tag.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;rule field=&amp;quot;artist&amp;quot; operator=&amp;quot;is&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;value&amp;gt;U2&amp;lt;/value&amp;gt;&lt;br /&gt;
&amp;lt;/rule&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Fields ====&lt;br /&gt;
Depending on the type of the smart playlist different &amp;lt;code&amp;gt;field&amp;lt;/code&amp;gt;s are available:&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; style=&amp;quot;margin-right: 0;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|&amp;lt;code&amp;gt;field&amp;lt;/code&amp;gt;&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|music&lt;br /&gt;
!colspan=&amp;quot;4&amp;quot;|video&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|type&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;padding-left: 5px; padding-right: 10px;&amp;quot;|Name&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|Data type&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|songs&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|albums&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|artists&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|movies&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|tvshows&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|episodes&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|musicvideos&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|mixed&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|genre&lt;br /&gt;
|string&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|album&lt;br /&gt;
|string&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|artist&lt;br /&gt;
|string&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|albumartist&lt;br /&gt;
|string&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|title&lt;br /&gt;
|string&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|year&lt;br /&gt;
|number&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|time&lt;br /&gt;
|number&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|tracknumber&lt;br /&gt;
|number&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|filename&lt;br /&gt;
|string&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|path&lt;br /&gt;
|string&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|playcount&lt;br /&gt;
|number&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|lastplayed&lt;br /&gt;
|date&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|inprogress&lt;br /&gt;
|boolean&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|rating&lt;br /&gt;
|number&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|comment&lt;br /&gt;
|string&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|dateadded&lt;br /&gt;
|date&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|plot&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|plotoutline&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|tagline&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|mpaarating&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|top250&lt;br /&gt;
|number&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|status&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|votes&lt;br /&gt;
|number&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|director&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|actor&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|studio&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|country&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|numepisodes&lt;br /&gt;
|number&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|numwatched&lt;br /&gt;
|number&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|writers&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|airdate&lt;br /&gt;
|date&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|episode&lt;br /&gt;
|number&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|season&lt;br /&gt;
|number&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|tvshow&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|episodetitle&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|review&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|themes&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|moods&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|styles&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|type&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|label&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|hastrailer&lt;br /&gt;
|boolean&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|videoresolution&lt;br /&gt;
|number&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|audiochannels&lt;br /&gt;
|number&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|videocodec&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|audiocodec&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|audiolanguage&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|subtitlelanguage&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|videoaspect&lt;br /&gt;
|number&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|set&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|tag&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|instruments&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|biography&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|born&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|band formed&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|disbanded&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|died&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|playlist&lt;br /&gt;
|string&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Operators ====&lt;br /&gt;
The &amp;lt;code&amp;gt;operator&amp;lt;/code&amp;gt; attribute specifies the rule that should be used to match the parameter to the &amp;lt;code&amp;gt;field&amp;lt;/code&amp;gt;. All matching is done case-insensitive. The allowed &amp;lt;code&amp;gt;operator&amp;lt;/code&amp;gt;s are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; style=&amp;quot;margin-right: 0;&amp;quot;&lt;br /&gt;
! &amp;lt;code&amp;gt;operator&amp;lt;/code&amp;gt;&lt;br /&gt;
! Definition&lt;br /&gt;
|-&lt;br /&gt;
| contains&lt;br /&gt;
| True if the field contains the parameter as a substring &lt;br /&gt;
|-&lt;br /&gt;
| doesnotcontain&lt;br /&gt;
| True if the field does not contain the parameter as a substring &lt;br /&gt;
|-&lt;br /&gt;
| is&lt;br /&gt;
| True if the field matches the parameter exactly&lt;br /&gt;
|-&lt;br /&gt;
| isnot &lt;br /&gt;
| True if the field does not match the parameter exactly&lt;br /&gt;
|-&lt;br /&gt;
| startswith &lt;br /&gt;
| True if the start of the field matches the parameter &lt;br /&gt;
|-&lt;br /&gt;
| endswith&lt;br /&gt;
| True if the end of the field matches the parameter &lt;br /&gt;
|-&lt;br /&gt;
| lessthan &lt;br /&gt;
| True if the content of the field is less than the parameter&lt;br /&gt;
|-&lt;br /&gt;
| greaterthan &lt;br /&gt;
| True if the content of the field is greater than the parameter&lt;br /&gt;
|-&lt;br /&gt;
| after &lt;br /&gt;
| True if the content of the field comes after the parameter&lt;br /&gt;
|-&lt;br /&gt;
| before &lt;br /&gt;
| True if the content of the field comes before the parameter&lt;br /&gt;
|-&lt;br /&gt;
| inthelast &lt;br /&gt;
| True if the field falls in the last range specified by the parameter. Only applicable for a date field.&lt;br /&gt;
|-&lt;br /&gt;
| notinthelast&lt;br /&gt;
| True if the field does not fall in the last range specified by the parameter. Only applicable for a date field.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Limit and Order ===&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;limit&amp;gt;&amp;lt;/code&amp;gt; tag simply takes a number of songs as it&#039;s limit. A missing limit tag, or &amp;lt;code&amp;gt;&amp;lt;limit&amp;gt;0&amp;lt;/limit&amp;gt;&amp;lt;/code&amp;gt; will retrieve all matching songs. The &amp;lt;code&amp;gt;&amp;lt;order&amp;gt;&amp;lt;/code&amp;gt; tag has a &amp;lt;code&amp;gt;direction&amp;lt;/code&amp;gt; attribute, the values of which can be &amp;lt;code&amp;gt;ascending&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;descending&amp;lt;/code&amp;gt;, and it&#039;s value is a field as above, or can be &amp;lt;code&amp;gt;&amp;lt;order&amp;gt;random&amp;lt;/order&amp;gt;&amp;lt;/code&amp;gt; if you want a random ordering returned. Note that random should be used with care - it is quite slow if the returned results from the &amp;lt;code&amp;gt;&amp;lt;rule&amp;gt;&amp;lt;/code&amp;gt; sets is large (more than 500 items).&lt;br /&gt;
&lt;br /&gt;
The above example, therefore selects all songs whose artist field is U2 and whose year field is greater than 1990, orders them by the number of times they&#039;ve been played (most played first) then limits it to just 50. Thus, the top 50 songs you&#039;ve played from all U2 songs published after 1990.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;limit&amp;gt;50&amp;lt;/limit&amp;gt;&lt;br /&gt;
&amp;lt;order direction=&amp;quot;descending&amp;quot;&amp;gt;playcount&amp;lt;/order&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Grouping ===&lt;br /&gt;
Grouping was added in XBMC v13. The &amp;lt;code&amp;gt;&amp;lt;group&amp;gt;&amp;lt;/code&amp;gt; tag allows to group the resulting list of media items by a specific category. The final list will consist of folder nodes containing matching media items. Depending on the type of the Smart Playlist the following grouping categories exist:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; style=&amp;quot;margin-right: 0;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|&amp;lt;code&amp;gt;field&amp;lt;/code&amp;gt;&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;|music&lt;br /&gt;
!colspan=&amp;quot;4&amp;quot;|video&lt;br /&gt;
!colspan=&amp;quot;1&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;padding-left: 5px; padding-right: 10px;&amp;quot;|Name&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|Data type&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|songs&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|albums&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|artists&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|movies&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|tvshows&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|episodes&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|musicvideos&lt;br /&gt;
!style=&amp;quot;padding-left: 10px; padding-right: 10px;&amp;quot;|mixed&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|none&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|genres&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|years&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|actors&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|artists&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|directors&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|writers&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|studios&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|countries&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|sets&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-left: 5px;&amp;quot;|tags&lt;br /&gt;
|string&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Notice|There&#039;s an important difference between not providing a &amp;lt;code&amp;gt;&amp;lt;group&amp;gt;&amp;lt;/code&amp;gt; tag (or providing an empty &amp;lt;code&amp;gt;&amp;lt;group&amp;gt;&amp;lt;/code&amp;gt; tag) and setting the value of the &amp;lt;code&amp;gt;&amp;lt;group&amp;gt;&amp;lt;/code&amp;gt; tag to &#039;&#039;&#039;none&#039;&#039;&#039;: The latter will overrule any mixed grouping that would be applied by default to a list of media items (specifically for a mixed list of movies and [[movie sets]] if the setting &#039;&#039;Group movies into sets&#039;&#039; is enabled).}}&lt;br /&gt;
&lt;br /&gt;
==== Mixed grouping ====&lt;br /&gt;
&lt;br /&gt;
For the &#039;&#039;&#039;sets&#039;&#039;&#039; grouping category there is support for additional so called mixed grouping. The difference to normal grouping is that the resulting list will not just be a list of grouped folders but a mix of media items and grouped folders. Mixed grouping can be controlled using the &#039;&#039;&#039;mixed&#039;&#039;&#039; attribute in the &amp;lt;code&amp;gt;&amp;lt;group&amp;gt;&amp;lt;/code&amp;gt; tag with a boolean value (&#039;&#039;true&#039;&#039; or &#039;&#039;false&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
== Combining playlists ==&lt;br /&gt;
The &amp;lt;code&amp;gt;playlist&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;field&amp;lt;/code&amp;gt; can be used to combine several playlists together. When playlists are combined, the &amp;lt;code&amp;gt;&amp;lt;limit&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;order&amp;gt;&amp;lt;/code&amp;gt; tags of the included playlists are ignored; only the &amp;lt;code&amp;gt;&amp;lt;order&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;limit&amp;gt;&amp;lt;/code&amp;gt; of the final playlist are used.&lt;br /&gt;
&lt;br /&gt;
As a simple example, lets create a new playlist combining the &amp;quot;Rock Music from the 1970s&amp;quot; and &amp;quot;Recently Played Songs&amp;quot; playlists above, to produce a playlist with the recently played rock songs from the 1970s.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recently played rock tracks from the 1970s&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;smartplaylist type=&amp;quot;songs&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;Recently played  Rock Tracks from the 1970s&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;match&amp;gt;all&amp;lt;/match&amp;gt;&lt;br /&gt;
  &amp;lt;rule field=&amp;quot;playlist&amp;quot; operator=&amp;quot;is&amp;quot;&amp;gt;Rock Music from the 1970s&amp;lt;/rule&amp;gt;&lt;br /&gt;
  &amp;lt;rule field=&amp;quot;playlist&amp;quot; operator=&amp;quot;is&amp;quot;&amp;gt;Recently Played Songs&amp;lt;/rule&amp;gt;&lt;br /&gt;
&amp;lt;/smartplaylist&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using this system allows very complex queries to be built. Note that in a single playlist, you can only match ALL of the rules, or ONE (or more) of the rules. This is basically either ANDing the conditions together, or ORing them together. You cannot mix AND with OR in a single playlist. To build up a playlist with both AND and OR operations on the rules, you use multiple playlists to group the AND operations and the OR operations, then combine them as above.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
=== Movie examples ===&lt;br /&gt;
==== Random movie ====&lt;br /&gt;
Only &#039;&#039;one&#039;&#039; movie is added to the list. This isn&#039;t possible to create in the GUI because the lower limit is 10 (or at least the limit needs to be edited afterward).&amp;lt;br /&amp;gt;&lt;br /&gt;
Even though the limit is only &#039;&#039;one&#039;&#039; you still need to set &#039;&#039;random&#039;&#039; order.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=xml&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;smartplaylist type=&amp;quot;movies&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;Random movie&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;match&amp;gt;all&amp;lt;/match&amp;gt;&lt;br /&gt;
    &amp;lt;rule field=&amp;quot;playcount&amp;quot; operator=&amp;quot;is&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;value&amp;gt;0&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/rule&amp;gt;&lt;br /&gt;
    &amp;lt;limit&amp;gt;1&amp;lt;/limit&amp;gt;&lt;br /&gt;
    &amp;lt;order direction=&amp;quot;ascending&amp;quot;&amp;gt;random&amp;lt;/order&amp;gt;&lt;br /&gt;
&amp;lt;/smartplaylist&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Music examples ===&lt;br /&gt;
==== Recently played songs ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;smartplaylist type=&amp;quot;songs&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;Recently Played Songs&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;match&amp;gt;all&amp;lt;/match&amp;gt;&lt;br /&gt;
    &amp;lt;rule field=&amp;quot;lastplayed&amp;quot; operator=&amp;quot;inthelast&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;value&amp;gt;2 weeks&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/rule&amp;gt;&lt;br /&gt;
    &amp;lt;order direction=&amp;quot;descending&amp;quot;&amp;gt;lastplayed&amp;lt;/order&amp;gt;&lt;br /&gt;
&amp;lt;/smartplaylist&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Top 100 songs ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;smartplaylist type=&amp;quot;songs&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;Top 100 Songs&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;match&amp;gt;all&amp;lt;/match&amp;gt;&lt;br /&gt;
    &amp;lt;rule field=&amp;quot;playcount&amp;quot; operator=&amp;quot;greaterthan&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;value&amp;gt;0&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/rule&amp;gt;&lt;br /&gt;
    &amp;lt;order direction=&amp;quot;descending&amp;quot;&amp;gt;playcount&amp;lt;/order&amp;gt;&lt;br /&gt;
    &amp;lt;limit&amp;gt;100&amp;lt;/limit&amp;gt;&lt;br /&gt;
&amp;lt;/smartplaylist&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Rock music from the 1970s ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;smartplaylist type=&amp;quot;songs&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;Rock Music from the 1970s&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;match&amp;gt;all&amp;lt;/match&amp;gt;&lt;br /&gt;
    &amp;lt;rule field=&amp;quot;genre&amp;quot; operator=&amp;quot;is&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;value&amp;gt;Rock&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/rule&amp;gt;&lt;br /&gt;
    &amp;lt;rule field=&amp;quot;year&amp;quot; operator=&amp;quot;greaterthan&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;value&amp;gt;1969&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/rule&amp;gt;&lt;br /&gt;
    &amp;lt;rule field=&amp;quot;year&amp;quot; operator=&amp;quot;lessthan&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;value&amp;gt;1980&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/rule&amp;gt;&lt;br /&gt;
&amp;lt;/smartplaylist&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== TV show examples ===&lt;br /&gt;
==== Last played episodes (history) ====&lt;br /&gt;
Not &#039;&#039;in progress&#039;&#039; episodes and &#039;&#039;playcount&#039;&#039; &amp;gt; 0.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;smartplaylist type=&amp;quot;episodes&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;Last played episodes (history)&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;match&amp;gt;all&amp;lt;/match&amp;gt;&lt;br /&gt;
    &amp;lt;rule field=&amp;quot;lastplayed&amp;quot; operator=&amp;quot;inthelast&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;value&amp;gt;6 months&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/rule&amp;gt;&lt;br /&gt;
    &amp;lt;rule field=&amp;quot;inprogress&amp;quot; operator=&amp;quot;false&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;rule field=&amp;quot;playcount&amp;quot; operator=&amp;quot;greaterthan&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;value&amp;gt;0&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/rule&amp;gt;&lt;br /&gt;
    &amp;lt;order direction=&amp;quot;descending&amp;quot;&amp;gt;lastplayed&amp;lt;/order&amp;gt;&lt;br /&gt;
&amp;lt;/smartplaylist&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Last played TV shows ====&lt;br /&gt;
Including TV shows with &#039;&#039;in progress&#039;&#039; episodes.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;smartplaylist type=&amp;quot;tvshows&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;Last played TV shows&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;match&amp;gt;all&amp;lt;/match&amp;gt;&lt;br /&gt;
    &amp;lt;rule field=&amp;quot;lastplayed&amp;quot; operator=&amp;quot;inthelast&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;value&amp;gt;6 months&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/rule&amp;gt;&lt;br /&gt;
    &amp;lt;order direction=&amp;quot;descending&amp;quot;&amp;gt;lastplayed&amp;lt;/order&amp;gt;&lt;br /&gt;
&amp;lt;/smartplaylist&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Gotham updated}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Video library]]&lt;br /&gt;
[[Category:Music library]]&lt;/div&gt;</summary>
		<author><name>Borromini</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=CEC&amp;diff=67745</id>
		<title>CEC</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=CEC&amp;diff=67745"/>
		<updated>2014-01-12T10:40:39Z</updated>

		<summary type="html">&lt;p&gt;Borromini: Added Sony KDL-52NX800 and Yamaha RX-1071 to compatibility list&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav|[[General topics]]|[[Remotes]]}}&lt;br /&gt;
HDMI [[w:Consumer Electronics Control|CEC]] stands for &amp;lt;u&amp;gt;C&amp;lt;/u&amp;gt;onsumer &amp;lt;u&amp;gt;E&amp;lt;/u&amp;gt;lectronics &amp;lt;u&amp;gt;C&amp;lt;/u&amp;gt;ontrol. Since the Eden release XBMC comes with the new [http://libcec.pulse-eight.com/ libCEC 2.1.3] which allows control of the XBMC interface over the standard TV remote that comes with your TV. As buttons are pressed the remote command is sent via the HDMI cable to your XBMC device. CEC allows for control of devices over the HDMI port, which allows for things like:&lt;br /&gt;
* Controlling XBMC from the TV&#039;s remote control&lt;br /&gt;
* Automatically switch to the right TV input device&lt;br /&gt;
* letting the HTPC control what mode your audio receiver is on when the TV switches on&lt;br /&gt;
* Turning all devices off with one remote&lt;br /&gt;
* and a lot more!&lt;br /&gt;
&lt;br /&gt;
== Settings ==&lt;br /&gt;
Settings for your CEC devices can be found in:&lt;br /&gt;
&lt;br /&gt;
System -&amp;gt; Settings -&amp;gt; System -&amp;gt; Input Devices -&amp;gt; Peripherals -&amp;gt; CEC adapter&lt;br /&gt;
&lt;br /&gt;
== Trade names ==&lt;br /&gt;
There are different trade names for HDMI CEC, depending on who is the manufacturer of your device, so it doesn&#039;t have to be stated as HDMI-CEC. Find your manufacturer on this list and see what it is called for your device:&lt;br /&gt;
&lt;br /&gt;
* Samsung - &#039;&#039;&#039;Anynet+&#039;&#039;&#039;&lt;br /&gt;
* Sony - &#039;&#039;&#039;BRAVIA Link&#039;&#039;&#039; or &#039;&#039;&#039;BRAVIA Sync&#039;&#039;&#039;&lt;br /&gt;
* Sharp - &#039;&#039;&#039;Aquos Link&#039;&#039;&#039;&lt;br /&gt;
* Hitachi - &#039;&#039;&#039;HDMI-CEC&#039;&#039;&#039;&lt;br /&gt;
* AOC - &#039;&#039;&#039;E-link&#039;&#039;&#039;&lt;br /&gt;
* Pioneer - &#039;&#039;&#039;Kuro Link&#039;&#039;&#039;&lt;br /&gt;
* Toshiba - &#039;&#039;&#039;Regza Link&#039;&#039;&#039; or &#039;&#039;&#039;CE-Link&#039;&#039;&#039;&lt;br /&gt;
* Onkyo - &#039;&#039;&#039;RIHD (Remote Interactive over HDMI)&#039;&#039;&#039;&lt;br /&gt;
* LG - &#039;&#039;&#039;SimpLink&#039;&#039;&#039;&lt;br /&gt;
* Panasonic - &#039;&#039;&#039;VIERA Link&#039;&#039;&#039; or &#039;&#039;&#039;HDAVI Control&#039;&#039;&#039; or &#039;&#039;&#039;EZ-Sync&#039;&#039;&#039;&lt;br /&gt;
* Philips - &#039;&#039;&#039;EasyLink&#039;&#039;&#039;&lt;br /&gt;
* Mitsubishi - &#039;&#039;&#039;NetCommand for HDMI&#039;&#039;&#039;&lt;br /&gt;
* Runco International - &#039;&#039;&#039;RuncoLink&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Devices Known to work ==&lt;br /&gt;
With different TV&#039;s and devices comes different compatibility. An up to date vendor support matrix can be found [http://libcec.pulse-eight.com/vendor/support here], which lists which features are supported for each vendor.&lt;br /&gt;
&lt;br /&gt;
Below is a list of TV&#039;s which are known to be working with CEC and XBMC:&lt;br /&gt;
&lt;br /&gt;
=== TVs ===&lt;br /&gt;
* LG 47LS4600&lt;br /&gt;
* LG 47CS570&lt;br /&gt;
* LG LM620T&lt;br /&gt;
* LG 37LG6000&lt;br /&gt;
* LG 42LD420&lt;br /&gt;
* LG 42LD550&lt;br /&gt;
* LG 60PM6700 (Most of the expected buttons work, EXCEPT the number &amp;amp; channel buttons)&lt;br /&gt;
* LG 32LN572B (2013 model tested on Raspberry Pi running OpenELEC 3.2.3. The regular TV remote control works except forward and rewind but the left and right skip keys works so it&#039;s quiet useable. The Magic Remote also seems to work but haven&#039;t been tested properly) &lt;br /&gt;
* Panasonic TXL-47DT50&lt;br /&gt;
* Panasonic Viera GT30&lt;br /&gt;
* Panasonic Viera S60&lt;br /&gt;
* Panasonic Viera ST50&lt;br /&gt;
* Panasonic Viera TH-42PX80E&lt;br /&gt;
* Panasonic Viera TH-42PZ85E&lt;br /&gt;
* Panasonic Viera TH-P42S10A&lt;br /&gt;
* Panasonic Viera TH-P50G10A&lt;br /&gt;
* Philips 37PFL6007K&lt;br /&gt;
* Philips 47PFL5007K&lt;br /&gt;
* Samsung ES6800&lt;br /&gt;
* Samsung LE32B650&lt;br /&gt;
* Samsung LE37D570&lt;br /&gt;
* Samsung UE40C7700&lt;br /&gt;
* Samsung UE46F8000&lt;br /&gt;
* Samsung UE50EH5300&lt;br /&gt;
* Samsung UE55F6510&lt;br /&gt;
* Sharp LC-52D83X&lt;br /&gt;
* Sony Bravia KDL46-HX800&lt;br /&gt;
* Sony Bravia KDL-40HX705&lt;br /&gt;
* Sony Bravia KDL-46NX715&lt;br /&gt;
* Sony Bravia KDL-40M4000&lt;br /&gt;
* Sony Bravia KDL-32W5500&lt;br /&gt;
* Sony Bravia KDL-46EX520&lt;br /&gt;
* Sony Bravia KDL-52NX800&lt;br /&gt;
* Sony Bravia KD55X9004A&lt;br /&gt;
* Sony NSX-40GT1 (Google TV)&lt;br /&gt;
* Vizio M-Series&lt;br /&gt;
&lt;br /&gt;
=== Home Cinema Systems ===&lt;br /&gt;
* Onkyo HT-R390 Amplifier&lt;br /&gt;
* Yamaha RX-V473 AV-Receiver&lt;br /&gt;
* Yamaha RX-V1071 AV Receiver (only on HDMI Out 1)&lt;br /&gt;
&lt;br /&gt;
=== Projectors ===&lt;br /&gt;
* Epson EH-TW6100&lt;br /&gt;
&lt;br /&gt;
=== XBMC Devices ===&lt;br /&gt;
HDMI ports on computers (onboard or via GPU) do not have the CEC feature, but can use a CEC adapter such as this one from [[Pulse-Eight]]: http://www.pulse-eight.com/store/products/104-usb-hdmi-cec-adapter.aspx&lt;br /&gt;
&lt;br /&gt;
Some recent Intel motherboards come with a new HTPC header, to connect Pulse-Eight&#039;s internal HDMI CEC adapter: http://www.pulse-eight.com/store/products/117-internal-hdmi-cec-adapter.aspx&lt;br /&gt;
&lt;br /&gt;
==== [[Raspberry Pi]] ====&lt;br /&gt;
The Raspberry Pi GPU has CEC support which is supported by libCEC, and is therefore fully supported by XBMC.&lt;br /&gt;
&lt;br /&gt;
=== Common Issues with CEC ===&lt;br /&gt;
When &amp;quot;setting up&amp;quot; CEC make sure your configuration uses good HDMI cables. Especially cheap cables - still able to support 1080p without any problems - have been reported to cause problems with CEC (eg. devices like raspberry not showing up in the CEC menu at all, devices showing up but remote not working, etc).&lt;br /&gt;
&lt;br /&gt;
Using better HDMI cables might resolve that problem.&lt;br /&gt;
&lt;br /&gt;
There are also reports of devices with improper HDMI CEC implementation, such as ROKU streaming box, causing problems with CEC device recognition. Disconnecting non-CEC devices, or upgrading firmware on those devices, may resolve the problem.&lt;br /&gt;
&lt;br /&gt;
== Branding of CEC ==&lt;br /&gt;
Different brands will call CEC a different name on their products, the list below will show what the branding of CEC:&lt;br /&gt;
&lt;br /&gt;
* Samsung - AnyNet+&lt;br /&gt;
* Sharp - Aquos Link&lt;br /&gt;
* Sony - BRAVIA Link and BRAVIA Sync&lt;br /&gt;
* Hitachi - HDMI-CEC&lt;br /&gt;
* AOC - E-Link&lt;br /&gt;
* Pioneer - Kuro Link&lt;br /&gt;
* Toshiba - CE-Link and Regza Link&lt;br /&gt;
* Onkyo - RIHD (Remote Interactive over HDMI) &lt;br /&gt;
* LG - SimpLink&lt;br /&gt;
* Panasonic - HDAVI Control, EZ-Sync, VIERA Link&lt;br /&gt;
* Philips - EasyLink&lt;br /&gt;
* Loewe - Digital Link Plus or without Plus&lt;br /&gt;
&lt;br /&gt;
== Further reading ==&lt;br /&gt;
* http://libcec.pulse-eight.com/faq&lt;br /&gt;
&lt;br /&gt;
[[Category:Remotes]]&lt;br /&gt;
[[Category:XBMC Manual]]&lt;br /&gt;
{{frodo updated}}&lt;/div&gt;</summary>
		<author><name>Borromini</name></author>
	</entry>
</feed>