Plex Home Theater + Funtoo on Intel’s NUC DN2820FYKH

Plex is really awesome. It has a server component that I’ve had running on my home server for over a year now. There are apps for Roku, Windows 8 and Android (I have all three) which automatically find my local server and can stream from it. The Android Plex app can even act as a remote for other Android, Roku, Windows 8, and the Plex Home Theater client. Rather than dive in a try to get Plex Home Theater running on raspberrypi, I went with the new NUC DN2820FYKH.

The Hardware

The Intel NUC DN2820FYKH, is a small form factor PC kit, which includes everything but a hard drive and RAM. Since, this kit only has space for a 2.5″ drive, and it only has a SATA 3GB/s interface, I threw in an old 80GB Intel x-25m G2 SSD. Thanks to the little compatibility issue with the ideaPad s405, I had an extra stick of 8GiB DDR3L sitting around, which I threw in as well.

  • Intel Celeron N2820 (2.4GHz dual-core, “Bay Trail”) 7.5W
  • 8GiB 1.35V DDR3-1600 single channel
  • 80GB Intel x-25m G2
  • Intel Wireless-N 7260BN with Bluetooth 4.0
  • Intel HD Graphics (Linux identifies as Intel Gen 7 graphics)
  • CIR receiver

For the most part, as of late February 2014, the Linux kernel supports just about all the hardware within the NUC DN2820FYKH. Even the CIR receiver works with Windows Media Center type remotes. By default, the CIR receiver will be detected as a keyboard device by Xorg, this doesn’t work the best within Plex. Note that LIRC is supposed to work better, but I have not gotten it to work properly (yet). You can use the CLI interface for Network Manager to automatically connect to your WiFi network, and Bluez can pair devices (though I’ve have a little trouble with it).

The CIR and Bluetooth issues have not bothered me too much. I have found that the Plex app on a tablet or smartphone is more or less the best way to interact with Plex Home Theater. Hence, lowering the need for a remote or keyboard. The reason the Plex app is the best remote is it allows you to browse all the content on your Plex media server–something that is not possible from within Plex Home Theater.

Caveat Emptor

The UEFI BIOS that ships with the DN2820FYKH does not boot off of legacy BIOS boot media, even when in legacy mode. In my case, I had to update my System Rescue CD boot USB to get going. You will need to use a current version of the Linux kernel (3.13.2 or newer at the time of this writing) to have working graphics drivers, otherwise you will get frequent graphics corruption on menus within Plex Home Theater.

Installing Plex Home Theater

Plex Home Theater for Linux is available on GitHub, and an ebuild exists for it. However, the previously available ebuilds will fail due to some changes in PlexHT. One major stumbling block I had was PlexHT includes and tries to build against its own version of ffmpeg. This would be fine if it were not for the fact the makefiles are broken. The easiest workaround is to tell it to use the system’s ffmpeg by setting USE_INTERNAL_FFMPEG="no" in the make command (within the ebuilt). I’ve generated a semi updated ebuild available on GitHub.

Either way, you will probably want to setup a portage overlay to handle plexht. Start with adding the following to your /etc/portage/make.conf

PORTDIR_OVERLAY=/usr/local/plexht-overlay

Then, make the directory

mkdir /usr/local/plexht-overlay

Traverse to /usr/local

cd /usr/local

Change the ownership so portage can access

chown root:portage /usr/local/plexht-overlay

Now clone the Git Repository, in this case I’m using my overlay

git --clone https://github.com/mtekk/plexht-overlay.git /usr/local/plexht-overlay

Now, since this repository has everything ready to go, let’s emerge plexht

emerge -av plexht

Running Without a Desktop Environment

Just like XBMC, which Plex is based off of, you can run Plex without installing a full desktop environment. You will still need xorg, and will need xinit. If you plan on using the WiFi card as the primary network connection, it is also wise to setup NetworkManager, it includes a CLI interface that works quite well.

Launch Plex Home Theater on Boot

This section follows the beginning of the Gentoo Wiki’s XBMC Guide. If you don’t have xorg and company installed, start by installing it.

