Contribute
Register

Vostro 3xxx series - Installation and dual boot guide

Status
Not open for further replies.
necrum said:
Thanks Minihack for the files, they were very useful to find what I was doing wrong.

I tried your dsdt's and and my vostro worked without problems, booted without nullcpupm but temperatures were still high after a few minutes, but now i've implemented a new dsdt that compiles correctly, I've moved the DTGP section below Method (NPTS, 1, NotSerialized) instead of putting it above _WAK, using some of your (_PR) code and some parts of the code in my DDST (PR.0000 to 0003 and_PSS parts) and to my surprise now the temperatures feels a lot cooler (i've also updated my fakesmc and now my temperatures are shown).

SMC Monitor doesn't show the electric potency correctly, nor the C or P states or the processor frequency(even though that with the dsdt of the toshiba laptop does show the potency), and shows a sligthly higher temperatures than iStat which I used in the picture below, nevertheless the temperatures are in the same range that Windows reports.

I don't really know if C or P states are generated correctly (I removed generatePstates and cstates, and i'm using dropssdt), but at least everything goes much smoother now :)

I'll add the rest of the dsdt patches (screen brightness and other stuff later on)

Below are a picture of my system temperature after 30 minutes of uptime and the dsdt for a Vostro 3700 with hybrid graphics.

Good work.

How do the temp.s compare against using the Nullcpu...kext?

Maybe try testing for an hour or two using power management and then for the same period not using it and see the difference.

Also, try doing some Geekbench testing to see how things perform with and without powermanagement.

I'm interested to see if this is all actually worthwhile.
 
minihack said:
Hi Adi,
To be honest, with your tricked up i7 processor I would not use Necrums Pstate info. Better instead (if the speedstepper patch works) is for you to simply take the processor definitions I mention a couple of posts ago, delete your existing Scope (_PR), replace with the the generic Scope (_PR), use DropSSDT=Yes and use generatePstates=yes.
That at least will then let the (semi) inteliigent bootloader decide what Pstates might be okay for you instead of you using ones that I would be pretty certain will not be correct.....


Hmm, you're right. OK I'll attempt to mod my old DSDT with the info you posted and I'll let you know how it goes. I'm confident that the speedstepper mod should at least allow me to boot without null cpu kext and from that point i should at least be able to mess around with the DSDT various changes to make this work.

To be honest, i'm mostly looking forward for working C states rather than P states as i really want to get sleep to work.


EDIT : OK so it turns out that i can't just replace my Scope (_PR) with your generic one because when i try to compile it, it immediatly complains :

Code:
Intel ACPI Component Architecture
ASL Optimizing Compiler version 20091214 [Dec 16 2009]
Copyright (C) 2000 - 2009 Intel Corporation
Supports ACPI Specification Revision 4.0

/Users/Adi/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl  5436: 
Scope (_PR)
    {
        Processor (P000, 0x01, 0x00000410, 0x06)
        Processor (P001, 0x02, 0x00000410, 0x06)
        Processor (P002, 0x03, 0x00000410, 0x06)
        Processor (P003, 0x04, 0x00000410, 0x06)
       
    }

Error    4096 -                                                                                             syntax error, unexpected PARSEOP_PROCESSOR, expecting '{' ^ 

/Users/Adi/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl  5436: 
Scope (_PR)
    {
        Processor (P000, 0x01, 0x00000410, 0x06)
        Processor (P001, 0x02, 0x00000410, 0x06)
        Processor (P002, 0x03, 0x00000410, 0x06)
        Processor (P003, 0x04, 0x00000410, 0x06)
       
    }

Error    4096 -                                                                                                                                                                                               syntax error, unexpected PARSEOP_PROCESSOR, expecting '{' ^ 

/Users/Adi/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl  8266:     Method (CESM, 1, NotSerialized)
Warning  1088 -                                             Not all control paths return a value ^  (CESM)

/Users/Adi/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl 10101:             Method (_LID, 0, NotSerialized)
Warning  1081 -                                                      Reserved method must return a value ^  (_LID)

ASL Input:  /Users/Adi/Library/Application Support/EvOSoftware/DSDT/DSDTFiles/dsdt.dsl - 10607 lines, 309619 bytes, 4419 keywords
Compilation complete. 2 Errors, 2 Warnings, 0 Remarks, 5 Optimizations

EDIT 2:

I've uploaded my current DSDT.aml file in case it helps.. i have no idea why i can't repalce the Scop (_PR) with the generic one..

Help..

Thanks,

Adi
 

Attachments

  • DSDT.aml
    39.9 KB · Views: 129
Code:
DefinitionBlock ("./dsdt.aml", "DSDT", 2, "DELL  ", "WN09   ", 0x00000050)
{
    External (NNAB, IntObj)
    External (IDAB, MethodObj)    // 0 Arguments
    External (HNOT, MethodObj)    // 1 Arguments
    External (\_SB_.PCI0.WMI1)
    External (\_SB_.PCI0.GFX0.DACE)
    External (\_SB_.PCI0.GFX0.HGNC)
    External (\_SB_.PCI0.P0P2.PEGP)
    External (\_SB_.PCI0.P0P1.PEGP.DD02)
    External (\_SB_.PCI0.P0P2.PEGP.LCD_)
    External (\_SB_.PCI0.P0P1.PEGP.LCD_)
    External (\_SB_.PCI0.P0P1.PEGP.PO52, IntObj)

    Scope (_PR)
    {
        Processor (P000, 0x01, 0x00000410, 0x06)
        {
            Method (_CST, 0, NotSerialized)
            {
                Return (CST ())
            }
        }

        Processor (P001, 0x02, 0x00000410, 0x06)
        {
            Method (_CST, 0, NotSerialized)
            {
                Return (CST ())
            }
        }

        Processor (P002, 0x03, 0x00000410, 0x06)
        {
            Method (_CST, 0, NotSerialized)
            {
                Return (CST ())
            }
        }

        Processor (P003, 0x04, 0x00000410, 0x06)
        {
            Method (_CST, 0, NotSerialized)
            {
                Return (CST ())
            }
        }
    }

    Scope (_PR)
    {
        OperationRegion (SSDT, SystemMemory, 0xBF622C18, 0x03A4)
        Name (NCST, 0x02)
        Name (NPSS, 0x0A)
        Name (HNDL, 0x80000000)
        Name (TNLP, 0x04)
        Name (CINT, Zero)
        Name (PDCV, 0xFFFFFFFF)
        Name (APSS, Package (0x0A)
        {
            Package (0x06)
            {
                0x095B, 
                0x0DAC, 
                0x0A, 
                0x0A, 
                0x13, 
                0x13
            }, 

            Package (0x06)
            {
                0x095A, 
                0x0C35, 
                0x0A, 
                0x0A, 
                0x12, 
                0x12
            }, 

            Package (0x06)
            {
                0x08D5, 
                0x0A41, 
                0x0A, 
                0x0A, 
                0x11, 
                0x11
            }, 

            Package (0x06)
            {
                0x0850, 
                0x08CA, 
                0x0A, 
                0x0A, 
                0x10, 
                0x10
            }, 

            Package (0x06)
            {
                0x07CB, 
                0x07D0, 
                0x0A, 
                0x0A, 
                0x0F, 
                0x0F
            }, 

            Package (0x06)
            {
                0x0746, 
                0x0659, 
                0x0A, 
                0x0A, 
                0x0E, 
                0x0E
            }, 

            Package (0x06)
            {
                0x06C1, 
                0x055F, 
                0x0A, 
                0x0A, 
                0x0D, 
                0x0D
            }, 

            Package (0x06)
            {
                0x063C, 
                0x04E2, 
                0x0A, 
                0x0A, 
                0x0C, 
                0x0C
            }, 

            Package (0x06)
            {
                0x05B7, 
                0x03E8, 
                0x0A, 
                0x0A, 
                0x0B, 
                0x0B
            }, 

            Package (0x06)
            {
                0x04AD, 
                0x02EE, 
                0x0A, 
                0x0A, 
                0x09, 
                0x09
            }
        })

Hello Adi,
Have a look at my DSDT code. it can surely be improved.
Method (_CST) is just there to prevent CST evaluation error on boot.
Remember my CPU is Core i5-520M.
I have like you 10 Pstates (NPSS : 0x0A= 10) but i'm not sure if my vostro can use these 10 PStates!
i modified the Scope (_PR) section and ended up with no more External (_\PR) at the beginning of the DSDT , it was removed when compiling.
C states don't work because i'm not able to put memory addresses that are usually hardcoded in ROM. I just cannot get the CStates ACPI table (blocked in BIOS ?).
I have no BIOS selection for cstates.
I have been working on the sleep issue , i should say on the wake issue !

Code:
Method (_PTS, 1, NotSerialized)
    {
        Store (Zero, \_SB.PCI0.LPCB.EXPE)
        If (LEqual (Arg0, 0x05))
        {
            Store (One, \_SB.PCI0.LPCB.EXPE)
            Store (Zero, SLPE)
            Sleep (0x10)
        }

        If (LAnd (LEqual (Arg0, 0x04), LEqual (OSFL (), 0x02)))
        {
            Sleep (0x0BB8)
        }

        Store (Zero, Index (WAKP, Zero))
        Store (Zero, Index (WAKP, One))
        Store (ASSB, WSSB)
        Store (AOTB, WOTB)
        Store (AAXB, WAXB)
        Store (Arg0, ASSB)
        Store (OSFL (), AOTB)
        Store (Zero, AAXB)
        Store (One, \_SB.SLPS)
    }

    Method (DTGP, 5, NotSerialized)
    {
        If (LEqual (Arg0, Buffer (0x10)
                {
                    /* 0000 */    0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44, 
                    /* 0008 */    0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
                }))
        {
            If (LEqual (Arg1, One))
            {
                If (LEqual (Arg2, Zero))
                {
                    Store (Buffer (One)
                        {
                            0x03
                        }, Arg4)
                    Return (One)
                }

                If (LEqual (Arg2, One))
                {
                    Return (One)
                }
            }
        }

        Store (Buffer (One)
            {
                0x00
            }, Arg4)
        Return (Zero)
    }

    Method (_WAK, 1, NotSerialized)
    {
        ShiftLeft (Arg0, 0x04, DBG8)
        WAK (Arg0)
        If (ASSB)
        {
            Store (WSSB, ASSB)
            Store (WOTB, AOTB)
            Store (WAXB, AAXB)
        }

        If (DerefOf (Index (WAKP, Zero)))
        {
            Store (Zero, Index (WAKP, One))
        }
        Else
        {
            Store (Arg0, Index (WAKP, One))
        }

        Return (Package (0x02)
        {
            Zero, 
            Zero
        })
    }

From my understanding we need to fix the methods (_PTS) and/or (_WAK) in DSDT.aml to make sleep work.
 
Adi,
what happens if you try this ?

Code:
Scope (_PR)
    {
        Processor (P000, 0x01, 0x00000410, 0x06){}
        Processor (P001, 0x02, 0x00000410, 0x06){}
        Processor (P002, 0x03, 0x00000410, 0x06){}
        Processor (P003, 0x04, 0x00000410, 0x06){}
     }

You can leave brackets empty as far as i can remember (or add some more code as i did) but you probably need those brackets or it won't compile.
 
Ok guys, good news (I guess)...

I've checked the frequencies using SMC Monitor and now the frequency of each core is shown (with strange values) but are shown and they do change!

When Idle, the frequency shows 3060 and under heavy load shows 6120

My Geekbench score is not impressive (I guess), i'm getting 4389 so far, what's yours?

Oh and i'm booting Lion from an external SATA to USB adapter ;)

here are a few pics
 

Attachments

  • Captura de pantalla 2011-09-10 a la(s) 18.12.01.png
    Captura de pantalla 2011-09-10 a la(s) 18.12.01.png
    28.2 KB · Views: 181
  • Captura de pantalla 2011-09-10 a la(s) 18.13.30.png
    Captura de pantalla 2011-09-10 a la(s) 18.13.30.png
    27.6 KB · Views: 178
  • Captura de pantalla 2011-09-10 a la(s) 18.13.23.png
    Captura de pantalla 2011-09-10 a la(s) 18.13.23.png
    28 KB · Views: 169
unix68 said:
Adi,
what happens if you try this ?

Code:
Scope (_PR)
    {
        Processor (P000, 0x01, 0x00000410, 0x06){}
        Processor (P001, 0x02, 0x00000410, 0x06){}
        Processor (P002, 0x03, 0x00000410, 0x06){}
        Processor (P003, 0x04, 0x00000410, 0x06){}
     }

You can leave brackets empty as far as i can remember (or add some more code as i did) but you probably need those brackets or it won't compile.


Hi unix86,

Indeed, looks like those are methods and as such, they require those parenthesis for each one of them. I added then and i was able to compile my DSDT file with no problems. I was able to start the computer with it with no problems. Unfortunatly, as soon as i patched my AICPM kext, and rebooted my laptop, i was stuck in KP hell with the AICPM showing up in the KP error message.

Unfortunatly, i think it's because the patch is for 64bit mode ONLY and my current E/E contains 32bit only kexts that won't boot in 64 bit mode.. either that or minihack's method with DropSSDT=yes, generatePstates=Yes and generateCstates=Yes simply doesn't work on our Vostros with the standard Scope (_PR) CPU deffinitions.. I'm gonna clone my HD first before doing any further tests cause i really don't wanna be stuck in KP hell again..

Adi
 
adisor19 said:
Hi unix86,

Indeed, looks like those are methods and as such, they require those parenthesis for each one of them. I added then and i was able to compile my DSDT file with no problems. I was able to start the computer with it with no problems. Unfortunatly, as soon as i patched my AICPM kext, and rebooted my laptop, i was stuck in KP hell with the AICPM showing up in the KP error message.

Unfortunatly, i think it's because the patch is for 64bit mode ONLY and my current E/E contains 32bit only kexts that won't boot in 64 bit mode.. either that or minihack's method with DropSSDT=yes, generatePstates=Yes and generateCstates=Yes simply doesn't work on our Vostros with the standard Scope (_PR) CPU deffinitions.. I'm gonna clone my HD first before doing any further tests cause i really don't wanna be stuck in KP hell again..

Adi

I'm not sure if the latest pack from Minihack included the 64 bits kexts, but here are the ones for Snow Leopard by Minihack and my /extra kexts folder for OSX Lion in case you need it.

The kexts for /system/library/extensions in Lion are the same for snow leopard, that's why I didn't include those.
 

Attachments

  • 64 bit kexts.zip
    838.8 KB · Views: 92
necrum said:
adisor19 said:
Hi unix86,

Indeed, looks like those are methods and as such, they require those parenthesis for each one of them. I added then and i was able to compile my DSDT file with no problems. I was able to start the computer with it with no problems. Unfortunatly, as soon as i patched my AICPM kext, and rebooted my laptop, i was stuck in KP hell with the AICPM showing up in the KP error message.

Unfortunatly, i think it's because the patch is for 64bit mode ONLY and my current E/E contains 32bit only kexts that won't boot in 64 bit mode.. either that or minihack's method with DropSSDT=yes, generatePstates=Yes and generateCstates=Yes simply doesn't work on our Vostros with the standard Scope (_PR) CPU deffinitions.. I'm gonna clone my HD first before doing any further tests cause i really don't wanna be stuck in KP hell again..

Adi

I'm not sure if the latest pack from Minihack included the 64 bits kexts, but here are the ones for Snow Leopard by Minihack and my /extra kexts folder for OSX Lion in case you need it.

The kexts for /system/library/extensions in Lion are the same for snow leopard, that's why I didn't include those.


Hi necrum,

Thank you for the 64 bit pack. For some reason i have a LOT more extensions in my E/E folder.. I'm gonna try both of them and let you know how it goes.

Do you have an easy trick for figuring out if an extension is 64 bit or 32 bit only or both ? I kinda want to know which of my current extensions is 32 bit only.

Also, are you currently booting your Vostro in 64 bit mode or in 32 bit mode ?

Thanks,

Adi
 
Yup I'm on 64 bits and I still working on adding functionality on Hybrid Vostros in Lion, thats why I have so few kexts (i.e. my bluetooth is not working yet but i'm achieving a few things in the graphics field) also yes, there is a way to check for 32 only or 64 bits kexts, very simple in fact.

click the apple logo, then before clicking over "about this mac", press alt key and select "system information", go down to "software" and then "extensions", there you can check wich kexts are loaded and wich ones are 64 bits.

You can check if you are booting in 64 bits in the "software" section (64-bit Kernel and Extensions).

Please tell me if this is clear, because my english is very messy when I'm having headaches =_= (my spanish isn't better either)
 
necrum said:
Yup I'm on 64 bits and I still working on adding functionality on Hybrid Vostros in Lion, thats why I have so few kexts (i.e. my bluetooth is not working yet but i'm achieving a few things in the graphics field) also yes, there is a way to check for 32 only or 64 bits kexts, very simple in fact.

click the apple logo, then before clicking over "about this mac", press alt key and select "system information", go down to "software" and then "extensions", there you can check wich kexts are loaded and wich ones are 64 bits.

You can check if you are booting in 64 bits in the "software" section (64-bit Kernel and Extensions).

Please tell me if this is clear, because my english is very messy when I'm having headaches =_= (my spanish isn't better either)

Hi necrum,

Don't worry, your english is very clear :)

I actually found an easier way(i think) for checking which kexts are 32 bit and/or 64bit here :

http://www.insanelymac.com/forum/index. ... pic=232860

Download the script and run it. Check out the results for my current E/E folder as well as the ones you uploaded. As you can see my current E/E folder is 32bit only so no wonder i can't boot in 64 bit mode.

Code:
VOSTROTOSH:Downloads Adi$ perl parsekexts.pl /Extra/ExtensionsAppleACPIPS2Nub.kext	KEXT	1.0.0d1	i386=1	x86_64=0
AppleBCM5701Ethernet.kext	KEXT	2.3.5b17	i386=1	x86_64=0
AppleIntel8254XEthernet.kext	KEXT	2.1.1b7	i386=1	x86_64=0
AppleRTL8139Ethernet.kext	KEXT	1.5.3	i386=1	x86_64=0
AppleRTL8169Ethernet.kext	KEXT	1.1	i386=1	x86_64=0
AppleUSBEthernet.kext	KEXT	2.1.0	i386=1	x86_64=0
AppleUSBGigEthernet.kext	KEXT	1.2.0	i386=1	x86_64=0
AppleYukon2.kext	KEXT	3.1.14b1	i386=1	x86_64=0
DellBluetoothHCI.kext	KEXT	1.2	i386=1	x86_64=0
fakesmc.kext	KEXT	2	i386=1	x86_64=0
Intel82574L.kext	KEXT	1.0.4b1	i386=1	x86_64=0
NullCPUPowerManagement.kext	KEXT	1.0.0d2	i386=1	x86_64=1
nvenet.kext	KEXT	1.0.73	i386=1	x86_64=0
VoodooBattery.kext	KEXT	1.3.3	i386=1	x86_64=0
VoodooPS2Controller.kext	KEXT	1.1.0	i386=1	x86_64=0
VoodooPS2Keyboard.kext	KEXT	1.1.0	i386=1	x86_64=0
VoodooPS2Mouse.kext	KEXT	1.2.0	i386=1	x86_64=0
VoodooPS2Trackpad.kext	KEXT	1.1.0	i386=1	x86_64=0

VOSTROTOSH:Downloads Adi$ perl parsekexts.pl /Users/Adi/Downloads/64_bit_kexts/EE_Lion
ACPIMonitor.kext	KEXT	1	i386=1	x86_64=1
AppleACPIBatteryManager.kext	KEXT	1.0.15	i386=1	x86_64=1
AppleUSBGigEthernet.kext	KEXT	1.2.0	i386=1	x86_64=0
AppleYukon2.kext	KEXT	3.1.14b1	i386=1	x86_64=0
FakeSMC.kext	KEXT	3.1.0	i386=1	x86_64=1
Intel82574L.kext	KEXT	1.0.4b1	i386=1	x86_64=0
IntelCPUMonitor.kext	KEXT	1.0	i386=1	x86_64=1
F718x.kext	KEXT	1	i386=1	x86_64=1
IT87x.kext	KEXT	1.0.0d1	i386=1	x86_64=1
PC8739x.kext	KEXT	1	i386=1	x86_64=1
W836x.kext	KEXT	1.0.0d1	i386=1	x86_64=1
SuperIOFamily.kext	KEXT	1.0.0d1	i386=1	x86_64=1

VOSTROTOSH:Downloads Adi$ perl parsekexts.pl /Users/Adi/Downloads/64_bit_kexts/64_bit_SL/EE
AppleACPIBatteryManager.kext	KEXT	1.0.15	i386=1	x86_64=1
fakesmc.kext	KEXT	1	i386=1	x86_64=1
NullCPUPowerManagement.kext	KEXT	1.0.0d2	i386=1	x86_64=1


VOSTROTOSH:Downloads Adi$ perl parsekexts.pl /Users/Adi/Downloads/64_bit_kexts/64_bit_SL/SLE
AppleACPIPS2Nub.kext	KEXT	1.0.0d1	i386=1	x86_64=1
DellBluetoothHCI.kext	KEXT	1.2	i386=1	x86_64=1
RealtekR1000SL.kext	KEXT	2.0.0d1	i386=1	x86_64=1
VoodooPS2Controller.kext	KEXT	1.1.0	i386=1	x86_64=1

Speaking of the bluetooth, make sure you use the DellBluetooth.kext from S/L/E from minihack's SL pack as that one supports 64 bit as per my script output above :)

Regards,

Adi
 
Status
Not open for further replies.
Back
Top