Toshiba p100 series sound fix !!!!!
--------------------------------------------------------------------------------
Hi guys I just got the sound working on my toshiba P100-188(PSPA3E)bios3.30
I am a complet newby in Ubuntu and Linux overall therefore I will show how to get it working in a very simplified way.
I have combined few threads and miraculously after two weeks of struggle Bonsai.
I started from
1 Ensure that your laptop is connected to the internet.
2 C/C++ Development Tools in order to do it I installed Anjuta ide using automatix however i have got no idea whether it was helpful or not simply just giving you my steps
3) Install bison, flex and libncurses5-dev:
Open a console window and type:
apt-get install bison flex libncurses5-dev
4) Install Intel's ACPI Source Language (iASL) compiler:
Run the FireFox browser and download the "ACPI CA - Unix Build Environment" from here:
Advanced Configuration & Power Interface - Downloads. Save the download file (acpica-unix-20061109.tar.gz) under /usr/src. Now, open a console window and type the following to build the iasl application:
cd /usr/src
tar -xvzf acpica-unix-20061109.tar.gz
cd acpica-unix-20061109/compiler
make
If the buils fails, giving you some error messages which include: go to
http://forums.xandros.com/viewtopic....f7e 2820ae7cd
and look at point . I did not get this error though
5) Fix the buggy DSDT file
In the console window, type:
cd /usr/src
mkdir dsdt
cd dsdt
cat /proc/acpi/dsdt > DSDT.dat
The last command dumps the contents of your Toshiba's DSDT table into a file called DSDT.dat. Now, decompile the DSDT.dat file by typing:
iasl -d DSDT.dat
This creates an editable ascii text file called DSDT.dsl. Now, we need to find the bugs (errors and warnings) in the DSDT file and fix them. The best way is to try to recompile the DSDT.dsl file and read the errors and warnings generated by the iasl compiler. So type:
iasl -tc DSDT.dsl
The iasl compiler should create two new files: DSDT.hex and DSDT.aml and should display a number of errors and one or more warning messages on your console window. From what I have seen for myself, and have gleaned from the gentoo forums, there are basically five types of modifications you need to make.
First, let's make a back up of your original DSDT.dsl file by typing:
cp DSDT.dsl DSDT_original.dsl
Now, edit your DSDT.dsl file and make the following changes:
(i) Replace all occurrences of the strings "_T_0", "_T_1", "_T_2", etc. with something like "TXT0", "TXT1", "TXT2", etc. (Note: the replacement string should not be more that four characters long).
(ii) Search for "BTST" and add an extra "Else { Return (Zero) }" to the "BTST" method as shown below:
Code:
Method (BTST, 0, NotSerialized)
{
If (\_SB.ECOK)
{
Acquire (\_SB.PCI0.LPCB.EC0.MUT1, 0xFFFF)
Store (\_SB.PCI0.LPCB.EC0.KSWH, Local0)
XOr (Local0, 0x01, Local0)
Store (\_SB.PCI0.LPCB.EC0.BTHE, Local7)
Release (\_SB.PCI0.LPCB.EC0.MUT1)
If (Local0)
{
ShiftLeft (Local7, 0x06, Local6)
ShiftLeft (Local7, 0x07, Local7)
Or (Local7, Local6, Local1)
Or (Local0, Local1, Local2)
Return (Local2)
}
Else
{
Return (Zero)
}
}
Else
{
Return (Zero)
}
}
(iii) Search for "EVNT" and add the extra "Return (Zero)" as shown below to Else part of the the "EVNT" method.
Code:
Method (EVNT, 1, NotSerialized)
{
While (VZOK)
{
If (LEqual (VZOK, 0x01))
{
Store (Arg0, VZOK)
Notify (\_SB.VALZ, 0x80)
Return (Zero)
}
Else
{
Sleep (0x05)
Return (Zero)
}
}
}
(iv) Search for "Linux" and comment out a number of lines and add a "Store (0x07D0, OSYS)" as shown below.
Code:
Scope (\_SB)
{
Method (_INI, 0, NotSerialized)
{
If (DTSE)
{
TRAP (0x47)
}
Store (0x07D0, OSYS)
// If (CondRefOf (_OSI, Local0))
// {
// If (_OSI ("Linux"))
// {
// Store (0x03E8, OSYS)
// }
// Else
// {
// Store (0x07D1, OSYS)
// If (_OSI ("Windows 2001 SP2"))
// {
// Store (0x07D2, OSYS)
// }
//
// If (_OSI ("Windows 2001.1"))
// {
// Store (0x07D3, OSYS)
// }
//
// If (_OSI ("Windows 2001.1 SP1"))
// {
// Store (0x07D4, OSYS)
// }
//
// If (_OSI ("Windows 2006"))
// {
// Store (0x07D6, OSYS)
// }
//
// If (LAnd (MPEN, LEqual (OSYS, 0x07D1)))
// {
// TRAP (0x3D)
// }
// }
// }
Store (0x07D6, OSYS) // Fake Windows 2006
}
(v) Search for "PNP0C14" and replace all occurrences of ``Name (_HID, "*PNP0C14")'' with `` Name (_HID, "PNP0C14")''. Save your changes and quit.
Note: if you are unsure if your changes are correct, here is a link to a fixed DSDT file:
http://vosek.com/dsdt.dsl (courtesy gentoo forums). You can compare it with your own.
Now, recompile your fixed DSDT file by typing:
iasl -tc DSDT.dsl
Verify that there are no errors and that a new DSDT.hex file has been created.
6)
Code:
cd /usr/src/dsdt
cp DSDT.aml /etc/initramfs-tools/
mkinitramfs -o /boot/your-new-initrd-image-name-here
(for example /boot/initrd.img-2.6.20-16-generic-DSDTfix )
then open up grub's menu.lst
Code:
nano /boot/grub/menu.lst
and find a line that looks something like:
initrd /boot/initrd.img-2.6.20-16-generic
REPLACE WITH
initrd /boot/initrd.img-2.6.20-16-generic-DSDTfix
or whatever name you gave it
than reboot and you are going to hear a miracle
I am also going to install alsa drivers
Here are the links i have taken the information from
http://www.linuxquestions.org/questi...d.php?t=531575 http://forums.xandros.com/viewtopic....f7e 2820ae7cd
here is the link how to install intel hda alsa drivers
https://help.ubuntu.com/community/HdaIntelSoundHowto