生產 /sys/class/power_supply/BAT0 需要什麼硬體?
我的筆記本執行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