Как проверить уровень заряда батареи на Microsoft Surface из оболочки WSL Ubuntu?

Как проверить уровень заряда батареи на Microsoft Surface из оболочки WSL Ubuntu?

В Интернете есть множество обучающих программ дляпроверка уровня заряда батареи в терминале Ubuntu. Наиболее распространенным решением, по-видимому, является использование upower. Однако, когда я запускаю upowerоболочку WSL Ubuntu в Windows 10 на моем Surface Pro, я получаю следующее:

user@sp4-2637:~/the_thing$ sudo upower

(upower:665): UPower-WARNING **: Cannot connect to upowerd: Could not connect: No such file or directory

Запуск с привилегиями sudo даёт тот же результат.

На моем ноутбуке с установленной ОС Ubuntu я могу запросить уровень заряда батареи следующим образом:

cat /sys/class/power_supply/BAT0/capacity

Однако на моем Surface это приводит к следующему:

user@sp4-2637:~$ cat /sys/class/power_supply/BAT0/capacity
cat: /sys/class/power_supply/BAT0/capacity: No such file or directory

Как запросить уровень заряда батареи в оболочке WSL Ubuntu для Microsoft Surface?

решение1

Когда я писал этот вопрос, я нашел решение и решил им поделиться.

Я не знаю, является ли это особенностью оборудования Surface или версии WSL Ubuntu, но структура каталогов в этой настройке, по-видимому, отличается:

user@sp4-2637:~$ ls /sys/class/power_supply/
ac  battery  usb

Вместо того, чтобы искать в BAT0каталоге, я могу найти уровень заряда батареи в battery:

user@sp4-2637:~$ cat /sys/class/power_supply/battery/capacity
100

решение2

Уровень заряда батареи моего Surface-Book-2 с оболочкой WSL2 Ubuntu составляет/sys/class/power_supply/BAT1/capacity

Может отличаться в зависимости от оборудования. Попробуйте следующие места

/sys/class/power_supply/BAT1/capacity
/sys/class/power_supply/BAT0/capacity
/sys/class/power_supply/battery/capacity

решение3

Если tlp — это пакет, доступный в оболочке WSL Ubuntu, вы можете выполнить команду

sudo tlp stat -b

Связанный контент