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 > [email protected]:/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 > [email protected] > http:// lists.gnu.org/mailman/listinfo/freeipmi-devel > -- Albert Chu [email protected] Computer Scientist High Performance Systems Division Lawrence Livermore National Laboratory _______________________________________________ Freeipmi-devel mailing list [email protected] http://lists.gnu.org/mailman/listinfo/freeipmi-devel
