On Friday 26 October 2007, Alexey Starikovskiy wrote: > Andrey Borzenkov wrote: > > I have lost battery in 2.6.24-rc1. Without CONFIG_ACPI_PROCFS I have > > no /proc/acpi/battery and cannot test netlink interface because right now > > there is no consumer of this. > > for /sysfs interface you need to enable power_supply driver. > or you could apply this patch and power_supply will be selected by battery > itself. > I already have power_supply module, battery depends on it and it is autloaded. But I fail to see where I can get battery info in /sys Here is what I get in 2.6.23 from /proc/acpi/battery: sh-3.2# ls -l /proc/acpi/battery/BAT1 total 0 -rw-r--r-- 1 root root 0 Oct 26 21:00 alarm -r--r--r-- 1 root root 0 Oct 26 21:00 info -r--r--r-- 1 root root 0 Oct 26 21:00 state sh-3.2# cat /proc/acpi/battery/BAT1/alarm alarm: 756 mWh sh-3.2# cat /proc/acpi/battery/BAT1/info present: yes design capacity: 38880 mWh last full capacity: 37530 mWh battery technology: rechargeable design voltage: 10800 mV design capacity warning: 756 mWh design capacity low: 0 mWh capacity granularity 1: 10 mWh capacity granularity 2: 10 mWh model number: XM2038P04 serial number: 2000009244 battery type: Li-ION OEM info: sh-3.2# cat /proc/acpi/battery/BAT1/state present: yes capacity state: ok charging state: charged present rate: 0 mW remaining capacity: 37530 mWh present voltage: 11340 mV and here is what I can find in 2.6.24-rc1 in /sys/class/power_supply: sh-3.2# ls -l /sys/class/power_supply/BAT1/ total 0 -rw-r--r-- 1 root root 4096 2007-10-26 20:55 alarm lrwxrwxrwx 1 root root 0 2007-10-26 20:55 device -> ../../../../../../devices/LNXSYSTM:00/device:00/PNP0C0A:00 drwxr-xr-x 2 root root 0 2007-10-26 20:55 power lrwxrwxrwx 1 root root 0 2007-10-26 20:55 subsystem -> ../../../../../../class/power_supply -r--r--r-- 1 root root 4096 2007-10-26 20:55 type -rw-r--r-- 1 root root 4096 2007-10-26 20:55 uevent sh-3.2# ls -l /sys/class/power_supply/BAT1/device/ total 0 lrwxrwxrwx 1 root root 0 2007-10-26 20:54 driver -> ../../../../bus/acpi/drivers/battery -r--r--r-- 1 root root 4096 2007-10-26 20:56 hid -r--r--r-- 1 root root 4096 2007-10-26 20:54 modalias -r--r--r-- 1 root root 4096 2007-10-26 20:56 path drwxr-xr-x 2 root root 0 2007-10-26 20:56 power drwxr-xr-x 3 root root 0 2007-10-26 20:54 power_supply lrwxrwxrwx 1 root root 0 2007-10-26 20:54 subsystem -> ../../../../bus/acpi -rw-r--r-- 1 root root 4096 2007-10-26 20:54 uevent sh-3.2# cat /sys/class/power_supply/BAT1/alarm 0 sh-3.2# cat /sys/class/power_supply/BAT1/device/hid PNP0C0A sh-3.2# cat /sys/class/power_supply/BAT1/device/path \_SB_.BAT1 so the only useful information I get is that it is Battery (type attribute) and PNP/ACPI IDs. > > With CONFIG_ACPI_PROCFS I get > > > > {pts/1}% LC_ALL=C ll /proc/acpi/battery/BAT1 > > total 0 > > -rw-r--r-- 1 root root 0 Oct 26 20:18 alarm > > -r--r--r-- 1 root root 0 Oct 26 20:18 info > > -r--r--r-- 1 root root 0 Oct 26 20:18 state > > {pts/1}% LC_ALL=C cat /proc/acpi/battery/BAT1/* > > cat: /proc/acpi/battery/BAT1/alarm: Bad address > > cat: /proc/acpi/battery/BAT1/info: Bad address > > cat: /proc/acpi/battery/BAT1/state: Bad address > And even if it worked with /sys you still have regression in /proc/acpi > Could you make sure it's a clean build with all drivers updated/kernel > included? > It is clean build of -rc1. As long as can trust git pull (I build every version in clean O directory). > > {pts/1}% LC_ALL=C ll /proc/acpi/battery/BAT2 > > total 0 > > -rw-r--r-- 1 root root 0 Oct 26 20:18 alarm > > -r--r--r-- 1 root root 0 Oct 26 20:18 info > > -r--r--r-- 1 root root 0 Oct 26 20:18 state > > {pts/1}% LC_ALL=C cat /proc/acpi/battery/BAT2/* > > present: no > > present: no > > present: no > > > > BAT2 is correct - it is not present. BAT1 is lying. There is nothing in > > dmesg. battery is loaded (obviously) > > > > ACPI related stuff from dmesg: > > > > {pts/1}% dmesg |grep ACPI > > [ 0.000000] BIOS-e820: 00000000000eee00 - 00000000000ef000 (ACPI NVS) > > [ 0.000000] BIOS-e820: 000000001ef60000 - 000000001ef70000 (ACPI > > data) [ 0.000000] ACPI: RSDP 000F0090, 0014 (r0 TOSHIB) > > [ 0.000000] ACPI: RSDT 1EF60000, 0028 (r1 TOSHIB 750 970814 > > TASM 4010000) > > [ 0.000000] ACPI: FACP 1EF60054, 0084 (r2 TOSHIB 750 970814 > > TASM 4010000) > > [ 0.000000] ACPI: DSDT 1EF600D8, 68DA (r1 TOSHIB 4000 20020417 > > MSFT 100000A) > > [ 0.000000] ACPI: FACS 000EEE00, 0040 > > [ 0.000000] ACPI: PM-Timer IO Port: 0xee08 > > [ 896.112009] ACPI: Core revision 20070126 > > [ 896.112775] ACPI: Looking for DSDT in initramfs... error, file > > /DSDT.aml not found. > > [ 896.123590] tbxface-0598 [00] tb_load_namespace : ACPI Tables > > successfully acquired > > [ 896.123631] ACPI: setting ELCR to 0200 (from 0a00) > > [ 896.124208] evxfevnt-0091 [00] enable : Transition to > > ACPI mode successful > > [ 896.131744] ACPI: bus type pci registered > > [ 896.149165] ACPI: EC: Look up EC in DSDT > > [ 896.163343] ACPI: Interpreter enabled > > [ 896.163362] ACPI: (supports S0 S3 S4 S5) > > [ 896.163510] ACPI: Using PIC for interrupt routing > > [ 896.195892] ACPI: PCI Root Bridge [PCI0] (0000:00) > > [ 896.197650] PCI quirk: region ee00-ee3f claimed by ali7101 ACPI > > [ 896.200015] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT] > > [ 896.200588] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCI1._PRT] > > [ 896.227797] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 10 *11) > > [ 896.228562] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 10 *11) > > [ 896.229271] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 7 10 *11) > > [ 896.230101] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 7 10 *11) > > [ 896.230818] ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 7 10 *11) > > [ 896.231527] ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 7 10 *11) > > [ 896.232912] ACPI: Power Resource [PFAN] (off) > > [ 896.233622] pnp: PnP ACPI init > > [ 896.233766] ACPI: bus type pnp registered > > [ 896.257679] pnp: PnP ACPI: found 12 devices > > [ 896.257737] ACPI: ACPI bus type pnp unregistered > > [ 896.258820] PCI: Using ACPI for IRQ routing > > [ 896.325763] ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 11 > > [ 896.325805] ACPI: PCI Interrupt 0000:00:10.0[A] -> Link [LNKC] -> GSI > > 11 (level, low) -> IRQ 11 > > [ 896.327116] ACPI: PCI Interrupt Link [LNKA] enabled at IRQ 11 > > [ 896.327143] ACPI: PCI Interrupt 0000:00:11.0[A] -> Link [LNKA] -> GSI > > 11 (level, low) -> IRQ 11 > > [ 896.328392] ACPI: PCI Interrupt Link [LNKB] enabled at IRQ 11 > > [ 896.328416] ACPI: PCI Interrupt 0000:00:11.1[B] -> Link [LNKB] -> GSI > > 11 (level, low) -> IRQ 11 > > [ 896.978962] ACPI: PCI Interrupt Link [LNKD] enabled at IRQ 11 > > [ 896.980097] ACPI: PCI Interrupt 0000:00:0a.0[A] -> Link [LNKD] -> GSI > > 11 (level, low) -> IRQ 11 > > [ 902.378588] ACPI: Unable to derive IRQ for device 0000:00:04.0 > > [ 902.406719] ACPI: PCI Interrupt 0000:00:04.0[A]: no GSI > > [ 919.051426] ACPI: PCI Interrupt Link [LNKG] enabled at IRQ 11 > > [ 919.051451] ACPI: PCI Interrupt 0000:00:02.0[A] -> Link [LNKG] -> GSI > > 11 (level, low) -> IRQ 11 > > [ 920.132284] ACPI: PCI Interrupt Link [LNKH] enabled at IRQ 11 > > [ 920.132307] ACPI: PCI Interrupt 0000:00:06.0[A] -> Link [LNKH] -> GSI > > 11 (level, low) -> IRQ 11 > > [ 927.120073] ACPI: AC Adapter [ADP1] (on-line) > > [ 927.195942] ACPI: Battery Slot [BAT1] (battery present) > > [ 927.200475] ACPI: Battery Slot [BAT2] (battery absent) > > [ 927.277564] ACPI: Power Button (FF) [PWRF] > > [ 927.290786] ACPI: Lid Switch [LID] > > [ 927.324850] ACPI: Transitioning device [FAN] to D3 > > [ 927.324867] ACPI: Transitioning device [FAN] to D3 > > [ 927.324891] ACPI: Fan [FAN] (off) > > [ 927.535960] ACPI: CPU0 (power states: C1[C1] C2[C2]) > > [ 927.638487] ACPI: Thermal Zone [THRM] (55 C) > > [ 927.770100] toshiba_acpi: Toshiba Laptop ACPI Extras version 0.18 > > [ 927.920519] ACPI: Video Device [VGA] (multi-head: yes rom: yes post: > > no) [ 1055.552624] ACPI: PCI interrupt for device 0000:00:0a.0 disabled [ > > 1055.554812] ACPI: PCI interrupt for device 0000:00:06.0 disabled [ > > 1055.555479] ACPI: PCI interrupt for device 0000:00:02.0 disabled [ > > 0.901020] ACPI: PCI Interrupt 0000:00:02.0[A] -> Link [LNKG] -> GSI 11 > > (level, low) -> IRQ 11 > > [ 0.901271] ACPI: Unable to derive IRQ for device 0000:00:04.0 > > [ 0.901278] ACPI: PCI Interrupt 0000:00:04.0[A]: no GSI > > [ 0.904594] ACPI: PCI Interrupt 0000:00:06.0[A] -> Link [LNKH] -> GSI > > 11 (level, low) -> IRQ 11 > > > > > > As for the case without ACPI_PROCFS ... well, I do not have it in /proc - > > which is expected - but neither I do have it in /sys. And Kconfig help > > reads > > > > The deprecated files (and their replacements) include: > > > > /proc/acpi/sleep (/sys/power/state) > > /proc/acpi/info (/sys/modules/acpi/parameters/acpica_version) > > /proc/acpi/dsdt (/sys/firmware/acpi/tables/DSDT) > > /proc/acpi/fadt (/sys/firmware/acpi/tables/FACP) > > /proc/acpi/debug_layer > > (/sys/module/acpi/parameters/debug_layer) /proc/acpi/debug_level > > (/sys/module/acpi/parameters/debug_level) > > > > neither does it mention /proc/acpi/battery not do I actually have any > > battery information in /sys. > > > > Personally I do not like it (if it is intentional). Leaving only netlink > > interface means user has no way to query for actual state. We need > > something running all the time and hope, it never loses any event and > > thus reflects actual state. But it also means we are not allowed to > > restart it (whatever it is) as it will have no way to query for actual > > state on restart ... > > > > -andrey
Attachment:
signature.asc
Description: This is a digitally signed message part.