Jump to content

How to boost the OS X boot process...


  • Please log in to reply
1109 replies to this topic

#1021
STLVNUB

STLVNUB

    InsanelyMac Legend

  • Coders
  • 1,137 posts
  • Gender:Male

Hi STLVNUB,

Can you please change your script a little bit. Make it use: RevoBoot-version/revision [extracted from the files] as directory name instead of this weird looking 85ac257 number?

p.s. Can one of the mods please fix/restore my name, because I cannot do that for the next... what was it? 60 days?


Downloading the source from git, that is the file name that is given, so that is what is being used.
This worked well before, but now with git, the file has commit number instead of version/revision.
Will check out the options.

Best solution is for user to install git, then its all auto.

#1022
FKA

FKA

    are we there yet?

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,626 posts
  • Gender:Male

Hi SG

I'm working today, will try this out later.

Cheers
D


Evening SG

Sorry but no go.
Caches are now rebuilt OK from: caches cleared in single user mode > boot revolution
But after shutdown, on reboot I get the same AppleACPIExpert KP or freeze just before it's loaded.

This is with the code you posted added to source taken from git this afternoon.

D

#1023
buoo

buoo

    The Prodigal Son

  • Moderators
  • 4,536 posts
  • Gender:Male
  • Location:Italy
Thanks!! :(
I Compiled, but the boot failed after several screenshots. Now I have to set the settings.h right!
FKA, your mobo mounts a P45 chipset like mine, may you show me your settings.h ?
And for speedstep, does the Revolution enabled and automatic P-States & C-States generation?

#1024
FKA

FKA

    are we there yet?

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,626 posts
  • Gender:Male
here's my settings:

[codebox]#define ACPI_10_SUPPORT 1

#define PATCH_ACPI_TABLE_DATA 1

#define USE_STATIC_ACPI_BASE_ADDRESS 1

#define STATIC_APIC_TABLE_INJECTION 0
#define STATIC_APIC2_TABLE_INJECTION 0
#define STATIC_DSDT_TABLE_INJECTION 1

#define STATIC_ECDS_TABLE_INJECTION 0
#define STATIC_FACS_TABLE_INJECTION 0

#define STATIC_HPET_TABLE_INJECTION 0


#define STATIC_SSDT_TABLE_INJECTION 0


#define STATIC_SSDT_GPU_TABLE_INJECTION 0

#define STATIC_SSDT_PR_TABLE_INJECTION 0
#define STATIC_SSDT_SATA_TABLE_INJECTION 0

#define STATIC_SSDT_USB_TABLE_INJECTION 0

#define LOAD_DSDT_TABLE_FROM_EXTRA_ACPI 0
#define LOAD_SSDT_TABLE_FROM_EXTRA_ACPI 0

#define LOAD_EXTRA_ACPI_TABLES (LOAD_DSDT_TABLE_FROM_EXTRA_ACPI || LOAD_SSDT_TABLE_FROM_EXTRA_ACPI)


#define DROP_SSDT_TABLES 0
#define REPLACE_EXISTING_SSDT_TABLES 0

#define APPLE_STYLE_ACPI 0
#define DEBUG_ACPI 0
#if USE_STATIC_ACPI_BASE_ADDRESS
#define STATIC_ACPI_BASE_ADDRESS 0x000f9770
#endif

#define PRE_LINKED_KERNEL_SUPPORT 1

#define MUST_ENABLE_A20 0

#define SAFE_MALLOC 0

#define DEBUG_BOOT 0

#define USE_STATIC_CPU_DATA 0
#define CPU_VENDOR_ID CPU_VENDOR_INTEL // CPU_VENDOR_AMD

#define DEBUG_CPU 0

#define EFI_SYSTEM_PARTITION_SUPPORT 0
#define LEGACY_BIOS_READ_SUPPORT 0

#define DEBUG_DISK 0

//------------------------------------------------------------- DRIVERS.C -------------------------------------------------------------------


#define DEBUG_DRIVERS 0


//---------------------------------------------------------------- EFI.C -------------------------------------------------------------------


#define APPLE_STYLE_EFI 1

#define INJECT_EFI_DEVICE_PROPERTIES 1

#define EFI_64_BIT 1
#define STATIC_MODEL_NAME { 'i', 'M', 'a', 'c', '9', ',', '1' }

#define STATIC_SMSERIALNUMBER "xxxxxxxxxxxx"

#define STATIC_SYSTEM_SERIAL_NUMBER { 'xxxxxxxxxxxxxxxxxxxxxx }

#define STATIC_SYSTEM_ID { xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx }

#define DEBUG_EFI 0

#define EFI_DEBUG_MODE 0

#define USE_STATIC_SMBIOS_DATA 1


#define OVERRIDE_DYNAMIC_MEMORY_DETECTION 0

#define OVERRIDE_DYNAMIC_PRODUCT_DETECTION 0

#if OVERRIDE_DYNAMIC_PRODUCT_DETECTION
#define STATIC_SMBIOS_MODEL_ID MACBOOKPRO
#endif

#define DEBUG_SMBIOS 0

[/codebox]

If you had speedstep enabled when you ran revstart then that data should be in either your static SSDT or DSDT data.

D

#1025
buoo

buoo

    The Prodigal Son

  • Moderators
  • 4,536 posts
  • Gender:Male
  • Location:Italy

If you had speedstep enabled when you ran revstart then that data should be in either your static SSDT or DSDT data.
D


In ACPI folder I saw SSDT and SSDT-1, they are SScode. To enable these at the boot, will I have to set #define STATIC_SSDT_PR_TABLE_INJECTION 1 ?

However in my daily Extra folder I don't use SSDTs but only stripped DSDT without SScode.
If I add SS code to it, will I need to set only :

#define ACPI_10_SUPPORT	1
#define PATCH_ACPI_TABLE_DATA			1
#define STATIC_DSDT_TABLE_INJECTION	1
#define LOAD_DSDT_TABLE_FROM_EXTRA_ACPI	1

??

My settings.h is longest than yours, I change two informations:

#define DEBUG_PLATFORM 1

#define TARGET_OS SNOW_LEOPARD

#define STATIC_MAC_PRODUCT_NAME "MacPro3,1"

#if USE_STATIC_SMBIOS_DATA
// Do nothing.
#elif OVERRIDE_DYNAMIC_MEMORY_DETECTION
// Setup RAM module info. Please note that you may have to expand this when you have more RAM modules.
#define STATIC_RAM_SLOTS 4 // Number of RAM slots on mainboard.

#define STATIC_RAM_VENDORS { Vendor#1, Vendor#2, 0 } // Use n/a for empty RAM banks.

#define STATIC_RAM_TYPE SMB_MEM_TYPE_DDR32 // See libsaio/platform.h for other values.

#define USE_STATIC_RAM_SIZE 0

#if USE_STATIC_RAM_SIZE
#define STATIC_RAM_SIZES { SMB_MEM_SIZE_2GB, SMB_MEM_SIZE_2GB, 0 } // See libsaio/platform.h for other values.
#endif

#define STATIC_RAM_SPEED 1066800

#define STATIC_RAM_PART_NUMBERS { Part#1, Part#2, 0 } // Use n/a for empty RAM banks.

#define STATIC_RAM_SERIAL_NUMBERS { Serial#1, Serial#2, 0 } // Use n/a for empty RAM banks.
#endif


I'm exaggerating with questions probably :wacko:
I'll begin with several test tomorrow!
Thanks :)

