IPMIの各種クライアントについて

同じような機能なのに何故か複数の実装が作られているIPMIのCLIクライアント。ざっと調べただけでも以下の4種類がある。

FreeIPMIのページにはFAQが載っていて一応違いがある。一番の違いはsystem interface経由(つまりローカル)でのアクセス方法。OpenIPMIとIPMItoolはカーネル空間のドライバを経由してアクセスする方式だが、FreeIPMIは専用のドライバは必要とせずユーザ空間からiopl(2)を使い直接操作する。
それ以外では、同じ結果を取得するコマンドでも引数で分岐するか別コマンドを用意するかという考え方が若干異なる。FreeIPMIは操作対象のオブジェクト毎にコマンドが分れている。例えば、イベントログ関連はipmi-sel(8)、センサ関連ならばipmi-sensors(8)となっている。あとは対象がsystem interface経由かLAN経由かは引数で指定する。ipmiutilはドキュメントを眺めた限り、同じようなコマンドの作りになっている。
それに対して、OpenIPMIとipmitoolはコマンドは一つで全て引数で分岐する。
考え方としてはどうせほとんどの処理はライブラリ側にあることだし、後者のパラメータ次第で挙動を変える方が正しいようにも思えるが、とっつき易さという点では操作対象の数だけコマンドがある方がわかり易いと思った。
機能としてはいずれのパッケージも基本的には同じことが出来るようで、どれかが致命的に欠かているようには見受けられなかった。
各種ディストリビューションへの搭載状況はこれまたバラバラで、CentOSはOpenIPMIの1.4、Debian GNU/Linux(sid)ではipmitool、FreeBSDportsにはFreeIPMIとipmitoolが含まれていた。Solarisはipmitoolをインストール時に選択することが出来るようだ。
個人的にはGNUのFreeIPMIが一番しっくり来たのだけど、何故かDebianではパッケージ化されていないので当面は普及度から言ってもipmitoolを使うことになりそう。