SOLVED: OpenIPMI, 1750s, and Debian with 2.6.17

Rob Munsch rmunsch at solutionsforprogress.com
Tue Oct 17 14:15:34 CDT 2006


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

... by using 2.6.16.29 with some caveats.  Maybe some of these steps
weren't necessary; maybe none of them were.  Regardless, i hope this
helps anyone else struggling through this.

Firstly:  i applied the IPMI .diff for version 39, found on the
Sourceforge page here
http://sourceforge.net/project/showfiles.php?group_id=36127&package_id=110139
For 2.6.16, obviously.

Secondly, make sure you're using udev.  The device file won't be created
without it, as can be seen in Matt's .init script!

Thirdly, some hacking of abovementioned script will be needed if you
aren't on Redhat.  For one thing, while ipmi_msghandler is loaded on
boot, the other two are not.  Loading them in manually (and therefore i
will be scripting that on boot) yields success:

currant:~# modprobe ipmi_si
currant:~# modprobe ipmi_devintf
currant:~# ipmitool chassis status
System Power         : on
Power Overload       : false
...etc...

So what happened?  Udev for the device, for one.  Big gotcha there; who
knows how this would have went if i'd had that from the start.
For another, ipmitool failed until i manually loaded si and, of course,
devintf.  When manually modprobing, they instantly found the BMC

ipmi device interface
IPMI System Interface driver.
ipmi_si: Trying SMBIOS-specified KCS state machine at I/O address 0xca8,
slave address 0x20, irq 0
ipmi: Found new BMC (man_id: 0x0002a2,  prod_id: 0x0000, dev_id: 0x20)
 IPMI KCS interface initialized

and All now seems Well.  So i'm going to have to alter Matt's script for
this backports.org Debian sarge/etch hybrid i'm now using, as soon as i
understand more of it.  Looking at it more closely would have shown me
udev being used quite plainly, so as usual, i hope my experiences may
serve as a warning to others :).

