Jump to content

How to boost the OS X boot process...


1,027 posts in this topic

Recommended Posts

Revolution 635: Magnificent :blowup: Well done DHP, I love the EFI reworking

 

On a more serious note, all seems to work fine here, I think BlackOSX and myself have 'similar' boards as ASUS and MSI acpi tables are usually identical for the same chipset. DB1, I hope you're up and running soon...

Link to comment
Share on other sites

LOL So my check really works. Great. Anyway. Using 64-bit addresses should not work on a 32-bit configuration. We're missing something else. I mean looking at some old posts here: scrax used Revolution 6.20 with OS X 10.6.3 so why can't he boot anymore? Is that due to my changes in boot2/drivers.c or you guys not having the MKext(s) in the right spot, or maybe SMBIOS issues?

I can't test now the last Revolution but I have revo 6.20 on another system, the P5KC in sign not the Zotac in sign that I'm using now for the test...

so to be more clear:

P5K-C --> Revolution 6.20 working good with DSDT and SSDT integrated in the bootloader

Zotac --> Revolution 365 (not yet tested, but I think that it will load now because I had the same error of blackos with the older versions)

Link to comment
Share on other sites

1.) Change ACPI_10_SUPPORT 0 into 1 (using 32-bit address space).

 

2.) In boot2/boot.c block both calls to showBootLogo (in combination with verbose boot mode) add: "execKernel-8" to the debug output, and that there's no sign of kernel activity.

Just got in and will try the adjustments.

p.s. Without a patched boot loader, mach_kernel or the two kext's you get a KP and not a hang like now. Right?

 

Correct.

 

DB1, I hope you're up and running soon...
Yeah me too.
Link to comment
Share on other sites

Thanks. Did I ask you if you can in boot safe mode with Chameleon? When not can you?

 

Update: OMG. Checked your IOREG once more and found out that both AppleEFIRuntime and AppleEFINVRAM are not even loading for you with Chameleon...

 

Not tried -x Chameleon

 

Does that point you at the problem?

 

2.) In boot2/boot.c block both calls to showBootLogo (in combination with verbose boot mode) add: "execKernel-8" to the debug output, and that there's no sign of kernel activity.

 

