Backtrack:  
 
by lunarg on May 7th 2007, at 11:09

It would've been too easy if the solution (read my previous post about this topic), would've just worked. With the source of the HP OpenIPMI package available (it seems to be included in the download), I thought it would be snap to get it compiled for our Etch kernel. I was wrong...

Downloading the .deb for sarge doesn't work on Etch right away because of a kernel version difference. Moreover, while the source of the OpenIPMI driver has been included, it does fit neatly into the kernel source, but the compiler bombs out with this:

  CC [M]  drivers/char/ipmi/ipmi_msghandler.o
drivers/char/ipmi/ipmi_msghandler.c: In function 'ipmi_smi_watcher_register':
drivers/char/ipmi/ipmi_msghandler.c:332: error: too few arguments to function 'watcher->new_smi'
drivers/char/ipmi/ipmi_msghandler.c: In function 'call_smi_watchers':
drivers/char/ipmi/ipmi_msghandler.c:356: error: too few arguments to function 'w->new_smi'
drivers/char/ipmi/ipmi_msghandler.c: At top level:
drivers/char/ipmi/ipmi_msghandler.c:1724: error: conflicting types for 'ipmi_register_smi'
include/linux/ipmi_smi.h:176: error: previous declaration of 'ipmi_register_smi' was here
drivers/char/ipmi/ipmi_msghandler.c: In function 'handle_oem_get_msg_cmd':
drivers/char/ipmi/ipmi_msghandler.c:2569: error: 'IPMI_OEM_RECV_TYPE' undeclared (first use in this function)
drivers/char/ipmi/ipmi_msghandler.c:2569: error: (Each undeclared identifier is reported only once
drivers/char/ipmi/ipmi_msghandler.c:2569: error: for each function it appears in.)
drivers/char/ipmi/ipmi_msghandler.c: In function 'ipmi_init_msghandler':
drivers/char/ipmi/ipmi_msghandler.c:3364: warning: implicit declaration of function 'notifier_chain_register'
drivers/char/ipmi/ipmi_msghandler.c: In function 'cleanup_ipmi':
drivers/char/ipmi/ipmi_msghandler.c:3384: warning: implicit declaration of function 'notifier_chain_unregister'
drivers/char/ipmi/ipmi_msghandler.c: At top level:
drivers/char/ipmi/ipmi_msghandler.c:3420: error: conflicting types for 'ipmi_register_smi'
include/linux/ipmi_smi.h:176: error: previous declaration of 'ipmi_register_smi' was here
make[3]: *** [drivers/char/ipmi/ipmi_msghandler.o] Error 1

Now, this would be reasonably understandable, because of the major kernel version difference between sarge (2.6.8) and etch (2.6.18), so I downloaded the RHEL 5 rpm, extracted the source (yes, it's present as well), and infused it into the source.
The result was better, but still not quite enough: I still get the one error message:

  CC [M]  drivers/char/ipmi/ipmi_msghandler.o
drivers/char/ipmi/ipmi_msghandler.c: In function 'handle_oem_get_msg_cmd':
drivers/char/ipmi/ipmi_msghandler.c:3153: error: 'IPMI_OEM_RECV_TYPE' undeclared (first use in this function)
drivers/char/ipmi/ipmi_msghandler.c:3153: error: (Each undeclared identifier is reported only once
drivers/char/ipmi/ipmi_msghandler.c:3153: error: for each function it appears in.)
make[3]: *** [drivers/char/ipmi/ipmi_msghandler.o] Error 1

When examining the source, it's a logical error: the symbol IPMI_OEM_RECV_TYPE is indeed only present on that line, and is not defined anywhere else.

Guess I'll have to reopen that case at HP.

 
 
« March 2024»
SunMonTueWedThuFriSat
     12
3456789
10111213141516
17181920212223
24252627282930
31      
 
Links
 
Quote
« Most people tend to avoid true conflict. Ironically this breeds more conflict. »