Ultrabay 2000 Battery
- Marketing PN: 02K6646
- FRU PN: 02K6645
The second battery is correctly detected by either the APM or ACPI subsystem.
However, the Linux ACPI subsystem only scans for batteries on boot. This means that the second battery must be present at boot time, or you will not be able to get any info for it.
We need to find a way of telling the ACPI subsystem to rescan for batteries.
With kernel 184.108.40.206 (possibly only with ibm-acpi) there is a sysfs file: /sys/firmware/acpi/namespace/ACPI/_SB/PCI0/LPC/EC/BAT1/eject. There isn't one for BAT0, but
# cat /proc/acpi/battery/BAT0/* shows
not present when there is no internal battery.
For BAT1 all the states go to 0, critical, etc. .
# echo 1 > /sys/firmware/acpi/namespace/ACPI/_SB/PCI0/LPC/EC/BAT1/eject will remove /proc/acpi/battery/BAT1 and turn off the UltraBay led. Interestingly the battery will still be discharging (charging not tested) until it is physically removed.
Also, if you compile the battery module of ACPI as a module, boot with the UltraBay battery present, remove the UltraBay battery (without doing the eject above), /proc/acpi/battery/BAT1 is still there, while after
# rmmod battery && modprobe battery /proc/acpi/battery/BAT1 is gone (BAT0 is back). Put the battery back in and /proc/acpi/battery/BAT1 is still missing, do
# rmmod battery && modprobe battery and /proc/acpi/battery/BAT1 is back.
If you boot without the second battery /proc/acpi/battery/BAT1 never shows up.
If you eject using the sysfs file above, BAT1 disappears from both /proc and /sys and never comes back.
Test machine: T23.The battery status should also be accessible via tp_smapi, independently of the ACPI system.