InfiniteMac OSx86

InfiniteMac OSx86 (http://infinitemac.com/forum.php)
-   10.X (http://infinitemac.com/forumdisplay.php?f=36)
-   -   Booting the AppleTV OS on a generic PC - Discussion (http://infinitemac.com/showthread.php?t=2738)

NebKiwi 05-01-2009 06:12 PM

Booting the AppleTV OS on a generic PC - Discussion
 
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

Quote:

Originally Posted by NebKiwi (Post 25637)
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

Quote:

Originally Posted by andyvand (Post 25852)
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

Quote:

Originally Posted by NebKiwi (Post 25853)
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

Quote:

Originally Posted by naquaada (Post 25857)
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

Quote:

Originally Posted by NebKiwi (Post 25637)
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...