Jump to content
216 posts in this topic

Recommended Posts

Following DeathChill's & Maxxuss' directions gets me to the blue screen in native installed on a second HD. Using -v it seems to hang up in a different spots. Sometime it would be moiportserve crashed, DMProxy crashed, unable to establish DiskArb session, a kernel panic once in a while, or just simply /etc/rc terminated abnormally & drops to single. Re-running /etc/rc yields one of the above results.

 

There is still a good amount of HD activity once the blue screen comes up...

 

Intel 915gvwd board with a 2.8 celly (sse3)

I have a PC with a D915GUXLK motherboard (with TPM), and a 530J Pentium 4 which supports SSE3 and the NX bit. (It's also called "XD Technology.") I have both the TPM and XD Technology enabled in the BIOS. When I boot the 10.4.3 DVD, it behaves for me just like the unpatched 10.4.1 DVD did: it gets past the gray screen to the blue screen, and then I get the spinning beach ball cursor. It looks like to get past that point, whether you are using VMWare or not, we'll need a TPM patch for 10.4.3.

 

If anyone wants me to do any tests on my machine, I'll do them if I can.

 

 

 

 

It seems to be the consensus on IRC that it is the TPM and now the new NX requirement that is holding everyone back from installing it.

 

Did you mean "now the new NX requirement" or "not the new NX requirement"? Just checking since it makes a big difference. :)

Yes your correct not starting darwin.Only loading darwin/x86 and then the kexts loading into kernel space.One there done i get the panic.And its not rebundant I totaly understand that you have to ask as many times as you need to to try and get the right info to figure out why it panics on my cpu and not on one that has the DX option.

I really appreciate everything your doing to help us get this working.It looks like 10.4.3 will need patches for cpus without sse3 and also without the NX option.

 

 

Jas i bet you are still using the 10.4.1 bootfile and that's why you still get the flashram error in vmware. I was having the same problem until i decided to start fresh and redo everything from start.

 

Now i can boot up to the blue screen in vmware using maxxuss test2 kernel , then it dies there, i don't have anymouse so i dunno if vmware hardlocks or not

i've checked the logs, i can't see anything crashing the window.server.log

 

Nov 06 03:14:16 [142] Server is starting up

Nov 06 03:14:17 [142] CGXPerformInitialDisplayConfiguration

Nov 06 03:14:17 [142] Display 0x5b81c5c0: MappedDisplay Unit 0; Vendor 0x756e6b6e Model 0x717 S/N 0; online enabled (0,0)[1024 x 768], base addr 0x3008000

 

and in system.log the last line is

 

Nov 6 03:14:08 localhost mDNSResponder: Adding browse domain local.

Nov 6 03:14:13 localhost /System/Library/CoreServices/loginwindow.app/Contents/MacOS/loginwindow: Login Window Application Started

Nov 6 03:14:17 localhost kernel[0]: display: vram [f0000000:08000000]

Nov 6 03:14:24 localhost /System/Library/PrivateFrameworks/Admin.framework/Resources/UpdateSettingsTool: UpdateSettings Error: makequeues -u returned 512

I followed the small guide posted by EtherealRemnant (here)

 

Using VMware booting from the patched DVD I get to the blue screen with waiting/busy cursor.

 

My system

Celeron D 326 (2.53GHz, SSE3, XD Enabled)

Asus P5RD1-V (ATI X200 Chipset)

 

I will try a native boot later today and see how far it goes.

 

If you want me to do anymore testing given that I dont have a Intel chipset, just let me know.

