Ubuntu Forums ubuntu.com - launchpad.net - ubuntu help  

Go Back   Ubuntu Forums > The Ubuntu Forum Community > Forum Archive > Main Support Categories > Hardware & Laptops
Register Reset Password Forum Help Forum Council Search Today's Posts Mark Forums Read

Hello, Unregistered You are browsing a READ only archive of the main support categories pre 4/21/2008. You will not be able to post or reply any threads in this section.

Hardware & Laptops
Problems with hardware & laptops not being detected or supported during or after install.

 
 
Thread Tools Display Modes
Old June 14th, 2007   #1
kamwla
First Cup of Ubuntu
 
Join Date: Jun 2007
Beans: 10
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: http://www.intel.com/technology/iapc/acpi/downloads.htm. 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
kamwla is offline  
Old June 17th, 2007   #2
devinkray
First Cup of Ubuntu
 
devinkray's Avatar
 
Join Date: Oct 2006
Location: On a pool table
Beans: 3
Ubuntu 7.04 Feisty Fawn
Send a message via AIM to devinkray Send a message via MSN to devinkray
Re: Toshiba p100 series sound fix !!!!!

Thanks for this I will have my friend (who has having problems with sound) read up on this, now we can have awesome lan parties.
devinkray is offline  
Old June 18th, 2007   #3
kamwla
First Cup of Ubuntu
 
Join Date: Jun 2007
Beans: 10
Re: Toshiba p100 series sound fix !!!!!

u welcome
kamwla is offline  
Old July 29th, 2007   #4
McTaggart
First Cup of Ubuntu
 
Join Date: Jul 2007
Beans: 2
Re: Toshiba p100 series sound fix !!!!!

Thanks for this. I've been trying very similar instructions from elsewhere and got stuck on building iasl. Your step three got me past that, but now I've run into another problem (that doesn't look hard to fix, probably just a general linux mistake on my part).

In step five where you dump the dsdt into DSDT.dat you have this command:
cat /proc/acpi/dsdt > DSDT.dat. I get permission denied and it doesn't write the file. From the terminal:
Code:
aidan@troutmask:/usr/src/dsdt$ sudo cat /proc/acpi/dsdt > DSDT.dat
bash: DSDT.dat: Permission denied
Any hints how to get around this?

[edit] Some digging and some learning about permissions later, this worked:
Code:
sudo cat /proc/acpi/dsdt | sudo tee /usr/src/dsdt/DSDT.dat
[edit2] Followed these (except step two) and my sound is now working (Toshiba P100 801 (PSP A6A 028017)). For some reason trying to be clever and changing the value in

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

to 0x07D6 doesn't work.

Last edited by McTaggart; July 29th, 2007 at 02:07 PM..
McTaggart is offline  
 

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 10:59 AM.


vBulletin ©2000 - 2010, Jelsoft Enterprises Ltd. Ubuntu Logo, Ubuntu and Canonical © Canonical Ltd. Tango Icons © Tango Desktop Project. lingonberry