Jump to content

How to boost the OS X boot process...


1,027 posts in this topic

Recommended Posts

Perversely good news - look forward to the solution :)

I am waiting for my father to arrive (for his birthday party) and to bring me a debug kernel – this nut is a hard one to crack.

 

That and setting up my new rig (now water cooled and running at 5.5GHz) which took a bit longer. Mostly due to having to learn how to fix the DSDT but I am getting at a point where I feel confident enough to leave the hardware alone for a while, and to concentrate on RevoBoot again.

 

Will keep you posted. Thank you for your patience.

Link to comment
Share on other sites

Thanks. My new system is up and running. Lot's of fun time coming.

 

Note: I ran into the same issue (I think) that you reported about – the boot process stops just before it loads AppleACPIPlatform.kext This is exactly what I was hoping for – being able to reproduce this myself. Let's see what I can come up with...

 

 

Not having to inject a mod DSDT – if I am reading this right – makes it even faster.

 

BTW: What revision is your Revodrive? Are you happy with it? How many spins do you see when you boot? Also. Are you using a RAMdrive to stretch the lifespan of your RevoDisk?

 

The revodrive is Gen2 x4, Bios version 6.6.01, didn't check on the board for hw revision, just installed an Antec h2o 620, let me keep the case closed for a couple of hours ;)

 

Very happy with it, pretty sure Silicon Image can come up with better drivers, but the thing loads up in 4.5 spins, that's after removing unwanted kext (not really noticeable) and disabling hda in favor of a plantronics usb audio stick (4 seconds less boot time).

 

Here's a video before optimization:

 

http://www.vimeo.com/21482740 the other video is PS 5 loading.

 

Benchmarks: http://db.xbench.com/merge.xhtml?doc1=5188...;setCookie=true

http://browse.geekbench.ca/geekbench2/view/391639

Link to comment
Share on other sites

The revodrive is Gen2 x4, Bios version 6.6.01, didn't check on the board for hw revision, just installed an Antec h2o 620, let me keep the case closed for a couple of hours :P

 

Very happy with it, pretty sure Silicon Image can come up with better drivers, but the thing loads up in 4.5 spins, that's after removing unwanted kext (not really noticeable) and disabling hda in favor of a plantronics usb audio stick (4 seconds less boot time).

Pretty awesome already, but you can boot even faster with RevoBoot and a pre-linked kernel. What about 2 spins?

 

 

@FKA: I think to have found out why it stops, but I need you help. Please use the attached copy of drivers.c and tell me where it stops. We need to get this fixed (I can now only boot from some old HDD).

 

And yes. You will have to set DEBUG_DRIVERS to 1 of course ;)

drivers.c.zip

Link to comment
Share on other sites

Pretty awesome already, but you can boot even faster with RevoBoot and a pre-linked kernel. What about 2 spins?

 

 

@FKA: I think to have found out why it stops, but I need you help. Please use the attached copy of drivers.c and tell me where it stops. We need to get this fixed (I can now only boot from some old HDD).

 

And yes. You will have to set DEBUG_DRIVERS to 1 of course :P

 

Ok, now it does not hang anymore after cpu detection, but it complains about not finding a pre-linked kernel

(how do I make one?)

(I RTFM, reporting later with prelinked) and then hangs after compaining about the smc plugin. Here's the log

 

