Jump to content

Still Waiting For Root Device, Lenovo G770


  • Please log in to reply
17 replies to this topic

#1
daz1uk

daz1uk

    InsanelyMac Protégé

  • Members
  • PipPip
  • 52 posts
Hi,

Today I took the plunge and updated to 10.8 but now can boot without safe mode, I have the error "still waiting for root device".

When I try the -f flag I get this:
Posted Image

Can anyone help?

Also my USB doesn't work, I was going to try updating my boot loader but can't without USB.

Using KernelCache=No, gives me the same result as above picture.

#2
Sanky18

Sanky18

    InsanelyMac Protégé

  • Members
  • PipPip
  • 65 posts
  • Gender:Male
From the picture you posted above you'll need to remove voodoohda.
Boot into the installer and open up terminal and type the following:
rm -rf /Volumes/"Your hdd"/System/Library/Extensions/VoodooHDA.kext

#3
HUSABER

HUSABER

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 876 posts
  • Gender:Male
  • Location:Cyprus
  • Interests:HusabergFC-600 FourStroke,KTM500 TwoStroke,TM300 TwoStroke
    Free Time-My Hackintosh&Ap...
Delete Voodoo.HDA.kext

#4
daz1uk

daz1uk

    InsanelyMac Protégé

  • Members
  • PipPip
  • 52 posts
Renaming vodoohda.kext to voodhda.back fixed it for me, thanks guys.

Another quick Question, I can now only boot using, kernelcache=no, does kernelcache just load the kexts from the e/e folder?

#5
Sanky18

Sanky18

    InsanelyMac Protégé

  • Members
  • PipPip
  • 65 posts
  • Gender:Male
this might help
http://tonymacx86.bl...nouncement.html

#6
daz1uk

daz1uk

    InsanelyMac Protégé

  • Members
  • PipPip
  • 52 posts
Ok, when I try and use kernelcache=yes, I get this:

Posted Image

Any ideas?

Because right now I have no networking, which I'm assuming is a result of not using the kernel cache?

Something else odd is that myhack no longer see's my hard drive in order to run myfix, I have absolutely no idea why that would be.

#7
HUSABER

HUSABER

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 876 posts
  • Gender:Male
  • Location:Cyprus
  • Interests:HusabergFC-600 FourStroke,KTM500 TwoStroke,TM300 TwoStroke
    Free Time-My Hackintosh&Ap...
Delete flag kernelcache=yes,in Terminal copy these 2 command:
sudo kextcache -system-prelinked-kernel -all-loaded

and

sudo kextcache -v 1 -a i386 -a x86_64 -m /System/Library/Caches/com.apple.kext.caches/Startup/Extensions.mkext -z /System/Library/Extensions/

Reboot :thumbsup_anim: And Voila

#8
bcc9

bcc9

    InsanelyMac Legend

  • Coders
  • 1,278 posts
  • Gender:Male

Something else odd is that myhack no longer see's my hard drive in order to run myfix, I have absolutely no idea why that would be.

Mountain lion on hackintoshes have a timing bug that can lead to "still waiting for root device" errors. See my fix here:
http://www.insanelym...howtopic=280062

#9
daz1uk

daz1uk

    InsanelyMac Protégé

  • Members
  • PipPip
  • 52 posts
Boots fine but says kexts are outdated?

Posted Image

Attached File  uploadfromtaptalk1343672072641.jpg   811.92KB   8 downloads

#10
HUSABER

HUSABER

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 876 posts
  • Gender:Male
  • Location:Cyprus
  • Interests:HusabergFC-600 FourStroke,KTM500 TwoStroke,TM300 TwoStroke
    Free Time-My Hackintosh&Ap...
Delete from your Extra Folder Smbios.plist file ,or rename your existing MAC model.... :hammer:
For enable AppleSMC.kext you need good Smbios.plist and create thermal profile inside kext,and see-no error :wink2: after reboot
For IOuserEthernet error you need kext for Ethernet inside IONetworking,and error stoped

#11
bcc9

bcc9

    InsanelyMac Legend

  • Coders
  • 1,278 posts
  • Gender:Male

Boots fine but says kexts are outdated?

I'm assuming you needed my fix to get beyond the "still waiting for root device" error.
touch /System/Library/Extensions to let the system rebuild your cache and reboot. Using kextcache to rebuild your cache manually is error prone and not recommended (per the OSX man pages even).

#12
HUSABER

HUSABER

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 876 posts
  • Gender:Male
  • Location:Cyprus
  • Interests:HusabergFC-600 FourStroke,KTM500 TwoStroke,TM300 TwoStroke
    Free Time-My Hackintosh&Ap...
:wallbash: :thumbsup_anim:

#13
daz1uk

daz1uk

    InsanelyMac Protégé

  • Members
  • PipPip
  • 52 posts
Husaber,

Thanks for your help today it is much appreciated.

bcc9,

Thanks for the info, but no, I managed to get it to boot, simply by setting usekernelcache=no. I then ended up deleting the kernelcache flag completely as per instructions in this thread.

