Lenovo T440s pil durumu bilinmiyor, ancak şarj oluyor mu?


14

Lenovo'yu arch linux üzerinde yapılandırmaya çalışıyorum. Yapmam gereken son şey pili% 100 çalışıyor.

Şu anda ana pilin durumunun bilinmediği anlaşılıyor:

> acpi -V
Battery 0: Unknown, 97%
Battery 0: design capacity 5849 mAh, last full capacity 5956 mAh = 100%
Battery 1: Charging, 96%, 00:05:50 until charged
Battery 1: design capacity 1861 mAh, last full capacity 1536 mAh = 82%
Adapter 0: on-line
Thermal 0: ok, 43.0 degrees C
Thermal 0: trip point 0 switches to mode critical at temperature 200.0 degrees C
Cooling 0: x86_pkg_temp no state information available
Cooling 1: intel_powerclamp no state information available
Cooling 2: Processor 0 of 10
Cooling 3: Processor 0 of 10
Cooling 4: Processor 0 of 10
Cooling 5: Processor 0 of 10

Ama doğrudan pili sorgulamak tamamen farklı bir yanıt alırsanız:

> cat /sys/class/power_supply/BAT0/status
Charging

> cat /sys/class/power_supply/BAT0/uevent
POWER_SUPPLY_NAME=BAT0
POWER_SUPPLY_STATUS=Charging
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_TECHNOLOGY=Li-ion
POWER_SUPPLY_CYCLE_COUNT=0
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=11100000
POWER_SUPPLY_VOLTAGE_NOW=12389000
POWER_SUPPLY_POWER_NOW=0
POWER_SUPPLY_ENERGY_FULL_DESIGN=23200000
POWER_SUPPLY_ENERGY_FULL=19150000
POWER_SUPPLY_ENERGY_NOW=19050000
POWER_SUPPLY_CAPACITY=99
POWER_SUPPLY_CAPACITY_LEVEL=Normal
POWER_SUPPLY_MODEL_NAME=45N1773
POWER_SUPPLY_MANUFACTURER=SANYO
POWER_SUPPLY_SERIAL_NUMBER=16120

Burada ne yapacağım konusunda tamamen kayboldum. Bu komutların bazılarının çıktısı biten pil ömrünü bildiren bir komut dosyası var ve mümkün olduğunca eksiksiz olmasını istiyorum. Açıkça pil şarj oluyor, ama neden acpi -V bilinmediğini söylüyor? Kimse biliyor mu?


2
T460'larımda kabaca aynı şeyi görüyorum. Bence iki pil sırayla şarj / deşarj oluyor; şu an acpi'ye göre BAT0'ım "Şarj oluyor,% 98, 00:04:52 şarj olana kadar" ve BAT1'im "Bilinmiyor,% 79". Dizüstü bilgisayar modu araçları "Kırılmış bir piliniz var. Gerçek durumu belirleyemiyor" , ancak UPower'ın pilin gerçek durumunun "Şarj Ediliyor" olduğunu belirleyen bir buluşsal yöntemi vardır .
Mathias Rav

1
Dizüstü bilgisayarda yalnızca tek bir pil varsa, yalnızca 2 olası durum vardır: "şarjı bitirme" ve "şarj etme" (ve "şarjı% 100"). Bir dizüstü bilgisayarda 2 pil varsa, bunlardan sadece birini kullanabilir, o zaman ikinci bir pilin durumu "bilinmiyor" olarak kabul edilir (ne şarj ne de deşarj olduğu için). Thinkpad X250'imle de aynı şey oluyor, bu yüzden bunun beklenen bir davranış olduğunu düşünüyorum.
ddnomad

Yanıtlar:


0

tpacpi-batArch'deyken paketi (pil eşikleri tp_smapi tarafından desteklenmeyen yeni ThinkPad'leri (örneğin T420 ve W520) ACPI içeren bir Perl betiği)

pacman -S tpacpi-bat

Bunu düzeltmeye yardımcı olabilir. Yapılandırma hakkındaki bilgilere buradan bakın .


0

Bu, çift pilli Thinkpad dizüstü bilgisayarlarda yaygın bir sorundur.

Dizüstü bilgisayarınızı taktığınızda, BAT1 bilinmeyen bir durum bildirirken BAT0'ı şarj ederek başlayacaktır. BAT1 dolduğunda ve BAT1 gerçekten şarj etmeye başladığında BAT1 bir şarj durumu rapor edecektir.

Bunu betiğinizde dikkate almanız ve kullanılabilir bir şey elde etmek için BAT0 ve BAT1 değerlerini birleştirmeniz gerekir:

battery_level=$(("$battery_level_0 + $battery_level_1"))
battery_max=$(("$battery_max_0 + $battery_max_1"))

battery_percent=$(("$battery_level * 100"))
battery_percent=$(("$battery_percent / $battery_max"))

İşte tam bir örnek:

#!/bin/sh

path_ac="/sys/class/power_supply/AC"
path_battery_0="/sys/class/power_supply/BAT0"
path_battery_1="/sys/class/power_supply/BAT1"

ac=0
battery_level_0=0
battery_level_1=0
battery_max_0=0
battery_max_1=0

if [ -f "$path_ac/online" ]; then
    ac=$(cat "$path_ac/online")
fi

if [ -f "$path_battery_0/energy_now" ]; then
    battery_level_0=$(cat "$path_battery_0/energy_now")
fi

if [ -f "$path_battery_0/energy_full" ]; then
    battery_max_0=$(cat "$path_battery_0/energy_full")
fi

if [ -f "$path_battery_1/energy_now" ]; then
    battery_level_1=$(cat "$path_battery_1/energy_now")
fi

if [ -f "$path_battery_1/energy_full" ]; then
    battery_max_1=$(cat "$path_battery_1/energy_full")
fi

battery_level=$(("$battery_level_0 + $battery_level_1"))
battery_max=$(("$battery_max_0 + $battery_max_1"))

battery_percent=$(("$battery_level * 100"))
battery_percent=$(("$battery_percent / $battery_max"))

if [ "$ac" -eq 1 ]; then
    plug=""

    echo "$plug $battery_percent %"
else
    if [ "$battery_percent" -gt 95 ]; then
        echo ""
    elif [ "$battery_percent" -gt 85 ]; then
        icon=""
    elif [ "$battery_percent" -gt 60 ]; then
        icon=""
    elif [ "$battery_percent" -gt 35 ]; then
        icon=""
    elif [ "$battery_percent" -gt 10 ]; then
        icon=""
    else
        icon=""
    fi

    echo "$icon $battery_percent %"
fi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.