Rob Munsch wrote:
> Rob Munsch wrote:
>> Robert Goley wrote:
>>> If you are using Debian Sarge, try using the BackPorts.org kernel image.  I 
>>> know at least the 2.6.16 kernel has the modules already compiled.
> 
> Well, i tried this and now i get a bunch of silent failures.
> good: the 'orrible errors have stopped.
> bad: it still don't work.  Only now it just fails without any messages
> at all.  And before, while the BMC was plainly detected at boot, now -
> with IPMI's three needed modules enabled in the kernel - i get nada.
> 
> -----
> currant:~# ipmitool chassis status
> Could not open device at /dev/ipmi0 or /dev/ipmi/0 or /dev/ipmidev/0: No
> such file or directory
> Error sending Chassis Status command
> currant:~# /etc/init.d/ipmi.init start
> Starting ipmi drivers:
> currant:~# modprobe ipmi_msghandler
> currant:~# dmesg|grep ipmi
> ipmi message handler version 38.0
> currant:~#
> -----
> 
> i don't get it.  There are obviously some serious issues with v39 and
> the 2.6.17 kernel, but this is now using 2.6.16.29 and the v38 of ipmi
> it likes, and matt's init script on boot, and nothing happens.
> 
> -----
> currant:~# /etc/init.d/ipmi.init status
> ipmi_msghandler module loaded.
> -----
> 
> I try them as modules, only msghandler loads (oh the irony).  I try them
> built-in, nothing loads and doesn't work.  I'm, frankly, quite sick of
> this, and starting to consider this hardware a waste of my time.  I find
> it mindboggling that such hoops are necessary on hardware simply because
> i did not choose to use the Offically Approved Happy Fun Time Collective
> Comrade Mandated OS, and i have this BMC sitting here laughing at me
> collecting dust while i try to figure out how to access it.  It's
> maddening and i don't know how much time i can really spend on this
> nonsense.
> 
>> May not really be an option.  More importantly, i'd like to know why
>> this happens.  kernel compiles, modules seem to compile and install...
>> the only indication all is not kosher are these warnings:
>> -----
>> currant:/usr/src/linux# make modules
>>   CHK     include/linux/version.h
>>   Building modules, stage 2.
>>   MODPOST
>> WARNING: drivers/char/ipmi/ipmi_msghandler.o - Section mismatch:
>> reference to .exit.text: from .smp_locks after '' (at offset 0x30)
>> WARNING: drivers/char/ipmi/ipmi_watchdog.o - Section mismatch: reference
>> to .exit.text: from .smp_locks after '' (at offset 0x38)
>> WARNING: drivers/char/ipmi/ipmi_watchdog.o - Section mismatch: reference
>> to .exit.text: from .smp_locks after '' (at offset 0x3c)
>> -----
> 
>> I have NO idea what that means.  I hope Matt sees them and makes that
>> "oooOOHHHhhh" noise.  :)
> 
>> The module refuses to admit it exists.  it doesn't work when compiled
>> in, either.  When a module, i get this:
>> -----
>> currant:~# modprobe ipmi_msghandler
>> FATAL: Error inserting ipmi_msghandler
>> (/lib/modules/2.6.17/kernel/drivers/char/ipmi/ipmi_msghandler.ko):
>> Invalid module format
>> -----
> 
>> Lastly, here's my lengthy .init output when debugging on:
> 
>> -----
>> currant:~# /etc/init.d/ipmi.init start
>> + '[' -r /lib/lsb/init-functions ']'
>> + . /lib/lsb/init-functions
>> ++ '[' -e /etc/lsb-base-logging.sh ']'
>> ++ true
>> + CONFIGFILE=/etc/sysconfig/ipmi
>> + '[' -r /etc/sysconfig/ipmi ']'
>> + MODULE_NAME=ipmi
>> + INTF_NUM=0
>> + IPMI_SMB_MODULE_NAME=ipmi_smb
>> + IPMI_SI_MODULE_NAME=ipmi_si
>> ++ uname -r
>> ++ cut -d. -f1-2
>> + kernel=2.6
>> + '[' 2.6 == 2.4 ']'
>> + MODULES_INTERFACES=
>> + '[' '' = yes ']'
>> + '[' '' = yes ']'
>> + MODULES_FEATURES=
>> + '[' '' = yes ']'
>> + '[' '' = yes ']'
>> + MODULES_HW=
>> + '[' '' = yes ']'
>> + '[' '' = yes ']'
>> + MODULES_BASE=ipmi_msghandler
>> + MODULES='   ipmi_msghandler'
>> + RETVAL=0
>> + LOCKFILE=/var/lock/subsys/ipmi
>> + DEV_IPMI_TIMEOUT=15
>> + case "$1" in
>> + start
>> + echo -n 'Starting ipmi drivers: '
>> Starting ipmi drivers: + load_ipmi_modules
>> + local locdelay
>> + modprobe ipmi_msghandler
>> + modules_loaded ipmi_msghandler
>> + OnePlusLoaded=0
>> + OnePlusUnloaded=0
>> + for m in '$@'
>> + /sbin/lsmod
>> + grep ipmi_msghandler
>> + OnePlusUnloaded=1
>> + '[' 0 -ne 1 ']'
>> + unload_all_ipmi_modules
>> + stop_watchdog_quiet
>> + modprobe -q -r ipmi_watchdog
>> + modules_loaded ipmi_watchdog
>> + OnePlusLoaded=0
>> + OnePlusUnloaded=0
>> + for m in '$@'
>> + /sbin/lsmod
>> + grep ipmi_watchdog
>> + OnePlusUnloaded=1
>> + '[' 0 -ne 0 ']'
>> + '[' '' = yes ']'
>> + stop_powercontrol_quiet
>> + modprobe -q -r ipmi_poweroff
>> + modules_loaded ipmi_poweroff
>> + OnePlusLoaded=0
>> + OnePlusUnloaded=0
>> + for m in '$@'
>> + /sbin/lsmod
>> + grep ipmi_poweroff
>> + OnePlusUnloaded=1
>> + '[' 0 -ne 0 ']'
>> + for m in '${MODULES}'
>> + modprobe -q -r ipmi_msghandler
>> ++ lsmod
>> ++ grep -c ipmi_devintf
>> + '[' 0 -eq 0 ']'
>> + rm -f /dev/ipmi0
>> + RETVAL=1
>> + return
>> + '[' 1 -eq 0 ']'
>> + '[' 1 -eq 1 ']'
>> + log_failure_msg
>> + log_use_fancy_output
>> + TPUT=/usr/bin/tput
>> + EXPR=/usr/bin/expr
>> + '[' FANCYTTY = 0 ']'
>> + '[' xxterm '!=' xdumb ']'
>> + '[' -x /usr/bin/tput ']'
>> + '[' -x /usr/bin/expr ']'
>> + /usr/bin/tput hpa 60
>> + /usr/bin/tput setaf 1
>> + FANCYTTY=1
>> + true
>> ++ /usr/bin/tput setaf 1
>> + RED=''
>> ++ /usr/bin/tput op
>> + NORMAL=''
>> + echo '* '
>> *
>> + start_watchdog_quiet
>> + '[' '' '!=' yes ']'
>> + return
>> + start_powercontrol_quiet
>> + '[' '' '!=' yes ']'
>> + return
>> + exit 1
>> -----
> 
>> I think i've pretty well covered everything i was supposed to do to get
>> this working.  If there's STILL something i've skipped or missed, i'd
>> like to know it so i can go pound my head against the server room door.
>>  if not, and something has gone Horribly Wrong(tm), i hope this info is
>> of value.
> 
>> Linux currant.tbb 2.6.17 #4 SMP PREEMPT Mon Oct 16 15:01:55 EDT 2006
>> i686 GNU/Linux
> 
> 
> 
> 
>>> Robert
>>> On Monday 16 October 2006 12:21, Rob Munsch wrote:
>>>> Rob Munsch wrote:
>>>>> Rob Munsch wrote:
>>>>>> Ahah. Thank you.
>>>>>> One last thing:  i can't seem to find this under anything in menuconfig.
>>>>>>  What's the hierarchy it lives under?
>>>>> Nevermind, found it.
>>>> No good.  Tried it both compiled in and as a module, and the msghandler
>>>> seems to load but doesn't actually.  Anyone else run into this?
>>>> I've corrected my config as per Matt's earlier mail.
>>>>
>>>> currant:~# dmesg |grep ipmi
>>>> ipmi message handler version 39.0
>>>> ipmi device interface
>>>> ipmi_si: Trying SMBIOS-specified KCS state machine at I/O address 0xca8,
>>>> slave address 0x20, irq 0
>>>> ipmi: Found new BMC (man_id: 0x0002a2,  prod_id: 0x0000, dev_id: 0x20)
>>>> ipmi_msghandler: no version for "struct_module" found: kernel tainted.
>>>> ipmi_msghandler: version magic '2.6.17 SMP preempt PENTIUM4 gcc-3.3'
>>>> should be '2.6.17 SMP mod_unload PENTIUM4 gcc-3.3'
>>>> ipmi_msghandler: version magic '2.6.17 SMP preempt PENTIUM4 gcc-3.3'
>>>> should be '2.6.17 SMP mod_unload PENTIUM4 gcc-3.3'
>>>>
>>>> Okay... tried to modprobe it...
>>>>
>>>> currant:~# modprobe ipmi_msghandler
>>>> FATAL: Error inserting ipmi_msghandler
>>>> (/lib/modules/2.6.17/kernel/drivers/char/ipmi/ipmi_msghandler.ko):
>>>> Invalid module format
>>>>
>>>> neato!  first time i've ever seen that happen.  the novelty, however,
>>>> soon wears off :D.   I'm about to rename the box "former..."
>>>>
>>>> The compile and modules complie / install went without any obvious
>>>> hitch.  Teh hell am i doing wrong *now*?
>>>>
>>>> tia,
>>> _______________________________________________
>>> Linux-PowerEdge mailing list
>>> Linux-PowerEdge at dell.com
>>> http://lists.us.dell.com/mailman/listinfo/linux-poweredge
>>> Please read the FAQ at http://lists.us.dell.com/faq
> 
> 
> _______________________________________________
> Linux-PowerEdge mailing list
> Linux-PowerEdge at dell.com
> http://lists.us.dell.com/mailman/listinfo/linux-poweredge
> Please read the FAQ at http://lists.us.dell.com/faq
> 
> 

- --
Rob Munsch
Solutions For Progress IT
www.solutionsforprogress.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFFNSvWBvBcJFK6xYURAoUqAJ98Eeyw4e+ZipBiUVm/LZE8lUlu4QCeK+3I
gGCRiEYLEnAKNIitkrBuV0c=
=xZa1
-----END PGP SIGNATURE-----



More information about the Linux-PowerEdge mailing list