Although I will look further into your post shortly to see if there is anything there that can help with my system.

At this point in time I'm considering a fresh install and starting again from scratch.

#14
daz1uk

daz1uk

    InsanelyMac Protégé

  • Members
  • PipPip
  • 52 posts

Delete from your Extra Folder Smbios.plist file ,or rename your existing MAC model.... :hammer:
For enable AppleSMC.kext you need good Smbios.plist and create thermal profile inside kext,and see-no error :wink2: after reboot
For IOuserEthernet error you need kext for Ethernet inside IONetworking,and error stoped


You got any pointers on where I can read about creating a thermal profile please?

#15
daz1uk

daz1uk

    InsanelyMac Protégé

  • Members
  • PipPip
  • 52 posts

Mountain lion on hackintoshes have a timing bug that can lead to "still waiting for root device" errors. See my fix here:
http://www.insanelym...howtopic=280062


Hey bcc9,

I got fed up and did a fresh install, your patch worked a treat!

#16
HUSABER

HUSABER

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 876 posts
  • Gender:Male
  • Location:Cyprus
  • Interests:HusabergFC-600 FourStroke,KTM500 TwoStroke,TM300 TwoStroke
    Free Time-My Hackintosh&Ap...
To create thermal Profile is easy....but you need good smbios.plist for your mobo...
check with this app who is your the same mobo from Mac PC:Mactracker.app
http://www.projectos...p?showtopic=359

#17
daz1uk

daz1uk

    InsanelyMac Protégé

  • Members
  • PipPip
  • 52 posts

To create thermal Profile is easy....but you need good smbios.plist for your mobo... check with this app who is your the same mobo from Mac PC:Mactracker.app http://www.projectos...p?showtopic=359


I'm pretty sure my smbios is good.

#18
HUSABER

HUSABER

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 876 posts
  • Gender:Male
  • Location:Cyprus
  • Interests:HusabergFC-600 FourStroke,KTM500 TwoStroke,TM300 TwoStroke
    Free Time-My Hackintosh&Ap...
Ok,enable it..thermal profile:
Vanilla Speed Step

This is by far the trickiest of all DSDT related fixes. If you are unsure of what you are doing you can use VoodooPowerMini.kext, and it would do the trick for you. But it will not be as effective as vanilla solution, because it doesn't enable C-states.

There are three different CPU states defined in ACPI - P-states, C-states and T-states. We don't care about the latter.

P-states - are actual speed steps, various frequencies/voltages combinations are defined, so that CPU can use less power when it's not under heavy load. You can even adjust those states for undervoltage (Google it) to make your CPU eat less power at the highest frequency.

C-states - are the states of CPU deep sleep, when it almost shuts off its entire core parts when idle. In modern CPUs there are tens of C-states. In Core 2 Duo on mobile platform (different on desktops) four C-states are defined, but only three C-states can work simultaneously (C1, C2, C3 or C1, C2, C4). But it's still more than enough to save a lot of power/temperature. With C-states enabled my CPU core temperature dropped 10-15 degrees Celcius!

SpeedStep functionality in OSX depends on a combination of parameters - DSTD configuration and Mac model. First of all you need to study http://www.everymac.com to find a MacBook or MacBookPro model that is the closest to my ThinkPad in configuration using ICH7M platform and with Core 2 Duo 2.33GHz and intel 3100 it is almost identical to MacBookAir2.1. If you have ATI, your safe choice will be MacBookPro.

But you cannot use chosen model directly, you need to make your own fake model based on that MacBook family. I've decided that I will use MacBookAir4.1 (there was actual MacBookPro2,2) and I've updated my SMBIOS.plist accordingly:
Code:
<key>SMbiosversion</key>
<string>MBA41.88Z.00A5.B01.0611031449</string>
<key>SMproductname</key>
<string>MacBookAir2.1</string>

Next you need to create ACPI configuration for that model allowing OSX to use SpeedStep with that model. In SnowLeo there's /S/L/E/IOPlatformPluginFamily.kext. Inside (Show package contents) in the PlugIns folder there ACPI_SMC_PlatformPlugin.kext.

This is the kext that restricts or allows SpeedStep and C-states for particular Mac models. Before 10.6.2 all models configuration was stored in Info.plist inside that kext. Now in 10.6.2 there's another folder named Resources with separate configuration plists for each Mac that is supported by SnowLeo.

We are not going to change that kext contents, since we need to keep /S/L/E 100% vanilla. But, we are going to use the information that is stored in MacBookAir2.1.plist.

So, again, the path to the plist is:
/S/L/E/IOPlatformPluginFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents/Resources/

