Toshiba Satellite L655 |
Step 1: Take a copy of current Differentiated System Description Table as follows.
sudo cat /sys/firmware/acpi/tables/DSDT > DSDT.dat
Step 2: De-assemble it with "iasl -d DSDT.dat".
[kasun@localhost ~]$ iasl -d DSDT.dat
Intel ACPI Component Architecture
AML Disassembler version 20100528 [Oct 17 2012]
Copyright (c) 2000 - 2010 Intel Corporation
Supports ACPI Specification Revision 4.0a
Loading Acpi table from file DSDT.dat
Acpi table [DSDT] successfully installed and loaded
Pass 1 parse of [DSDT]
Pass 2 parse of [DSDT]
Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)
................................................................................
Parsing completed
Found 5 external control methods, reparsing with new information
Pass 1 parse of [DSDT]
Pass 2 parse of [DSDT]
Parsing Deferred Opcodes (Methods/Buffers/Packages/Regions)
................................................................................
Parsing completed
Disassembly completed, written to "DSDT.dsl"
[kasun@localhost ~]$
Step 3: Search for following line and edit as follows. Do not do copy and paste which give you compilation error of non ASCII characters.
Search for:
OperationRegion (EMEM, SystemMemory, 0xFF808001, 0xFF)
Change in to:
OperationRegion (EMEM, EmbeddedControl, 0x00, 0xFF)
Step 4: Compile the de-assembled file with "iasl -tc DSDT.dsl".
[kasun@localhost ~]$ iasl -tc DSDT.dsl
Intel ACPI Component Architecture
ASL Optimizing Compiler version 20100528 [Oct 17 2012]
Copyright (c) 2000 - 2010 Intel Corporation
Supports ACPI Specification Revision 4.0a
DSDT.dsl 2656: 0x00000000, // Length
Error 4122 - ^ Invalid combination of Length and Min/Max fixed flags
DSDT.dsl 2663: 0x00000000, // Length
Error 4122 - ^ Invalid combination of Length and Min/Max fixed flags
DSDT.dsl 2918: Method (CBRL, 0, NotSerialized)
Warning 1088 - ^ Not all control paths return a value (CBRL)
DSDT.dsl 2980: Name (_T_0, Zero)
Remark 5111 - ^ Use of compiler reserved name (_T_0)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Output truncated.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DSDT.dsl 12889: Method (BTST, 0, NotSerialized)
Warning 1088 - ^ Not all control paths return a value (BTST)
ASL Input: DSDT.dsl - 12992 lines, 476098 bytes, 5451 keywords
Compilation complete. 2 Errors, 3 Warnings, 32 Remarks, 7 Optimizations
Step 5: If you get "Invalid combination of Length and Min/Max fixed flags" compilation error like follows go to the line in vim and find the set the Length as (Range Maximum - Range Minimum) + 1 in hex.
Error 1
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0x00000000, // Range Minimum
0xFEAFFFFF, // Range Maximum
0x00000000, // Translation Offset
0x00000000, // Length
Calculated Length is (0xFEAFFFFF - 0x00000000 +1) = 0xFEB00000
Corrected Value:
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0x00000000, // Range Minimum
0xFEAFFFFF, // Range Maximum
0x00000000, // Translation Offset
0xFEB00000, // Length
Error 2
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0xFED40000, // Range Minimum
0xFED44FFF, // Range Maximum
0x00000000, // Translation Offset
0x00000000, // Length
Calculated Length is (0xFED44FFF - 0xFED40000 +1) = 0x00005000
Corrected Value:
DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
0x00000000, // Granularity
0xFED40000, // Range Minimum
0xFED44FFF, // Range Maximum
0x00000000, // Translation Offset
0x00005000, // Length
Step 6: Compile the de-assembled file with out errors.
[kasun@localhost ~]$ iasl -d DSDT.dat
Step 7: Compilation will generate DSDT.aml file. Copy it to /boot/ as follows with name of dsdt.aml.
[kasun@localhost ~]$ sudo cp DSDT.aml /boot/dsdt.aml
Step 8: Edit /boot/grub2/grub.cfg and find the top menu entry as follows.
menuentry 'Fedora (3.8.9-200.fc18.x86_64)' --class fedora --class gnu-linux --class gnu{ load_video set gfxpayload=keep insmod gzio insmod part_msdos insmod ext2 set root='hd0,msdos1' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1
And add line "acpi ($root)/dsdt.aml" for fedora.
menuentry 'Fedora (3.8.9-200.fc18.x86_64)' --class fedora --class gnu-linux --class gnu{ load_video set gfxpayload=keep insmod gzio insmod part_msdos insmod ext2 set root='hd0,msdos1' acpi ($root)/dsdt.aml if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1
Note: Add line "acpi /boot/dsdt.aml" for Ubuntu.
Step 9: Reboot and have fun.
Image Credits: http://us.toshiba.com/computers/laptops/satellite/l650/l655-s5150/
No comments:
Post a Comment