
Entonces, compré una batería nueva para mi computadora portátil y, desde el principio, tuve problemas.
La batería llegó casi completamente descargada del fabricante. Lo conecté a mi computadora y la batería informaba que la tasa de carga es 0 y, por lo tanto, nunca alcanzaría la "carga completa".
Después de un par de minutos y de que X11 fallara, ahora estoy en esto ( upower -i /org/freedesktop/UPower/devices/battery_BAT0
):
native-path: BAT0
vendor: Hewlett-Packard
model: Primary
power supply: yes
updated: Fri 21 Oct 2016 08:28:33 AM CEST (106 seconds ago)
has history: yes
has statistics: yes
battery
present: yes
rechargeable: yes
state: charging
warning-level: none
energy: 17.8704 Wh
energy-empty: 0 Wh
energy-full: 24.192 Wh
energy-full-design: 95.04 Wh
energy-rate: 0.0996923 W
voltage: 15.947 V
percentage: 73%
capacity: 25.4545%
technology: lithium-ion
icon-name: 'battery-full-charging-symbolic'
Entonces, la batería se está cargando, la capacidad de energía es solo aproximadamente una cuarta parte de lo que fue diseñada (a pesar de que la batería tiene solo un par de días), está al 73% y la tasa de carga es tan pequeña que no Incluso informe cuánto tomaría hasta que esté completamente cargado.
Ahora, sé que puedes "calibrar" una batería cargándola durante un par de horas, luego dejándola agotada y luego cargándola nuevamente.
Sin embargo, esta no parece ser la forma correcta de hacerlo. Me pregunto si no puedo acceder a los datos inteligentes directamente, a través delSMBus.
i2cdetect -l
informes:
i2c-0 smbus SMBus I801 adapter at 8000 SMBus adapter
i2c-1 i2c NVIDIA i2c adapter 0 at 1:00.0 I2C adapter
i2c-2 i2c NVIDIA i2c adapter 2 at 1:00.0 I2C adapter
i2c-3 i2c NVIDIA i2c adapter 3 at 1:00.0 I2C adapter
i2c-4 i2c NVIDIA i2c adapter 5 at 1:00.0 I2C adapter
Entonces, intenté sondear SMBus ( i2cdetect -r 0
):
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-0 using read byte commands.
I will probe address range 0x03-0x77.
Continue? [Y/n] y
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
Esto me resulta bastante extraño, ¿eso significa que no hay nada conectado al autobús?
No importa qué dirección intente volcar, el resultado es siempre el mismo:
i2cdump 0 0x03
(todas las demás direcciones válidas producen el mismo resultado):
No size specified (using byte-data access)
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-0, address 0x1a, mode byte
Continue? [Y/n] y
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
00: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
10: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
20: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
30: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
40: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
50: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
60: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
70: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
80: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
90: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
a0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
b0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
c0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
d0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
e0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
f0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XXXXXXXXXXXXXXXX
Hasta ahí llegué.
El sistema obtiene la información de la batería deen algún lugar, pero no puedo entender cómo y desde dónde.
En cuanto al acceso I²C/SMBus a la batería: no tengo idea si estoy haciendo algo mal o es imposible así.
Me gustaría saber cómo acceder a los datos de la batería inteligente, cómo configurarlos (presumiblemente con i2cset
) y posiblemente cómo están formateados (qué datos codifican qué información, etc.)
acpi -V
Está aún más confundido:
Battery 0: Unknown, 73%
Battery 0: design capacity 6600 mAh, last full capacity 1680 mAh = 25%
Adapter 0: on-line
(capacidad de diseño informada incorrectamente, etc.)
La última información que se me ocurre es dmidecode
la siguiente:
Handle 0x0010, DMI type 39, 22 bytes
System Power Supply
Location: OEM_Define0
Name: OEM_Define1
Manufacturer: OEM_Define2
Serial Number: OEM_Define2
Asset Tag: OEM_Define3
Model Part Number: OEM_Define4
Revision: OEM_Define5
Max Power Capacity: 75 W
Status: Present, OK
Type: Regulator
Input Voltage Range Switching: Auto-switch
Plugged: No
Hot Replaceable: No
Puede ver todas estas cadenas "OEM_Define2", etc. allí, que no dicen mucho.
dmidecode -t connector
informes:
Getting SMBIOS data from sysfs.
SMBIOS 2.4 present.
Respuesta1
No se puede acceder directamente al bus de especificación de batería inteligente (SBS) desde el sistema operativo. Sin embargo, es posible comunicarse directamente con la batería mediante un adaptador USB-I2C conectado directamente a los pines de la batería.
EDITAR: https://media.blackhat.com/bh-us-11/Miller/BH_US_11_Miller_Battery_Firmware_Public_WP.pdf
EDITAR 2: Personalmente logré hablar directamente con la batería usando los pines i2c de una Raspberry PI y los comandos que mencionaste.
Respuesta2
No hay nada malo con el medidor; Su batería está defectuosa, por lo que solo debe devolverla y exigir un reemplazo. Una batería de iones de litio de 4 celdas tiene un voltaje completamente cargado de 4,2 x 4 = 16,8 voltios. El hecho de que tenga solo 15,9 y no reciba apenas carga indica que al menos una celda está dañada.
El hecho de que los datos smi y acpi sean incorrectos indica que el fabricante de esta computadora portátil simplemente no se molestó en construirla correctamente, por lo que la devolvería para obtener un reembolso si es posible y no volvería a comprarles.
Respuesta3
¿Estás seguro de que es siquiera una batería inteligente? El de mi HP Pavilion no lo es.
Y de dónde sacaste la batería es importante. Me tomó 3 o 4 intentos conseguir una batería que funcionara para mi Dell comprando baterías baratas. Finalmente tuve buena suerte enhttp://drpowerglobal.com/drbattery/pero eso fue hace años, ahora ya lo he desgastado.