I can be found on IRC (#OSx86) most of the time.

i was just trying out what i saw around... i've patched the dvd with maxxuss kernel and boot files and also to skip the sse3 check but if i boot in vmware it still hang on kernel stack fault.... also i haven't understand if the xd support is needed.

i'm sure that the files i've putted in the dvd are the right one.

anyone has got the same prob?

i was just trying out what i saw around... i've patched the dvd with maxxuss kernel and boot files and also to skip the sse3 check but if i boot in vmware it still hang on kernel stack fault.... also i haven't understand if the xd support is needed.

i'm sure that the files i've putted in the dvd are the right one.

anyone has got the same prob?

 

 

it's because the dvd doesn't read the boot file from those files you put. it reads them from the bootblock. you need to change it with an hex editor too . someone is writing a ppf patch i hear

Current state of affaires (correct me if I'm wrong):

- Intel P4 CPUs without the "No-execute" feature (DEP/NX/XD) cannot get past the boot loader, i.e. they stuck after the kexts gets loaded into kernel space.

- If applied all patches (see former postings) you get to blue screen and 100% load or whatever

- Also, the keyboard is not working under Darwin (under VMWare at least). You see this if you boot into single-user.

 

Important reminders:

- Don't copy IOATAFamily.kext from 10.4.1 to 10.4.3. It's not compatible. However the 10.4.3 supplied one works for me fine.

- Don't copy ApplePS2Controller.kext from 10.4.1 to 10.4.3. It's not compatible. That is, no keyboard and mouse support in VMWare under Darwin (but of course in the boot prompt).

 

Next steps (this is where you come in):

- Look into XD issue: I'm looking into it, as I got a notebook with old P4 (no XD).

- Compile the ApplePS2Controller.kext from the Darwin 8.3 source distribution under an DTK 10.4.3 installation with the supplied XCode installed (target platform: x86) and package it for deployment.

I think there are two ways: on a official DTK system, or in PearPC with the DTK 10.4.3 DVD installed.

 

The PearPC way should be quite easy once you've installed 10.4.3 DTK and and the supplied XCode. Just make sure you get the project settings for ApplePS2Controller right: deployment, target:x86. I have no time for this, so someone has to try this.

it's because the dvd doesn't read the boot file from those files you put. it reads them from the bootblock. you need to change it with an hex editor too . someone is writing a ppf patch i hear

 

but anyway it will notr work if i don't have the xd support right?

anyway can u fill me the hex values to edit?

thanks

- Compile the ApplePS2Controller.kext from the Darwin 8.3 source distribution under an DTK 10.4.3 installation with the supplied XCode installed (target platform: x86) and package it for deployment.

I think there are two ways: on a official DTK system, or in PearPC with the DTK 10.4.3 DVD installed.

 

 

I'm sorry, but the kext does not compile on either a real mac or DTK. Firstly most of the files reference a header in IOKit/ps2/, and since that dir doesn't exist it complicates the build. When you hack it to point to its local headers instead, it still error because of a [possibly?] deprecated call.

 

"ApplePS2Controller.cpp:284: error: converting from `void (ApplePS2Controller:*)(IOInterruptEventSource*, int)' to `void (*)(OSObject*, IOInterruptEventSource*, int)' in a kext. Use OSMemberFunctionCast() instead."

 

The actual code needed to be fixed is this:

 

_interruptSourceMouse = IOInterruptEventSource::interruptEventSource(

this, (IOInterruptEventAction) &ApplePS2Controller::interruptOccurred);

_interruptSourceKeyboard = IOInterruptEventSource::interruptEventSource(

this, (IOInterruptEventAction) &ApplePS2Controller::interruptOccurred);

_interruptSourceQueue = IOInterruptEventSource::interruptEventSource(

this, (IOInterruptEventAction) &ApplePS2Controller::processRequestQueue);

 

If someone knows a way to convert those calls to work with OSMemberFunctionCast(), then we can continue.

but anyway it will notr work if i don't have the xd support right?

anyway can u fill me the hex values to edit?

thanks

 

it will work with or without XN but the problem is that you need to replace the whole bootfile it's 50k not a single value. i didn't bother because i've installed it with booting from a 10.4.1 file disk and because someone will release a ppf patch soon

Jas i bet you are still using the 10.4.1 bootfile and that's why you still get the flashram error in vmware. I was having the same problem until i decided to start fresh and redo everything from start.

 

Now i can boot up to the blue screen in vmware using maxxuss test2 kernel , then it dies there, i don't have anymouse so i dunno if vmware hardlocks or not

Trust me I know how to patch things ;) I am using the correct files.I also patched the 10.4.3 iso with the files with the same outcome.

 

It is that my P4 does not support DX.Unless your P4 is also a non DX cpu?

 

Current state of affaires (correct me if I'm wrong):

- Intel P4 CPUs without the "No-execute" feature (DEP/NX/XD) cannot get past the boot loader, i.e. they stuck after the kexts gets loaded into kernel space.

 

Next steps (this is where you come in):

- Look into XD issue: I'm looking into it, as I got a notebook with old P4 (no XD).

 

Thanks for trying and I will look into it and see what I find

 

One Of the reasons for DX security is for buffer overflow attacks from what I have readf.Is the Kernel trowing a buffer overflow to the cpu to prevent anyone without DX from running it?

I'm in the same boat with JaS, replacing boot files with Transmac does not do anything, because files need to be replaced in the ISO not HFS portion of the image.

 

Putting the patched kernel image does nothing, as well. Still getting vmWare crash about stack kernel failure...

 

I have an idea how we could edit the image in both ISO and HFS with read/write, but it's too much trouble (need to have a Linux install working and what not).

Thanks for trying and I will look into it and see what I find

 

One Of the reasons for DX security is for buffer overflow attacks from what I have readf.Is the Kernel trowing a buffer overflow to the cpu to prevent anyone without DX from running it?

 

 

mine is amd64 not a p4 well dunno what to say i just find weird that i was having the same error until i've erased/initialized the target partition with the patched bootfile , copying the file doesn't work because it reads it from the mbr

mine is amd64 not a p4 well dunno what to say i just find weird that i was having the same error until i've erased/initialized the target partition with the patched bootfile , copying the file doesn't work because it reads it from the mbr

 

AMD64's have the ND-DX Option ;)

But I will try again.

"ApplePS2Controller.cpp:284: error: converting from `void (ApplePS2Controller:*)(IOInterruptEventSource*, int)' to `void (*)(OSObject*, IOInterruptEventSource*, int)' in a kext. Use OSMemberFunctionCast() instead."

 

If someone knows a way to convert those calls to work with OSMemberFunctionCast(), then we can continue.

The trick is simply to make the provided function static.

 

Here's an excerpt of my network driver's source code, adapt the trick to your needs:

	// Create an interrupt event source to handle hardware interrupts.
interruptSrc = IOInterruptEventSource::interruptEventSource(this,
			   (IOInterruptEventAction) &PCNET::interruptOccurred,
			   provider);
...

// Hack to provide a static method for interruptEventSource call.
// It's declared static in the header file.
void PCNET::interruptOccurred( OSObject *owner,
IOInterruptEventSource * src, int count )
{
PCNET *self = (PCNET*) owner;
self->handleInterrupt(src,count);
}

// Regular handler to be called through the static interruptOccurred
void PCNET::handleInterrupt( IOInterruptEventSource * src, int count )
{
...
}

 

The header file of my example:

	static void interruptOccurred( OSObject *owner, IOInterruptEventSource * src, int count );
...
void handleInterrupt( IOInterruptEventSource * src, int count );

The trick is simply to make the provided function static.

 

Here's an excerpt of my network driver's source code, adapt the trick to your needs:

	// Create an interrupt event source to handle hardware interrupts.
interruptSrc = IOInterruptEventSource::interruptEventSource(this,
			   (IOInterruptEventAction) &PCNET::interruptOccurred,
			   provider);
...

// Hack to provide a static method for interruptEventSource call.
// It's declared static in the header file.
void PCNET::interruptOccurred( OSObject *owner,
IOInterruptEventSource * src, int count )
{
PCNET *self = (PCNET*) owner;
self->handleInterrupt(src,count);
}

// Regular handler to be called through the static interruptOccurred
void PCNET::handleInterrupt( IOInterruptEventSource * src, int count )
{
...
}

 

The header file of my example:

	static void interruptOccurred( OSObject *owner, IOInterruptEventSource * src, int count );
...
void handleInterrupt( IOInterruptEventSource * src, int count );

 

OK, almost done. Just need to fill out

void ApplePS2Controller::handleInterrupt( IOInterruptEventSource * src, int count )

{

}

 

What do I put in there? There's no handleInterrupt method in the code at all, so I don't know what to pass it to.

What do I put in there? There's no handleInterrupt method in the code at all, so I don't know what to pass it to.

Your original call to interruptEventSource provided a argument which was a method. This is the one, it's your "handleInterrupt" equivalent.

Tell me if this works:

Many thanks for your effort!!!

Yes and no. The kext does not cause an error, however the essential parts are missing:

 

ApplePS2Controller.kext/Contents/PlugIns:

- ApplePS2Keyboard.kext

- ApplePS2Mouse.kext

- ApplePS2Trackpad.kext

 

Can you provide these, too?

 

I've got 10.4.3 DTK (8F1099) with Xcode 2.2 on my ibook installed. Can I help here?

You could try to produce the full ApplePS2Controller with the required PlugIns (see above). Mode has to be deployment and target x86. Apart from that, the IOATAFamily.kext and all its PlugIns would also be fine.

×
×
  • Create New...