Entonces, obtuve una batería nueva para mi computadora portátil y, desde el primer momento, tengo problemas.
La batería se descargó casi por completo del fabricante. Lo conecté a mi computadora y la batería informaría que la tasa de carga es 0 y, por lo tanto, nunca llegaría a "completamente cargada"
Después de un par de minutos y teniendo un bloqueo X11, 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'
Por lo tanto, la batería se está cargando, la capacidad de energía es solo alrededor de una cuarta parte de lo que se diseñó (a pesar de que la batería tiene solo un par de días), se encuentra en un 73% y la tasa de carga es tan pequeña que no incluso informe cuánto tardaría en cargarse por completo.
Ahora, sé que puedes "calibrar" un poco la batería, cargándola durante un par de horas, luego dejando que se agote 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 de SMBus .
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 es bastante extraño para mí, ¿eso significa que no hay nada conectado al autobús?
No importa en qué dirección esté tratando de volcar, el resultado es siempre el mismo:
i2cdump 0 0x03
(todas las demás direcciones válidas producen la misma salida):
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
Así de lejos llegué.
El sistema obtiene la información de la batería de alguna parte , pero no puedo entender cómo y de 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 configurarlo (presumiblemente con i2cset
) y posiblemente cómo está formateado (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.)
El último bit de información que se me ocurre es la dmidecode
salida:
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., que no dicen mucho.
dmidecode -t connector
informes:
Getting SMBIOS data from sysfs.
SMBIOS 2.4 present.
fuente
Respuestas:
El bus de especificación de batería inteligente (SBS) no es directamente accesible desde el sistema operativo. Sin embargo, es posible comunicarse directamente con la batería a través de 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
EDIT 2: personalmente logré hablar directamente con la batería usando los pines i2c de un Raspberry PI y los comandos que mencionaste.
fuente
No hay nada malo con el medidor; su batería está defectuosa, por lo que 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 esté sentado a solo 15.9 y que no tome casi ninguna carga indica que al menos una celda está dañada.
El hecho de que los datos de smi y acpi sean incorrectos indica que el fabricante de este portátil simplemente no se molestó en construirlo correctamente, por lo que lo devolvería para obtener un reembolso si es posible y no comprarlo de nuevo.
fuente
¿Estás seguro de que es incluso una batería inteligente? El que está en mi HP Pavilion no lo es.
Y de dónde sacaste la batería es importante. Me llevó 3 o 4 intentos conseguir una batería que funcionara para mi Dell comprando baterías baratas. Finalmente tuve buena suerte en http://drpowerglobal.com/drbattery/ pero eso fue hace años, ahora lo he agotado.
fuente