Какой модуль ядра отвечает за / sys / class / power_supply / BAT0? - PullRequest
1 голос
/ 20 мая 2019

После поворота светодиодов с помощью /sys/class/leds/ я сейчас пытаюсь понять, как управлять батареей в моем компьютере с помощью атрибутов источника питания ядра Linux , в частности CHARGE_CONTROL_LIMIT.Однако в /sys/class/power_supply/BAT0/.

такого атрибута не существует. Как я пытался ответить на этот вопрос:

Из того, что я понимаю, читается man 5 sysfs, sysfs (обычно смонтированный как sys) - это интерфейс между пользовательским пространством и пространством ядра.

Гипотеза:

  1. Существует модуль ядра, который создает и обновляет содержимое /sys/class/power_supply/BAT0/

  2. Этот модуль ядра может , но, похоже, не реализует 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
...