Jump to content

NVIDIA's ION Platform and OS X


275 posts in this topic

Recommended Posts

I'm sitting on two Revo R1600s in my office I could use for testing. I just don't have the time to read through all of these threads to figure out how to get OSX on it.

 

If the community need me to test, I need to be pointed in the right direction on this. Its not a priority for me (I prefer Ubuntu) but I love tinkering.

 

I'll be getting four of the dual core Atoms in the office around November 15th. I can also try those if needed.

 

If you feel that way then personaly then i feel we can do without your help.. we dont want to a load on your time.. But as i say that is just me... and i would rater buy a revo r1600 then to help a guy that dont feel he have the time to do a little him self and really dont want to install osx..

Link to comment
Share on other sites

I agree that a separate thread will be neat. Where is your new thread?

 

wrc4, could you please upload your dsdt, smbios.plist and nvidia.rom files somewhere?..

shoarthing has removed all the links to the files... (or, shoarthing, re-upload the files, please?..)

 

if I understand correctly, in order to install OS X 10.6.0 on IONITX board, one needs the following:

 

* partition your HDD (GUID partition scheme)

* get and install chameleon 2.0-rc3

* get updated /boot from PCEFI 10.5

* place fakesmc, disabler (or NullCPUPowerManagement - are they the same?), OpenHaltRestart to /Extra/Extensions

(PlatformUUID or UUID.kext should be installed after you get a working installation of OS X and generate the UUID, otherwise system may hang-up during start-up)

* set the following chameleon options:

GraphicsEnabler=yes, EthernetBuiltIn=yes, VBIOS=yes, VideoROM=/Extra/NVIDIA.ROM

