После поворота светодиодов с помощью /sys/class/leds/
я сейчас пытаюсь понять, как управлять батареей в моем компьютере с помощью атрибутов источника питания ядра Linux , в частности CHARGE_CONTROL_LIMIT
.Однако в /sys/class/power_supply/BAT0/
.
такого атрибута не существует. Как я пытался ответить на этот вопрос:
Из того, что я понимаю, читается man 5 sysfs
, sysfs
(обычно смонтированный как sys
) - это интерфейс между пользовательским пространством и пространством ядра.
Гипотеза:
Существует модуль ядра, который создает и обновляет содержимое /sys/class/power_supply/BAT0/
Этот модуль ядра может , но, похоже, не реализует CHARGE_CONTROL_LIMIT
.Он реализует другие атрибуты:
cat /sys/class/power_supply/BAT0/charge_full
2884000
cat /sys/class/power_supply/BAT0/charge_now
2884000
cat /sys/class/power_supply/BAT0/cycle_count
0 <--- this seems broken
cat /sys/class/power_supply/BAT0/capacity
100
Чтобы проверить эту гипотезу, я искал документацию / источник ответственного модуля ядра.
Зависание: попыткачтобы найти модуль ядра, отвечающий за /sys/class/power_supply/BAT0/
ArchWiki и , на этой странице показано, как искать модуль ядра с учетом modalias
.
cat /sys/class/power_supply/BAT0/device/modalias
acpi:PNP0C0A:
sudo grep -E 'PNP0C0A' /lib/modules/*/modules.alias
# nothing is found
Я вижу, что аккумуляторное оборудование относится к типу acpi
, однако нет точного соответствия его modalias
в modules.alias
.(Я попробовал несколько комбинаций символов подстановки, чтобы найти его, но безрезультатно.)
@ 0andriy предложил проверить /drivers/platform/x86
, что я сделал следующим образом:
find /lib/modules/5.0.0-15-generic/kernel -type f -name '*.ko' | xargs modinfo | grep -E 'alias.*PNP0C0A'
# Nothing
# Trying another query, to check that the query works:
find /lib/modules/5.0.0-15-generic/kernel/drivers -type f -name '*.ko' | xargs modinfo | grep -E 'alias.*TOS'
alias: acpi*:TOS1900:*
alias: acpi*:TOS6208:*
alias: acpi*:TOS6207:*
alias: acpi*:TOS6200:*
Это HPноутбук с последним ядром
uname -a
Linux lithium 5.0.0-15-generic #16-Ubuntu SMP Mon May 6 17:41:33 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux