acpi: advanced configuration power interface
dsdt: differentiated system description table
wheezy32: debian wheezy 32bit
arch32: arch 32bit
toshiba bios
seem to be one of the most notorious and worst broken. do not choose toshiba
for anything but windows, and even with that be careful. dodgy bios implementations are like broken foundations to build your home, if you want to live there yourself!identify
so how do you identify, if your bios is broken/buggy? check kernel logs:
$ dmesg -l err toshiba_acpi: Error reading LCD brightnessindicates direction of problems. this error points towards a buggy implementation of acpi by toshiba.
$ dmesg | grep DSDT ACPI: DSDT 0x00000000B7CEF000 095BA (v01 TOSINV TOSINV00 00000001 MSFT 01000013) TOSHIBA Satellite detected - force copy of DSDT to local memory ACPI: Forced DSDT copy: length 0x095BA copied locally, original unmapped ACPI: EC: Look up EC in DSDTindicates that bios data is (used as original, forced) not overidden.
msft indicates that toshiba bios is specific to microsoft, particular to a windows version.
poor strategy, unless they were paid-off by microsoft.
confirm
how do you confirm whether bios provided data is usable? decompile & recompile.
a successful recompile, no errors/warnings indicates a good bios! and this has nothing to do with any operating system.
we need
iasl
, for this purpose.$ apt-cache show iasl Description: Intel ASL compiler/decompiler iASL compiles ASL (ACPI Source Language) into AML (ACPI Machine Language). This AML is suitable for inclusion as a DSDT in system firmware. It also can disassemble AML, for debugging purposes. Homepage: http://acpica.org
# apt-get install iasl
$ iasl -h
$ cd /tmp $ sudo cat /sys/firmware/acpi/tables/DSDT >dsdt.dat $ iasl -d dsdt.dat $ iasl -tc dsdt.dslthe first command reads the dsdt data. do it as root.
the second command decompiles this .dat into .dsl
the third command attempts to compile, thereby generating the errors/warnings we are looking for.
i see this on wheezy32
$ iasl -tc dsdt.dsl Intel ACPI Component Architecture ASL Optimizing Compiler version 20100528 [Jul 2 2010] Copyright (c) 2000 - 2010 Intel Corporation Supports ACPI Specification Revision 4.0a dsdt.dsl 3401: 0x00000000, // Length Error 4122 - ^ Invalid combination of Length and Min/Max fixed flags dsdt.dsl 3408: 0x00000000, // Length Error 4122 - ^ Invalid combination of Length and Min/Max fixed flags dsdt.dsl 7148: Name (_PLD, Buffer (0x10) Error 4080 - Invalid object type for reserved name ^ (found BUFFER, requires Package) dsdt.dsl 7165: Name (_PLD, Buffer (0x10) Error 4080 - Invalid object type for reserved name ^ (found BUFFER, requires Package) dsdt.dsl 7214: Name (_PLD, Buffer (0x10) Error 4080 - Invalid object type for reserved name ^ (found BUFFER, requires Package) dsdt.dsl 7231: Name (_PLD, Buffer (0x10) Error 4080 - Invalid object type for reserved name ^ (found BUFFER, requires Package) dsdt.dsl 7275: Name (_PLD, Buffer (0x10) Error 4080 - Invalid object type for reserved name ^ (found BUFFER, requires Package) dsdt.dsl 7489: Name (_PLD, Buffer (0x10) Error 4080 - Invalid object type for reserved name ^ (found BUFFER, requires Package) dsdt.dsl 7506: Name (_PLD, Buffer (0x10) Error 4080 - Invalid object type for reserved name ^ (found BUFFER, requires Package) dsdt.dsl 7523: Name (_PLD, Buffer (0x10) Error 4080 - Invalid object type for reserved name ^ (found BUFFER, requires Package) dsdt.dsl 7540: Name (_PLD, Buffer (0x10) Error 4080 - Invalid object type for reserved name ^ (found BUFFER, requires Package) dsdt.dsl 7557: Name (_PLD, Buffer (0x10) Error 4080 - Invalid object type for reserved name ^ (found BUFFER, requires Package) dsdt.dsl 8873: Method (_GTM, 0, NotSerialized) Warning 1088 - ^ Not all control paths return a value (_GTM) dsdt.dsl 8873: Method (_GTM, 0, NotSerialized) Warning 1081 - ^ Reserved method must return a value (Buffer required for _GTM) dsdt.dsl 9033: Method (_GTF, 0, NotSerialized) Warning 1088 - ^ Not all control paths return a value (_GTF) dsdt.dsl 9033: Method (_GTF, 0, NotSerialized) Warning 1081 - ^ Reserved method must return a value (Buffer required for _GTF) dsdt.dsl 9101: Method (_GTF, 0, NotSerialized) Warning 1088 - ^ Not all control paths return a value (_GTF) dsdt.dsl 9101: Method (_GTF, 0, NotSerialized) Warning 1081 - ^ Reserved method must return a value (Buffer required for _GTF) dsdt.dsl 9174: Method (_GTM, 0, NotSerialized) Warning 1088 - ^ Not all control paths return a value (_GTM) dsdt.dsl 9174: Method (_GTM, 0, NotSerialized) Warning 1081 - ^ Reserved method must return a value (Buffer required for _GTM) dsdt.dsl 9334: Method (_GTF, 0, NotSerialized) Warning 1088 - ^ Not all control paths return a value (_GTF) dsdt.dsl 9334: Method (_GTF, 0, NotSerialized) Warning 1081 - ^ Reserved method must return a value (Buffer required for _GTF) dsdt.dsl 9402: Method (_GTF, 0, NotSerialized) Warning 1088 - ^ Not all control paths return a value (_GTF) dsdt.dsl 9402: Method (_GTF, 0, NotSerialized) Warning 1081 - ^ Reserved method must return a value (Buffer required for _GTF) dsdt.dsl 9507: Method (_GTM, 0, NotSerialized) Warning 1088 - ^ Not all control paths return a value (_GTM) dsdt.dsl 9507: Method (_GTM, 0, NotSerialized) Warning 1081 - ^ Reserved method must return a value (Buffer required for _GTM) dsdt.dsl 9667: Method (_GTF, 0, NotSerialized) Warning 1088 - ^ Not all control paths return a value (_GTF) dsdt.dsl 9667: Method (_GTF, 0, NotSerialized) Warning 1081 - ^ Reserved method must return a value (Buffer required for _GTF) dsdt.dsl 9735: Method (_GTF, 0, NotSerialized) Warning 1088 - ^ Not all control paths return a value (_GTF) dsdt.dsl 9735: Method (_GTF, 0, NotSerialized) Warning 1081 - ^ Reserved method must return a value (Buffer required for _GTF) dsdt.dsl 9808: Method (_GTM, 0, NotSerialized) Warning 1088 - ^ Not all control paths return a value (_GTM) dsdt.dsl 9808: Method (_GTM, 0, NotSerialized) Warning 1081 - ^ Reserved method must return a value (Buffer required for _GTM) dsdt.dsl 9968: Method (_GTF, 0, NotSerialized) Warning 1088 - ^ Not all control paths return a value (_GTF) dsdt.dsl 9968: Method (_GTF, 0, NotSerialized) Warning 1081 - ^ Reserved method must return a value (Buffer required for _GTF) dsdt.dsl 10036: Method (_GTF, 0, NotSerialized) Warning 1088 - ^ Not all control paths return a value (_GTF) dsdt.dsl 10036: Method (_GTF, 0, NotSerialized) Warning 1081 - ^ Reserved method must return a value (Buffer required for _GTF) ASL Input: dsdt.dsl - 10111 lines, 370896 bytes, 4450 keywords Compilation complete. 12 Errors, 24 Warnings, 0 Remarks, 37 Optimizations
12 errors, 24 warnings, i.e. not good!
i get the same results on arch32 too.. so don't go blaming wheezy32!
No comments:
Post a Comment