04.04.11 14.34.13	kernel	npvhash=4095
04.04.11 14.34.13	kernel	Darwin Kernel Version 10.7.0: Sat Jan 29 15:16:10 PST 2011; root:xnu-1504.9.37~1/RELEASE_X86_64
04.04.11 14.34.13	kernel	vm_page_bootstrap: 3046385 free pages and 82959 wired pages
04.04.11 14.34.13	kernel	kext submap [0xffffff7f80600000 - 0xffffff8000000000], kernel text [0xffffff8000200000 - 0xffffff8000600000]
04.04.11 14.34.13	kernel	standard timeslicing quantum is 10000 us
04.04.11 14.34.13	kernel	mig_table_max_displ = 73
04.04.11 14.34.13	kernel	AppleACPICPU: ProcessorId=1 LocalApicId=0 Enabled
04.04.11 14.34.13	kernel	AppleACPICPU: ProcessorId=2 LocalApicId=2 Enabled
04.04.11 14.34.13	kernel	AppleACPICPU: ProcessorId=3 LocalApicId=4 Enabled
04.04.11 14.34.13	kernel	AppleACPICPU: ProcessorId=4 LocalApicId=6 Enabled
04.04.11 14.34.13	kernel	AppleACPICPU: ProcessorId=5 LocalApicId=1 Enabled
04.04.11 14.34.13	kernel	AppleACPICPU: ProcessorId=6 LocalApicId=3 Enabled
04.04.11 14.34.13	kernel	AppleACPICPU: ProcessorId=7 LocalApicId=5 Enabled
04.04.11 14.34.13	kernel	AppleACPICPU: ProcessorId=8 LocalApicId=7 Enabled
04.04.11 14.34.13	kernel	calling mpo_policy_init for Quarantine
04.04.11 14.34.13	kernel	Security policy loaded: Quarantine policy (Quarantine)
04.04.11 14.34.13	kernel	calling mpo_policy_init for Sandbox
04.04.11 14.34.13	kernel	Security policy loaded: Seatbelt sandbox policy (Sandbox)
04.04.11 14.34.13	kernel	calling mpo_policy_init for TMSafetyNet
04.04.11 14.34.13	kernel	Security policy loaded: Safety net for Time Machine (TMSafetyNet)
04.04.11 14.34.13	kernel	Copyright (c) 1982, 1986, 1989, 1991, 1993
04.04.11 14.34.13	kernel	The Regents of the University of California. All rights reserved.
04.04.11 14.34.13	kernel	MAC Framework successfully initialized
04.04.11 14.34.13	kernel	using 16384 buffer headers and 4096 cluster IO buffer headers
04.04.11 14.34.13	kernel	IOAPIC: Version 0x20 Vectors 64:87
04.04.11 14.34.13	kernel	ACPI: System State [S0 S3 S4 S5] (S3)
04.04.11 14.34.13	kernel	RTC: Only single RAM bank (128 bytes)
04.04.11 14.34.13	kernel	AppleIntelCPUPowerManagement: initialization complete
04.04.11 14.34.13	kernel	mbinit: done (96 MB memory set for mbuf pool)
04.04.11 14.34.13	kernel	rooting via boot-uuid from /chosen: B635AD44-542E-3788-B4D6-4D9C2C0B066E
04.04.11 14.34.13	kernel	Waiting on <dict ID="0"><key>IOProviderClass</key><string ID="1">IOResources</string><key>IOResourceMatch</key><string ID="2">boot-uuid-media</string></dict>
04.04.11 14.34.13	kernel	com.apple.AppleFSCompressionTypeZlib kmod start
04.04.11 14.34.13	kernel	USBF:	0.910	AppleUSBUHCI[0xffffff80db374000]::start unable to initialize UIM
04.04.11 14.34.13	kernel	com.apple.AppleFSCompressionTypeZlib load succeeded
04.04.11 14.34.13	kernel	FireWire runtime power conservation disabled. (2)2.3.11 Little Snitch: starting
04.04.11 14.34.13	kernel	AppleIntelCPUPowerManagementClient: ready
04.04.11 14.34.13	kernel	FireWire (OHCI) TI ID 8023 PCI now active, GUID 00000000bfdf558b; max speed s400.
04.04.11 14.34.13	kernel	USBMSC Identifier (non-unique): 19740601191D 0x1005 0xb113 0x100
04.04.11 14.34.13	kernel	USBMSC Identifier (non-unique): 574341553434323330333432 0x1058 0x1001 0x105
04.04.11 14.34.13	kernel	kxld[com.Ralink.driver.RT73]: The Mach-O file is malformed: Invalid magic number: 0xbebafeca.
04.04.11 14.34.13	kernel	Can't load kext com.Ralink.driver.RT73 - link failed.
04.04.11 14.34.13	kernel	Failed to load executable for kext com.Ralink.driver.RT73.
04.04.11 14.34.13	kernel	Kext com.Ralink.driver.RT73 failed to load (0xdc008016).
04.04.11 14.34.13	kernel	Failed to load kext com.Ralink.driver.RT73 (error 0xdc008016).
04.04.11 14.34.13	kernel	Couldn't alloc class "RT2573USBWirelessDriver"
04.04.11 14.34.13	kernel	Got boot device = IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/BR20@1C/IOPCI2PCIBridge/pci-bridge@0/IOPCI2PCIBridge/pci1095,3124@0/Si3124r5/IOSCSIParallelInterfaceDevice@10/IOSCSITargetDevice/IOSCSILogicalUnitNub@0/IOSCSIPeripheralDeviceType00/IOBlockStorageServices/IOBlockStorageDriver/SiImage Media/IOGUIDPartitionScheme/Revodrive@2
04.04.11 14.34.13	kernel	BSD root: disk4s2, major 14, minor 15
04.04.11 14.34.13	kernel	ioqueue_depth = 150,   ioscale = 5
04.04.11 14.34.13	kernel	Kernel is LP64
04.04.11 14.34.13	com.apple.launchd[1]	*** launchd[1] has started up. ***
04.04.11 14.34.13	com.apple.launchd[1]	*** Verbose boot, will log to /dev/console. ***
04.04.11 14.34.13	com.apple.kextd[10]	Cache file /System/Library/Caches/com.apple.kext.caches/Directories//System/Library/Extensions/IOKitPersonalities_x86_64.ioplist.gz is out of date; not using.
04.04.11 14.34.13	mDNSResponder[18]	mDNSResponder mDNSResponder-258.18 (Jan 18 2011 20:25:03) starting
04.04.11 14.34.14	kernel	AppleRTL8169Ethernet: Ethernet address 00:e0:52:a7:30:ac
04.04.11 14.34.14	kernel	systemShutdown false
04.04.11 14.34.14	com.apple.SecurityServer[32]	Session 0x5fbff962 created
04.04.11 14.34.14	com.apple.SecurityServer[32]	Entering service
04.04.11 14.34.17	blued[17]	Apple Bluetooth daemon started
04.04.11 14.34.19	bootlog[68]	BOOT_TIME: 1301949250 0
04.04.11 14.34.19	com.apple.usbmuxd[50]	usbmuxd-211 built on Jan 13 2011 at 04:20:21 on Jan 13 2011 at 04:20:21, running 64 bit
04.04.11 14.34.19	Parallels[90]	Loading kernel extension  prl_hypervisor.kext
04.04.11 14.34.19	com.apple.usbmuxd[50]	HandleUSBMuxDictionary client 0x101800820-usbmuxd/NULL using library usbmuxd-211 built on Jan 13 2011 at 04:19:31, running usbmuxd-211 built on Jan 13 2011 at 04:20:21
04.04.11 14.34.19	CleanApp Daemon[73]	3891612: (CGSLookupServerRootPort) Untrusted apps are not allowed to connect to or launch Window Server before login.
04.04.11 14.34.19	com.synium.cleanappdaemon[73]	Mon Apr  4 14:34:19 localhost CleanApp Daemon[73] <Warning>: 3891612: (CGSLookupServerRootPort) Untrusted apps are not allowed to connect to or launch Window Server before login.
04.04.11 14.34.19	CleanApp Daemon[73]	kCGErrorRangeCheck: On-demand launch of the Window Server is allowed for root user only.
04.04.11 14.34.19	com.synium.cleanappdaemon[73]	Mon Apr  4 14:34:19 localhost CleanApp Daemon[73] <Error>: kCGErrorRangeCheck: On-demand launch of the Window Server is allowed for root user only.
04.04.11 14.34.19	CleanApp Daemon[73]	kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch errors as they are logged.
04.04.11 14.34.19	com.synium.cleanappdaemon[73]	Mon Apr  4 14:34:19 localhost CleanApp Daemon[73] <Error>: kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch errors as they are logged.
04.04.11 14.34.19	/Library/Application Support/CleanApp/CleanApp Daemon.app/Contents/MacOS/CleanApp Daemon[73]	_RegisterApplication(), FAILED TO establish the default connection to the WindowServer, _CGSDefaultConnection() is NULL.
04.04.11 14.34.19	com.synium.cleanappdaemon[73]	_RegisterApplication(), FAILED TO establish the default connection to the WindowServer, _CGSDefaultConnection() is NULL.
04.04.11 14.34.19	prl_client_app[85]	3891612: (CGSLookupServerRootPort) Untrusted apps are not allowed to connect to or launch Window Server before login.
04.04.11 14.34.19	prl_client_app[85]	kCGErrorRangeCheck: On-demand launch of the Window Server is allowed for root user only.
04.04.11 14.34.19	com.parallels.desktop.launchdaemon[74]	Mon Apr  4 14:34:19 localhost prl_client_app[85] <Warning>: 3891612: (CGSLookupServerRootPort) Untrusted apps are not allowed to connect to or launch Window Server before login.
04.04.11 14.34.19	prl_client_app[85]	kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch errors as they are logged.
04.04.11 14.34.19	com.parallels.desktop.launchdaemon[74]	Mon Apr  4 14:34:19 localhost prl_client_app[85] <Error>: kCGErrorRangeCheck: On-demand launch of the Window Server is allowed for root user only.
04.04.11 14.34.19	com.parallels.desktop.launchdaemon[74]	Mon Apr  4 14:34:19 localhost prl_client_app[85] <Error>: kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch errors as they are logged.
04.04.11 14.34.19	/Applications/Parallels Desktop.app/Contents/PlugIns/PD_Starter.app/Contents/MacOS/prl_client_app[85]	_RegisterApplication(), FAILED TO establish the default connection to the WindowServer, _CGSDefaultConnection() is NULL.
04.04.11 14.34.19	com.parallels.desktop.launchdaemon[74]	_RegisterApplication(), FAILED TO establish the default connection to the WindowServer, _CGSDefaultConnection() is NULL.
04.04.11 14.34.20	kernel	Waiting for DSMOS...
04.04.11 14.34.20	kernel	NTFS driver 3.4 [Flags: R/W].
04.04.11 14.34.20	kernel	** AppleSMBusPCI::start failed to get acpi path for provider
04.04.11 14.34.20	kernel	NTFS volume name Réservé au système, version 3.1.
04.04.11 14.34.20	kernel	NTFS-fs warning (device /dev/disk2s1, pid 43): ntfs_system_inodes_get(): $LogFile is not clean.  Will not be able to remount read-write.  Mount in Windows.
04.04.11 14.34.20	kernel	NTFS volume name , version 3.1.
04.04.11 14.34.20	kernel	NTFS-fs warning (device /dev/disk2s2, pid 103): ntfs_system_inodes_get(): $LogFile is not clean.  Will not be able to remount read-write.  Mount in Windows.
04.04.11 14.34.20	com.apple.kextd[10]	Can't load /System/Library/Extensions/RT73USBWirelessDriver.kext - no code for running kernel's architecture.
04.04.11 14.34.20	com.apple.kextd[10]	Failed to load /System/Library/Extensions/RT73USBWirelessDriver.kext - (libkern/kext) requested architecture/executable not found.
04.04.11 14.34.20	com.apple.kextd[10]	Load com.Ralink.driver.RT73 failed; removing personalities.
04.04.11 14.34.20	kernel	NVDANV50HAL loaded and registered.
04.04.11 14.34.20	configd[15]	network configuration changed.
04.04.11 14.34.20	kernel	AppleRTL8169Ethernet: phyWaitForAutoNegotiation TIMEOUT
04.04.11 14.34.20	configd[15]	setting hostname to "MAC.local"
04.04.11 14.34.21	com.apple.kextd[10]	Can't load /System/Library/Extensions/IOSerialFamily.kext/Contents/PlugIns/InternalModemSupport.kext - no code for running kernel's architecture.
04.04.11 14.34.21	com.apple.kextd[10]	Failed to load /System/Library/Extensions/IOSerialFamily.kext/Contents/PlugIns/InternalModemSupport.kext - (libkern/kext) requested architecture/executable not found.
04.04.11 14.34.21	com.apple.kextd[10]	Load com.apple.driver.InternalModemSupport failed; removing personalities.
04.04.11 14.34.21	Parallels[113]	Loading kernel extension  prl_hid_hook.kext
04.04.11 14.34.21	Parallels[119]	Loading kernel extension  prl_usb_connect.kext
04.04.11 14.34.21	Parallels[124]	Trying to load kernel extensions, exit status: 0
04.04.11 14.34.21	Parallels[127]	Starting Parallels networking...
04.04.11 14.34.21	Parallels[130]	Loading kernel extension  prl_netbridge.kext
04.04.11 14.34.22	kernel	ACPI_SMC_PlatformPlugin::pushCPU_CSTData - _CST evaluation failed
04.04.11 14.34.22	kernel	[ffffff801e3c3c00][BNBMouseDevice::init][54] init is complete
04.04.11 14.34.22	kernel	/drv/ HypApic.c:230   Host APIC  phy 0xFEE00000  lin 0xffffff80f9c0c000  ver 0x15
04.04.11 14.34.22	kernel	/drv/ HypVtd.c:3718   [vtdInit]
04.04.11 14.34.22	kernel	/drv/ HypVtd.c:3734   [vtdInit] VTD initialization disabled
04.04.11 14.34.22	kernel	[ffffff801e3c3c00][BNBMouseDevice::handleStart][54] Done
04.04.11 14.34.22	kernel	/drv/ HypLowCache.c:173   Low cache initialized (20544 kB for 24 VMs on 12288 MB)[ffffff801e428200][AppleMultitouchHIDEventDriver::start] entered
04.04.11 14.34.22	kernel	/drv/ HypModule.c:174   Parallels IPI irq = 0 ipi = 0(0x0)
04.04.11 14.34.22	kernel	/drv/ HypModule.c:181   Parallels Hypervisor 6.0.11820.602974 loaded.
04.04.11 14.34.22	kernel	/prl_hid/ Parallels HID Helper started.
04.04.11 14.34.22	kernel	[ffffff801e484800][AppleMultitouchDevice::start] entered
04.04.11 14.34.22	Parallels[135]	Loading kernel extension  prl_vnic.kext
04.04.11 14.34.22	kernel	com.parallels.kext.prlnet 6.0.11820.602974 has started.
04.04.11 14.34.22	kernel	com.parallels.kext.vnic 6.0.11820.602974 has started.
04.04.11 14.34.22	kernel	com_parallels_kext_prl_vnic: created vnic0
04.04.11 14.34.22	kernel	com_parallels_kext_prl_vnic: created vnic1
04.04.11 14.34.22	com.apple.launchd[1]	(com.parallels.vm.prl_naptd) Unknown key for boolean: SuccessfulExit
04.04.11 14.34.22	Parallels[146]	Parallels networking sucessfully started
04.04.11 14.34.22	Parallels[148]	Restarting CiscoVPN
04.04.11 14.34.22	SystemStarter[150]	Unknown service: CiscoVPN
04.04.11 14.34.22	Parallels[153]	Starting Parallels Dispatcher Service
04.04.11 14.34.22	Parallels[157]	Parallels Dispatcher Server sucessfully started
04.04.11 14.34.22	prl_naptd[145]	Starting Parallels Network Daemon
04.04.11 14.34.22	prl_naptd[145]	vnic0: DHCP/NAT for 10.211.55.1-10.211.55.254 netmask 255.255.255.0
04.04.11 14.34.22	prl_naptd[145]	vnic1: DHCP for 10.37.129.1-10.37.129.254 netmask 255.255.255.0
04.04.11 14.34.22	prl_disp_service[156]	3891612: (CGSLookupServerRootPort) Untrusted apps are not allowed to connect to or launch Window Server before login.
04.04.11 14.34.22	prl_disp_service[156]	kCGErrorRangeCheck: On-demand launch of the Window Server is allowed for root user only.
04.04.11 14.34.22	prl_disp_service[156]	kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch errors as they are logged.
04.04.11 14.34.22	/Library/Parallels/Parallels Service.app/Contents/MacOS/prl_disp_service[156]	_RegisterApplication(), FAILED TO establish the default connection to the WindowServer, _CGSDefaultConnection() is NULL.
04.04.11 14.34.23	kernel	prl_net::bindHw: (1) failed to setup promisc mode: 66
04.04.11 14.34.23	kernel	prl_net::bindHw: (1) failed to setup promisc mode: 66
04.04.11 14.34.23	kernel	/drv/ HypIoctls.c:908   Ioctl VT-d status: 0
04.04.11 14.34.49	_mdnsresponder[166]	/usr/libexec/ntpd-wrapper: scutil key State:/Network/Global/DNS not present after 30 seconds
04.04.11 14.34.50	_mdnsresponder[169]	sntp options: a=2 v=1 e=0.100 E=5.000 P=2147483647.000
04.04.11 14.34.50	_mdnsresponder[169]		d=15 c=5 x=0 op=1 l=/var/run/sntp.pid f= time.apple.com
04.04.11 14.34.50	_mdnsresponder[169]	sntp: getaddrinfo(hostname, ntp)  failed with nodename nor servname provided, or not known
04.04.11 14.34.51	com.apple.SystemStarter[51]	Initializing tap devices
04.04.11 14.34.51	com.apple.SystemStarter[51]	Initializing tun devices
04.04.11 14.34.51	_mdnsresponder[184]	Starting SATARaid5Daemon
04.04.11 14.34.51	_mdnsresponder[190]	Stopping SATARaid5Daemon
04.04.11 14.34.52	kernel	ACPI_SMC_PlatformPlugin::registerLPCDriver - failed to locate SMC driver
04.04.11 14.34.52	kernel	ACPI_SMC_PlatformPlugin::pushCPU_CSTData - _CST evaluation failed
04.04.11 14.34.52	kernel	ACPI_SMC_PlatformPlugin::registerLPCDriver - WARNING - LPC device initialization failed: C-state power management not initialized
04.04.11 14.34.52	kernel	tun kernel extension version 20090913 <mattias.nissler@gmx.de>
04.04.11 14.34.52	kernel	tap kernel extension version 20090913 <mattias.nissler@gmx.de>
04.04.11 14.35.51	com.apple.kextcache[208]	/System/Library/Extensions/RT73USBWirelessDriver.kext doesn't support architecture x86_64; omitting from prelinked kernel.
04.04.11 14.35.51	com.apple.kextcache[208]	/System/Library/Extensions/IOSerialFamily.kext/Contents/PlugIns/InternalModemSupport.kext doesn't support architecture x86_64; omitting from prelinked kernel.