We now need to put this information into our legacy kext from above and update it to enable SpeedStep for our custom fake Mac model. But first put into legacy kext the following template inside IOKitPersonalities section (check screenshot above):
Code:
<key>ACPI_SMC_PlatformPlugin</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.driver.ACPI_SMC_PlatformPlugin</string>
<key>IOClass</key>
<string>ACPI_SMC_PlatformPlugin</string>
<key>IOPlatformThermalProfile</key>
<dict>
[====Here we'll place info from MacBookAir2.1.plist====]
</dict>
<key>IOProbeScore</key>
<integer>1200</integer>
<key>IOPropertyMatch</key>
<dict>
<key>IOCPUNumber</key>
<integer>0</integer>
</dict>
<key>IOProviderClass</key>
<string>AppleACPICPU</string>
<key>IOResourceMatch</key>
<string>ACPI</string>
</dict>

Inside IOPlatformThermalProfile section you need to copy information from the same section from your chosen Mac model plist. In my case it was MacBookAir2.1.plist. After this I replaced all occurrences of MacBookPro2,1 with MacBookAir4.1.

Next we need to enable P-states and C-states. For P-states, edit copied plist configuration to include the following:
Code:
...
<key>ConfigArray</key>
<array>
<dict>
<key>model</key>
<string>MacBookPro2,3</string>
<key>restart-actions</key>
<dict>
<key>cpu-p-state</key>
<integer>0</integer>
</dict>
</dict>
</array>
<key>ControlArray</key>
...
<key>PLimitDict</key>
<dict>
<key>MacBookAir4.1</key>
<integer>0</integer>
</dict>
<key>StepDataDict</key>
....

In IORegistryExplorer you will spot the following. With IOService selected when you open info for CPU0@0->AppleACPICPI->ACPI_SMC_PlatformPlugin on right handside you should see that CPUPlimit is 0x0 and PerformanceStateArray contains 5 values. This means you're golden.

Posted Image

Most of vanilla speed step guides tell you that you also need to put P-states definition in your DSDT. P-states definition is picked up by OSX automatically from SSDT tables, so you need to put P-states into DSDT only if you want override them to enable undervoltage for example.

With C-states it is a bit different, but I'm not sure why. To enable C-states you need to find in one of previously extracted SSDT tables the following block Name (C1M4, Package (0x04). This block defines three C-states - C1, C2 and C4. You can also use C1M3 or C1M2 or C1M1 (different combinations of C-states) which are defined within the same SSDT. You should then put it into your DSDT like this:
Code:For Core 2 Duo only.......This is visual from my DSDT-DONT COPY

Scope (_PR)
   {
	   Processor (CPU0, 0x00, 0x00001010, 0x06)
	   {
	   }
	   Processor (CPU1, 0x01, 0x00001010, 0x06)
	   {
	   }
   }
   Scope (_PR.CPU0)
   {
	   Name (C1M4, Package (0x04)
	   {
		   0x03,
		   Package (0x04)
		   {
			   ResourceTemplate ()
			   {
				   Register (FFixedHW,
					   0x01,			   // Bit Width
					   0x02,			   // Bit Offset
					   0x0000000000000000, // Address
					   0x01,			   // Access Size
					   )
			   },
			   One,
			   One,
			   0x03E8
		   },
		   Package (0x04)
		   {
			   ResourceTemplate ()
			   {
				   Register (SystemIO,
					   0x08,			   // Bit Width
					   0x00,			   // Bit Offset
					   0x0000000000001014, // Address
					   ,)
			   },
			   0x02,
			   One,
			   0x01F4
		   },
		   Package (0x04)
		   {
			   ResourceTemplate ()
			   {
				   Register (SystemIO,
					   0x08,			   // Bit Width
					   0x00,			   // Bit Offset
					   0x0000000000001016, // Address
					   ,)
			   },
			   0x03,
			   0x39,
			   0x64
		   }
	   })
	   Method (_CST, 0, NotSerialized)
	   {
		   Return (C1M4)
	   }
   }
   Scope (_PR.CPU1)
   {
	   Method (_CST, 0, NotSerialized)
	   {
		   Return (^^CPU0._CST ())
	   }
   }



What we do here is that we define/override _CST() method for each of our CPU cores, and this method will return defined package of three C-states we've chosen. You can try to use my C-states, chances are they are the same across all Core Duo / Core 2 Duo family. There's no harm if you have different C-states defined, the section simply won't work and will be ignored by OSX.

The last step for C-states is to add a couple of new sub-sections to legacy kext inside IOPlatformThermalProfile section:
Code:
<string>ACPI_SMC_PlatformPlugin</string>
<key>IOPlatformThermalProfile</key>
<dict>
<key>CStateDemotionDict</key>
<dict>
[====skipped, check attached Extra.zip for reference====]
</dict>
<key>CStateDict</key>
<dict>
[====skipped, check attached Extra.zip for reference====]
</dict>
.....

Posted Image

Once you've done all of this and regenerated mkext caches with pfix, reboot and check IORegistryExplorer (see the screenshot above). If you have successfully enabled C-states, you will see CSTInfo parameter. If you don't see it, that means you have no C-states enabled.
  • That's it, you're done with vanilla speed step. Check CPU temperature (google iStat) and compare it to what you have in Windows or what you've had before your vanilla speed step. You will be surprised.






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