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 188.8.131.52 (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 then /proc/acpi/battery/BAT0/* shows "not present" when there is no 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 light. 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, rmmod battery, modprobe battery, /proc/acpi/battery/BAT1 is gone (BAT0 is back), put the battery back in, /proc/acpi/battery/BAT1 still missing, rmmod battery, modprobe battery, /proc/acpi/battery/BAT1 is back. If you boot without the second 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, independelty of the ACPI system.