
私のラップトップは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