バッテリーがあるかどうかをどのように検出しますか?

バッテリーがあるかどうかをどのように検出しますか?

自動化しようとしています。デスクトップ設定、これの一部としてバッテリーモニターパッケージをインストールしたい現在機械にバッテリーが接続されている場合のみ(UPSなどの外部バッテリーは関係ありません)。これをどのように検出できますか?

私のラップトップにはディレクトリがあり、/sys/class/power_supply/BAT1デスクトップディレクトリには何もありません/sys/class/power_supply。これがシステムの堅牢な指標ですか?システムファイルシステム?これ引用するディレクトリへの言及はありませんBATn。ベンダー固有の機能になることはできますか?

答え1

バッテリー情報の存在は、/sys/class/power_supplyシステムのバッテリーサポートを表す信頼できる指標であり、標準のLinux機能ですが、必ずしも同じ意味で呼び出されるわけではありません。あなたの項目はですBAT1batteryまた、すべての項目が/sys/class/power_supplyバッテリーであるわけではありません。

このパターンに一致するすべてのファイルを見つけます/sys/class/power/supply/*/type。そのうちの少なくとも1つにworksが含まれている場合は、Batteryバッテリーがあります。その他の可能な値はtypeMainsUSBとおりです。

別の可能なことは、システムがバッテリーを受け入れるが、バッテリーが物理的に取り外されたことである。この場合でも、Battery電源が表示され続けます。これを検出する方法可能システムによって異なりますが、読んだり、capacity他の操作を実行して、読取りエラーが発生したことを確認してください。これは、バッテリーが取り外されたことを示します。

詳細:ドキュメント/power/power_supply_class.txt

関連情報