Sorry cannot work out what to do in boot.c (I'm no coder), please give example

Link to comment
Share on other sites

No problem. Just ignore it for now and read my last addition to my last post. That will make it drop AppleEFINVRAM.kext

 

Ok done that no noticeable difference in debug, still hang at grey screen an apple. Tried ACPI set 0 & 1

 

kextstat -l with Chameleon

    
   1   56 0          0          0          com.apple.kpi.bsd (10.6.0)
   2    4 0          0          0          com.apple.kpi.dsep (10.6.0)
   3   73 0          0          0          com.apple.kpi.iokit (10.6.0)
   4   78 0          0          0          com.apple.kpi.libkern (10.6.0)
   5   64 0          0          0          com.apple.kpi.mach (10.6.0)
   6   27 0          0          0          com.apple.kpi.private (10.6.0)
   7   46 0          0          0          com.apple.kpi.unsupported (10.6.0)
   8    0 0          0          0          com.apple.kernel.6.0 (7.9.9)
   9    0 0          0          0          com.apple.kernel.bsd (7.9.9)
  10    3 0          0          0          com.apple.kernel.iokit (7.9.9)
  11    4 0          0          0          com.apple.kernel.libkern (7.9.9)
  12    3 0          0          0          com.apple.kernel.mach (7.9.9)
  13   19 0x2fa68000 0x11000    0x10000    com.apple.iokit.IOPCIFamily (2.6) <7 5 4 3>
  14   13 0x2f8df000 0x4000     0x3000     com.apple.iokit.IOACPIFamily (1.3.0) <7 6 4 3>
  15    2 0x2fb27000 0x42000    0x41000    com.apple.driver.AppleACPIPlatform (1.3.5) <14 13 7 6 5 4 3>
  16    0 0          0          0          com.meklort.symbols.cpuid (10.0.0)
  18    0 0x2facc000 0x1e000    0x1d000    com.apple.driver.AppleIntelCPUPowerManagement (105.13.0) <7 6 5 4 3 1>
  19    6 0x2fc11000 0x2c000    0x2b000    com.apple.iokit.AppleProfileFamily (41.4) <13 7 6 5 4 3 1>
  20    2 0x2f884000 0x5000     0x4000     com.apple.iokit.CHUDKernLib (365) <7 6 5 4 3 1>
  21    0 0x2faea000 0xc000     0xb000     com.apple.iokit.CHUDProf (366) <20 7 6 5 4 3>
  22    0 0x2fabe000 0x7000     0x6000     com.apple.iokit.CHUDUtils (364) <20 5 4 3 1>
  23    2 0x2faad000 0xa000     0x9000     com.apple.driver.AppleSMC (3.1.0d3) <14 7 5 4 3>
  24    0 0x2fa89000 0x6000     0x5000     com.apple.Dont_Steal_Mac_OS_X (7.0.0) <23 7 4 3 1>
  25    7 0x2fbc0000 0x22000    0x21000    com.apple.iokit.IOGraphicsFamily (2.2) <13 7 5 4 3>
  26    6 0x2fcde000 0x18000    0x17000    com.apple.iokit.IOStorageFamily (1.6.2) <7 6 5 4 3 1>
  27    0 0x2fb85000 0x11000    0x10000    com.apple.driver.DiskImages (289) <26 7 6 5 4 3 1>
  28    0 0x2fb18000 0xb000     0xa000     com.apple.iokit.IOSurface (74.2) <7 5 4 3 1>
  29    0 0x2fa65000 0x3000     0x2000     com.evosx86.driver.lspcidrv (1.0) <4 3>
  30    0 0x2fc84000 0x8000     0x7000     com.apple.nke.applicationfirewall (2.1.11) <7 6 5 4 3 1>
  31    2 0x2fac9000 0x3000     0x2000     com.apple.kext.AppleMatch (1.0.0d1) <4 1>
  32    0 0x2fb96000 0x5000     0x4000     com.apple.security.quarantine (0) <31 7 6 5 4 2 1>
  33    0 0x2fd39000 0x8000     0x7000     com.apple.security.sandbox (1) <31 7 6 5 4 2 1>
  34    0 0x2fbe5000 0x3000     0x2000     com.apple.security.TMSafetyNet (6) <7 6 5 4 2 1>
  35    1 0x2fd64000 0xb000     0xa000     com.apple.driver.IOPlatformPluginFamily (4.5.0d5) <6 5 4 3>
  36    0 0x2fdc5000 0x10000    0xf000     com.apple.driver.ACPI_SMC_PlatformPlugin (4.5.0d5) <35 23 14 13 7 6 5 4 3>
  41    0 0x2fbe2000 0x3000     0x2000     com.apple.driver.AppleProfileCallstackAction (20) <19 5 4 3 1>
  42    0 0x2fcac000 0x3000     0x2000     com.apple.driver.AppleProfileKEventAction (10) <19 4 3 1>
  43    0 0x2fd87000 0x3000     0x2000     com.apple.driver.AppleAPIC (1.4) <4 3>
  44    0 0x2fd7a000 0x3000     0x2000     com.apple.driver.AppleIntelCPUPowerManagementClient (105.13.0) <7 6 5 4 3 1>
  45    0 0x2fd7d000 0x3000     0x2000     com.apple.driver.AppleProfileRegisterStateAction (10) <19 4 3 1>
  46    0 0x2fd8a000 0x3000     0x2000     com.apple.driver.AppleProfileThreadInfoAction (14) <19 6 4 3 1>
  47    0 0x2fd9b000 0x3000     0x2000     com.apple.driver.AppleProfileTimestampAction (10) <19 5 4 3 1>
  48    0 0x2fdf9000 0x4000     0x3000     com.apple.driver.AppleSMBIOS (1.6) <7 4 3>
  49    0 0x2f6c3000 0x3000     0x2000     com.apple.driver.AppleProfileReadCounterAction (17) <19 6 4 3>
  50    2 0x2f789000 0xd000     0xc000     com.apple.iokit.IONDRVSupport (2.2) <25 13 7 5 4 3>
  51    0 0x2f720000 0x4000     0x3000     com.apple.driver.AppleBacklight (170.0.34) <50 25 13 5 4 3>
  53    0 0x2f695000 0x2000     0x1000     com.apple.driver.AppleACPIPS2Nub (1.0.0d1) <14 11 7 6 4 3>
  54    1 0x2f785000 0x4000     0x3000     com.apple.kext.OSvKernDSPLib (1.3) <5 4>
  55    3 0x2fbe8000 0x18000    0x17000    com.apple.iokit.IOAudioFamily (1.8.0fc1) <54 5 4 3 1>
  56    0 0x358c8000 0x1f000    0x1e000    org.voodoo.driver.VoodooHDA (0.2.54) <55 13 7 5 4 3>
  59    4 0x35998000 0x3c000    0x3b000    com.apple.iokit.IOHIDFamily (1.6.5) <7 6 5 4 3 1>
  60    0 0x2f6b8000 0x4000     0x3000     com.apple.driver.AppleACPIButtons (1.3.5) <59 15 14 7 6 5 4 3 1>
  61    0 0x2f6b5000 0x3000     0x2000     com.apple.driver.AppleLPC (1.4.12) <13 5 4 3>
  62    3 0x3593f000 0x16000    0x15000    com.apple.iokit.IONetworkingFamily (1.9) <7 6 5 4 3 1>
  63    0 0x2f7b3000 0x6000     0x5000     com.psystar.RealtekR1000 (2.0.9) <62 13 7 5 4 3 1>
  65    2 0x35acb000 0x6000     0x5000     com.apple.iokit.IOAHCIFamily (2.0.4) <5 4 3 1>
  66    0 0x35b24000 0x14000    0x13000    com.apple.driver.AppleAHCIPort (2.1.5) <65 13 5 4 3 1>
  67    1 0x2f715000 0x3000     0x2000     com.apple.iokit.IOSMBusFamily (1.1) <5 4 3>
  68    0 0x35ad1000 0x6000     0x5000     com.apple.driver.AppleACPIEC (1.3.5) <67 15 14 5 4 3>
  69    0 0x35b38000 0x11000    0x10000    com.apple.driver.AppleIntelIntegratedFramebuffer (6.2.6) <25 14 13 7 5 4 3 1>
  70    0 0x35ba2000 0x36000    0x35000    com.apple.driver.AppleIntelGMA950 (6.2.6) <50 25 13 7 5 4 3 1>
  71    0 0x35b73000 0x13000    0x12000    com.apple.iokit.IOAHCIBlockStorage (1.6.3) <65 26 5 4 3 1>
  72    0 0x35b6a000 0x5000     0x4000     com.apple.driver.AppleACPIBatteryManager (1.0.15) <14 5 4 3 1>
  73    0 0x35b86000 0x5000     0x4000     com.apple.driver.AudioAUUC (1.13) <55 25 14 13 7 5 4 3 1>
  74    0 0x35b64000 0x3000     0x2000     com.apple.driver.AppleHPET (1.5) <14 7 5 4 3>
  75    0 0x35b5b000 0x6000     0x5000     com.apple.driver.AppleRTC (1.3.1) <14 5 4 3 1>
  76    0 0x35b6f000 0x4000     0x3000     org.netkas.fakesmc (2) <14 7 4 3>
  78    2 0x35b8b000 0x5000     0x4000     com.apple.driver.ApplePS2Controller (1.1.0) <12 11 10>
  79    0 0x359d9000 0x3000     0x2000     com.apple.driver.ApplePS2Keyboard (1.1.0) <78 59 12 11 10 7 6 5 4 3 1>
  80    0 0x359ec000 0x6000     0x5000     com.apple.driver.ApplePS2Trackpad (1.1.0) <78 59 12 11 10 7 6 5 4 3 1>
  81    1 0x359f2000 0x24000    0x23000    com.apple.iokit.IO80211Family (312) <62 7 5 4 3 1>
  82    0 0x35f45000 0x176000   0x175000   com.apple.driver.AirPortBrcm43224 (426.36.1) <81 62 13 7 5 4 3 1>
  84    8 0x35e6c000 0x34000    0x33000    com.apple.iokit.IOUSBFamily (4.1.7) <13 7 5 4 3 1>
  85    0 0x35886000 0x10000    0xf000     com.apple.driver.AppleUSBUHCI (4.1.5) <84 13 7 5 4 3 1>
  87    0 0x359dc000 0x6000     0x5000     com.apple.AppleFSCompression.AppleFSCompressionTypeZlib (1.0.0d1) <6 4 3 2 1>
  88    0 0x35c59000 0x4000     0x3000     com.apple.driver.AudioIPCDriver (1.1.6) <55 5 4 3 1>
  89    0 0x35c5d000 0x5000     0x4000     com.apple.BootCache (31) <7 6 5 4 3 1>
  90    0 0x359e2000 0x2000     0x1000     com.apple.iokit.IOUSBUserClient (4.1.5) <84 7 5 4 3 1>
  91    0 0x35dd2000 0x7000     0x6000     com.apple.driver.AppleMCCSControl (1.0.17) <25 13 7 5 4 3 1>
  92    0 0x35d19000 0x5000     0x4000     com.apple.driver.AppleUpstreamUserClient (3.4.5) <25 14 13 7 5 4 3 1>
  93    0 0x3623b000 0x16000    0x15000    com.apple.driver.AppleUSBEHCI (4.1.7) <84 13 7 5 4 3 1>
  94    0 0x35f29000 0x12000    0x11000    com.apple.driver.AppleUSBHub (4.1.7) <84 5 4 3 1>
  95    0 0x35dca000 0x3000     0x2000     com.apple.driver.XsanFilter (402.1) <26 5 4 3 1>
  96    0 0x35ddf000 0x4000     0x3000     com.apple.driver.AppleUSBComposite (3.9.0) <84 4 3 1>
  97    3 0x464f1000 0x1a000    0x19000    com.apple.iokit.IOSCSIArchitectureModelFamily (2.6.5) <5 4 3 1>
  98    1 0x464c5000 0xb000     0xa000     com.apple.iokit.IOUSBMassStorageClass (2.6.5) <97 84 26 5 4 3 1>
  99    1 0x464a8000 0x18000    0x17000    com.apple.iokit.IOSCSIBlockCommandsDevice (2.6.5) <97 26 5 4 3 1>
 100    0 0x35f41000 0x4000     0x3000     com.apple.driver.AppleUSBCardReader (2.5.8) <99 98 97 84 26 5 4 3 1>
 101    0 0x4652d000 0x6000     0x5000     com.apple.iokit.IOUSBHIDDriver (4.1.5) <84 59 5 4 3 1>
 103    1 0x4668d000 0x9000     0x8000     com.apple.iokit.IOSerialFamily (10.0.3) <7 6 5 4 3 1>
 104    0 0x466a2000 0x9000     0x8000     com.apple.iokit.IOBluetoothSerialManager (2.3.8f7) <103 7 5 4 3 1>
 106    0 0x46e55000 0xa000     0x9000     com.apple.filesystems.autofs (2.1.0) <7 6 5 4 3 1>

 

Just tried efi/essentials set at 1, but of course i got the EFI_64_BIT error

Link to comment
Share on other sites

p.s. Can you please attach your fake_efi.c from the Chameleon – the one that you use to compile and boot with – because I keep looking at it, and I really fail to see how the trunk version can possibly add EFI64 on your 32-bit only configuration. Thanks!

 

Just having a break - here's the chameleon fake_efi.c from my latest compile. fake_efi.c.zip

Link to comment
Share on other sites

Have just managed to boot Lenovo S12 Atom N270 32 bit using 635 :( having spent several hours reading through and messing around. But things are not perfect yet:

 

1 - Locked onto the "wrong" partition (I have three, one at 10.6.6 and a SuperDuper Sandbox still at 10.6.5). So it's booting the sandbox 4th partition rather than the 2nd partition. 3rd is Ubuntu. Then again, not using UUID specifiers. So also get lots of refusing new kext warnings (10.6.5 version, as 10.6.6 ones loaded).

 

2 - Does not seem to be loading /Extra/Extensions.mkext at all, or perhaps just not in the same way as Chameleon. So no audio, no QE/CI, wrong resolution, no trackpad and possibly no speed-step via Meklorts CPUID kexts. Hard to check kextstat w/o trackpad working! But clearly it's loading some stuff (fakesmc, some PS2 stuff at least!). Stuff seems to (not) work in a similar way to what I'd get if doing an ignore caches boot on chameleon, where all /Extra/Extensionsxxx get loaded, but not "linked" together in same way as when the mkext gets loaded.

EDIT: Looks like might be related to OSBundleRequired parameter.

 

3 - Has problem shutting down (USB Bluetooth kIOREturnAbort)

 

Or perhaps all those issues are related to booting 10.6.5 stuff with 10.6 kernel. I guess I'll try rebuild the main Extensions.mkext or do a prelinked kernel now, to also include those from Extra, see if that gets everything working correctly, but will try that tomorrow.

 

My SD-card config, just in case this is somehow messing things up:

/boot

/mach_kernel (Tea version for Atom)

/Library/Preferences/SystemConfiguration with c.a.B.p (arch=i386 -v)

/System/Library/Caches/com.apple.boot.caches/Startup with Extensions.mkext from the main /S/L/C...

/Extra with Extensions.mkext and Extensions folder (and a DSDT.aml for use of old RC2 boot).

/Extra/ACPI with a DSDT.aml

 

 

To make it work:

Various debug was turned on as below as well as a couple of critical flags (debug probably makes no difference, but listing just in case), but only other stuff I did was in private_data.h, and I suspect that does not make huge difference either! That was:

- Entered the ACPI, DMI, BIOS parameter stuff with info from ACPI and BIOS dump, but seems this may not be needed as Revolution finds the tables (am using dynamic flag, and did not set the STATIC_ACPI_BASE_ADDRESS flag anway).

- For fakesmc: Went with MBP6,1 "default"; Left SystemID as default 12345....as no idea where to find that info.

- Entered manually SMBIOS table, and not the other stuff yet, but don't think thats used anyway as using dynamic.

 

Flags I changed from default are:

boot.c

DEBUG 1

 

acpi_patcher.c

ACPI_10_SUPPORT 1

LOAD_DSDT_TABLE_FROM_EXTRA_ACPI 1

LOAD_SSDT_TABLE_FROM _EXTRA_ACPI 0

DEBUG 1

 

efi.c

DEBUG 1

 

platform.c

DEBUG_PLATFORM 1

 

efi/essentials.h

EFI_64_BIT 0

 

This is an amazing thread and extremely exciting. Really impressive stuff.

Link to comment
Share on other sites

Good morning DHP.

I really want to test your last code, but my hack is still down and I think that Revo has not yet support for original mac :(

so now I need to chose go to sleep after 8h of work (finished 1 hour ago) or get it working asap...

 

I know that sleep is important,

 

 

but...

 

I like testing revo :(

and

I like my hack when it works lol

 

:(

 

uhm reading the post tels me that maybe is better if I go sleep.. :(

Link to comment
Share on other sites

Good morning and good to hear of more progress.

Have just managed to boot Lenovo S12 Atom N270 32 bit using 635 :(

../snip/..

Left SystemID as default 12345....as no idea where to find that info.

Hi humph - well done with your success.. Feels good doesn't it?

 

For SystemID, I'm currently using the value that Chameleon shows in it's log when booting (or quickly find it by running bdmesg after booting). It will be on the line: Customizing SystemID with : 00000000-0000-0000-0000-000000000000.

 

I add this value in to private_data.h

 

Also, I see you're using Tea's kernel to boot with. I wonder if DB1 i using it too?

 

Now. Let me attach a new diff with some of the things I have been working on – in due course – that may break things again. One step forward, two backwards. Nah. Just kidding :(

 

Hi DHP - I see again you've been busy. I'll have a look at this diff now and see what happens.

 

Also. Please check the output of:

sysctl -a machdep.cpu.feature
sysctl -a machdep.cpu.extfeature

From Chameleon I see the following with both commands:

machdep: class is not implemented

 

EDIT:

Compiling with patch 636 gives the following error:

efi/fake_efi.h: In function ‘setupEFITables’:
efi/fake_efi.h:143: error: ‘MAX_CONFIGURATION_TABLE_ENTRIES’ undeclared (first use in this function)

Link to comment
Share on other sites

Sorry. That was a last minute change supposted to go in with the next update. Simply rename it to EFI_MAX_CONFIG_TABLES and it will compile fine. Yup. Compiles fine here.

That's fixed it thanks.

 

First boot failed with EFI_64_BIT setting (0) error detected!, then I found in /efi/essentials.h that #define EFI_64_BIT was set to 0. So I changed that to 1 et voila! - Now booted from the latest code :P

 

However, sysctl -a machdep.cpu.feature and sysctl -a machdep.cpu.extfeature still show me:

machdep: class is not implemented

EDIT: I get the same feedback on my iMac 27" i7 too.

 

I have #define DYNAMIC_CPU_DATA_GATHERING set to 1

 

EDIT:

Just doing a quick comparison between sysctl -a results from my system booted with this version of Revolution and the latest Chameleon. The CPU sections are identical though interestingly I do see a difference (although not related to this particular issue):

 

Revolution:

kern.osrelease = 10.5.0

kern.version = Darwin Kernel Version 10.5.0: Fri Nov 5 23:20:39 PDT 2010; root:xnu-1504.9.17~1/RELEASE_I386

 

Chameleon:

kern.osrelease = 10.6.0

kern.version = Darwin Kernel Version 10.6.0: Wed Nov 10 18:13:17 PST 2010; root:xnu-1504.9.26~3/RELEASE_I386

Link to comment
Share on other sites

Lol.. yeah, silly me on both counts :P

1) Adding the missing 's' makes all the difference.

2) Yep - I forgot to update the kernel!

 

I'm at work now so can't give feedback from my hack, but will report back tonight when I'm home.

 

EDIT:

From my iMac (for reference):

$ sysctl -a machdep.cpu.features
machdep.cpu.features:  FPU VME DE PSE TSC MSR PAE MCE CX8 APIC SEP MTRR PGE MCA CMOV PAT PSE36 CLFSH DS ACPI MMX FXSR SSE SSE2 SS HTT TM SSE3 MON DSCPL VMX SMX EST TM2 SSSE3 CX16 TPR PDCM SSE4.1 SSE4.2 POPCNT

$ sysctl -a machdep.cpu.extfeatures
machdep.cpu.extfeatures:  SYSCALL XD RDTSCP EM64T LAHF TSCI

 

EDIT: Now back to my hack and I don't see any difference between Chameleon RC5 & Revolution 635:

From my hack booted with Chameleon RC5:

$ sysctl -a machdep.cpu.features
machdep.cpu.features:  FPU VME DE PSE TSC MSR PAE MCE CX8 APIC SEP MTRR PGE MCA CMOV PAT PSE36 CLFSH DS ACPI MMX FXSR SSE SSE2 SS HTT TM SSE3 MON DSCPL EST TM2 SSSE3 CX16 TPR PDCM SSE4.1

$ sysctl -a machdep.cpu.extfeatures
machdep.cpu.extfeatures:  SYSCALL XD EM64T LAHF

 

From my hack booted with Revolution 635:

$ sysctl -a machdep.cpu.features
machdep.cpu.features:  FPU VME DE PSE TSC MSR PAE MCE CX8 APIC SEP MTRR PGE MCA CMOV PAT PSE36 CLFSH DS ACPI MMX FXSR SSE SSE2 SS HTT TM SSE3 MON DSCPL EST TM2 SSSE3 CX16 TPR PDCM SSE4.1

$ sysctl -a machdep.cpu.extfeatures
machdep.cpu.extfeatures:  SYSCALL XD EM64T LAHF

Link to comment
Share on other sites

Well, I figured I'd better get me an avatar, then play some more....

 

So, did the printf stuff, and it all flew by too fast. But with boot debug on, managed to catch a whiz of kext names from my /E/E folder. So deleted the Extensions folder but keeping the mkext, and on reboot saw something like "need mkext" as part of the debug output. Surprise, surprise: did not see any of my "E/E" (mkext) kexts being loaded in verbose kernel log. And of course, never booted fully as no fakesmc.

 

Thinking perhaps I've messed up Extensions.mkext generation, ownership etc but it works on all versions of Chameleon I've tried, including the test RC2 boot added to same SD booter card. I had thought, for a while, that the permission on mkext was bad. Had made the booter on the hd0,2 system, so when looking at it from the booted hd0,4 system the permissions are not correct even though had set to root:wheel + uncheck ignore ownership on volume when creating booter. But redid it from 0,4 and no difference - individual kexts load and not the mkext, as far as I can tell.

 

 

Another interesting thing is that the shutdown problem is really a restart problem, and nothing related to USB/BT (that BT thing must have been related to 10.6 vs 10.5). So no messages on shutdown/restart other than usual halting CPU, but machine does not restart. It does do a shutdown OK. So, more like FADT not corrected correctly? I've cloned the sandbox to be same as the main partition, and use shared apps and user data, so only difference is booting via Chameleon RC5 or Revolution (also changed OSBundleRequired to Root on the kexts in SD's /E/E, to get everything working now same as if was loading the mkext).

 

Here's some IORegs.

S12_IORegs.zip

 

EDIT: Not timed things yet, but does not seem to be faster than RC5, perhaps slower to boot. Will check more.

Link to comment
Share on other sites

Also. Please check the output of:

sysctl machdep.cpu.features
sysctl machdep.cpu.extfeatures

with any boot loader you have and the latest Revolution update. This to see if one of the values has changed for you, but only when you use the attached diff (without changes).

This for Atom N270: No Difference:

RC5 machdep.cpu.features: FPU VME DE PSE TSC MSR PAE MCE CX8 APIC SEP MTRR PGE MCA CMOV PAT CLFSH DS ACPI MMX FXSR SSE SSE2 SS HTT TM SSE3 MON DSCPL EST TM2 SSSE3 TPR PDCM

REV machdep.cpu.features: FPU VME DE PSE TSC MSR PAE MCE CX8 APIC SEP MTRR PGE MCA CMOV PAT CLFSH DS ACPI MMX FXSR SSE SSE2 SS HTT TM SSE3 MON DSCPL EST TM2 SSSE3 TPR PDCM

 

RC5 machdep.cpu.extfeatures: XD LAHF

REV machdep.cpu.extfeatures: XD LAHF

 

 

EDIT: Ref speed. Oops. Totally forgot am loading Revo from slow SD card, vs SATA HD for RC5. Me dumb. ;)

Link to comment
Share on other sites

I have problems in appling the diff.

can someone upload a working 636

I have this errors:

tomaremac:Revolution-635 scriz$ patch -p1 </Users/scriz/Downloads/diff_635_636_1.txt 
patching file i386/libsaio/cpu/dynamic_data.h
patching file i386/libsaio/device_tree.c
patching file i386/libsaio/efi/efi.h
patching file i386/libsaio/efi/essentials.h
patching file i386/libsaio/efi/fake_efi.h
patching file i386/libsaio/efi.c
Reversed (or previously applied) patch detected!  Assume -R? [n] y
Hunk #1 succeeded at 29 with fuzz 2.
Hunk #2 FAILED at 47.
Hunk #3 FAILED at 55.
Hunk #4 FAILED at 102.
Hunk #5 FAILED at 136.
Hunk #6 FAILED at 177.
Hunk #7 FAILED at 249.
6 out of 7 hunks FAILED -- saving rejects to file i386/libsaio/efi.c.rej
patching file i386/libsaio/platform.c
patching file i386/libsaio/platform.h
patching file revision
patching file version

Link to comment
Share on other sites

I have problems in appling the diff.

can someone upload a working 636

Hi Scrax - Here's my latest set of files - be sure to go through and check for any default switches that I may have changed. It's called 635_patched but you can call it 636.

Revolution_635_patched.zip

 

@DHP - Just updated the mach_kernel in my USB stick and double checked the sysctl commands on my hack (which now work) - I posted the results in my previous post.

Link to comment
Share on other sites

Hi Scrax - Here's my latest set of files - be sure to go through and check for any default switches that I may have changed. It's called 635_patched but you can it 636.

Revolution_635_patched.zip

 

@DHP - Just updated the mach_kernel in my USB stick and double checked the sysctl commands on my hack (which now work) - I posted the results in my previous post.

I noticed. Thanks.

 

Gentlemen. I will be gone tonight. Have a party (getting a field hockey award) and I am about to leave in 15 minutes (when the limo arrives in time). {censored}e. Make that right now. Bye.

Link to comment
Share on other sites

@DB1: humph is using a patched kernel. Have you tried it already, to see if that boots?

 

Yeeeeeeeeha. :wacko: Or yes I'm up and running BUT had to go back to the patched Atom kernel. Many thanks to humph getting on board and identifying the problem. Seams like Meklort''s Atom kexts are not tricking the kernel (or not loading) with Revolution or is it maybe the Mkext thing perhaps? I would rather run native kernel, So the big question what does Chameleon do regarding cpu id / kernel panic avoidance that maybe Revolution does not?

 

I loose lid sleep, webcam that I've noticed so far. Notably i dont use an smbios.plist to change model identifier and with Chameleon it is MacBook 4.1, with Revolution my model is MacBookPro 6.1 my speed stepping and hyperthreading ok, VoodooHDA not working (might try appleHDA now).

 

Slow boot for me I'm afraid so far(seems very slow to find my apple wifi and it wont work if it aint on at startup) but it's a boot and thats a major move for me, I was starting to loose the will!

 

I normally boot from EFI partition (a la Munkey style) with an mkext cashed between the kexts in my /EFI/Extra and S/L/E. An mkext built in same way on my SDCard works just as well but marginally slower with Chameleon. Using the same method with Revolution but with the mkext built in S/L/C/c.a.k.c/S on the SDCard with S/L/E of my install will not boot even with the patched kernel.

 

mkext in Booter/E/E in the next build might be good for us, and it would be great to not have to use a patched kernel

 

My ioreg with Revo RevoBoot.ioreg.zip

 

Keep up the great work DHP, and congrats on the Hockey award. ;) Thanks also to everyone else's support and input too.

 

Gonna have a few glasses of red now and catch you all up tomorrow evening.

Link to comment
Share on other sites

Do you happen to have the original ACPI tables handy?

Just grabbed this via Linux:

FACP.aml.zip

Don't have iasl on Linux which am also posting from, so not decoding - hope that's (and it's) OK.

(Really missing OSX's two-finger scroll!!)

 

Making me wonder about what it is that changes the table length into 0xf4 (244) because I can't find it in Chameleon, so you have to load a patched table. Do you?

0xF4 is the length of the original table (per dmesg from linux), booted via Chameleon & Grub, whereas I presume from your note (not really checked) that table in OSX-RC5 gets cropped. Weird. But does restart OK when booted via Chameleon (AsereBLN or RC5). This RC5 was Valv's, but think its OK with trunk or Kably's also). So never bothered with loading a separate table, as worked OK on Chameleon if restart fix applied, never even though to look into it!

 

Congrats on the award!

 

@DB1. Great that you have it working also! Agree, it'd sure be way nicer to be able to use a standard kernel. There's a Chameleon patch that Meklort (or someone) developed to handle that to do it on the fly, and now the functionality is also in his "modular" version of RC5.

Am also using his CPU kexts CPUIDSymbols+CPUOverride in /E/E. Must be loading as getting speed step. AFAIK, you still need either a patched kernel or the Chameleon fix even using these kexts, but Meklort's now put the functionality of these kexts into RC5 modules also.

P.S. Am OK on lid sleep here as using PNLF in DSDT rather than a kext.

Link to comment
Share on other sites

@DB1. Great that you have it working also! Agree, it'd sure be way nicer to be able to use a standard kernel. There's a Chameleon patch that Meklort (or someone) developed to handle that to do it on the fly, and now the functionality is also in his "modular" version of RC5.

Am also using his CPU kexts CPUIDSymbols+CPUOverride in /E/E. Must be loading as getting speed step. AFAIK, you still need either a patched kernel or the Chameleon fix even using these kexts, but Meklort's now put the functionality of these kexts into RC5 modules also.

P.S. Am OK on lid sleep here as using PNLF in DSDT rather than a kext.

 

Yeah have used the Chameleon kernel patch since RC5 r52 then flipped over to using the kexts when they hit the scene. I have also built the more recent Chameleon trunk (r635) with the patch and it works fine.

 

And let me fix that MacBookPro4,1 versus MacBookPro6,1 issue (for 32-bit systems only) for the next update.

 

DHP. MacBook 4.1 not MacBookPro was my model identifier before. And great your thinking future proofing. Looking forward to the next revision and will try the latest changes as soon as the netbook is free - the wife's messing around on facebook or something.

Link to comment
Share on other sites

Please use the attached files in addition/as replacement to the previous attachment.

into:

	if (shouldLoadMKext) // We'll skip this in safe mode.
{
	if (LoadDriverMKext("/System/Library/Caches/com.apple.kext.caches/Startup/Extensions.mkext") == STATE_SUCCESS)
	{
		gKextLoadStatus |= 1;
	}

	if (LoadDriverMKext("/Extra/Extensions.mkext") == STATE_SUCCESS)
	{
		gKextLoadStatus |= 2;
	}
}

And that should do the trick for you Atom guys, but you may want to use this too:

	if (gKextLoadStatus != 3)
{
	// Yes we do. Start by looking for kexts in: /Extra/Extensions/
	if ((gKextLoadStatus & 2) == 0)
	{
		FileLoadDrivers("/Extra/Extensions", 0);
	}

	// Now progress to the system kexts.
	if ((gKextLoadStatus & 1) == 0)
	{
		FileLoadDrivers("/System/Library/Extensions", 0);
	}

A few lines down. I can't test this myself (not having one) so one or both of you will have to step in here. Thanks!

 

p.s. I'm not sure about the order: /E*/E/* before /S*/L*/E*/ first perhaps?

 

Going off-line now (hockey training). Be back later...

 

I get compile error after adding files and amending code above in boot2/drivers.c

In file included from smbios_patcher.c:14:
smbios/dynamic_data.h: In function ‘sm_get_memspeed’:
smbios/dynamic_data.h:447: error: ‘PlatformInfo_t’ has no member named ‘RAM’
smbios/dynamic_data.h:449: error: ‘PlatformInfo_t’ has no member named ‘RAM’
make[2]: *** [smbios_patcher.o] Error 1
make[1]: *** [all] Error 2

 

Update

 

setting smbios_patcher.c #define DYNAMIC_SMBIOS_DATA_GATHERING 0 allows compile (your probably set for static with the data in Private data file). Not sure if I can do static smbios as have not tried previous but will give it a go and report back

Link to comment
Share on other sites

Hi DHP,

 

Still no restart here using 2b. But perhaps I've got smth wrong:

- I still have the comment-out for //fadt=fadt_mod=NULL from post #444 in patcher.h. Didnt want to try w/o as seems

- Also, not sure if need to add the stuff from post #448 about PMProfile. But can't see where to put it anyway!!

 

The mkext load appears to be working, but need to recheck if still OK when no mkext etc.

(I have all the changes including the !=3 one).

 

 

I get compile error after adding files and amending code above in boot2/drivers.c

Hi DB1,

I worked around that by setting the if statement in dynamic_data.he to remove the "if 1 // CHAMELEON", so reads "if CHAMELEON"

Just seem to mean will use the hard coded RAM values for now.

Link to comment
Share on other sites

Oops. Silly mistake. Changed one to many, or was I actually working on the new SMBIOS implementation. The one that I mentioned in post #134 Hmmm. Yup :)

 

p.s. Please do as humph said. That should work (for now).

 

Ok with 2a,2b and the workaround I can boot but not get to desktop. i.e. throbber stops and screen goes greyish blue just as in normally does before log in. Tried various: mkext in Extra kextcached, and mkext in startup cannot get beyond throbber. mkext in startup only get to grey screen, mkext in E/E only get to grey screen, mkext kextcached and in startup only gets to throbber.

 

For all these tests dsdt was still in /E/ACPI and a.c.B.p in L/P/SC/.

Link to comment
Share on other sites

#1 Ah right, thought 2b superseded 2a files (didn't even look inside 2a!). Added, but still no restart.

(Unless I'm out of sync on all the patches and updates!).

 

#2 Does not seem to load any kexts from /Extra/Extensions in case no mkext. Only loads mkext, if present. Hm, lets reword that to make more sense. I mean loads mkext OK. Does never load any kexts from /E/E in the case where there's no mkext. Which I guess it should....try 1st for mkext, if none, then 2nd try for kexts. (Unless in the case of doing an ignore cache boot).

 

#3 Also noted some other low-priority bugs, mention here in case you are running a list:

3.1 - Screen Resolution. Made changes to default in wherever it was..to 1280x800x32.

Now the verbose text (Darwin stuff, not the booter debug) is "nice". But on non-verbose, the apple logo is off to right. With the default resolution, verbose was nasty, but apple logo in right place.

Spinner OK in both cases. Strange, as code seems simple enough (X/2 etc). Then again, there's probably other stuff going on somewhere that's not obvious to a non-coder!

 

3.2 - (Atom) CPU Speed in sys prof. Shows as 800MHz. Real low priority as most RC5s still get it wrong also!

Link to comment
Share on other sites

 Share

×
×
  • Create New...