(NvidiaRom is NOT necessary, shoarthing recommends UHCIreset=n, ForceWake=n, ForceHPET=n, EHCIacquire=n, but I don't know why)

* BIOS settings: AHCI, Legacy USB disable (this will disable usb keyboard!), HyperThreading disabled

* it might be necessary to boot with cpus=2 or cpus=1 before DSDT is fixed

* put dsdt, smbios and nvidia.rom to /Extra

 

What fixes are required in DSDT?

 

P.S.

There is at least one strange problem with my IONITX board. After playing with USB settings in BIOS it may refuse to boot -any- OS (including Windows). The system simply locks up. The solution is to load fail-safe values and restore your preferred BIOS settings manually. (Seems to be a BIOS bug).

Link to comment
Share on other sites

wrc4, could you please upload your dsdt, smbios.plist and nvidia.rom files somewhere?..

shoarthing has removed all the links to the files... (or, shoarthing, re-upload the files, please?..)

 

if I understand correctly, in order to install OS X 10.6.0 on IONITX board, one needs the following:

 

* partition your HDD (GUID partition scheme)

* get and install chameleon 2.0-rc3

* get updated /boot from PCEFI 10.5

* place fakesmc, disabler (or NullCPUPowerManagement - are they the same?), OpenHaltRestart to /Extra/Extensions

(PlatformUUID or UUID.kext should be installed after you get a working installation of OS X and generate the UUID, otherwise system may hang-up during start-up)

* set the following chameleon options:

GraphicsEnabler=yes, EthernetBuiltIn=yes, VBIOS=yes, VideoROM=/Extra/NVIDIA.ROM

(NvidiaRom is NOT necessary, shoarthing recommends UHCIreset=n, ForceWake=n, ForceHPET=n, EHCIacquire=n, but I don't know why)

* BIOS settings: AHCI, Legacy USB disable (this will disable usb keyboard!), HyperThreading disabled

* it might be necessary to boot with cpus=2 or cpus=1 before DSDT is fixed

* put dsdt, smbios and nvidia.rom to /Extra

 

What fixes are required in DSDT?

 

P.S.

There is at least one strange problem with my IONITX board. After playing with USB settings in BIOS it may refuse to boot -any- OS (including Windows). The system simply locks up. The solution is to load fail-safe values and restore your preferred BIOS settings manually. (Seems to be a BIOS bug).

 

You just cant enable USB 2.0 i have the same lockup... And zotac say it is not true there is no problem... look i have a link to a post i did on the zotac forum about the usb problem

Link to comment
Share on other sites

Would shoarthings guide to Hackintosh a Asrock ION 330 work on a Acer Aspire Revo?

 

I have been working on getting the Snow Leopard DVD image to boot on my Revo however I'm getting chipset problems as it get's stuck on still waiting for root device. The problem is, Snow Leopard should already have the MCP79 drivers. I will try shoarthing's method of doing a flat install from another PC at some point but I fear the same problem will still be present.

 

What I can tell you is, HyperThreading needs to be disabled. And I assume AHCI needs to be enabled however this makes no difference currently. Don't forget fakesmc and Disabler too.

Link to comment
Share on other sites

I have been working on getting the Snow Leopard DVD image to boot on my Revo however I'm getting chipset problems as it get's stuck on still waiting for root device. The problem is, Snow Leopard should already have the MCP79 drivers. I will try shoarthing's method of doing a flat install from another PC at some point but I fear the same problem will still be present.

 

What I can tell you is, HyperThreading needs to be disabled. And I assume AHCI needs to be enabled however this makes no difference currently. Don't forget fakesmc and Disabler too.

 

It's worth a try.

Link to comment
Share on other sites

On my project, I won't be using the HDMI output at all, but, I am trying to use two monitors. If I have my 15 lcd connected to the DVI out, boot up, and then while booted, connect my 15 crt and then hit detect screens, nothing comes up on the crt, and the lcd goes blank. I'd like to try a vga rom from a real mac with the geforce 9400 and see if that fixes this, but I don't know how to get one, and I can't find them anywhere online.

Link to comment
Share on other sites

On my project, I won't be using the HDMI output at all, but, I am trying to use two monitors. If I have my 15 lcd connected to the DVI out, boot up, and then while booted, connect my 15 crt and then hit detect screens, nothing comes up on the crt, and the lcd goes blank. I'd like to try a vga rom from a real mac with the geforce 9400 and see if that fixes this, but I don't know how to get one, and I can't find them anywhere online.

 

 

Well first of all mac roms from the models with 9400 are in the efi updates.

But you need to know this... the mac version dont have the same outputs as the pc versions on the zotac motherboard.

so a mac rom might or might not work.

Link to comment
Share on other sites

Has anyone found Shoarthing's Zotac guide? Did he make it yet? I was really looking forward to getting this going. I've pieced some of it together myself, but I don't think it's close to what he had going. The dude is obviously amazingly talented, I just wish he hadn't taken everything down before he made the guide and stuff.

 

Well first of all mac roms from the models with 9400 are in the efi updates.

But you need to know this... the mac version dont have the same outputs as the pc versions on the zotac motherboard.

so a mac rom might or might not work.

 

Oh, right. Well, after playing around with it some more it seems like it's not letting me do dual screens. So I guess when I start with just the lcd on the dvi port, and then hot plug the crt into the vga port, it switches over to the crt and kills the signal on the lcd. The CRT I want to use is a weird one and only supports one refresh rate for each resolution, and the ion has no way of knowing this, so it sends one that it can't understand. My solution was to hook up a better crt, set it to the right setting, and then plug the other one back in. That worked, but I still can't get dual screens.

Link to comment
Share on other sites

I have been working on getting the Snow Leopard DVD image to boot on my Revo however I'm getting chipset problems as it get's stuck on still waiting for root device. The problem is, Snow Leopard should already have the MCP79 drivers. I will try shoarthing's method of doing a flat install from another PC at some point but I fear the same problem will still be present.

 

What I can tell you is, HyperThreading needs to be disabled. And I assume AHCI needs to be enabled however this makes no difference currently. Don't forget fakesmc and Disabler too.

 

 

Having the same problem here. Acer Revo 3610 with Atom 330. Setting the SATA to IDE mode allows my SL install DVD (on usb stick with the latest MyHackInstaller) to boot, however no SATA devices show in Disk Utility. Setting SATA to AHCI just gives me the no smoking sign without booting to the installer. Booting in verbose in both shows that SL cannot find the root device.

Link to comment
Share on other sites

wrc4, could you please upload your dsdt, smbios.plist and nvidia.rom files somewhere?..

shoarthing has removed all the links to the files... (or, shoarthing, re-upload the files, please?..)

 

if I understand correctly, in order to install OS X 10.6.0 on IONITX board, one needs the following:

 

* partition your HDD (GUID partition scheme)

* get and install chameleon 2.0-rc3

* get updated /boot from PCEFI 10.5

* place fakesmc, disabler (or NullCPUPowerManagement - are they the same?), OpenHaltRestart to /Extra/Extensions

(PlatformUUID or UUID.kext should be installed after you get a working installation of OS X and generate the UUID, otherwise system may hang-up during start-up)

* set the following chameleon options:

GraphicsEnabler=yes, EthernetBuiltIn=yes, VBIOS=yes, VideoROM=/Extra/NVIDIA.ROM

(NvidiaRom is NOT necessary, shoarthing recommends UHCIreset=n, ForceWake=n, ForceHPET=n, EHCIacquire=n, but I don't know why)

* BIOS settings: AHCI, Legacy USB disable (this will disable usb keyboard!), HyperThreading disabled

* it might be necessary to boot with cpus=2 or cpus=1 before DSDT is fixed

* put dsdt, smbios and nvidia.rom to /Extra

 

What fixes are required in DSDT?

 

P.S.

There is at least one strange problem with my IONITX board. After playing with USB settings in BIOS it may refuse to boot -any- OS (including Windows). The system simply locks up. The solution is to load fail-safe values and restore your preferred BIOS settings manually. (Seems to be a BIOS bug).

 

Hi eugene k2,

 

I think you've got everything right. (at least that's how I've done it). Here is the modified DSDT for Zotac IONITX A-U board. It includes the original mods that shoarthing did for me plus the Video hack he mentioned in a later post. My smbios.plist file is grabbed from the Internet, so anything you can find through a google search should work.

 

DSDT.aml.zip

 

EDIT: I really don't know much about DSDT. If this doesn't work, you probably need to extract your own DSDT from a Linux distro and apply the changes by hand.

Link to comment
Share on other sites

Hi eugene k2,

 

I think you've got everything right. (at least that's how I've done it). Here is the modified DSDT for Zotac IONITX A-U board. It includes the original mods that shoarthing did for me plus the Video hack he mentioned in a later post. My smbios.plist file is grabbed from the Internet, so anything you can find through a google search should work.

 

DSDT.aml.zip

 

EDIT: I really don't know much about DSDT. If this doesn't work, you probably need to extract your own DSDT from a Linux distro and apply the changes by hand.

 

@wrc4, thanks man! I opened your dsdt in bbedit and compared it with mine and just put in the differences that seemed important. I'll have to try it either tonight or tomorrow. Maybe it will fix my dual screen issue as well. It seems like the dsdt for the IONITX-A-U board and the D-E are identical though.

Link to comment
Share on other sites

Okay, well, wrc4's dsdt helped me out a bit. I got sound working. I still had video problems when trying to use the VGA and DVI output. I realized it was because of the NVCAP after I tried using only and EFI string that had a different NVCAP. Using Shoarthing's suggested GE enabled with VBIOS, and his DSDT mod, I had this NVCAP: 04000100000003000c0000000000000a00000000, which is the same as the one koiau had earlier. With the EFI string, I had 0400000000000100060000000000000000000000, which worked great, but CI didn't work. I tried modding that NVCAP into my dsdt, and it was closer, but it still didn't really work. It would detect both screens in System Profiler, but still only one would show video. I also tried the NVCAP Utility, which gets the NVCAP from the vga bios, and it gave me this: 0400000000000100020000000000000700000000, but that had about the same effect. So, I need to know what NVCAP to use in my DSDT, and then I should be good to go. Or, if someone knows how I can use the EFI string and get CI working with it, that would work too.

Link to comment
Share on other sites

Does anyone know how to grab the Video ROM from a motherboard in general?

 

I downloaded the bios for the motherboard, and then used this ami bios editing tool to extract it. I had to guess which part it was as there were three pci bios files, none were labeled vga or anything like that, but I figured it was the one that was 64k in size and I was right.

 

BTW, I got my dual screens working now with full QE and CI. I went into the Zotac Wifi 9300 Guide + Studio thread and found MiniHack's post on getting the video working on there, and copied the dsdt graphics code from his pdf into the igpu scope section that Shoarthing suggested. I'm actually not even using the vga.rom either and it's working great. Just add the code below to the "Scope (IXVE.IGPU)" section.

 

Method (_DSM, 4, NotSerialized)
		{
			Store (Package (0x16)
				{
		"@0,compatible",
		Buffer (0x0B)
		{
			"NVDA,NVMac"
		},

		"@0,device_type",
		Buffer (0x08)
		{
			"display"
		},

		"@0,name",
		Buffer (0x0F)
		{
			"NVDA,Display-A"
		},

		"@1,compatible",
		Buffer (0x0B)
		{
			"NVDA,NVMac"
		},

		"@1,device_type",
		Buffer (0x08)
		{
			"display"
		},

		"@1,name",
		Buffer (0x0F)
		{
			"NVDA,Display-B"
		},						

		"NVCAP", 
					Buffer (0x18)
					{
					   /* 0000 */	0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 
					   /* 0008 */	0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 
					   /* 0010 */	0x00, 0x00, 0x00, 0x00
					},

		"VRAM,totalsize", 
					Buffer (0x04)
					{
						0x00, 0x00, 0x00, 0x10
					}, 

		"device_type",
		Buffer (0x0D)
		{
			"NVDA,GeForce"
		},

		"model", 
					Buffer (0x11)
					{
						"NVIDIA ION 9400M"
					},

		"rom-revision",
		Buffer (0x0D)
		{
			"62.79.65.00.00"
		}
				}, Local0)
			DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
			Return (Local0)
		}

 

I still don't have sleep or shutdown, although if I leave Legacy USB on without added EHCIaquire in my boot.plist, I can still boot even though it throws the errors.

 

I also want to see if there's a way to set the refresh rate in Chameleon/PC EFI. I put 1024x768x32@75 as my Graphics Mode, but it still runs at 60Hz until the login screen. At login it switches to 75.

Link to comment
Share on other sites

After doing more research, I think if you take out the part of the dsdt mod above for the vram, then it may detect your vram setting from the bios automatically.

 

To fix my resolution issue, I tried SwitchResX, but it didn't help me remove all the resolutions that I don't want to show, so I don't think it's the answer. I'm thinking now that in Tiger PPC, there may be a display override for the iMac CRT screens in /S/L/Displays/Overrides/, so I'll check that next and see if I can copy it over to Snow Leopard and make it work.

 

For sleep and shutdown I noticed somebody (I forget who, Shoarthing maybe) mentioning that on the Asrock ION, they could sleep and shutdown without OpenHaltRestart.kext, so I'm going to try that. I'll also try SleepEnabler. It probably won't work, but since I've been able to boot even with my Legacy USB enabled in the bios, I think theres a chance.

Link to comment
Share on other sites

I downloaded the bios for the motherboard, and then used this ami bios editing tool to extract it. I had to guess which part it was as there were three pci bios files, none were labeled vga or anything like that, but I figured it was the one that was 64k in size and I was right.

 

BTW, I got my dual screens working now with full QE and CI. I went into the Zotac Wifi 9300 Guide + Studio thread and found MiniHack's post on getting the video working on there, and copied the dsdt graphics code from his pdf into the igpu scope section that Shoarthing suggested. I'm actually not even using the vga.rom either and it's working great. Just add the code below to the "Scope (IXVE.IGPU)" section.

 

Method (_DSM, 4, NotSerialized)
		{
			Store (Package (0x16)
				{
		"@0,compatible",
		Buffer (0x0B)
		{
			"NVDA,NVMac"
		},

		"@0,device_type",
		Buffer (0x08)
		{
			"display"
		},

		"@0,name",
		Buffer (0x0F)
		{
			"NVDA,Display-A"
		},

		"@1,compatible",
		Buffer (0x0B)
		{
			"NVDA,NVMac"
		},

		"@1,device_type",
		Buffer (0x08)
		{
			"display"
		},

		"@1,name",
		Buffer (0x0F)
		{
			"NVDA,Display-B"
		},						

		"NVCAP", 
					Buffer (0x18)
					{
					   /* 0000 */	0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 
					   /* 0008 */	0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 
					   /* 0010 */	0x00, 0x00, 0x00, 0x00
					},

		"VRAM,totalsize", 
					Buffer (0x04)
					{
						0x00, 0x00, 0x00, 0x10
					}, 

		"device_type",
		Buffer (0x0D)
		{
			"NVDA,GeForce"
		},

		"model", 
					Buffer (0x11)
					{
						"NVIDIA ION 9400M"
					},

		"rom-revision",
		Buffer (0x0D)
		{
			"62.79.65.00.00"
		}
				}, Local0)
			DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
			Return (Local0)
		}

 

I still don't have sleep or shutdown, although if I leave Legacy USB on without added EHCIaquire in my boot.plist, I can still boot even though it throws the errors.

 

I also want to see if there's a way to set the refresh rate in Chameleon/PC EFI. I put 1024x768x32@75 as my Graphics Mode, but it still runs at 60Hz until the login screen. At login it switches to 75.

 

Hi banini_jeque,

 

I got dual screen working (DVI & VGA) on my IONITX A-U using your DSDT mods. DVI is 1920x1080x32@60 and VGA is 1280x1024x32@60. I had to set VBIOS=No in my Boot.plist. Otherwise it will be black screen.

 

 

. . . what appears to be a working bin-hacked 10.6.2 [ie 10.2] K32 kernel has been released.

 

Have done no stress-testing as yet but looks good . . . & HTT works.

 

Thanks & kudos to 'teateam' :angel:

 

Good news! Waiting for the 64bit kernel...

 

One question: I suppose you need to use this kernel BEFORE you install 10.6.2 update, right?

Link to comment
Share on other sites

@wrc4, glad it worked. I've since commented out the VRAM,totalsize part to get autodetection, and i've added a few more things and fixes. I basically went from being a complete dsdt noob to, well, I don't know, I learned a lot the past few days anyway.

 

I want to know how to add my display to the dsdt though, or at least how I can inject properties for it. They need to show up in .../NVDA,Display-A@0/NVDA/display0/AppleDisplay.

 

I'm attaching my latest dsdt, which is error and warning free as well.

dsdt.ionitx.aml.zip

Link to comment
Share on other sites

One question: I suppose you need to use this kernel BEFORE you install 10.6.2 update, right?
. . no.

 

Before update copy 10.6.0/1 kernel to root & rename (say) as mach_10.6.0

 

Copy binhacked kernel to root as mach_10.6.2

 

chmod 644/chown root:wheel both these kernels as per usual.

 

Edit com.apple.Boot.plist to boot from mach_10.6.0

 

Restart/Check it works.

 

If it doesn't type

 

mach_kernel -v

 

. . at the Chameleon screen/prompt to get you into OSX using the untouched 10.6.0/1 kernel

 

Run the update [you'll still be booting/running with the 10.6.0 kernel]

 

Restart & check everything works with 10.6.2 & the 10.6.0/1 kernel

 

Then restart & at the Cameleon prompt/screen type:

 

mach_10.6.2 arch=i386 -v -f

 

. . check it works

 

Restart & enable HTT in the BIOS & type above flags again

 

Check it works

 

Then edit com.apple.Boot.plist to boot off mach_10.6.2 & to have (at least) the flag

 

arch=i386

 

 

. . . not only does this kernel work w/ HTT but I'm pretty sure HTT is handled differently than in 10.5.6 [& in the binhacked test7 10.6.0 kernel] - looks like SL now gets the real cores to do more work than the logical ones

 

I stress-tested the thing for 3 hours flat out doing a Handbrake encode - all fine.

Link to comment
Share on other sites

I have an Acer Revo R3610 with a dual-core 330 cpu. The Atom cpu is recognised as a C2D. \o/

 

I installed mine with Chameleon with a bootable usb stick. Installed using pfix in place of a dsdt, just to get things going. I managed it two ways:

 

First on an external USB drive. I had to set SATA to IDE mode in the bios

Secondly on an external eSATA drive. I had to set SATA to AHCI mode in the bios.

 

Things that work:

SATA and ethernet out of the box.

Sleep. Wakes on mouse movement, no need to hit the power button unlike Linux.

 

Things that sort of work:

Display. I am outputting to a TV via HDMI. It is a european HD PAL TV with 50/100MHz inbuilt, however the display defaults to 1080p NTSC 60Mhz. Any other setting results in a blue screen.

Graphics are accelerated but the gpu is not recognised as a 9400M.

 

Things that don't:

USB (only if devices plugged in at boot).

WiFi - the Atheros AR5006x card is recognised as an ethernet device, but no driver loaded. BCM4321 is on order.

Offloading of H.264 encoded media to the gpu does not seem to work, which is kind of the point of the ION platform. :(

Hyperthreading - have to disable in the bios or SL kps on boot. The single core 230 is not seemingly affected.

 

 

Kexts used to boot:

Graphics Enabler in lieu of an EFI string

AHCIPortInjector.kext

AppleIntelPIIXATA.kext (might not be needed)

fakesmc.kext

IOATAFamily.kext

LegacyAppleRTC_32bit_Only.kext (might not be needed)

NullCPUPowerManagement.kext

OpenHaltRestart.kext

PlatformUUID.kext

Sleepenabler.kext

 

Next stage is to crank out a dsdt and see how far that takes me.

Link to comment
Share on other sites

 Share

×
×
  • Create New...