Hi Ricky,

The problem you describe is indeed a problem.  Starting in FreeIPMI
0.5.1 the KCS and OpenIPMI drivers would timeout after a while if inband
IPMI doesn't work.  That solved the issue for system administrators here
locally at LLNL [1].

But of course, that just leads to needless spinning until the timeout.
I think you're looking for a more immediate answer for the user.  The
tough part about this is that not all systems report/store IPMI support
in dmidecode/smbios.  At the very end of the "discovery" phase, if it
cannot find IPMI, it will still try to use IPMI default values.

Here's an idea.  How about an option like "--fail-if-ipmi-not-detected".
There would be an option in the freeipmi.conf file too, so it can be
defaulted to be on.  That way, if IPMI is not detected, the tool can
automatically fail out and report something like "IPMI in-band driver
not found".

Sound like a good idea?

Al

[1] - It was actually for BMC daughter cards that died, so a process
might spin forever not being able to do inband IPMI.  But same idea ...

On Wed, 2009-05-20 at 15:30 +0800, Ricky James Allam wrote:
> Hello,
> 
> I've been using FreeIPMI on several boxes (HP, IBM, and some others).
> On IPMI-unsupported boxes, the tools are unresponsive without any
> message at all. I've made the following ugly function to simply exit
> if the board is not IPMI compliant inserting it in one of the tools,
> and displays such useful message like below. While administrators
> should know when to use this package, it is advantageous too to have a
> similar mechanism especially when the package is integrated in an
> application that could run on any platform. Is there a better way to
> do this?
> Pls do let me know.
> 
> Example,
> 
> fbsd71r-rjavm64# uname -a
> FreeBSD fbsd71r-rjavm64 7.1-RELEASE FreeBSD 7.1-RELEASE #0: Thu Jan  1
> 08:58:24 UTC 2009
> r...@driscoll.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  amd64
> 
> 
> In bmc-watchdog.c,
> 
> ...
> /*
> 0: supported
> 1: unsuported
> */
> 
> static int
> is_ipmi_not_supported()
> {
>   int ret = 0;
>   ret = system("/usr/local/sbin/dmidecode | /usr/bin/grep IPMI");
>   return ret;
> }
> ...
> 
> int
> main(int argc, char **argv)
> {
>   _err_init(argv[0]);
> 
>   if(is_ipmi_not_supported());
>   {
>     printf("IPMI is not supported on this machine. bmc-watchdog exiting...\n
>     exit(1);
>   }
> 
>   ipmi_disable_coredump();
> 
> ...
> }
> 
> Thank you very much.
> 
> Ricky James Allam
> 
> 
> _______________________________________________
> Freeipmi-devel mailing list
> Freeipmi-devel@gnu.org
> http:// lists.gnu.org/mailman/listinfo/freeipmi-devel
> 
-- 
Albert Chu
ch...@llnl.gov
Computer Scientist
High Performance Systems Division
Lawrence Livermore National Laboratory



_______________________________________________
Freeipmi-devel mailing list
Freeipmi-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/freeipmi-devel

Reply via email to