View Full Version : Booting the AppleTV OS on a generic PC - Discussion
NebKiwi
05-01-2009, 06:12 PM
Right... the story is.. The AppleTV hardware is essentially a very low end Mac, it uses EFI. AppleTV software is basically Tiger (10.4.7 If I remember correctly) with a fancy GUI. I know you can install a replacement Finder or "Backrow.app" in an existing Tiger installation, but what's stopping us from booting the full blown AppleTV OS on PC hardware? Wasn't PC_EFI capable of booting tiger? I have an Image of the AppleTV OS (update DMG pulled from Apple servers :D), I am willing to do some experimentation.. input please :D
naquaada
05-01-2009, 06:24 PM
I had it on my Tiger system, I can take a look if I still have the installer. But today it isn't neccessary anymore because FrontRow 2.x looks like AppleTV. I preferred the look of the FrontRow 1.x, it was looking much cooler with the big rotating icons.
cmdshft
05-01-2009, 07:19 PM
I think it would be pretty cool to boot the actual full AppleTV Operating System.
However, I find the Frontrow 2 app to be quite bland. The UI is nice, but I think I would like a more intuitive menu and startup splash or something like the AppleTV does when you turn it on, rather than a fade out and in. The installer for Tiger doesn't work on Leopard though, which sucks.
naquaada
05-01-2009, 07:23 PM
Would be nice if it would be supported with Chameleon 2.1 as seperate operating system!
andyvand
05-04-2009, 09:22 PM
Right... the story is.. The AppleTV hardware is essentially a very low end Mac, it uses EFI. AppleTV software is basically Tiger (10.4.7 If I remember correctly) with a fancy GUI. I know you can install a replacement Finder or "Backrow.app" in an existing Tiger installation, but what's stopping us from booting the full blown AppleTV OS on PC hardware? Wasn't PC_EFI capable of booting tiger? I have an Image of the AppleTV OS (update DMG pulled from Apple servers :D), I am willing to do some experimentation.. input please :D
It is possible but you need a full image and a custom prelinked kernel...
ATV take2 is also possible (take into account that this is actually an embedded xnu 10.5.6 kernel...)
Extra kexts are also needed for HW support...
Also needed is to mod BackRow (with disc GUID inside...) and to remove the watchdog kext (or it will reboot after a very short while...)
Final step is to mod Finder.app (= BackRow.app) to patch the binary up so it will recognize the comp as being valid (branch if equal on some point replace with branch if not equal...)
For AMD there is also the need to patch up CPUIDs...
NOTE: The Finder.app from ATV OS can't be used with the keyboard as it requires an USB IrDA transceiver + Apple Remote...
There is however a workaround on this...
There is a remote emulation kext + daemon available that will let you map the 6 remote buttons to the keyboard...
As for the kernel I may be able to provide one built from my kernel sources so it will work just fine with AMD's and Intels + uses the custom dynamic linker (different build than standard Voodoo style dyld, uses different file for build...)
NebKiwi
05-04-2009, 09:26 PM
It is possible but you need a full image and a custom prelinked kernel...
ATV take2 is also possible (take into account that this is actually an embedded xnu 10.5.6 kernel...)
Extra kexts are also needed for HW support...
Also needed is to mod BackRow (with disc GUID inside...) and to remove the watchdog kext (or it will reboot after a very short while...)
Final step is to mod Finder.app (= BackRow.app) to patch the binary up so it will recognize the comp as being valid (branch if equal on some point replace with branch if not equal...)
For AMD there is also the need to patch up CPUIDs...
NOTE: The Finder.app from ATV OS can't be used with the keyboard as it requires an USB IrDA transceiver + Apple Remote...
There is however a workaround on this...
There is a remote emulation kext + daemon available that will let you map the 6 remote buttons to the keyboard...
As for the kernel I may be able to provide one built from my kernel sources so it will work just fine with AMD's and Intels + uses the custom dynamic linker (different build than standard Voodoo style dyld, uses different file for build...)
Wow, very indepth, thanks Andy.. seems a bit of a challenge then :/ No idea AppleTV OS had so much protection...
andyvand
05-04-2009, 09:36 PM
Wow, very indepth, thanks Andy.. seems a bit of a challenge then :/ No idea AppleTV OS had so much protection...
I forgot to add...
The BackRow.framework binary also needs besides GUID of the disk the /dev/diskXsY replaced with the install partitions & drive /dev/diskXsY entry...
I've known someone who has done this on a real iMac4,1 and it worked...
It can be done for hackintoshes also... no problem there...
Yet I've noticed allthough ATV take2 uses Leopard kernel the apps running on it + kexts tend to still be built for Tiger...
So you would need the Tiger versions of the kexts (best is 10.4.11...)
The IR Remote EMU I can supply (got an improved version...)
It would need to be recompiled for the Tiger SDK though... (may think of making a custom SDK entry specifically optimized for ATV take2 OS...)
It may also be possible that the patching of the Finder binary is only needed in case of running it on Mac OS X...
I believe it checks for SystemVersion.plist's OS name being set as AppleTV OS (name could be slightly different... check your dmg under /System/Library/CoreServices/SystemVersion.plist)
But even if it is needed... ht is your best friend for browsing through the references and code...
Quite easy to patch stuff up that way...
naquaada
05-04-2009, 09:40 PM
I'm using an Apple Remote by using an eHome-compatible IR receiver (f.e. from a Windows Media Center Remote) and the software mira. But that's something different. I know the IR Receiver Emulator Andy was talking of, it was neccessary to install FrontRow on a Tiger system. There also were patches that BackRow got a 'Quit' Option so that a modified Finder could be started. But I'm not sure if it's wort the effort, to get the same result build a hackintosh with a barebone hardware and add FrontRow in the login-items list. Then you also could use the Apple Remote with mira.
Oh yes, I'm remembering at these /dev/diskXsY modifcations. This had to be done with a hex editor, right? And I think the AppleTV software created a lot of folders (numbered from 00-99 or so?) in the root directory of the specified drives, was looking rather bad.
andyvand
05-04-2009, 09:51 PM
I'm using an Apple Remote by using an eHome-compatible IR receiver (f.e. from a Windows Media Center Remote) and the software mira. But that's something different. I know the IR Receiver Emulator Andy was talking of, it was neccessary to install FrontRow on a Tiger system. There also were patches that BackRow got a 'Quit' Option so that a modified Finder could be started. But I'm not sure if it's wort the effort, to get the same result build a hackintosh with a barebone hardware and add FrontRow in the login-items list. Then you also could use the Apple Remote with mira.
Oh yes, I remembered at these /dev/diskXsY modifcations. This had to be done with a hex editor, right? And as I remebered the AppleTV software created a lot of folders in the main root directory, looked rather nasty.
I don't think mira will work as it tends to map the remotes functions directly down to the functions being used and not the actual Apple remote IR conversion...
The other option is thus to mod the Finder.app also replacing BRFullScreenRenderer with BRWindowRenderer (to be able to switch with the keyboard to the OS with Apple key + tab)
Still you also need the Remote Emu daemon running to be able to use the interface...
I once made six little apps (1 for each button) which I mapped for the AppleTV.app with some tool which allows you to assign mouse functions for apps (mapping each mouse button needed to the proper button... needs 6 buttons on the mouse though...)
The apps where rather simpel... they just send the proper sysctl action to the proper kern. etc... function.
This way when the app is running one can use it with the mouse... (and it doesn't interfere with normal operations so the background daemon for the keyboard mappings isn't needed then...)
I tested this succesfully at the time on an AMD PC running Tiger 10.4.11
andyvand
05-04-2009, 09:52 PM
Wasn't PC_EFI capable of booting tiger?
Any EFI enabled booter should do...
Chameleon V2 would work like a charm without any problems at all...
andyvand
05-04-2009, 10:15 PM
If you think about making a custom AppleTV take2 OS for PC I'm willing to rebuild the kernel set for embedded AppleTV style parts...
Mac OS X 10.4.11 install DVD I don't have anymore though so it will be hard to prelink the needed drivers into the kernel... (for mach_kernel.prelink)
But I suppose I could use a combo update for 10.4.11 for some of those...
Let me know...
NebKiwi
05-04-2009, 10:18 PM
If you think about making a custom AppleTV take2 OS for PC I'm willing to rebuild the kernel set for embedded AppleTV style parts...
Mac OS X 10.4.11 install DVD I don't have anymore though so it will be hard to prelink the needed drivers into the kernel... (for mach_kernel.prelink)
But I suppose I could use a combo update for 10.4.11 for some of those...
Let me know...
I would love to work on a project like this, but I severely lack the technical to know how to do it, I mean I know how Mac OS X works, fairly decent knowledge with UNIX and OSx86 in general... So, if anyone does want to work on this I would be more than happy to help in any way that I can, need a good project for the summer anyway. Living in a village in the middle of nowhere is just boring!
andyvand
05-04-2009, 10:32 PM
I would love to work on a project like this, but I severely lack the technical to know how to do it, I mean I know how Mac OS X works, fairly decent knowledge with UNIX and OSx86 in general... So, if anyone does want to work on this I would be more than happy to help in any way that I can, need a good project for the summer anyway. Living in a village in the middle of nowhere is just boring!
OK I'll slightly mod the kernel build procedure then to enable building of an embedded style kernel for AppleTV OS take2 with custom dynamic linker...
You could afterwards prelink the needed parts (kexts and drivers) into the mach_kernel (hereby creating mach_kernel.prelink)
I'll also recompile the needed IR Remote Emulator for Tiger...
I'll send both to you after I'm done with each (still have a lot of work though... but I'll get to this tomorrow...)
NebKiwi
05-04-2009, 10:47 PM
OK I'll slightly mod the kernel build procedure then to enable building of an embedded style kernel for AppleTV OS take2 with custom dynamic linker...
You could afterwards prelink the needed parts (kexts and drivers) into the mach_kernel (hereby creating mach_kernel.prelink)
I'll also recompile the needed IR Remote Emulator for Tiger...
I'll send both to you after I'm done with each (still have a lot of work though... but I'll get to this tomorrow...)
Andy, you are amazing. Seriously, thankyou so much! you're very kind. Who else is onboard? any ultra-geek OSx86 types with time to spare?
NebKiwi
05-05-2009, 03:41 PM
OK, I have a full system image (2.3.1) and restored to a designated partition. All ready to go :)
andyvand
05-05-2009, 04:48 PM
OK, I have a full system image (2.3.1) and restored to a designated partition. All ready to go :)
lol to quote M$ fool Ballmer...
Developers, developers, developers...
andyvand
05-07-2009, 06:40 PM
OK... I have got some free time on my hands and I'm starting to update the sources to create the proper kernel...
Post after completion...
andyvand
05-07-2009, 09:51 PM
Making great progress here...
Had to create a custom SDK to build dyld though...
Work continues...
NebKiwi
05-07-2009, 09:55 PM
Making great progress here...
Had to create a custom SDK to build dyld though...
Work continues...
W00T.. Thankyou for doing this!
andyvand
05-07-2009, 11:06 PM
W00T.. Thankyou for doing this!
OK... custom AppleTV dyld builds (i386 only...)
The kernel is building as we speak...
I think I'll have one very soon...
naquaada
05-07-2009, 11:23 PM
What about drivers for gfx, sound, chipset, WLAN, AMD support... I can imagine especially gfx is problematic if AppleTV is still Tiger-based and newer cards are only supported in Leopard.
andyvand
05-07-2009, 11:41 PM
No it won't be...
It is a Leopard kernel built for AppleTV (unlike the standard 792.XXX.XXX kernels for AppleTV)
It will support also the newer kexts and run the rest perfectly...
The other kexts will work (because of compatibility) and the rest will run perfectly as well...
andyvand
05-07-2009, 11:42 PM
Without further delay I announce:
The AppleTV OS kernel...
Get it from:
http://rapidshare.com/files/230399705/AppleTV_Kernel.zip
NebKiwi
05-08-2009, 12:29 PM
I will try it as soon as I get home! At college at the moment. Thanks Andy,
Without further delay I announce:
The AppleTV OS kernel...
Get it from:
http://rapidshare.com/files/230399705/AppleTV_Kernel.zip
andyvand
05-08-2009, 06:55 PM
I will try it as soon as I get home! At college at the moment. Thanks Andy,
No problem... ;)
cmdshft
05-08-2009, 07:34 PM
If this get's AppleTV to run on your machine, PLEASE let us all know exactly how you get it to run. This is epic if it works.
naquaada
05-08-2009, 08:52 PM
Maybe you should add a modded version: AndyTV :D
If anyone has a suitable installer this would be great. Do you think it would work from an USB stick or an USB harddisk?
NebKiwi
05-08-2009, 10:30 PM
Maybe you should add a modded version: AndyTV :D
If anyone has a suitable installer this would be great. Do you think it would work from an USB stick or an USB harddisk?
I think the plan is to build it into a pkg and add it to a Leopard DVD, to make a modified installer.. once its up and running that is..
andyvand
05-10-2009, 12:39 AM
I think the plan is to build it into a pkg and add it to a Leopard DVD, to make a modified installer.. once its up and running that is..
How are the tests progressing?
Any luck on making it boot properly?
NebKiwi
05-10-2009, 12:44 AM
How are the tests progressing?
Any luck on making it boot properly?
Hey Andy, I'm off to bed now.. exhausted! Will be having a play tomorrow :) If I can get this damn prelinked kernel working.. Will see how far I can get by just putting kexts in /S/L/E..
Laters, will keep you informed.
NebKiwi
05-10-2009, 04:27 PM
Hey everyone, would really appreciate any volunteers willing to help with this.. Anyone with a few GB's to spare? The OS is booting fine in initial stages but getting some minor errors which we think is just my hardware. PM me if your interested. Thanks.
milanca
05-10-2009, 10:54 PM
i could try it, to boot from external usb hdd, or usb stick.. if 2gb isn't enough then usd hdd will work, plenty of room there.
andyvand
05-10-2009, 11:08 PM
i could try it, to boot from external usb hdd, or usb stick.. if 2gb isn't enough then usd hdd will work, plenty of room there.
2 GB should suffise... (for small part)
Probably needs to be set up as GUID with the same GUIDs as the AppleTV (4 partitions, check the awkward tv wiki for using external HDD... the partition guide should work)
milanca
05-10-2009, 11:16 PM
Ok Andy, thanks.. I have one usb hdd which is totally empty, so i can partition the drive as i want with no worries about the data. PM me with the info and i can test it on my rigs.
pαuℓzurrr.
05-17-2009, 01:39 PM
I would like to test this too..
But i got a AMD system. Will this AppleTV kernel work on a AMD system?
And how would one configure all this?
Just dump AppletTV OS on a HDD, replace kernel, add needed kext's and boot it?
Thnx!
NebKiwi
05-17-2009, 07:34 PM
Download the image direct from Apple's servers ;) Click Me. (http://mesu.apple.com/data/OS/061-5816.20090224.At23V/2Z694-5587-18.dmg)
Switch the kernel with the one in the thread that Andy posted and copy over all the default Leopard kexts, obviously using System.kext and IPFirewall.kext from Andy's package. Delete the watchdog kext which is in the extensions folder by default. Apply permissions and attempt to boot.. basically. Have fun!
As for AMD and Intel... haven't a clue. I assume it'll work, as the kernel is based on Andy's kernel sources.
cmdshft
05-17-2009, 08:18 PM
I mounted the disk image, but I am not seeing the watchdog kext. Is there any other info or procedure needed? I'd really like to play with this.
EDIT: Nevermind, I see it. So basically, just copy over the Leo kexts we use and that's it, eh? Sounds simple enough.
NebKiwi
05-17-2009, 08:31 PM
I mounted the disk image, but I am not seeing the watchdog kext. Is there any other info or procedure needed? I'd really like to play with this.
EDIT: Nevermind, I see it. So basically, just copy over the Leo kexts we use and that's it, eh? Sounds simple enough.
Pretty much yeah. Have fun with it!
alexkidd
05-18-2009, 04:31 PM
Pretty much yeah. Have fun with it!
can you post a detailed instruction on how to do it?
i've downloaded the dmg from apple site, restored it into a usb flash drive.
copy my leopard kext over osboot kext, copy and replace andy's mach_kernel, system.kext and ipfirewall.kext, deleted watchdog.
install chamoleon EFI. applied permissions...
when i boot it, it shows "error parsing plist fileloading Darwin/x86
then shows" errors encountered while starting up the computer"
pαuℓzurrr.
05-18-2009, 04:40 PM
Download the image direct from Apple's servers ;) Click Me. (http://mesu.apple.com/data/OS/061-5816.20090224.At23V/2Z694-5587-18.dmg)
Switch the kernel with the one in the thread that Andy posted and copy over all the default Leopard kexts, obviously using System.kext and IPFirewall.kext from Andy's package. Delete the watchdog kext which is in the extensions folder by default. Apply permissions and attempt to boot.. basically. Have fun!
As for AMD and Intel... haven't a clue. I assume it'll work, as the kernel is based on Andy's kernel sources.
So you got it working?
Could you maybe post some videos/pictures if so?
About to try it myself ;)
Edit:
I think i just killed my system...
Thats the second time this week xD
I made a new partition and restored the OSBoot to it.
Then i replaced all extensions, deleted watchdog, and added the AnV Apple TV Kernel.
Then when i tried to boot my system it would only show
boot0, done i believe and then reboot the pc...
I tried to remove the AppleTV partition with a DVD, but now its giving memory allocation errors when booting from the OSX hard disk...
Is it possible to restore Chameleon to the hard disk?
I was using the latest version...
Thnx!
alexkidd
05-18-2009, 05:55 PM
how do you apply the permission of the kext added to the osboot extensions folder?
pαuℓzurrr.
05-18-2009, 09:47 PM
So you got it working?
Could you maybe post some videos/pictures if so?
About to try it myself ;)
Edit:
I think i just killed my system...
Thats the second time this week xD
I made a new partition and restored the OSBoot to it.
Then i replaced all extensions, deleted watchdog, and added the AnV Apple TV Kernel.
Then when i tried to boot my system it would only show
boot0, done i believe and then reboot the pc...
I tried to remove the AppleTV partition with a DVD, but now its giving memory allocation errors when booting from the OSX hard disk...
Is it possible to restore Chameleon to the hard disk?
I was using the latest version...
Thnx!
Please someone?
I installed OSX to a usb partition, i am able to access the hard drive, but it doesn't wanna mount the main partition! Its giving an error that i need to run First Aid on it, but when i do that i get this error:
Verifying volumes "disk0s2"
** /dev/disk0s2
Invalid BS_jmpBoot in boot block: fa31c0
Error: File system verify or repair failed.
Can i still save my data from the hard disk?
alexkidd
05-19-2009, 01:21 PM
hi, can anyone pls tell me how to patch the appletv os finder.app?
alexkidd
05-19-2009, 07:02 PM
can any one send me a patched appletv 2.3.1 finder?
thanks
pαuℓzurrr.
05-20-2009, 04:11 PM
Well my hdd was ----ed up and i needed to write zero's to make it work again...
So warning to all, Don't Install On Same HDD as you're running install...
alexkidd
05-20-2009, 09:05 PM
ok, i've patched the appletv finder and managed to boot to the itunes pairup screen.
but i have no way of controlling it
the keyboard and mouse won't work
BlackCH
05-21-2009, 08:56 AM
ok, i've patched the appletv finder and managed to boot to the itunes pairup screen.
but i have no way of controlling it
the keyboard and mouse won't work
You need to install the remote emu by Brandon Holland:
http://www.brandon-holland.com/irkeyboardemu.html
This will allow you to control aTV with a USB keyboard
alexkidd
08-06-2009, 04:35 PM
have any one tried appletv os 2.4 ?
it seems that they have added some checks to prevent non atv hardware to sync with itunes.
hopefully someone will come out with a patch.