Link to comment
Share on other sites

Drivers in /Extra/Extensions/ are not included in a pre-linked kernel so you have to copy/move them to /System/Library/Extensions/ first.

 

Things are changing (for Lion) and because of it loading kexts from /Extra/Extensions/ will soon be a thing from the past. This whole "vanilla" thing was getting ridiculous anyway. People better get used to the right way (read; the Apple way) of kext loading. Let's stop the madness.

 

And creating a pre-linked kernel can be done with:

sudo touch /System/Library/Extensions

kextcache -system-caches

kextcache -system-prelinked-kernel

This way it's fresh and up-to-date.

 

Update: A patched version of drivers.c has now been committed to github.com.

Link to comment
Share on other sites

Pretty awesome already, but you can boot even faster with RevoBoot and a pre-linked kernel. What about 2 spins?

 

 

@FKA: I think to have found out why it stops, but I need you help. Please use the attached copy of drivers.c and tell me where it stops. We need to get this fixed (I can now only boot from some old HDD).

 

And yes. You will have to set DEBUG_DRIVERS to 1 of course ;)

 

Hi Dutch

 

The attached doesn't load FackeSMC.kext and so hangs waiting for DSMOS. If you need debug text from Rev' let me know, will have to post later.

Commit from githiub has same issue of AppleACPI not loading after shutdown/ restart.

 

