[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Freeipmi-devel] NUT PSU/IPMI driver using FreeIPMI (was: in need of gui

From: Arnaud Quette
Subject: [Freeipmi-devel] NUT PSU/IPMI driver using FreeIPMI (was: in need of guidance...)
Date: Fri, 1 Jul 2011 10:56:01 +0200

Hi Al,

(FYI, I cc'ed the NUT developers list for info)

2011/6/30 Albert Chu <address@hidden>
Hi Arnaud,

On Tue, 2011-06-28 at 12:19 -0700, Arnaud Quette wrote:
> Hi Al,
> 2011/6/28 Albert Chu <address@hidden>
>         On Tue, 2011-06-28 at 02:28 -0700, Arnaud Quette wrote:
>         (...)
>         > I'm *very* interested in!
>         > this could even serve as a simple example, shipped in the
>         examples/
>         > directory.
>         Unfortunately, it will require knowledge of the IPMI
>         protocol/specification, which makes it difficult (and why I
>         probably
>         never bothered with an example).
>         Everything is in the ipmi-fru and ipmi-sensors tools, however
>         I imagine
>         a lot of the options, permutations of things, IPMI spec
>         details, etc. is
>         what's making it confusing.
>         Give me some time, and I'll try to "whittle" the ipmi-fru and
>         ipmi-sensors tools into a far simpler example that can give
>         you a basis
>         for what you're trying to accomplish.
> sure, thanks a lot for your much appreciated proposition.
> since I have some hard deadlines, do you have any approximate idea on
> when you'd be able to release this?

Attached is a simplified ipmi-fru that you can hopefully use to extract
the FRU information you seek.  "gcc ipmi-fru-example.c -lfreeipmi" is
all you need to do.  I took out a lot of stuff, and there a number of
special cases not handled.  It may not work for all motherboards, but is
a good place to start.

awesome, thanks a lot Al!
I'm starting to see the light, though I've not yet read the code thoroughly...

I just have to check (maybe with libdetect) how to identify PSU, but I already got the following data by modifying ipmi_fru_parse_open_device_id() to specify a known PSU ID:

  FRU Board Language: English
  FRU Board Manufacturing Date/Time: 01/05/11 - 08:51:00
  FRU Board Manufacturer: DELL
  FRU Board Product Name: PWR SPLY,717W,RDNT           
  FRU Board Serial Number: CN179721130031
  FRU Board Part Number: 0RN442A01

  FRU Power Supply Overall Capacity: 717 Watts
  FRU Power Supply Peak VA: 0 VA
  FRU Power Supply Max Inrush Current: 0 Amps
  FRU Power Supply Inrush Interval: 0 ms
  FRU Power Supply Low End Input Voltage 1: 90000 mV
  FRU Power Supply High End Input Voltage 1: 264000 mV
  FRU Power Supply Low End Input Voltage 2: 0 mV
  FRU Power Supply High End Input Voltage 2: 0 mV
  FRU Power Supply Low End Acceptable Frequencey: 47 Hz
  FRU Power Supply High End Acceptable Frequencey: 63 Hz
  FRU Power Supply A/C Dropout Tolerance: 0 ms
  FRU Power Supply Predictive Fail Support: No
  FRU Power Supply Power Factor Correction Supported: No
  FRU Power Supply AutoSwitch Supprt: Yes
  FRU Power Supply Hot Swap Support: Yes
  FRU Power Supply Peak Capacity: 0 Watts
  FRU Power Supply Hold Up Time: 0 s
  FRU Power Supply Voltage 1: 12V
  FRU Power Supply Voltage 2: 12V
  FRU Power Supply Total Combined Wattage: 0 Watts
As for sensors, I figured you would probably want to use
libipmimonitoring, since it's at a much higher level.  I would suggest
looking at the ipmimonitoring-sensors.c file.
indeed, that's what I understood.
as told above, I just got to check libdetect for PSU identification, then everything should be alright.

Hopefully that's enough to get you going.  LMK if you need some help
deciphering the code more.
this should not be needed, but thanks for your kind proposition.

but you should probably publish this code in examples/, with a name like "simple-ipmi-fru.c" or alike, and highlight this code sample a bit.

thanks again,
Linux / Unix Expert R&D - Eaton -
Network UPS Tools (NUT) Project Leader -
Debian Developer -
Free Software Developer -

reply via email to

[Prev in Thread] Current Thread [Next in Thread]