Ultimate Guide to Plex9 on AppleTV 2G with 4.2.1

This post has already been read 41170 times!

Update on Jan 12: You should use the SeasOnPass app from fireCore — it does exactly what I outline below, only much more quickly and easily.

After a few days of screwing around with a new AppleTV 2G that came from Apple with 4.2.1 pre-installed (so no going back to older firmware) and reading numerous blogs and forums (many which are just copying the original posts) I have Plex running on my AppleTV.

Here is how I did it.

NOTE: When I use ATV in this post, I mean AppleTV 2G with firmware 4.2.1, the latest from Apple as of January 9th, 2011.

NOTE: This is a tethered-jailbreak (TJB), which means the ATV must be hooked up to your Mac via USB in order to BOOT it. Every time.

Hopefully an un-tethered jailbreak will be released soon, so that you don’t need to do this.

This post will center on installing PLEX on the ATV, and so it assumes that there have been quite a few things already done to your ATV, in order to prepare it for PLEX.


1. Jailbreak your ATV

At this time you must modify Pwnagetool in order to jailbreak the 4.2.1 ispw from Apple. A really good guide is over at funkyspacemonkey.com. There is a slightly confusing post about how to this over on the Appletvhacks.net site you can read that just to reinforce what is going on, however, the funkyspacemonkey.com is easier to follow.

What worked consistently for me is this:

  • Jailbreak using Pwnagetool with JUST USB connected to ATV
  • Restore Custom IPSW using iTunes with POWER and USB
  • Boot ATV with POWER and USB (if you don’t have the power connected when you boot the ATV then you won’t have WIFI).

2. Boot your TJB (tethered jailbroken ATV).

Here is a good guide at funkyspacemonkey.com.

Booting my ATV consisted of:

$ cd Desktop/tboot/
$ ./tetheredboot -i iBSS.k66ap.RELEASE.dfu -k kernelcache.release.k66 
Initializing libpois0n
No matching processes belonging to you were found
Waiting for device to enter DFU mode
opening device 05ac:1227...
Found device in DFU mode
Checking if device is compatible with this jailbreak
Checking the device type
Identified device as AppleTV2,1
Preparing to upload limera1n exploit
Resetting device counters
Sending chunk headers
Sending exploit payload
Sending fake data
libusb:error [darwin_transfer_status] transfer error: timed out
Exploit sent
Reconnecting to device
Waiting 2 seconds for the device to pop up...
opening device 05ac:1227...
Uploading iBSS.k66ap.RELEASE.dfu to device
[==================================================] 100.0%
libusb:error [darwin_reset_device] ResetDevice: device not responding
libusb:error [darwin_close] USBDeviceClose: no connection to an IOService
Waiting 10 seconds for the device to pop up...
opening device 05ac:1281...
Setting to configuration 1
Setting to interface 0:0
Uploading kernelcache.release.k66 to device
[==================================================] 100.0%
libusb:error [darwin_transfer_status] transfer error: device not responding (value = 0xe00002ed)
Exiting libpois0n

The output may look confusing, but it worked. The test is to try and ssh over to the ATV. Note that I had the Desktop/tboot/ directory setup and prepared according to the posted guides on what to do. It’s not just going to work. Read the guide.

3. Setup your ATV on your network

If you are using WIFI or wired and DHCP, you need to get on the ATV and find out what IP address it was assigned in order to complete the next step. To find the current IP of the ATV go here: [Settings/General/Network].

3. ssh into your ATV

It should be on the network and no longer connected to your mac via USB. Ssh in as root, the password is ‘alpine’.

$ ssh root@
Note: Use your local IP address….

4. PLEX9

You should have a PLEX9 media server installed and a PLEX9 client running. I downloaded the latest version from Plex and installed on a MacMini and did nothing other than set it up to read my media from a local NAS, and then ran the client. I verified that it was working by purchasing and installing the Plex client from the iTunes store. This also helps support the plex project.

I also purchased and installed the Klexi Plex mobile client, to support the people at ambertation.de who are the ones responsible for much of the ATV iOS client.