Cheers

:)

Link to comment
Share on other sites

Hi Dutch

 

The attached doesn't load FackeSMC.kext and so hangs waiting for DSMOS. If you need debug text from Rev' let me know, will have to post later.

Commit from githiub has same issue of AppleACPI not loading after shutdown/ restart.

 

Cheers

;)

The attached one here did not include the fix to make it load all kexts (when there is no MKext or when you boot in safe mode). The problem was that the reserved space for filenames was too limited and thus some of the plist didn't load. This bug has been fixed (in the githib.com tree) but apparently it need more love. Let's start hunting.

Link to comment
Share on other sites

Idem. Looks like it boots the first time then hangs up at the same point. Thanks to the prelinked kernel system boots in it's 3.5 spins.

 

Let me know if/how I can help further.

 

Oh on another note, when I ran the script the first time, it complained about the terminal preferences, changed to pro and column*row size but it still complained so I just edited the if fi out.

 

Being the revodrive recognized as SCSI, when the sata intel ssd is connected, revoboot will chose the intel as a start volume when compiling.

 

I'll try the updated drivers.c

Link to comment
Share on other sites

Wow. After many many hours of testing... I finally found out why it stops. Or at least for my configuration. The problem is my DSDT. I can make it stop by removing a few lines, or by changing a few lines in my DSDT. How weird is that?

 

