GNU bug report logs -
#643
23.0.60; battery.el needs deprecated ACPI_PROCFS_POWER interface
Previous Next
Reported by: Sven Joachim <svenjoac <at> gmx.de>
Date: Sun, 3 Aug 2008 07:45:03 UTC
Severity: normal
Merged with 660
Done: Chong Yidong <cyd <at> stupidchicken.com>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 643 in the body.
You can then email your comments to 643 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded to
bug-submit-list <at> lists.donarmstrong.com, Sven Joachim <svenjoac <at> gmx.de>, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:
bug#643
; Package
emacs
.
Full text and
rfc822 format available.
Acknowledgement sent to
Sven Joachim <svenjoac <at> gmx.de>
:
New bug report received and forwarded. Copy sent to
Sven Joachim <svenjoac <at> gmx.de>, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
Full text and
rfc822 format available.
Message #5 received at submit <at> emacsbugs.donarmstrong.com (full text, mbox):
In recent Linux kernels, the information about battery status has been
moved from /proc/acpi/battery to /sys/class/power_supply. It is only
available from the former place if the kernel has been built with the
ACPI_PROCFS_POWER option, which is deprecated:
,----[ /usr/src/linux-2.6.26.1/drivers/acpi/Kconfig ]
| config ACPI_PROCFS_POWER
| bool "Deprecated power /proc/acpi directories"
| depends on PROC_FS
| default y
| ---help---
| For backwards compatibility, this option allows
| deprecated power /proc/acpi/ directories to exist, even when
| they have been replaced by functions in /sys.
| The deprecated directories (and their replacements) include:
| /proc/acpi/battery/* (/sys/class/power_supply/*)
| /proc/acpi/ac_adapter/* (sys/class/power_supply/*)
| This option has no effect on /proc/acpi/ directories
| and functions, which do not yet exist in /sys
|
| Say N to delete power /proc/acpi/ directories that have moved to /sys/
|
`----
At least Debian ships kernels that are built without ACPI_PROCFS_POWER,
so battery.el will not work with them.
Sven
Merged 643 660.
Request was from
Chong Yidong <cyd <at> stupidchicken.com>
to
control <at> emacsbugs.donarmstrong.com
.
(Thu, 07 Aug 2008 02:05:07 GMT)
Full text and
rfc822 format available.
Information forwarded to
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:
bug#643
; Package
emacs
.
Full text and
rfc822 format available.
Acknowledgement sent to
Chong Yidong <cyd <at> stupidchicken.com>
:
Extra info received and forwarded to list. Copy sent to
Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
Full text and
rfc822 format available.
Message #12 received at 643 <at> emacsbugs.donarmstrong.com (full text, mbox):
The Linux kernel developers have deprecated the longstanding /proc/acpi
interface, which breaks battery.el on recent kernels (bug#643 and
bug#660). Now, the battery information is supposed to come through
sysfs.
Even though it's the feature freeze, I think it's necessary to ensure
that battery.el works at least at a basic level. So, here's a patch
that adds primitive sysfs support for battery.el. It doesn't do as much
as before, because AFAICT the new sysfs interface provides less
information than the old acpi interface (go figure).
It's lightly tested. Could someone try this out and see if it does the
right thing?
*** trunk/lisp/battery.el.~1.46.~ 2008-05-06 03:57:26.000000000 -0400
--- trunk/lisp/battery.el 2008-08-07 12:34:45.000000000 -0400
***************
*** 47,52 ****
--- 47,56 ----
((and (eq system-type 'gnu/linux)
(file-directory-p "/proc/acpi/battery"))
'battery-linux-proc-acpi)
+ ((and (eq system-type 'gnu/linux)
+ (file-directory-p "/sys/class/power_supply/")
+ (directory-files "/sys/class/power_supply/" nil "BAT[0-9]$"))
+ 'battery-linux-sysfs)
((and (eq system-type 'darwin)
(condition-case nil
(with-temp-buffer
***************
*** 70,75 ****
--- 74,81 ----
(defcustom battery-echo-area-format
(cond ((eq battery-status-function 'battery-linux-proc-acpi)
"Power %L, battery %B at %r (%p%% load, remaining time %t)")
+ ((eq battery-status-function 'battery-linux-sysfs)
+ "Power %L, battery %B (%p%% load)")
((eq battery-status-function 'battery-pmset)
"%L power, battery %B (%p%% load, remaining time %t)")
(battery-status-function
***************
*** 276,282 ****
(defun battery-linux-proc-acpi ()
"Get ACPI status information from Linux kernel.
! This function works only with the new `/proc/acpi/' format introduced
in Linux version 2.4.20 and 2.6.0.
The following %-sequences are provided:
--- 282,288 ----
(defun battery-linux-proc-acpi ()
"Get ACPI status information from Linux kernel.
! This function works only with the `/proc/acpi/' format introduced
in Linux version 2.4.20 and 2.6.0.
The following %-sequences are provided:
***************
*** 390,395 ****
--- 396,480 ----
"N/A")))))
+ ;;; `/sys/class/power_supply/BATN' interface for Linux.
+
+ (defun battery-linux-sysfs ()
+ "Get ACPI status information from Linux kernel.
+ This function works only with the new `/sys/class/power_supply/BAT'
+ format introduced in Linux version 2.4.25.
+
+ The following %-sequences are provided:
+ %c Current capacity (mAh or mWh)
+ %B Battery status (verbose)
+ %p Battery load percentage
+ %L AC line status (verbose)"
+ (let (charging-state
+ (charge-full 0)
+ (charge-now 0)
+ (energy-full 0)
+ (energy-now 0))
+ ;; SysFS provides information about each battery present in the
+ ;; system in a separate subdirectory. We are going to merge the
+ ;; available information together.
+ (with-temp-buffer
+ (dolist (dir (ignore-errors
+ (directory-files
+ "/sys/class/power_supply/" t "BAT[0-9]$")))
+ (erase-buffer)
+ (ignore-errors (insert-file-contents
+ (expand-file-name "uevent" dir)))
+ (when (re-search-forward "POWER_SUPPLY_PRESENT=1$" nil t)
+ (goto-char (point-min))
+ (and (re-search-forward "POWER_SUPPLY_STATUS=\\(.*\\)$" nil t)
+ ;; On most multi-battery systems, most of the time only
+ ;; one battery is "charging"/"discharging", the others
+ ;; are "unknown".
+ (member charging-state '("Unknown" "Full" nil))
+ (setq charging-state (match-string 1)))
+ (let (full-string now-string)
+ ;; Energy or charge
+ (cond ((and (re-search-forward
+ "POWER_SUPPLY_CHARGE_FULL=\\([0-9]*\\)$" nil t)
+ (setq full-string (match-string 1))
+ (re-search-forward
+ "POWER_SUPPLY_CHARGE_NOW=\\([0-9]*\\)$" nil t)
+ (setq now-string (match-string 1)))
+ (setq charge-full (+ charge-full
+ (string-to-number full-string))
+ charge-now (+ charge-now
+ (string-to-number now-string))))
+ ((and (re-search-forward
+ "POWER_SUPPLY_ENERGY_FULL=\\([0-9]*\\)$" nil t)
+ (setq full-string (match-string 1))
+ (re-search-forward
+ "POWER_SUPPLY_ENERGY_NOW=\\([0-9]*\\)$" nil t)
+ (setq now-string (match-string 1)))
+ (setq energy-full (+ energy-full
+ (string-to-number full-string))
+ energy-now (+ energy-now
+ (string-to-number now-string)))))))))
+ (list (cons ?c (cond ((or (> charge-full 0) (> charge-now 0))
+ (number-to-string charge-now))
+ ((or (> energy-full 0) (> energy-now 0))
+ (number-to-string energy-now))
+ (t "N/A")))
+ (cons ?B (or charging-state "N/A"))
+ (cons ?p (cond ((> charge-full 0)
+ (format "%.1f"
+ (/ (* 100 charge-now) (float charge-full))))
+ ((> energy-full 0)
+ (format "%.1f"
+ (/ (* 100 energy-now) (float energy-full))))
+ (t "N/A")))
+ (cons ?L (if (file-readable-p "/sys/class/power_supply/AC/online")
+ (if (battery-search-for-one-match-in-files
+ "/sys/class/power_supply/AC/online" "1" 0)
+ "AC"
+ "BAT")
+ "N/A")))))
+
+
+
;;; `pmset' interface for Darwin (OS X).
(defun battery-pmset ()
Merged 643 660.
Request was from
Chong Yidong <cyd <at> stupidchicken.com>
to
control <at> emacsbugs.donarmstrong.com
.
(Thu, 07 Aug 2008 17:40:07 GMT)
Full text and
rfc822 format available.
Information forwarded to
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:
bug#643
; Package
emacs
.
Full text and
rfc822 format available.
Acknowledgement sent to
Sven Joachim <svenjoac <at> gmx.de>
:
Extra info received and forwarded to list. Copy sent to
Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
Full text and
rfc822 format available.
Message #19 received at 643 <at> emacsbugs.donarmstrong.com (full text, mbox):
On 2008-08-07 18:35 +0200, Chong Yidong wrote:
> The Linux kernel developers have deprecated the longstanding /proc/acpi
> interface, which breaks battery.el on recent kernels (bug#643 and
> bug#660). Now, the battery information is supposed to come through
> sysfs.
>
> Even though it's the feature freeze, I think it's necessary to ensure
> that battery.el works at least at a basic level. So, here's a patch
> that adds primitive sysfs support for battery.el. It doesn't do as much
> as before, because AFAICT the new sysfs interface provides less
> information than the old acpi interface (go figure).
>
> It's lightly tested. Could someone try this out and see if it does the
> right thing?
The results are funny on my laptop (battery full, online):
Power N/A, battery Full at (-34.7% load, remaining time)
Sven
Information forwarded to
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:
bug#643
; Package
emacs
.
Full text and
rfc822 format available.
Acknowledgement sent to
"Lennart Borgman (gmail)" <lennart.borgman <at> gmail.com>
:
Extra info received and forwarded to list. Copy sent to
Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
Full text and
rfc822 format available.
Message #24 received at 643 <at> emacsbugs.donarmstrong.com (full text, mbox):
Chong Yidong wrote:
> Even though it's the feature freeze, I think it's necessary to ensure
> that battery.el works at least at a basic level.
Just out of curiosity: Why is it necessary that battery.el works? Is not
this information something that the OS normally gives the user without
Emacs?
Information forwarded to
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:
bug#643
; Package
emacs
.
Full text and
rfc822 format available.
Acknowledgement sent to
Chong Yidong <cyd <at> stupidchicken.com>
:
Extra info received and forwarded to list. Copy sent to
Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
Full text and
rfc822 format available.
Message #29 received at 643 <at> emacsbugs.donarmstrong.com (full text, mbox):
Sven Joachim <svenjoac <at> gmx.de> writes:
> The results are funny on my laptop (battery full, online):
>
> Power N/A, battery Full at (-34.7% load, remaining time)
What does
M-: (battery-linux-sysfs)
return?
Information forwarded to
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:
bug#643
; Package
emacs
.
Full text and
rfc822 format available.
Acknowledgement sent to
David De La Harpe Golden <david <at> harpegolden.net>
:
Extra info received and forwarded to list. Copy sent to
Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
Full text and
rfc822 format available.
Message #34 received at 643 <at> emacsbugs.donarmstrong.com (full text, mbox):
Lennart Borgman (gmail) wrote:
> Chong Yidong wrote:
>> Even though it's the feature freeze, I think it's necessary to ensure
>> that battery.el works at least at a basic level.
>
> Just out of curiosity: Why is it necessary that battery.el works? Is not
> this information something that the OS normally gives the user without
> Emacs?
>
not if you're running emacs fullscreen I guess, can't see a tray icon
then...
Information forwarded to
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:
bug#643
; Package
emacs
.
Full text and
rfc822 format available.
Acknowledgement sent to
Sven Joachim <svenjoac <at> gmx.de>
:
Extra info received and forwarded to list. Copy sent to
Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
Full text and
rfc822 format available.
Message #39 received at 643 <at> emacsbugs.donarmstrong.com (full text, mbox):
On 2008-08-07 20:19 +0200, Chong Yidong wrote:
> Sven Joachim <svenjoac <at> gmx.de> writes:
>
>> The results are funny on my laptop (battery full, online):
>>
>> Power N/A, battery Full at (-34.7% load, remaining time)
>
> What does
>
> M-: (battery-linux-sysfs)
>
> return?
((99 . "3985000") (66 . "Full") (112 . "-34.7") (76 . "N/A"))
Sven
Information forwarded to
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:
bug#643
; Package
emacs
.
Full text and
rfc822 format available.
Acknowledgement sent to
Chong Yidong <cyd <at> stupidchicken.com>
:
Extra info received and forwarded to list. Copy sent to
Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
Full text and
rfc822 format available.
Message #44 received at 643 <at> emacsbugs.donarmstrong.com (full text, mbox):
Sven Joachim <svenjoac <at> gmx.de> writes:
> On 2008-08-07 20:19 +0200, Chong Yidong wrote:
>
>> Sven Joachim <svenjoac <at> gmx.de> writes:
>>
>>> The results are funny on my laptop (battery full, online):
>>>
>>> Power N/A, battery Full at (-34.7% load, remaining time)
>>
>> What does
>>
>> M-: (battery-linux-sysfs)
>>
>> return?
>
> ((99 . "3985000") (66 . "Full") (112 . "-34.7") (76 . "N/A"))
What about (from the shell)
cat /sys/class/power_supply/BAT0/uevent
?
Information forwarded to
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:
bug#643
; Package
emacs
.
Full text and
rfc822 format available.
Acknowledgement sent to
Sven Joachim <svenjoac <at> gmx.de>
:
Extra info received and forwarded to list. Copy sent to
Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
Full text and
rfc822 format available.
Message #49 received at 643 <at> emacsbugs.donarmstrong.com (full text, mbox):
On 2008-08-07 21:28 +0200, Chong Yidong wrote:
> What about (from the shell)
>
> cat /sys/class/power_supply/BAT0/uevent
>
> ?
No such file or directory, but here's /sys/class/power_supply/BAT1/uevent:
PHYSDEVPATH=/devices/LNXSYSTM:00/device:00/PNP0A08:00/device:2c/PNP0C0A:00
PHYSDEVBUS=acpi
PHYSDEVDRIVER=battery
POWER_SUPPLY_NAME=BAT1
POWER_SUPPLY_TYPE=Battery
POWER_SUPPLY_STATUS=Full
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_TECHNOLOGY=Li-ion
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=10800000
POWER_SUPPLY_VOLTAGE_NOW=12444000
POWER_SUPPLY_CURRENT_NOW=0
POWER_SUPPLY_CHARGE_FULL_DESIGN=4000000
POWER_SUPPLY_CHARGE_FULL=3985000
POWER_SUPPLY_CHARGE_NOW=3985000
POWER_SUPPLY_MODEL_NAME=GC86503SY90
POWER_SUPPLY_MANUFACTURER=SONY
POWER_SUPPLY_SERIAL_NUMBER=
Sven
Information forwarded to
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:
bug#643
; Package
emacs
.
Full text and
rfc822 format available.
Acknowledgement sent to
Chong Yidong <cyd <at> stupidchicken.com>
:
Extra info received and forwarded to list. Copy sent to
Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
Full text and
rfc822 format available.
Message #54 received at 643 <at> emacsbugs.donarmstrong.com (full text, mbox):
Sven Joachim <svenjoac <at> gmx.de> writes:
>> What about (from the shell)
>>
>> cat /sys/class/power_supply/BAT0/uevent
>
> POWER_SUPPLY_VOLTAGE_NOW=12444000
> POWER_SUPPLY_CURRENT_NOW=0
> POWER_SUPPLY_CHARGE_FULL_DESIGN=4000000
> POWER_SUPPLY_CHARGE_FULL=3985000
> POWER_SUPPLY_CHARGE_NOW=3985000
> POWER_SUPPLY_MODEL_NAME=GC86503SY90
> POWER_SUPPLY_MANUFACTURER=SONY
> POWER_SUPPLY_SERIAL_NUMBER=
Maybe it's a Lisp integer overflow (I'm guessing you're on a 32-bit
machine). Does the following patch give better results?
*** trunk/lisp/battery.el.~1.46.~ 2008-05-06 03:57:26.000000000 -0400
--- trunk/lisp/battery.el 2008-08-07 16:31:34.000000000 -0400
***************
*** 47,52 ****
--- 47,56 ----
((and (eq system-type 'gnu/linux)
(file-directory-p "/proc/acpi/battery"))
'battery-linux-proc-acpi)
+ ((and (eq system-type 'gnu/linux)
+ (file-directory-p "/sys/class/power_supply/")
+ (directory-files "/sys/class/power_supply/" nil "BAT[0-9]$"))
+ 'battery-linux-sysfs)
((and (eq system-type 'darwin)
(condition-case nil
(with-temp-buffer
***************
*** 70,75 ****
--- 74,81 ----
(defcustom battery-echo-area-format
(cond ((eq battery-status-function 'battery-linux-proc-acpi)
"Power %L, battery %B at %r (%p%% load, remaining time %t)")
+ ((eq battery-status-function 'battery-linux-sysfs)
+ "Power %L, battery %B (%p%% load)")
((eq battery-status-function 'battery-pmset)
"%L power, battery %B (%p%% load, remaining time %t)")
(battery-status-function
***************
*** 276,282 ****
(defun battery-linux-proc-acpi ()
"Get ACPI status information from Linux kernel.
! This function works only with the new `/proc/acpi/' format introduced
in Linux version 2.4.20 and 2.6.0.
The following %-sequences are provided:
--- 282,288 ----
(defun battery-linux-proc-acpi ()
"Get ACPI status information from Linux kernel.
! This function works only with the `/proc/acpi/' format introduced
in Linux version 2.4.20 and 2.6.0.
The following %-sequences are provided:
***************
*** 390,395 ****
--- 396,480 ----
"N/A")))))
+ ;;; `/sys/class/power_supply/BATN' interface for Linux.
+
+ (defun battery-linux-sysfs ()
+ "Get ACPI status information from Linux kernel.
+ This function works only with the new `/sys/class/power_supply/BAT'
+ format introduced in Linux version 2.4.25.
+
+ The following %-sequences are provided:
+ %c Current capacity (mAh or mWh)
+ %B Battery status (verbose)
+ %p Battery load percentage
+ %L AC line status (verbose)"
+ (let (charging-state
+ (charge-full 0.0)
+ (charge-now 0.0)
+ (energy-full 0.0)
+ (energy-now 0.0))
+ ;; SysFS provides information about each battery present in the
+ ;; system in a separate subdirectory. We are going to merge the
+ ;; available information together.
+ (with-temp-buffer
+ (dolist (dir (ignore-errors
+ (directory-files
+ "/sys/class/power_supply/" t "BAT[0-9]$")))
+ (erase-buffer)
+ (ignore-errors (insert-file-contents
+ (expand-file-name "uevent" dir)))
+ (when (re-search-forward "POWER_SUPPLY_PRESENT=1$" nil t)
+ (goto-char (point-min))
+ (and (re-search-forward "POWER_SUPPLY_STATUS=\\(.*\\)$" nil t)
+ ;; On most multi-battery systems, most of the time only
+ ;; one battery is "charging"/"discharging", the others
+ ;; are "unknown".
+ (member charging-state '("Unknown" "Full" nil))
+ (setq charging-state (match-string 1)))
+ (let (full-string now-string)
+ ;; Sysfs may list either charge (mAh) or energy (mWh)
+ (cond ((and (re-search-forward
+ "POWER_SUPPLY_CHARGE_FULL=\\([0-9]*\\)$" nil t)
+ (setq full-string (match-string 1))
+ (re-search-forward
+ "POWER_SUPPLY_CHARGE_NOW=\\([0-9]*\\)$" nil t)
+ (setq now-string (match-string 1)))
+ (setq charge-full (+ charge-full
+ (string-to-number full-string))
+ charge-now (+ charge-now
+ (string-to-number now-string))))
+ ((and (re-search-forward
+ "POWER_SUPPLY_ENERGY_FULL=\\([0-9]*\\)$" nil t)
+ (setq full-string (match-string 1))
+ (re-search-forward
+ "POWER_SUPPLY_ENERGY_NOW=\\([0-9]*\\)$" nil t)
+ (setq now-string (match-string 1)))
+ (setq energy-full (+ energy-full
+ (string-to-number full-string))
+ energy-now (+ energy-now
+ (string-to-number now-string)))))))))
+ (list (cons ?c (cond ((or (> charge-full 0) (> charge-now 0))
+ (number-to-string charge-now))
+ ((or (> energy-full 0) (> energy-now 0))
+ (number-to-string energy-now))
+ (t "N/A")))
+ (cons ?B (or charging-state "N/A"))
+ (cons ?p (cond ((> charge-full 0)
+ (format "%.1f"
+ (/ (* 100 charge-now) charge-full)))
+ ((> energy-full 0)
+ (format "%.1f"
+ (/ (* 100 energy-now) energy-full)))
+ (t "N/A")))
+ (cons ?L (if (file-readable-p "/sys/class/power_supply/AC/online")
+ (if (battery-search-for-one-match-in-files
+ "/sys/class/power_supply/AC/online" "1" 0)
+ "AC"
+ "BAT")
+ "N/A")))))
+
+
+
;;; `pmset' interface for Darwin (OS X).
(defun battery-pmset ()
Information forwarded to
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:
bug#643
; Package
emacs
.
Full text and
rfc822 format available.
Acknowledgement sent to
Emre Sahin <i.emre.sahin <at> gmail.com>
:
Extra info received and forwarded to list. Copy sent to
Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
Full text and
rfc822 format available.
Message #59 received at 643 <at> emacsbugs.donarmstrong.com (full text, mbox):
David De La Harpe Golden <david <at> harpegolden.net> writes:
> Lennart Borgman (gmail) wrote:
>> Chong Yidong wrote:
>>> Even though it's the feature freeze, I think it's necessary to ensure
>>> that battery.el works at least at a basic level.
>>
>> Just out of curiosity: Why is it necessary that battery.el works? Is not
>> this information something that the OS normally gives the user without
>> Emacs?
>>
>
> not if you're running emacs fullscreen I guess, can't see a tray icon
> then...
>
I'm using ratpoison WM and using Emacs in full screen. (I suggest you
to try ratpoison, stumpwm or xmonad like "tiling wm"s and find "taste
of emacs" in their screen estate management. By the way, stumpwm has
its configuration in Common Lisp, and xmonad in Haskell, if that makes
a difference for you.)
There are no icons or bars or anything around. There is nothing except
Emacs' mode line to show battery information, hence battery.el. :)
Best Regards,
Emre
--
I. Emre Sahin @ Ankara, Turkey
Software Developer & Consultant @ http://ydyazilim.com
Ph.D. Candidate @ http://cs.bilkent.edu.tr
Blogger, Writer, Poet @ http://emresahin.net
Maybe hears the phone @ +90 532 261 8985
Maybe gtalk (or jabber) @ i.emre.sahin <at> gmail.com
Information forwarded to
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:
bug#643
; Package
emacs
.
Full text and
rfc822 format available.
Acknowledgement sent to
Emre Sahin <mail <at> emresahin.net>
:
Extra info received and forwarded to list. Copy sent to
Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
Full text and
rfc822 format available.
Message #64 received at 643 <at> emacsbugs.donarmstrong.com (full text, mbox):
Chong Yidong <cyd <at> stupidchicken.com> writes:
> Sven Joachim <svenjoac <at> gmx.de> writes:
>
>>> What about (from the shell)
>>>
>>> cat /sys/class/power_supply/BAT0/uevent
>>
>> POWER_SUPPLY_VOLTAGE_NOW=12444000
>> POWER_SUPPLY_CURRENT_NOW=0
>> POWER_SUPPLY_CHARGE_FULL_DESIGN=4000000
>> POWER_SUPPLY_CHARGE_FULL=3985000
>> POWER_SUPPLY_CHARGE_NOW=3985000
>> POWER_SUPPLY_MODEL_NAME=GC86503SY90
>> POWER_SUPPLY_MANUFACTURER=SONY
>> POWER_SUPPLY_SERIAL_NUMBER=
>
> Maybe it's a Lisp integer overflow (I'm guessing you're on a 32-bit
> machine). Does the following patch give better results?
Maybe I did something wrong with diff & patch; this is my first
adventure with them in practice. (Yes, really!)
Message is something like:
Loading /home/iesahin/site-lisp/battery.el (source)...done
setq: Wrong type argument: listp, "/sys/class/power_supply/AC/online"
Emre
--
I. Emre Sahin @ Ankara, Turkey
Software Developer & Consultant @ http://ydyazilim.com
Ph.D. Candidate @ http://cs.bilkent.edu.tr
Blogger, Writer, Poet @ http://emresahin.net
Maybe hears the phone @ +90 532 261 8985
Maybe gtalk (or jabber) @ i.emre.sahin <at> gmail.com
Information forwarded to
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:
bug#643
; Package
emacs
.
Full text and
rfc822 format available.
Acknowledgement sent to
Chong Yidong <cyd <at> stupidchicken.com>
:
Extra info received and forwarded to list. Copy sent to
Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
Full text and
rfc822 format available.
Message #69 received at 643 <at> emacsbugs.donarmstrong.com (full text, mbox):
Emre Sahin <mail <at> emresahin.net> writes:
> Maybe I did something wrong with diff & patch; this is my first
> adventure with them in practice. (Yes, really!)
>
> Message is something like:
>
> Loading /home/iesahin/site-lisp/battery.el (source)...done
> setq: Wrong type argument: listp, "/sys/class/power_supply/AC/online"
No, it was a typo in the patch. Could you replace the line
(if (battery-search-for-one-match-in-files
"/sys/class/power_supply/AC/online" "1" 0)
"AC"
on line 471 of the battery.el, with
(if (battery-search-for-one-match-in-files
(list "/sys/class/power_supply/AC/online") "1" 0)
"AC"
and try again?
Information forwarded to
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:
bug#643
; Package
emacs
.
Full text and
rfc822 format available.
Acknowledgement sent to
Sven Joachim <svenjoac <at> gmx.de>
:
Extra info received and forwarded to list. Copy sent to
Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
Full text and
rfc822 format available.
Message #74 received at 643 <at> emacsbugs.donarmstrong.com (full text, mbox):
On 2008-08-07 22:32 +0200, Chong Yidong wrote:
> Maybe it's a Lisp integer overflow (I'm guessing you're on a 32-bit
> machine). Does the following patch give better results?
Yes, that looks better.
Sven
Information forwarded to
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:
bug#643
; Package
emacs
.
Full text and
rfc822 format available.
Acknowledgement sent to
Sven Joachim <svenjoac <at> gmx.de>
:
Extra info received and forwarded to list. Copy sent to
Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
Full text and
rfc822 format available.
Message #79 received at 643 <at> emacsbugs.donarmstrong.com (full text, mbox):
On 2008-08-08 02:10 +0200, Chong Yidong wrote:
> (if (battery-search-for-one-match-in-files
> (list "/sys/class/power_supply/AC/online") "1" 0)
> "AC"
FWIW, I don't have a /sys/class/power_supply/AC directory, but there is
/sys/class/power_supply/ACAD. Seems the directory has moved somewhere
between kernel 2.6.22 and 2.6.25, see
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=478937.
Sven
Information forwarded to
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:
bug#643
; Package
emacs
.
Full text and
rfc822 format available.
Acknowledgement sent to
Emre Sahin <i.emre.sahin <at> gmail.com>
:
Extra info received and forwarded to list. Copy sent to
Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
Full text and
rfc822 format available.
Message #84 received at 643 <at> emacsbugs.donarmstrong.com (full text, mbox):
Chong Yidong <cyd <at> stupidchicken.com> writes:
> Emre Sahin <mail <at> emresahin.net> writes:
>
>> Maybe I did something wrong with diff & patch; this is my first
>> adventure with them in practice. (Yes, really!)
>>
>> Message is something like:
>>
>> Loading /home/iesahin/site-lisp/battery.el (source)...done
>> setq: Wrong type argument: listp, "/sys/class/power_supply/AC/online"
>
> No, it was a typo in the patch. Could you replace the line
>
> (if (battery-search-for-one-match-in-files
> "/sys/class/power_supply/AC/online" "1" 0)
> "AC"
>
> on line 471 of the battery.el, with
>
> (if (battery-search-for-one-match-in-files
> (list "/sys/class/power_supply/AC/online") "1" 0)
> "AC"
>
> and try again?
This looks OK. It fills %p in battery-mode-line-format and gives
an equal value with "acpi -b".
Thank you. I may try to retrieve other (available) information from sysfs
interface by looking your code. I don't know if Sven has anything to
add about interface though.
I think the interface change is thought for multi-battery systems. If battery.el
should support them, battery.el interface should also change I think,
which is, IMHO, not necessary at the moment.
Regards,
Emre
--
I. Emre Sahin @ Ankara, Turkey
Software Developer & Consultant @ http://ydyazilim.com
Ph.D. Candidate @ http://cs.bilkent.edu.tr
Blogger, Writer, Poet @ http://emresahin.net
Maybe hears the phone @ +90 532 261 8985
Maybe gtalk (or jabber) @ i.emre.sahin <at> gmail.com
Reply sent to
Chong Yidong <cyd <at> stupidchicken.com>
:
You have taken responsibility.
Full text and
rfc822 format available.
Notification sent to
Sven Joachim <svenjoac <at> gmx.de>
:
bug acknowledged by developer.
Full text and
rfc822 format available.
Message #89 received at 643-done <at> emacsbugs.donarmstrong.com (full text, mbox):
I've checked in the patch.
Reply sent to
Chong Yidong <cyd <at> stupidchicken.com>
:
You have taken responsibility.
Full text and
rfc822 format available.
Notification sent to
Emre Sahin <mail <at> emresahin.net>
:
bug acknowledged by developer.
Full text and
rfc822 format available.
Information forwarded to
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:
bug#643
; Package
emacs
.
Full text and
rfc822 format available.
Acknowledgement sent to
Stefan Monnier <monnier <at> IRO.UMontreal.CA>
:
Extra info received and forwarded to list. Copy sent to
Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
Full text and
rfc822 format available.
Message #99 received at 643 <at> emacsbugs.donarmstrong.com (full text, mbox):
> Even though it's the feature freeze, I think it's necessary to ensure
> that battery.el works at least at a basic level. So, here's a patch
Agreed.
> ! This function works only with the new `/proc/acpi/' format introduced
> ! This function works only with the `/proc/acpi/' format introduced
[...]
> + This function works only with the new `/sys/class/power_supply/BAT'
Given the fix to the docstring for proc-acpi, I think we should try and
avoid making the same mistake. I.e. drop the "new".
Stefan
Information forwarded to
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:
bug#643
; Package
emacs
.
Full text and
rfc822 format available.
Acknowledgement sent to
raman <at> users.sf.net
:
Extra info received and forwarded to list. Copy sent to
Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
Full text and
rfc822 format available.
Message #104 received at 643 <at> emacsbugs.donarmstrong.com (full text, mbox):
Define "OS". The OS is gnu/linux, not gnome or KDE -- those are
user environments. Emacs is also a user environment.
>>>>> "Lennart" == Lennart Borgman (gmail) <lennart.borgman <at> gmail.com> writes:
Lennart> Chong Yidong wrote:
>> Even though it's the feature freeze, I think it's
>> necessary to ensure that battery.el works at least at a
>> basic level.
Lennart>
Lennart> Just out of curiosity: Why is it necessary that
Lennart> battery.el works? Is not this information something
Lennart> that the OS normally gives the user without Emacs?
Lennart>
Lennart>
--
Best Regards,
--raman
Email: raman <at> users.sf.net
WWW: http://emacspeak.sf.net/raman/
AIM: emacspeak GTalk: tv.raman.tv <at> gmail.com
PGP: http://emacspeak.sf.net/raman/raman-almaden.asc
Google: tv+raman
IRC: irc://irc.freenode.net/#emacs
bug archived.
Request was from
Debbugs Internal Request <don <at> donarmstrong.com>
to
internal_control <at> emacsbugs.donarmstrong.com
.
(Mon, 08 Sep 2008 14:24:03 GMT)
Full text and
rfc822 format available.
This bug report was last modified 15 years and 241 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.