Install Plex Media Server on ODROID Lubuntu and Debian

plex-odroid-logo
Plex Media Server can finally run natively on ARMv7 devices. We use the Synology package and make some modifications thanks to uglymagoo on the Plex forum to get it to work. Direct play works beautifully but transcoding is very limited. This guide was tested on the ODROID-C1 but should work on any ODROID device running Ubuntu 14.04 or Debian 8 that has an ARMv7 processor like the ODROID-U3 and ODROID-XU3. I have contacted hardkernel several times requesting other devices for testing but they haven’t responded unfortunately. If your other ODROID device works let me know in the comments.

Update: Plex Image Updated July 2015, also includes my Media Server Installer (how to use)

Pi Unit
Processor
RAM
RAM Bus
Network
WiFi
USB
SATA
Cost
Raspberry Pi 3
1.2 GHz ARMv8
Quad Core
1 GB DDR2
450 MHz
100 Mbit
Yes
4
No
$35
Raspberry Pi 2
900 MHz ARMv7
Quad Core
1 GB DDR2
450 MHz
100 Mbit
No
4
No
$35.00
Raspberry Pi
700 MHz ARMv6
Single Core
512 MB SDRAM
400 MHz
100 Mbit
No
4
No
$25
Banana Pi
1 GHz ARMv7
Dual Core
1 GB DDR3
432 MHz
Gigabit
No
2
Yes
$36.99
Banana Pi Pro
1 GHz ARMv7
Dual Core
1 GB DDR3
432 MHz
Gigabit
Yes
2
Yes
$45.00

Install Plex Media Server on ODROID Lubuntu

odroid plex screenshot

Install Plex Media Server on ODROID using Repository

Install libexpat1 for playing in Android app

sudo apt-get install libexpat1 -y

Enable https transport or you will get this error: E: The method driver /usr/lib/apt/methods/https could not be found.

sudo apt-get update && sudo apt-get install apt-transport-https binutils -y --force-yes

Grab uglymaoo’s gpg key for his repository

wget -O - https://dev2day.de/pms/dev2day-pms.gpg.key | sudo apt-key add -

Add uglymagoo’s repository

echo "deb https://dev2day.de/pms/ jessie main" | sudo tee /etc/apt/sources.list.d/pms.list

Update your package lists

sudo apt-get update

Install Plex Media Server

sudo apt-get install plexmediaserver -y

When you know there is a new version of Plex Media Server you can upgrade with this command now

sudo apt-get update && sudo apt-get upgrade -y

Access Plex on your Odroid at this URL, replace ip.address with your actual IP http://ip.address:32400/web

Use this guide to force transcoding in the Web Client and get rid of the server is not powerful enough error

USB Hard Drive Model
Capacity
USB Speed
Amazon Price
Western Digital My Passport Ultra Portable Hard Drive
1 TB
USB 3.0
$56.99
Western Digital My Passport Ultra Portable Hard Drive
2 TB
USB 3.0
$86.00

Build the Plex Media Server Package

With this method you are going to grab the latest plex ARMv7 Synology package and turn into a deb package you can install on your ODROID device.

Install libexpat1 for playing videos in the Android app and other clients

sudo apt-get install libexpat1 -y

Enter your home directory

cd ~

Grab the latest Plex skeleton package

wget http://dev2day.de/skeleton.tgz

Unpack the Plex skeleton

tar -xzf skeleton.tgz

Grab the latest Plex Media Server package link for arm7 which can be found at https://plex.tv/downloads click NAS.
plex media server arm7 choose nas

Click the Synology tab and right click on the ARMV7 button and copy the link to the clipboard.

plex media server arm7 choose synology

Back in SSH type wget and paste the link you have copied to the clipboard, trim the s from https as well to avoid issues

wget http://downloads.plex.tv/plex-media-server/0.9.11.16.958-80f1748/PlexMediaServer-0.9.11.16.958-80f1748-arm7.spk

Rename the Synology Plex package

mv PlexMediaServer-0.9.11.16.958-80f1748-arm7.spk PlexMediaServer-0.9.11.16.958-80f1748-arm7.tgz

Unpack the Plex package

tar -xvf PlexMediaServer-0.9.11.16.958-80f1748-arm7.tgz

Unpack the package to the skeleton directory

tar -xvf package.tgz -C skeleton/usr/lib/plexmediaserver

Delete unnecessary stuff

rm -r skeleton/usr/lib/plexmediaserver/dsm_config

Enter the plexmediaserver folder

cd skeleton/usr/lib/plexmediaserver

Modify permissions on the lib files

find . -iname "*.so" -exec chmod 644 {} \;
find . -iname "*.so.*" -exec chmod 644 {} \;

Enter the skeleton lib folder

cd ~/skeleton/lib

Go back to the home directory

cd ~

This is optional, you can edit the package details

nano skeleton/DEBIAN/control

Change Maintainer if you want and adjust the version

Package: plexmediaserver
Version: 0.9.11.16.958-80f1748
Architecture: armhf Maintainer: Jan Friedrich (uglymagoo) <jft@dev2day.de> Section: video Priority: extra Homepage: http://www.plexapp.com Description: Plex Media Server for Linux Stream media everywhere(tm)

Install fakeroot

sudo apt-get install fakeroot -y

Build the deb package for installation

fakeroot dpkg-deb --build skeleton ./

You can now install the plexmediaserver package you just created

sudo dpkg -i plexmediaserver*

Browse to http://ip.address:32400/web and Plex should pop up!

If all went well you can remove the files and folders you used to build the package

rm skeleton.tgz
rm -R ~/skeleton
rm plex*.deb

You can test the ODROID-C1 minimal image with Plex preinstalled and update it using this guide. You log in with SSH: root or odroid as login with password htpcguides. You will need to expand the sd card with fs_resize upon first login, you can then optionally install the transcoding tools. Share the post to reveal the link for the ODROID-C1 Plex Image. Then browse to the ip address of your ODROID-C1 at this url: http://ip.address:32400/web.

You should set Plex to use your external hard drive for temporary transcoding data after you have mounted your drives properly.

Click the settings icon in the top right, Click Server and then Transcoder in the left pane.

Make sure SHOW ADVANCED is enabled underneath Server.

Scroll down to Transcoder temporary directory and set your USB external drive’s mount path (e.g. /mnt/usbstorage not /dev/sda1)

Scroll down further and hit Save Changes

If Plex isn’t reading your drives you can do one of two things, change the permissions of your external storage (less secure) or change the user Plex is running as (which could mean you need to rescan for metadata)

To change the permissions where /mnt/usbstorage is your mount path for your hard drive

sudo chmod -R 777 /mnt/usbstorage

To change which user Plex runs as, open this file

sudo nano /etc/default/plexmediaserver

Change this line, replace plex with your username you use to log on or the owner of the mounted drive

PLEX_MEDIA_SERVER_USER=plex

Ctrl+X, Y and Enter to save

Then restart your Plex server

sudo service plexmediaserver restart

You can update the Plex version on the ready made image with this guide.

Now that you have completed the Install Plex Media Server on ODROID guide you can configure Plex Media Server

Enjoy Plex on your ODROID device 🙂