Apparently method _CRS under PCI0 is extremely important for a good boot. If I make one wrong change and it is POOF! No boot.

 

Also I cannot boot without these lines in my DSDT:

	Name (HPTB, 0xFED00000) // Used by several Apple kexts
Name (HPTC, 0xFED1F404) // AppleHPET.kext
Name (PEBS, 0xE0000000) // AppleProfileFamily.kext et all

And thus if you removed them... err. We seem to need them (now).

 

Note: The values for the three lines are probably different for you setup, or not required at all (maybe it's just my Sandy Bridge based setup).

 

p.s. I've let my hack boot/shutdown for 300 times and everything is still ok. Crazy stuff.

 

A few more observations:

 

1.) I have 214 kexts in /System/Library/Extensions/

 

2.) I checked: /System/Library/Caches/com.apple.kext.caches/Directories/System/Library/Extensions/KextIdentifiers.plist.gz

and that tells me that I have 314 kexts.

 

3.) There are 313 kexts in Extensions.mkext (unpacked with mkextunpack).

 

4.) sudo kextcache -system-mkext outputs:

 

iPodDriver.kext is not valid; omitting from mkext.
JMicronATA.kext does not declare a kernel dependency; using com.apple.kernel.6.0.
BJUSBLoad.kext is missing dependencies (including anyway; dependencies may be available from elsewhere)
iPodDriver.kext is not valid; omitting from mkext.

