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)
OperationRegion (EMEM, EmbeddedControl, 0x00, 0xFF)
Save the altered file as dsdt-fixed.dsl
and exit the editor or IDE.
Again with iasl
# iasl -tc dsdt-fixed.dsl
Two files will be created.
which could be compiled into a custom kernel. But with the introduction of a new kernel, this whole process will have to be repeated.
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
# 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.