/sys/class/power_supply/BAT0を生成するにはどのハードウェアが必要ですか?

/sys/class/power_supply/BAT0を生成するにはどのハードウェアが必要ですか?

私のラップトップはArchを実行し、そこから私のラップトップバッテリーに関するバッテリー情報を見つけることができます/sys/class/power_supply/BAT0。私が知っている限り、この情報を提供するためにインストールされたものはありません。バッテリー駆動のJetson AGX Xavierについても同じ情報を得たいのですが、最大エネルギー、パーセントなどはわかりません。このデータを収集するには、より多くのハードウェアが必要と考えられます。どのように見え、自分で実装できますか?

ベストアンサー1

それはシステムファイルシステム、カーネルがコンテンツをエクスポートするために使用する擬似または合成ファイルシステム。/procカーネルとそのモジュールと対話する従来の方法と同様に、* nix方式でシステムと対話します。

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

ここでより多くの内容を読むことができます。procfsとsysfsの違いは何ですか?

バッテリー情報に関しては、特定のファームウェアと通信できるカーネルモジュールが必要です。たとえば、私のDebianシステムはthinkpad_acpiカーネルモジュールをロードして次のことをします。文についてはあまり話せません。私が読んだところによれば、一部のファームウェアはSMBus / I2Cなどのいくつかのバスデバイスを介してキーボードやマウスでOSと通信することができます。以前は、LM75A温度センサーをメモリDIMMのSMBusラインに直接はんだ付けし、lm-sensorsカーネルモジュールやどこかで設定を調整した後、I2Cソフトウェアを使って読み取ったりしました/proc/bus/...

ところで。私が指摘したいのはTLPプロジェクトレポートおよび電源管理に関連する他の多くの作業が容易になる可能性tlp-stat --batteryがあります。/sys/class/power_supply/

しかし、まず「デバイスドライバ」が必要です。カーネルCのコーディングに精通している場合は、試してみてください。とにかくファームウェアを作成してハードウェアを直接構築するので、少なくともミステリーはありません。 Jetsonについてはよくわかりませんが、Linuxスペースにはすでに他の同様のホームブループロジェクトがあると思います。たぶんラズベリーパイ用ですか?


私はARMのACPIに関する2013年と2017年のいくつかの記事を読んでおり、以下を追加したいと思いました。

これらのACPI / UEFIは、表面的にx86 / BIOSの世界のためのものであり、抽象的な標準ベースのfafaicですが、SoC / ARMの世界自体には実際には適用されません。ベンダーファームウェア「ブロブ」が「オープンソースタスク」にどのように適用されるかについての質問もあります。しかし、いいえ、「ACPIA」(ARM用ACPI?)があるようですが、Raspberry用ACPIは見たことがありません。

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

おすすめ記事