Note: There are two lines for the exclusion of iPodDriver.kext – one for each arch.

 

5.) This shows me that my MKext is correct (includes all kexts).

 

6.) Then I replace my DSDT with a stripped copy and re-run kextcache again. And now I get a much smaller MKext (7.5MB) with 'only' 159 kexts in it.

 

This clearly shows us that the DSDT is very important when it comes to building caches, but I have yet to figure out what exactly it is that makes this difference.

 

Hello Lion

Most of you are probably wondering why this is so important. Well. Think Lion. Think about what error message people get when it fails to boot for them. Interesting isn't it?

 

We should setup a poll and ask people what (brand) motherboard they use, and what size their Extensions.mkext is when they boot into Snow Leopard. That should speak words. That will show you why group A can boot and group B never... or only sporadically.

Link to comment
Share on other sites

I don't see these names in my dsdt. we have a different mnemonics?

 

0xFED00000 and 0xFED1F404 addresses I only see relating to HPET and I don't see listed anywhere else:

 

                Device (HPET)
               {
                   Name (_HID, EisaId ("PNP0103"))
                   Name (CRS, ResourceTemplate ()
                   {
                       IRQNoFlags ()
                           {2}
                       IRQNoFlags ()
                           {8}
                       Memory32Fixed (ReadOnly,
                           0xFED00000,         // Address Base
                           0x00000400,         // Address Length
                           _Y0F)
                   })
                   OperationRegion (^LPCR, SystemMemory, 0xFED1F404, 0x04)
                   Field (LPCR, AnyAcc, NoLock, Preserve)
                   {
                       HPTS,   2, 
                           ,   5, 
                       HPTE,   1, 
                               Offset (0x04)
                   }

                   Method (_STA, 0, NotSerialized)
                   {
                       If (LEqual (OSFL (), Zero))
                       {
                           If (HPTE)
                           {
                               Return (0x0F)
                           }
                       }
                       Else
                       {
                           If (HPTE)
                           {
                               Return (0x0B)
                           }
                       }

                       Return (Zero)
                   }

                   Method (_CRS, 0, NotSerialized)
                   {
                       CreateDWordField (CRS, \_SB.PCI0.SBRG.HPET._Y0F._BAS, HPT)
                       Multiply (HPTS, 0x1000, Local0)
                       Add (Local0, 0xFED00000, HPT)
                       Return (CRS)
                   }
               }

 

