Take 2 Full Update
includes updates for 2.0.1
What follows are step by step instructions for upgrading your Apple TV to the 2.0 (Take 2) software, and then loading back on all the "extras". First thing to do is grab all the required files and put them in a folder called AppleTVUpdate which is located on your desktop.
- 1 Required Hardware
- 2 Required Files
- 3 1) Install Apple TV Take 2 update from your Apple TV
- 4 2) Install SSH
- 5 3) Install ATVFiles
- 6 Alternate 3 to 8
- 7 4 Install Perian and other Quicktime Components
- 8 5) Install AFP
- 9 6) Reboot AppleTV
- 10 7) Install USB
- 11 8) Install MacFUSE/sshfs
- 12 9) Install mount_smbfs
- 13 10) Create rc.local
- 14 11) Enable VNC
- 15 12) Disable Updates
- 16 13) Reboot the AppleTV
- 17 Watchdog
- 18 Aftermath
- Apple TV running the Take2 update firmware version 1, since version 1.1 doesn't have AFP and VNC support.
- Intel Mac - there are ways to do this on PC's and PPC Macs, and we have tried to cover them as much as we can
- USB "thumb drive" of at least 128 MB. Some users have reported problems with drives with more than 2 GB.
- AC3MovieImport.component - provides ac3 sound for perian (bundled in perian install)
- A52Codec.component - (bundled in perian install)
- Perian.component - provides divx, xvid, flv,mkv, srt support
- Flip4Mac WMV Import.component - provides windows media support
Note: The above files (with exception of the .DMG) can be found under /Library/Audio/Plug-Ins/Components and /Library/QuickTime, if you have Perian (and Flip4Mac) installed on your Intel Mac.
From MacOS X 10.4.9 Combo Updater (Download and mount, open the pkg with Pacifist):
Note: The above files can be found inside /System/Library/Extensions inside the package mentioned above using Pacifist.
Note: The above files can be found inside /sbin inside the package mentioned above using Pacifist.
--Emanuele.mazza 15:29, 6 August 2008 (CEST) I have downloaded the above and opened it with HFSExplorer, and neither mount_smbfs nor the other files are available. Any hint ?
Before you begin:
- All commands are to be run one at a time. Do not try pasting everything in and running all at once.
- If you plan on attaching an external USB drive to a 2.0/2.1 Apple TV, you probably want to be able to transfer files via AFP. If so, you need to create a restore.dmg from a 1.0 factory Apple TV before you go to step 1.
- Create a new folder on your desktop and name it AppleTVUpdate. Put all of the required files in this folder.
Ready? Let's get started:
1) Install Apple TV Take 2 update from your Apple TV
2) Install SSH
3) Install ATVFiles
scp -1 -r ~/Desktop/AppleTVUpdate/ATVFiles-1.0.take2b1.run frontrow@AppleTV.local:~
sudo sh ~/ATVFiles-1.0.take2b1.run
Alternate 3 to 8
- Copy MacOS X 10.4.9 Combo Updater to ~/Documents folder on AppleTV
- Install nitoTV http://forum.awkwardtv.org/viewtopic.php?f=6&t=1262
For those without unzip installed on your ATV, open up a terminal window on your Mac and do the following;
Mac-i) # wget http://nitosoft.com/nitoTVInstaller_tt.zip Mac-ii) # mkdir atvnito; unzip nitoTVInstaller_tt.zip -d atvnito;tar -cf nitoTV.tar atvnito/ Mac-iii) # scp -1 nitoTV.tar frontrow@AppleTV-IP: Mac-iv) # ssh -1 frontrow@AppleTV-IP:
The SSH password is frontrow you should now be logged onto your AppleTV to perform the below steps.
ATV-v) # tar xf nito.tar; cd atvnito/nitoTV\ Take\ Two/ ATV-vi) # sudo sh installme
- From the AppleTV menu go to nitoTV -> Settings -> Install Software and install in the below order.
- Perian, say NO when asked to use Perian h.264 instead of Quicktime's
- mplayer codecs
- Turbo's Kextloader
- Smart Installer (not the updater) - MacOSXUpdCombo10.4.9Intel.dmg must be placed in /Users/frontrow/Documents/ on your AppleTv.
- Jump to step 9
4 Install Perian and other Quicktime Components
scp -1 -r ~/Desktop/AppleTVUpdate/AC3MovieImport.component frontrow@AppleTV.local:~ scp -1 -r ~/Desktop/AppleTVUpdate/Flip4Mac\ WMV\ Import.component frontrow@AppleTV.local:~ scp -1 -r ~/Desktop/AppleTVUpdate/Perian.component frontrow@AppleTV.local:~ scp -1 -r ~/Desktop/AppleTVUpdate/A52Codec.component frontrow@AppleTV.local:~
sudo mount -uw / sudo mv ~/AC3MovieImport.component /Library/Quicktime/ sudo mv ~/Flip4Mac\ WMV\ Import.component /Library/Quicktime/ sudo mv ~/Perian.component /Library/Quicktime/ sudo mv ~/A52Codec.component /Library/Audio/Plug-Ins/Components/
5) Install AFP
Both the processes listed below (Auto and Manual) presume a 1.0 recovery partition on the AppleTV, and have been tailed towards that. Many of the files can likely be gotten from the 10.4.9 combo updater, but probably not all (this needs to be verified)--BonesSK 03:16, 9 April 2008 (CEST). A full install of 10.4.9 on an Intel Mac would also do nicely, but both the script and the manual process would need to be tweaked in order to properly get and place the files.
If you are running leopard 10.5+, you may want to install 10.4 onto an external drive (USB drive, firewire, iPod etc) to get files. --BonesSK 03:30, 9 April 2008 (CEST)
At this time there seems to be more success with the manual process, than with the automatic process. --BonesSK 03:30, 9 April 2008 (CEST)
Download the script.
scp -1 -r ~/Desktop/AppleTVUpdate/afpinstall.sh frontrow@AppleTV.local:~
sudo sh afpinstall.sh
Because the sed command wasn't working, we'll just create out own hostconfig file.
Create a text file with the following contents:
AFPSERVER=-YES- AUTHSERVER=-NO- AUTOMOUNT=-YES- CUPS=-AUTOMATIC- NFSLOCKS=-AUTOMATIC- NISDOMAIN=-NO- TIMESYNC=-YES- QTSSERVER=-NO- WEBSERVER=-NO- SMBSERVER=-NO- SNMPSERVER=-NO- SPOTLIGHT=-YES-
Name it "hostconfig" (no quotes, no extension) and place it in your AppleTVUpdate folder on your desktop.
scp -1 -r ~/Desktop/AppleTVUpdate/hostconfig frontrow@AppleTV.local:~
For Apple TV v1.0 - Out of the box
(Must be a AppleTV Version1.0 Factory box to work - if yours came with 1.1 or 2.0 pre-installed, you may need to do the steps 15 lines below):
sudo mount -uw / sudo touch /.readwrite cd ~ sudo dd if=/dev/disk0s2 of=recovery.dmg bs=1m hdiutil mount recovery.dmg hdiutil attach -owners on /Volumes/Recovery/OS.dmg sudo cp -pRvn /Volumes/OSBoot\ 1/* / echo -ne 'Installing the Filesystem Extensions...\n' sudo ln -s /System/Library/Filesystems/AppleShare/afpfs.kext /System/Library/Filesystems/afpfs.fs echo -ne 'Installing into /usr/sbin...\n' sudo ln -s /System/Library/CoreServices/AppleFileServer.app/Contents/MacOS/AppleFileServer /usr/sbin/AppleFileServer echo -ne 'Updating /etc/hostconfig to start AFP at boot...\n' echo -en 'AFPSERVER=-YES-\nAUTHSERVER=-NO-\nAUTOMOUNT=-YES-\nCUPS=-AUTOMATIC-\nNFSLOCKS=-AUTOMATIC-\nNISDOMAIN=-NO-\nTIMESYNC=-YES-\nQTSSERVER=-NO-\nWEBSERVER=-NO-\nSMBSERVER=-NO-\nSNMPSERVER=-NO-\nSPOTLIGHT=-YES-' sudo mv hostconfig /etc/hostconfig sudo chown root:wheel /etc/hostconfig echo -ne 'Done!\n'
For Apple TV v1.1 or later - Out of the box
If you have a recovery partition of 1.1 or later, look for OS.dmg from a factory 1.0 AppleTV (find a friend with one) and copy it into the same folder as afpinstall.sh and comment out these:
cd ~ sudo dd if=/dev/disk0s2 of=recovery.dmg bs=1m sudo hdiutil mount recovery.dmg
Make sure the path to OS.dmg is correct, then run sudo sh afpinstall.sh
--Yargok 18:49, 5 March 2008 (CET) Does anyone have a similar procedure for those who have a recovery partition of 1.1?
--pheno 14:20, 12 March 2008 (CET) Please note if you will use the command "sudo cp -pRvn /Volumes/OSBoot\ 1/* /" to run aftwards "/usr/sbin/diskutil repairPermissions" --Elchubi 09:10, 6 April 2008 (CEST) With the "owners on" flag when attaching the OS.dmg, the repairPermissions it is no longer required. Take 2 plus all the 1.0 files ! :)
6) Reboot AppleTV
7) Install USB
- Download Take 2 DMG and mount it. If you are using 2.0.1 then Download 2.0.1 DMG
- Download the kernel patcher for intel mac (or follow similar steps using kernel patcher for windows), and extract the three files into a folder
- Copy the file mach_kernel.prelink from the mounted image (it is in the root directory) and place it in the same folder as the kernel patcher files you just extracted.
- Open up terminal and do the following:
cd (to the directory you have the kernel patching files) ./do_usb_patch.sh
--Bloo 08:49, 9 March 2008 (CET) Running ./prelink_tool -d mach_kernel.prelink mach_kernel_patched.bin fails with: Bus error.. thoughts?
--blues 08:46, 16 March 2008 (CET) Problem occurs because of binary incompatibility with the tools. One solution is to recompile source on your system.
--topshotta 17:09, 19 April 2008 (EST) If you don't have a recovery dmg see iClarified for instructions. Works for 2.0.2 as well.
2.0.1 Note: the offsets have changed in the 2.0.1 prelink, thanks to some notes from jphelp32 on the forum the following will be sufficient changes to the do_usb_patch.sh script
# # ==== patch the decompressed kernel # echo ======== patch kernel ========= ./poke mach_kernel_patched.bin 0x52055e 0x75:0x75 0x34:0x30 if [ $? -ne 0 ]; then exit 1; fi ./poke mach_kernel_patched.bin 0x52123E 0x75:0x75 0x34:0x30 if [ $? -ne 0 ]; then exit 1; fi ./poke mach_kernel_patched.bin 0x520576 0x75:0x75 0x1c:0x18 if [ $? -ne 0 ]; then exit 1; fi ./poke mach_kernel_patched.bin 0x521256 0x75:0x75 0x1c:0x18 if [ $? -ne 0 ]; then exit 1; fi
The 2.0.1 patch is tested and works! --Nito 12:28, 1 April 2008 (CEST)
I also tried it on 2.0.2 and it works. --FCorthay
Once the kernel is patched, rename it to mach_kernel.prelink and place it in your AppleTVUpdate folder on your desktop
scp -1 -r ~/Desktop/AppleTVUpdate/mach_kernel.prelink frontrow@AppleTV.local:~ scp -1 -r ~/Desktop/AppleTVUpdate/turbo_kext_enabler.bin frontrow@AppleTV.local:~ scp -1 -r ~/Desktop/AppleTVUpdate/IOUSBMassStorageClass.kext frontrow@AppleTV.local:~ scp -1 -r ~/Desktop/AppleTVUpdate/smbfs.kext frontrow@AppleTV.local:~ scp -1 -r ~/Desktop/AppleTVUpdate/udf.kext frontrow@AppleTV.local:~ scp -1 -r ~/Desktop/AppleTVUpdate/msdosfs.kext frontrow@AppleTV.local:~ scp -1 -r ~/Desktop/AppleTVUpdate/ntfs.kext frontrow@AppleTV.local:~ scp -1 -r ~/Desktop/AppleTVUpdate/IOStorageFamily.kext frontrow@AppleTV.local:~ scp -1 -r ~/Desktop/AppleTVUpdate/IOSCSIArchitectureModelFamily.kext frontrow@AppleTV.local:~
sudo mv /mach_kernel.prelink /mach_kernel.prelink.bak sudo mv ~/mach_kernel.prelink /mach_kernel.prelink sudo mv ~/turbo_kext_enabler.bin /sbin/ sudo mv ~/IOUSBMassStorageClass.kext /System/Library/Extensions/ sudo mv ~/smbfs.kext /System/Library/Extensions/ sudo mv ~/udf.kext /System/Library/Extensions/ sudo mv ~/msdosfs.kext /System/Library/Extensions/ sudo mv ~/ntfs.kext /System/Library/Extensions/ sudo mv ~/IOStorageFamily.kext /System/Library/Extensions/ sudo mv ~/IOSCSIArchitectureModelFamily.kext /System/Library/Extensions/ sudo chown -R root:wheel /System/Library/Extensions/*.kext sudo chmod -R 755 /System/Library/Extensions/*.kext sudo chmod 755 /sbin/turbo_kext_enabler.bin sudo defaults write /Library/Preferences/SystemConfiguration/autodiskmount AutomountDisksWithoutUserLogin -bool true
8) Install MacFUSE/sshfs
This will allow you to access appletv files from your mac. If you have an external hard disk, instead of attaching it to your machine, attach it to your apple tv. Your apple tv can access the media and your laptop can access the files wirelessly from anywhere. Also avoids using the command line and good for copying files back to your laptop from your apple tv.
One problem with Take 2 is that installing kerberos is a big pain, so you always need to use ssh v1. To make sure sshfs understands this, edit your ~/.ssh/config (or create it) and add
Host appletv.local HostName appletv.local User frontrow Protocol 1
After that, you can run sshfs and in connect dialog, put in hostname as AppleTV.local, password as frontrow. I put in the optional root dir as / but you can leave it empty and it will default to the home dir on apple tv.
9) Install mount_smbfs
scp -1 -r ~/Desktop/AppleTVUpdate/mount_smbfs frontrow@AppleTV.local:~
sudo mv ~/mount_smbfs /sbin/ sudo chown root:wheel /sbin/mount_smbfs sudo chmod +s /sbin/mount_smbfs
10) Create rc.local
Create a text file with the following contents:
# rc.local # enable USB /sbin/turbo_kext_enabler.bin /sbin/kextload -v /System/Library/Extensions/IOUSBMassStorageClass.kext /sbin/kextload -v /System/Library/Extensions/smbfs.kext /sbin/kextload -v /System/Library/Extensions/udf.kext /sbin/kextload -v /System/Library/Extensions/msdosfs.kext /sbin/kextload -v /System/Library/Extensions/ntfs.kext # enable cron /usr/sbin/cron
Name it "rc.local" (no quotes) and place it in your AppleTVUpdate folder on your desktop.
scp -1 -r ~/Desktop/AppleTVUpdate/rc.local frontrow@AppleTV.local:~ scp -1 /usr/bin/crontab frontrow@AppleTV.local:~ scp -1 /usr/bin/nano frontrow@AppleTV.local:~ scp -1 /usr/sbin/cron frontrow@AppleTV.local:~
sudo mv ~/rc.local /etc/ sudo chown root:wheel /etc/rc.local sudo mv ~/crontab /usr/bin sudo mv ~/nano /usr/bin sudo mv ~/cron /usr/sbin sudo chown root:wheel /usr/bin/crontab sudo chown root:wheel /usr/bin/nano sudo chown root:wheel /usr/sbin/cron sudo chmod 4555 /usr/bin/crontab sudo chmod 555 /usr/bin/nano sudo chmod 555 /usr/sbin/cron
11) Enable VNC
echo 71463E00FFDAAA95FF1C39567390ADCA > /Library/Preferences/com.apple.VNCSettings.txt
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart \ -configure -clientopts -setvnclegacy -vnclegacy yes
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart \ -activate -configure -access -on -users frontrow -privs -all -restart -agent -menu
--PatentBoy 01:15, 28 March 2008 (CET) Where can I grab the ARDAgent.app? From Tiger or Leopard install, for example?
--Kheops 18:22, 28 March 2008 (GMT+7) You can copy the RemoteManagement folder from the recovery.dmg:
sudo mount -uw / sudo touch /.readwrite cd ~ sudo dd if=/dev/disk0s2 of=recovery.dmg bs=1m sudo hdiutil mount recovery.dmg sudo hdiutil mount /Volumes/Recovery/OS.dmg sudo cp -pr /Volumes/OSBoot\ 1/System/Library/CoreServices/RemoteManagement/ /System/Library/CoreServices/RemoteManagement/ sudo cp -pr /Volumes/OSBoot\ 1/System/Library/Perl/ /System/Library/Perl/ sudo cp -pr /System/Library/Perl/Extras/5.8.6/ /System/Library/Perl/5.8.6/
Then you will be able to run the 'kickstart' commands above, but still I didn't succeed to connect (the ARDAgent is running, but I have "connection refused(16001)" from my VNC client
--Jzahn 18:33, 12 April 2008 (CEST)I managed to run vnc on 2.0.1 by just throwing: ssh /System/Library/CoreServices/AppleVNCServer.bundle/Contents/MacOS/AppleVNCServer
Oh, yes, and starting it also helps: /System/Library/CoreServices/RemoteManagement/AppleVNCServer.bundle/Contents/MacOS/AppleVNCServer
12) Disable Updates
To prevent future updates from breaking your custom Apple TV don't forget to add the Apple update site to your hosts file as a loop back:
a) on AppleTV
sudo bash -c 'echo "127.0.0.1 mesu.apple.com" >> /etc/hosts'
13) Reboot the AppleTV
a) on AppleTV
--Elchubi 09:55, 6 April 2008 (CEST) Success! Watchdog is on the kernel... Just replace /mach_kernel.prelink with the one from 1.0 and follow the same steps from that version. Some things stop working like AirTunes, so it is a tradeoff
At this point your AppleTV should come back up with full 1080i/1080p support, AirTunes working, HD Rentals working, AFP running, USB working (and the drive should automount), ATVFiles should be running, and ssh should be working. You can access your apple tv from your laptop just like some other shared disk.