emerge -av xorg-server dbus xinit

After xorg is installed, we will want to create a plex user

useradd -m -G audio,cdrom,video,cdrw,usb,users plex

Then create /etc/init.d/plex and place the following in it (you could also just use this Gist)

#!/sbin/runscript
# Released under the 2-clause BSD license.

description="Start and stop Plex Home Theater"

depend()
{
	need net
}

start()
{
        ebegin "Starting Plex"
		export XBMC_HOME=/opt/plexhometheater/share/XBMC/
        start-stop-daemon --start -u ${PLEX_USER:-plex} --background --pidfile /var/run/plex.pid --make-pidfile --exec /usr/bin/xinit -- /opt/plexhometheater/bin/plexhometheater ${PLEX_OPTS} -- :0
        eend $?
}

stop()
{
        ebegin "Stopping Plex"
        start-stop-daemon --stop --pidfile /var/run/plex.pid
        eend $?
}

Then make the just created file executable

chmod +x /etc/init.d/plex

Finally, add it to the default runtime

rc-update add plex default

Now, Plex Home Theater will launch on boot.

Configure NetworkManager Via CLI

As mentioned above, NetworkManager is the easiest way to get the NUC to connect to a WiFi network. If the intel drivers and firmware is already loaded for the Wireless-N 7260BN card, just use the following to connect to your WiFi network

nmcli d wifi connect <network_SSID> password <password>

Just replace <network_SSID> with the SSID of the WiFi network you wish to connect to, and replace <password> with the password for that WiFi network. Note that you can also use nmcli to find available networks with the following command

nmcli d wifi

What's Left?

At the time of this writing, there are still a few quirks with the system that I have not fully debugged they are:

  • CIR interface not setup to work with LIRC and interpreting MCE remote commands correctly.
  • Graphical glitches within Plex Home Theater, not sure if this is an Intel driver issue or a Plex issue.
  • Had troubles getting a bluetooth keyboard to stay paired with the device
  • The shutdown and hibernate buttons within Plex do not work properly
    • The shutdown button does exit Plex, but does not shutdown the system
    • The hibernate button just exits Plex

This post will be updated as I play more with Plex on the DN2820FYKH and find fixes for these issues.

-John Havlik

[end of transmission, stay tuned]

6 thoughts on “Plex Home Theater + Funtoo on Intel’s NUC DN2820FYKH

    • It isn’t a bad radio, but I do like the Wireless AC 7260 better than the Wireless N 7260 (mainly because it is a Wireless AC card with 5GHz support). My XPS 15 9530 came with the AC version, and I have the desktop kit version in my workstation. I picked up a Wireless AC router near the end of last year year, and I am able to consistently get a 520Mbps connection with the Wireless AC 7260.

      -John Havlik

        • I picked up the Dlink DIR-868L. Tigerdirect had it on sale before Christmas. I had been tired of the poor 5GHz reception on the Asus RT-N56U in my office (can’t get Ethernet into it due to layout of the place). I set it up as a secondary access point for my 2.4GHz network (placed it in an area I could get CAT6 to), and set the 5GHz band to AC only.

  1. It sounds like you are running the plex server on a different computer, as you haven’t mentioned it here. Do you think the nuc has enough grunt to do both?

    I’m thinking of using it with external hard drives for a very cheap media center…

    • Yes, I have an local server for media/file storage/printing/web development, which is running on the previous generation HP Proliant Micro Server (the AMD dual core one). From my experience with both devices, I will say you should be fine, if two conditions are held.

      First, you will need to ensure Plex is able to take advantage of the GPU in the Celeron N2820 to accelerate decoding. With hardware acceleration, which appears to be available for H.264 video, the CPU is not too terribly taxed when streaming media (I believe I had this working).

      Second, make sure Plex Media Server does not have to transcode video. Transcoding requires a more capable CPU than the dual core AMD chip (in the Proliant Mico Server) or the Celeron N2820 (in the NUC).

      -John Havlik

Comments are closed.