My daughter's 64 bit Toshiba Satellite L655 suffered from the common Toshiba laptop problem of “Invisible battery” under Fedora 16.
dmesg | grep batt
would report “Battery absent”. This appears to be common with Toshiba laptops under Fedora, Ubuntu, Centos, Debian, and BackTrack Linux. Online research pointed to custom kernels, which sound like a headache; and a simpler way using Grub2. This second method worked well on her machine under Fedora 16, and after this week's release, seems to be working well under Fedora 17. Since the hard work was done by many others, I am posting what I found to share this solution. The fourth step outlined below, the reassembly step, may report errors and warnings. These can be ignored. Make sure you have the
iasl package installed before proceding.
As super user obtain the original DSDT:
# cat /sys/firmware/acpi/tables/DSDT > dsdt.dat
Using the previously installed
iasl package, disassemble the .dat file:
# iasl -d dsdt.dat
Use an editor like
Vim, or an IDE like
Geany, open the
dsdt.dsl file and replace:
OperationRegion (EMEM, SystemMemory, 0xFF808001, 0xFF)
with this:
OperationRegion (EMEM, EmbeddedControl, 0x00, 0xFF)
Save the altered file as
dsdt-fixed.dsl and exit the editor or IDE.
Again with
iasl reassemble:
# iasl -tc dsdt-fixed.dsl
Two files will be created.
dsdt-fixed.hex which could be compiled into a custom kernel. But with the introduction of a new kernel, this whole process will have to be repeated.
dsdt.aml which is one we will use along with the grub.cfg file to correct the ACPI problem and not worry about kernel updates.
Copy the .aml file to the proper place:
# cp dsdt.aml /boot
A file called 01-acpi has be added to the /etc/grub.d directory. Because of grub file structure differences in Fedora 16 and Fedora 17, two files are attached. Only one is needed. Download the relevant one for your version and rename it as
01_acpi. Then:
# cp 01_acpi /etc/grub.d
# chmod +x /etc/grub.d/01_acpi
Now run update-grub2, which for Fedora is:
grub2-mkconfig -o /boot/grub2/grub.cfg
This will find the corrected custom ACPI table and generate a new grub.cfg file. Now reboot and the power indicator should appear and the battery should be visible.
Chuck
References:
bugzilla.kernel.org/show_bug.cgi?id=15707
bugzilla.kernel.org/show_bug.cgi?id=34532
techinterplay.com/fix-toshiba-battery-issue-linux.html
nearlyalaugh.com/2011/08/override-dsdt/