लेनोवो T440s बैटरी की स्थिति अज्ञात, लेकिन चार्ज?


14

मैं अपने लेनोवो को आर्च लाइन पर कॉन्फ़िगर करने की कोशिश कर रहा हूं। आखिरी चीज जो मुझे करने की ज़रूरत है वह है बैटरी को 100% काम करना।

अभी यह प्रतीत होता है कि मुख्य बैटरी की स्थिति अज्ञात है:

> 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

लेकिन अगर मैं सीधे बैटरी को क्वेरी करता हूं तो मुझे पूरी तरह से अलग प्रतिक्रिया मिलती है:

> 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

मैं पूरी तरह से नुकसान में हूँ कि यहाँ क्या करना है। मेरे पास एक स्क्रिप्ट रिपोर्टिंग बैटरी जीवन है जो इन कुछ आदेशों के आउटपुट से चलता है और मैं चाहूंगा कि यह यथासंभव पूर्ण हो। स्पष्ट रूप से बैटरी चार्ज हो रही है, लेकिन acpi -V यह अज्ञात क्यों है? क्या कोई जानता है?


2
मैं अपने T460s पर लगभग समान हूं। मुझे लगता है कि दोनों बैटरी चार्ज / डिस्चार्जिंग ले जाती हैं; वर्तमान में मेरा BAT0 "चार्जिंग है, 98%, 00:04:52 जब तक चार्ज नहीं किया जाता है", और aci के अनुसार, मेरा BAT1 "अज्ञात, 79%" है। लैपटॉप-मोड-उपकरण रिपोर्ट करते हैं "आपके पास एक टूटी हुई बैटरी है। वास्तविक स्थिति का निर्धारण नहीं कर सकता है" , लेकिन UPower में यह निर्धारित करने के लिए एक अनुमान है कि बैटरी की वास्तविक स्थिति "चार्जिंग" है।
मथियास राव

1
यदि लैपटॉप में केवल एक ही बैटरी है तो केवल 2 संभावित राज्य हैं: "डिस्चार्जिंग" और "चार्जिंग" (और, ठीक है, "100% चार्ज")। जब एक लैपटॉप में 2 बैटरी होती हैं, तो यह उनमें से सिर्फ एक का उपयोग कर सकता है, तो दूसरी बैटरी की एक स्थिति को "अज्ञात" माना जाएगा (क्योंकि यह न तो चार्ज है और न ही डिस्चार्जिंग)। मेरे पास मेरे थिंकपैड X250 के साथ एक ही बात हो रही है इसलिए मुझे लगता है कि यह एक अपेक्षित व्यवहार है।
ddnomad

जवाबों:


0

आर्क पर रहते हुए आप पैकेज को स्थापित करने का प्रयास कर सकते हैं tpacpi-bat(A पर्ल लिपि के साथ ACPI कॉल हाल ही के थिंकपैड (जैसे T420 और W520) के लिए जिसकी बैटरी थ्रेसहोल्ड tp_smapi द्वारा समर्थित नहीं है)

pacman -S tpacpi-bat

यह इसे ठीक करने में मदद कर सकता है। यहाँ विन्यास के बारे में जानकारी देखें ।


0

यह दोहरी बैटरी वाले थिंकपैड लैपटॉप के साथ एक आम मुद्दा है।

जब आप अपने लैपटॉप में प्लग करते हैं तो यह BAT0 चार्ज करके शुरू होगा जबकि BAT1 एक अज्ञात स्थिति की रिपोर्ट करता है। BAT1 एक चार्ज स्थिति की रिपोर्ट करेगा जब BAT0 भरा हो और BAT1 वास्तव में चार्ज करना शुरू कर दे।

आपको इसे अपनी स्क्रिप्ट में ध्यान में रखना होगा, और BAT0 और BAT1 के लिए मूल्यों को संयोजित करने के लिए उपयोग करने योग्य होना चाहिए:

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"))

यहाँ एक पूर्ण उदाहरण है:

#!/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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.