Nvidia

生產 /sys/class/power_supply/BAT0 需要什麼硬體?

  • January 26, 2022

我的筆記本執行Arch,我可以在裡面找到關於筆記本電池的電池資訊/sys/class/power_supply/BAT0。據我所知,我沒有安裝任何東西來提供這些資訊。我希望在我的 Jetson AGX Xavier 上獲得相同的資訊,它由電池供電,但不知道最大能量、百分比等。我懷疑需要更多硬體來收集這些數據。它是什麼樣子的,我可以自己實現嗎?

那就是sysfs,核心用來導出東西的偽或合成文件系統。它是以 *nix 方式與系統互動,就像舊版本/proc是與核心及其模組互動一樣。

$ mount | grep sysfs
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)

您可以在此處閱讀更多內容 procfs 和 sysfs 有什麼區別?

關於電池資訊,您將需要一個可以與特定韌體通信的核心模組。例如,我的 Debian 系統thinkpad_acpi載入了核心模組來實現這樣的事情。我不能說太多關於寫作的事情。從我讀到的一些韌體可能會通過一些匯流排設備(例如 SMBus/I2C,可能作為鍵盤甚至滑鼠)來與作業系統通信。過去,我將LM75A溫度感測器直接焊接到記憶體 DIMM 的 SMBus 線上,並使用 I2C 軟體並在修改核心模組和某處lm-sensors的設置後將其讀出。/proc/bus/...

順便提一句。我想指出TLP 項目可以tlp-stat --battery方便地報告/sys/class/power_supply/和許多其他與電源管理相關的事情。

但是您首先需要一個“設備驅動程序”。如果您對核心 C 編碼感到滿意,可以嘗試一下。無論如何,您都將自己編寫韌體並建構硬體,因此至少那裡沒有任何謎團。我不知道 Jetson,但我認為在 Linux 領域已經有一些其他類似的自製項目。也許是為了樹莓派?


我正在閱讀 2013 年和 2017 年關於 ARM 上的 ACPI 的一些文章,並想補充:

這些 ACPI/UEFI 顯然是 x86/BIOS 世界的事物和基於抽象標準的 afaics,它們本身並不真正適用於 SoC/ARM 世界。還有一個問題是供應商韌體“blob”如何適應“開源工作”。但是不,我還沒有看到 ACPI for Raspberry 儘管似乎有一些“ACPIA”(ARM 的 ACPI?)努力。

https://lwn.net/Articles/574439/ https://forums.raspberrypi.com/viewtopic.php?t=180001

引用自:https://unix.stackexchange.com/questions/687893