#1026
FKA

FKA

    are we there yet?

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,626 posts
  • Gender:Male

In ACPI folder I saw SSDT and SSDT-1, they are SScode. To enable these at the boot, will I have to set #define STATIC_SSDT_PR_TABLE_INJECTION 1 ?

However in my daily Extra folder I don't use SSDTs but only stripped DSDT without SScode.
If I add SS code to it, will I need to set only :

#define ACPI_10_SUPPORT	1
 #define PATCH_ACPI_TABLE_DATA			1
 #define STATIC_DSDT_TABLE_INJECTION	1
 #define LOAD_DSDT_TABLE_FROM_EXTRA_ACPI	1

??


no you don't need static data set unless your only injecting data that way, that's the stuff converted to little endian by projectrevolution.
if you just want to load DSDT.aml then set static to 0 and load to 1.

if you've previously used chameleon to generate p and c states then that code will be in 1 or 2 SSDT tables.

Good luck
D

#1027
Time2Retire

Time2Retire

    Retired

  • Retired Developers
  • 1,012 posts
  • Gender:Female
  • Location:anonymouse.eu

Evening SG

Sorry but no go.
Caches are now rebuilt OK from: caches cleared in single user mode > boot revolution
But after shutdown, on reboot I get the same AppleACPIExpert KP or freeze just before it's loaded.

This is with the code you posted added to source taken from git this afternoon.

D

One last question; You can boot with either -x or -f with Chameleon? That works? If yes then this is the only and last change I can come up with:
long loadDrivers(char * dirSpec){	if (initDriverSupport() != STATE_SUCCESS)	{		return -1;	}	bool shouldLoadMKext = ((gBootMode & kBootModeSafe) == 0);	_DRIVERS_DEBUG_DUMP("shouldLoadMKext: %s\n", shouldLoadMKext ? "true" : "false");	// Load: /Extra/Extensions.mkext or the kexts in: /Extra/Extensions/	// when required (in safe boot mode and when there is no Extensions.mkext).	if (shouldLoadMKext && (loadMultiKext("/Extra") == STATE_SUCCESS))	{		_DRIVERS_DEBUG_DUMP("loadMultiKext(Extra) OK.\n");	}	else if (loadKexts("/Extra/Extensions", 0) == STATE_SUCCESS)	{		_DRIVERS_DEBUG_DUMP("loadKexts(Extra) OK.\n");	}	// Load: /System/Library/Caches/com.apple.kext.caches/Startup/Extensions.mkext 	// or the kexts in: /System/Library/Extensions/ when required (see note above).	if (shouldLoadMKext && (loadMultiKext(gPlatform.KernelCachePath) == STATE_SUCCESS))	{		_DRIVERS_DEBUG_DUMP("loadMultiKext(System) OK.\n");	}	else if (loadKexts("/System/Library/Extensions", 0) == STATE_SUCCESS)	{		_DRIVERS_DEBUG_DUMP("loadKexts(System) OK.\n");	}	matchLibraries();	loadMatchedModules();	_DRIVERS_DEBUG_SLEEP(5);	return STATE_SUCCESS;}
And if that doesn't work, then you have a serious problem. I mean looking at the Chameleon source code... doing the same thing. Well. This but except that we don't load any files from helper partitions. We don't need that because we are booting from a partition, USB-stick or SDcard with everything setup in the right place. That is after all the plan from the beginning.

BTW: I picked up development of the EFI version of Revolution weeks ago, which worked up until 10.6.6, but I ran into an issue. One that I could not solve. Asked dad for help and now Lion boots with it. Sweet. I guess we're going to have a RevoBoot EFI edition soon. The smallest EFI booter ever.

Sam signing off to go to school.

#1028
FKA

FKA

    are we there yet?

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,626 posts
  • Gender:Male
Afternoon SG

This boots without having to clear caches (system caches remain untouched from a previous Revolution boot and AppleACPI KP.) which is promising. BUT again if I shut down I get appleACPIExp type panic at the next boot.

And now If I boot to single user mode (using chameleon as I get KP with revolution) and clear caches I get KP on the following Revolution boot. OR FakeSMC.kext isn't loaded from Extra on the following boot with Revolution (prelinked kernel set to 0) and system hangs at loading ACPI_SMC!
Permissions for /Extra are intact!

Please note: If system has KP'd with Revolution at AppleACPIExpert then I can reboot with Chameleon just fine - No need for -f or -x, although I can boot with -f, -x if I wanted to!

I hope you haven't run out of ideas just yet! ;)

Again all tests run on single HDD none EFI install boot and /Extra at /

EDIT - reading on GitHub - Should we not all be using a unified boot0 and boot1h?
The source for these two files has changed over the chameleon revisions!

D

#1029
Time2Retire

Time2Retire

    Retired

  • Retired Developers
  • 1,012 posts
  • Gender:Female
  • Location:anonymouse.eu
Good afternoon FKA,

So we're making progress at last. Fabulous. Uhm. Can you reboot without a KP? What about using the boot options -f or -x with RevoBoot? No KP?

Will have another go at it after dinner (after your reply). And again. Thank you for testing this!

p.s. About using unified boot files; I haven't had the time to look at it. Not yet.

#1030
STLVNUB

STLVNUB

    InsanelyMac Legend

  • Coders
  • 1,137 posts
  • Gender:Male

EDIT - reading on GitHub - Should we not all be using a unified boot0 and boot1h?
The source for these two files has changed over the chameleon revisions!

The source of both boot0, boot1 are from the later versions of Chameleon.
Unless they have changed within the last 2 months then they may need replacing.
Thats the reason for MacVCobbler in /Chameleon Folder.
If you want the "latest" run that command and it will "get" it for you.
Then you just need to replace boot0 and boot1 folders.

At the moment I am only using boot1/boot1.s in the RevStart build process.
This equates to Chameleons boot1h (i think)

May cause problems with different PBR types. Not too sure on that one.
I only use GUID here, and boots ok.

#1031
FKA

FKA

    are we there yet?

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,626 posts
  • Gender:Male

So we're making progress at last. Fabulous. Uhm. Can you reboot without a KP? What about using the boot options -f or -x with RevoBoot? No KP?


I'm still not sure what combination is allowing me to boot again with Revolution after KP. I think its along the lines of clear caches > boot with chameleon > restart > boot with revolution.

After KP holding down 'X' or 'F' at boot with Revolution gives a KP. I presume this works, as apposed to adding -f or -x to boot.plist?


P.S. I'm happy to test. I want to see this working for me!

D

Thats the reason for MacVCobbler in /Chameleon Folder.
If you want the "latest" run that command and it will "get" it for you.
Then you just need to replace boot0 and boot1 folders.


I'll give this a go mate. Thx

I'll give this a go mate. Thx


Hi

I see you script downloads source from chameleon trunk.
I've already tried boot0 and boot1h complied from latest trunk and currently with that of RC4.
I have similar issues with both.

D

#1032
Time2Retire

Time2Retire

    Retired

  • Retired Developers
  • 1,012 posts
  • Gender:Female
  • Location:anonymouse.eu

I'm still not sure what combination is allowing me to boot again with Revolution after KP. I think its along the lines of clear caches > boot with chameleon > restart > boot with revolution.

Not good. Got to fix this.

After KP holding down 'X' or 'F' at boot with Revolution gives a KP. I presume this works, as apposed to adding -f or -x to boot.plist?

The X should be pretty obvious. In verbose mode there's the text: "SAFE BOOT DETECTED" and eventually shows the same red bold text on a login dialog. And not being able to boot with -x (or holding down the X key) is definitely a serious issue. Like I said I will have another look at it tonight.

On a side note; What Chameleon branch are you normally using to boot? The trunk?

#1033
FKA

FKA

    are we there yet?

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,626 posts
  • Gender:Male

On a side note; What Chameleon branch are you normally using to boot? The trunk?


No Kabyl's branch. But I've tried and can boot from nearly all of them.

D

#1034
FKA

FKA

    are we there yet?

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,626 posts
  • Gender:Male

The X should be pretty obvious. In verbose mode there's the text: "SAFE BOOT DETECTED" and eventually shows the same red bold text on a login dialog. And not being able to boot with -x (or holding down the X key) is definitely a serious issue. Like I said I will have another look at it tonight.


I can see 'X' is detected in debug and I can see from drivers debug it's individually loading system kexts, but still KP/ Hang

'F' doesn't show in boot debug text and I can see from drivers debug the system mkext is being loaded.

More often than not the KP is now showing something along the lines of "AppleACPIExpert driver can not be found for this model 'iMac9,1' " (which is the model id I have statically set.).

D

#1035
blackosx

blackosx

    InsanelyMacaholic

  • Coders
  • 3,102 posts
  • Gender:Male
  • Location:UK
Hi everyone

STLVNUB is continuing his development of ProjectRevo which I know is set to become the complete all in one RevoBoot app for starting from scratch and finishing with a bootable disk. I am happy to leave that to his talents as some of what he's doing is far more advanced than I have managed to grasp so far and to be honest is way more advanced than what I ever imagined when I started my script for helping out here. So well done STLVNUB.

But in the mean time, I've wanted to learn to use git and the best way for me was to use it. So for that, I took my previously posted version of ProjectRevolution_1.9pre_a and have been re-vamping it to be a simple version of a tool to help new users with RevoBoot. I have called it RevoBuilder and have concentrated on trying to keep is simple and user friendly. You can download the package from my git repository at: https://github.com/b...osx/RevoBuilder

The basis of the package is to allow you to download the latest RevoBoot source code from Samantha's git repository, build your config data, edit the settings.h file and compile RevoBoot, all in hopefully a more informed way. That's all. The operations are all done manually one step at a time and doesn't have the automation options as STLVNUB's ProjectRevo. It also doesn't attempt to build any kind of bootable media and is in no way competing with STLVNUB's ProjectRevo. And once I get more familiar with git, then maybe the good parts of this (if any) can be merged in to STLVNUB's branch to help create a truly useful project.

You will need to have Apple's developer tools installed and git set up on your system and if you haven't already then there's instructions included in the ReadMe and in the scripts.

For an example of how to use it, from the the main menu, you can run options 1, 5, 6 then 8 to compile RevoBoot. Though whether or not the compiled boot file actually boots your system will be down to the directives set in your settings.h file.

If anybody wants to do any testing then I'll be grateful and I look forward to hearing feedback.

ps. The current version is good to operate with Sam's latest commit, though I'm aware that she'll change the version numbering in the next commit at which point I'll amend this to reflect it.

Regards
blackosx

EDIT: RevoBuilder has now been updated to work with the latest RevoBoot v1.0.04

#1036
Time2Retire

Time2Retire

    Retired

  • Retired Developers
  • 1,012 posts
  • Gender:Female
  • Location:anonymouse.eu

I can see 'X' is detected in debug and I can see from drivers debug it's individually loading system kexts, but still KP/ Hang

Try to boot with this in your drivers.c file for Chameleon. And it doesn't really matter what branch you are using since nobody ever changed drivers.c anyway:
long LoadDrivers( char * dirSpec ){    char dirSpecExtra[1024];	    if ( InitDriverSupport() != 0 )        return 0;	    strcpy(dirSpecExtra, "/Extra/");    FileLoadDrivers(dirSpecExtra, 0);		    strcpy(gExtensionsSpec, dirSpec);    strcat(gExtensionsSpec, "System/Library/");    FileLoadDrivers(gExtensionsSpec, 0);    MatchLibraries();    LoadMatchedModules();	    return 0;}
Let's see what this gives.

#1037
FKA

FKA

    are we there yet?

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,626 posts
  • Gender:Male

Let's see what this gives.


It give's a compile error!

cc1: warnings being treated as errors
drivers.c:274:0 drivers.c:274: warning: 'NetLoadDrivers' defined but not used
drivers.c:547:0 drivers.c:547: warning: 'MatchPersonalities' defined but not used
make[2]: *** [drivers.o] Error 1
make[1]: *** [all] Error 2
make: *** [all] Error 2
Command /usr/bin/make failed with exit code 2

Cheers
D

#1038
Time2Retire

Time2Retire

    Retired

  • Retired Developers
  • 1,012 posts
  • Gender:Female
  • Location:anonymouse.eu

It give's a compile error!

cc1: warnings being treated as errors
drivers.c:274:0 drivers.c:274: warning: 'NetLoadDrivers' defined but not used
drivers.c:547:0 drivers.c:547: warning: 'MatchPersonalities' defined but not used
make[2]: *** [drivers.o] Error 1
make[1]: *** [all] Error 2
make: *** [all] Error 2
Command /usr/bin/make failed with exit code 2

Cheers
D

Oops. Thing is; I cannot compile Chameleon because they have yet to fix the Xcode 4 bug, so here goes (see attachments) nothing. Please backup your copy of drivers.c and use this one (but don't forget to rename it).

Attached Files



#1039
FKA

FKA

    are we there yet?

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,626 posts
  • Gender:Male

Oops. Thing is; I cannot compile Chameleon because they have yet to fix the Xcode 4 bug, so here goes (see attachments) nothing. Please backup your copy of drivers.c and use this one (but don't forget to rename it).


No worries SG I one step ahead of you!
I commented out the NetLoadDrivers and MatchPersonalities parts in Kabyl's drivers.c and got it to compile.

It works just fine, boot post shut down, boot post caches cleared ... all OK.

An btw that was with the same boot0 and boot1h from chameleon 2 RC4 that I've bee using for the Revolution tests, which I think have actually been changed slightly for the latest RC5 of Kabyl's that I've just edited and complied from. ..

D

#1040
buoo

buoo

    The Prodigal Son

  • Moderators
  • 4,536 posts
  • Gender:Male
  • Location:Italy
Hi :(
I've a problem!

I'm not able to set my Ram, I have 2 X (2GB 800Mhz DDR2) Modules and I setted in this way:

#define DEBUG_SMBIOS	1// ------------------------------------------------------------------ PLATFORM.C ----------------------------------------------------------------#define DEBUG_PLATFORM	1#define TARGET_OS	SNOW_LEOPARD#define STATIC_MAC_PRODUCT_NAME	"MacPro3,1"#if USE_STATIC_SMBIOS_DATA	// Do nothing.#elif OVERRIDE_DYNAMIC_MEMORY_DETECTION	// Setup RAM module info. Please note that you may have to expand this when you have more RAM modules.	#define STATIC_RAM_SLOTS				4						// Number of RAM slots on mainboard.	#define STATIC_RAM_VENDORS				{ Vendor#1, Vendor#2, 0 }			// Use n/a for empty RAM banks.	#define STATIC_RAM_TYPE					19				// See libsaio/platform.h for other values.	#define USE_STATIC_RAM_SIZE				0#if USE_STATIC_RAM_SIZE	#define STATIC_RAM_SIZES				{ SMB_MEM_SIZE_2GB, SMB_MEM_SIZE_2GB, 0 }	// See libsaio/platform.h for other values.#endif	#define STATIC_RAM_SPEED				800	#define STATIC_RAM_PART_NUMBERS			{ Part#1, Part#2, 0 }				// Use n/a for empty RAM banks.	#define STATIC_RAM_SERIAL_NUMBERS		{ Serial#1, Serial#2, 0 }				// Use n/a for empty RAM banks.#endif// ===================================================================== END ====================================================================

but it sees:

Posted Image

What is the right way to set it ?





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy