Saturday, 7 March 2009

DSDT and Linux on Sony Vaio Z-series

Shift/Reduce
cp /proc/acpi/dsdt DSDT

And disassemble it:

iasl -d DSDT

In this two DSDTs there is a section like this:

If (CondRefOf (_OSI, Local0))
{
If (_OSI ("Linux"))
{
Store (0x03E8, OSYS)
}

If (_OSI (”Windows 2001″))
{
Store (0×07D1, OSYS)
}

If (_OSI (”Windows 2001 SP1″))
{
Store (0×07D1, OSYS)
}

If (_OSI (”Windows 2001 SP2″))
{
Store (0×07D2, OSYS)
}

If (_OSI (”Windows 2006″))
{
Store (0×07D6, OSYS)
}
}

So we just change

If (_OSI ("Linux"))
{
Store (0x03E8, OSYS)
}

to

If (_OSI ("Linux"))
{
Store (0x07D6, OSYS)
}

Do this on both DSDTs. And now we can compile them.

./iasl -tc DSDT

This will generate two files. One of them has the extension .aml (which is the one want).

Now here is the thing…He have to use just one DSDT at a time. Like, if we want to use the Intel we have to use the changed Nvidia DSDT, and if we want to use the Nvidia we have to use the changed Intel DSDT (Yeah that’s right, Nvidia DSDT for Intel and Intel DSDT for Nvidia).

Copy this changed DSDT to initrd and reconfigure it (This commands are for Ubuntu, so please check your distro documentation for specif instructions on how to do this).

cp DSDT.aml /etc/initramfs-tools/DSDT.aml

sudo dpkg-reconfigure linux-image-$(uname -r)

Now reboot/supend/shutdown and if we have the DSDT for the card you want and have the card itself enabled it should work! But you still have to go to XP to switch form one card to another, which is not that bad I think…I’ll be using the Intel for like 99% of the time :)

If you have any doubt just ask, I asure you this is working great! :)

Btw, here are my changed DSDTs just in case (just compile them and put them into initrd as above).

http://dl.getdropbox.com/u/563152/DSDT_Intel_changed.dsl
http://dl.getdropbox.com/u/563152/DSDT_Nvidia_changed.dsl

Edit: Just added the missing command to disassemble the DSDT before changing it.


No comments:

Post a Comment

Blog Archive