address 0xE0000000 has an entry:

 

Name (PCIB, 0xE0000000)

 

and again under 'Device (^PCIE)'

 

                Device (^PCIE)
               {
                   Name (_HID, EisaId ("PNP0C02"))
                   Name (_UID, 0x11)
                   Name (CRS, ResourceTemplate ()
                   {
                       Memory32Fixed (ReadOnly,
                           0xE0000000,         // Address Base
                           0x10000000,         // Address Length
                           _Y10)
                   })
                   Method (_CRS, 0, NotSerialized)
                   {
                       CreateDWordField (CRS, \_SB.PCI0.PCIE._Y10._BAS, BAS1)
                       CreateDWordField (CRS, \_SB.PCI0.PCIE._Y10._LEN, LEN1)
                       Store (PCIB, BAS1)
                       Store (PCIL, LEN1)
                       Return (CRS)
                   }
               }

 

D

Link to comment
Share on other sites

Hi there Dutch

 

Very nice work on the dev of Revoboot (hoop to test it soon when i have more time)

I have done some dsdt's for various board (see list below) and they have very different results in boot time.

All system where working 100% via dsdt and kext.

I still do not understand why there is such a big difference in boot time.

 

Asus p5k-vm g33 3.0ghz c2d 4gb wd500gb 15 spins (ootb powermanagement)

Asus p5k-vm g33 1.9ghz c2d 2gb intel ssd 17 spins (ootb powermanagement)

Asus p5q-em g45 3.2ghz c2d 4gb intel ssd 1 spins (Wd250 6 spins) (ootb powermanagement)

Asus p5gc-mx 945g 1.9ghz c2d 2gb intel ssd 0 spins (ootb powermanagement)

 

Gigabyte Ga-eg45m-ud2 g45 3.2ghz c2d 4gb wd250 10 spins (Dsdt powermanagement)

Gigabyte Ga-x58-ud5 x58 i920 i7 8gb wd640 18 spins (Dsdt powermanagement)

Gigabyte Ga-g33m-ds2r g33 2.66ghz 4gb wd250 12 spins (Dsdt powermanagement)

Shuttle Sg31g2 2.40ghz g31 4gb wd400 13 spins (Dsdt powermanagement)

 

RW

 

 

Btw All test's done with normal installed systems.

Link to comment
Share on other sites

I don't see these names in my dsdt. we have a different mnemonics? 0xFED00000 and 0xFED1F404 addresses I only see relating to HPET and I don't see listed anywhere else...

I will write up a simple doc/guide about HPET patching, for the DSDT section of this forum, later today. That should hopefully explain things a little bit.

 

You could add Name (HPTC, 0xFED1F404) in the global space (not _PR, _SB or _GPE or anything) and see if that helps.

 

@RemoteWorks: There are many thing that have some sort of influence on boot time. Not easy to explain.