Installing PLEX on ATV

Now you can follow along to install PLEX and Nitro.TV. Nitro.TV is from AkwardTV and adds a nice menu interface to install additional software like weather and some additional tools.

AkwardTV’s wiki has a nice page on the AppleTV – but note it’s slightly out of date.

Commands on ATV:

Note: you do not type the ‘$’ in the commands below….

wget -O- http://apt.awkwardtv.org/awkwardtv.pub | apt-key add -

$ echo "deb http://www.ambertation.de ./downloads/PLEX/" > /etc/apt/sources.list.d/plex.list
$ echo "deb http://apt.awkwardtv.org ./" > /etc/apt/sources.list.d/awkwardtv.list
$ apt-get update

$ apt-get install com.nito.nitotv

$ apt-get -f install
Yes, do as I say!

$ apt-get install com.nito.nitotv
$ apt-get install com.plex.client-plugin

Each of the lines above was entered into the ATV via my ssh connection in the ATV’s shell.

Breakdown of the commands:

Note: some of those lines wrapped, they should not wrap in the shell. Copy and paste them into a text editor before you paste them, if you intend to.

1. Get the key for awkwardt and install it
2. Add the repos for PLEX and Nitro.TV
3. Update apt
4. The command to install nitrotv, and the subsequence commands removed libxml2-lib and sqlite3-lib, however, installing the PLEX package made everything work again.

This is what the command looked like in my shell:

Apple-TV:~ root# apt-get -f install
Reading package lists... Done
Building dependency tree... Done
Correcting dependencies... Done
The following packages will be REMOVED:
  libxml2-lib sqlite3-lib
WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
  libxml2-lib sqlite3-lib
0 upgraded, 0 newly installed, 2 to remove and 2 not upgraded.
After this operation, 36.9kB disk space will be freed.
You are about to do something potentially harmful.
To continue type in the phrase 'Yes, do as I say!'
 ?] Yes, do as I say!
dpkg - warning, overriding problem because --force enabled:
 This is an essential package - it should not be removed.
(Reading database ... 820 files and directories currently installed.)
Removing libxml2-lib ...
dpkg - warning, overriding problem because --force enabled:
 This is an essential package - it should not be removed.
Removing sqlite3-lib ...

5. The last 2 commands install NitroTV and PLEX. Installing the PLEX package restarted “AppleTV” the main application interface (it was called “Lowtide” before version 4.2.1 of the iOS).

If you need to restart AppleTv just run:

$ killall AppleTV

from the shell and you should see the interface restart.

After this, Plex worked and I could connect to my Plex client running on the Macmini and play movies over WIFI.

Then I plugged in the USB cable to keep the ATV powered and moved it to my TV. Then I used the powercable to keep the ATV powered at my TV. I’m enjoying movies, and as long as there are no power interruptions, I’m ok.

Final Words, Troubleshooting and Links

Some links that I found helpful:

Notes on Jailbreaking – I tried dozens of times to jailbreak the ATV and almost all of them ended up with the iTunes error of 1600, which is a generic USB error. I think it may have to do with DFU mode.

The only consistent way I could get the jailbroken ISPW to load was to use Pwnagetool to get the ATV into DFU mode, then switch to iTunes and alt-restore in the custom IPWS. Trying to get the ATV into DFU mode while in iTunes never worked. YMMV.

One thought on “Ultimate Guide to Plex9 on AppleTV 2G with 4.2.1

  1. Abarth

    Hi, I get this message can you help me?
    Someone could be eavesdropping on you right now (man-in-the-middle attack)!
    It is also possible that the RSA host key has just been changed.
    The fingerprint for the RSA key sent by the remote host is
    Please contact your system administrator.
    Add correct host key in /Users/Riviera/.ssh/known_hosts to get rid of this message.
    Offending key in /Users/Riviera/.ssh/known_hosts:1
    RSA host key for has changed and you have requested strict checking.
    Host key verification failed.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.