Link to comment
Share on other sites

Hi nonick2

 

I also came across this with the latest build (but then I didn't check it with previous versions).

I saw it when I had the #define OVERRIDE_DYNAMIC_PRODUCT_DETECTION set to 1 in settings.h.

 

What happens if you set this to 0?

Link to comment
Share on other sites

System loads but stops compaining about not finding the macpro5,1 system definition.

Strange. I use MacPro5,1 myself. Also no problem for dgsga. When/where does it stop? You mean it compiles fine, but stops at load/boot time? In that case I like to see a picture (never seen something like that before). Thanks.

 

Where are the definitions stored?

i386/libsaio/smbios/model_data.h

 

You have something like this in config/settings.h?

#define USE_STATIC_SMBIOS_DATA			0
#define OVERRIDE_DYNAMIC_MEMORY_DETECTION	1
#define OVERRIDE_DYNAMIC_PRODUCT_DETECTION	1

#if OVERRIDE_DYNAMIC_PRODUCT_DETECTION
#define STATIC_SMBIOS_MODEL_ID		MACPRO
#endif

#define DEBUG_SMBIOS				0

#define STATIC_MAC_PRODUCT_NAME			"MacPro5,1"

Link to comment
Share on other sites

Alright, thnx

Btw are you happy with the new Asus board?

 

RW

You're welcome. And yes I am, and with me a few other people, mighty pleased with this awesome board.

 

Made a few stupid errors when I stripped the DSDT but luckily I got to the bottom of it just minutes ago. Can now boot and it no longer stops after a few lines. Apparently it is just one wrong value in this line:

Name (PSD, Package (0x05) { 0x05, Zero, Zero, 0xFC, 0x08 })

Had to change it to 0xFE (which is hardware coordinated for all cores) and now everything is all OK. Even with the small (7.5MB) Extensions.mkext.

 

Could potentially be the problem FKA and nonick is running into. Give it a go guys. You might have to change it to either 0xfc or 0xfd (depends on the used hardware / setup.

 

Note: I know that my fathers _PR scope had this line, and that he used something like: Alias (PSD, _PSD) in his CPUn scopes, but that is apparently no longer supported. I had to remove them and have just Name (_PSD, Package (0x05) { 0x05, Zero, Zero, 0xFE, 0x08 }) in \_PR.CPU0

 

p.s. 0xFC/0xFD might also work again after this change!

Link to comment
Share on other sites

Hi DHP & co,

 

Been a bit busy past weeks, but finally got around to building the latest from github (47ac4c2). All working OK here on Atom netbook. Unfortunately never got the i5/P55 machine sorted and now it's back in storage, but following the trials and tribulations of FKA etc here, as sounds like same problem I was seeing.

 

Keep up the great work!

Link to comment
Share on other sites

I use this bootloader atm on my desktop machine. Like u see in my signature i have no intel chipset. I hardcoded DSDT (not stripped down yet) and SMBIOS. The pre boot process is very fast now.

Now my question:

 

Will it boost the boot process if i strip down the dsdt an exclude the patches ins ssdt's and efi-strings on my hardware?

Link to comment
Share on other sites

Hi DHP & co,

 

Been a bit busy past weeks, but finally got around to building the latest from github (47ac4c2). All working OK here on Atom netbook. Unfortunately never got the i5/P55 machine sorted and now it's back in storage, but following the trials and tribulations of FKA etc here, as sounds like same problem I was seeing.

 

Keep up the great work!

Hi Hump!

 

I have been busy trying to setup my new system and ran into the same boot problem scrax and FKA reported. I had no clue as to what it could be, but my system boots fine again with this little change in ACPI/patcher.h

-patchedXSDT->Length -= ADDRESS_WIDTH * (dropOffset - newTableEntries);
+patchedXSDT->Length -= (ADDRESS_WIDTH * dropOffset);

Sorry gentlemen that it took me so long, but I got side tracked by so many new things... but luckily you all know how hard it is to focus with all this new stuff that is going on lately. Anyway. Have fun :)

 

I use this bootloader atm on my desktop machine. Like u see in my signature i have no intel chipset. I hardcoded DSDT (not stripped down yet) and SMBIOS. The pre boot process is very fast now.

Now my question:

 

Will it boost the boot process if i strip down the dsdt an exclude the patches ins ssdt's and efi-strings on my hardware?

Hi,

 

Most certainly. Setting device properties from your DSDT is dog slow. Might be simpler, but a heck lot slower. And yes, the less you have to load (smaller booter) the faster it is.

Link to comment
Share on other sites

 Share

×
×
  • Create New...