Can't get ipmi_smb to work

Help
Kevin
2014-06-10
2014-06-18
  • Kevin
    Kevin
    2014-06-10

    Hello,

    I've compiled Linux kernel 2.6.32.62 with the following patches trying to get the SMBus interface to work:

    linux-ipmibase-2.6.32.diff
    linux-i2c-2.6.32.diff
    linux-ipmismb-2.6.32.diff

    The following is the result of "i2cdetect -l" after loading the i2c-dev module:
    i2c-0 smbus SMBus Via Pro adapter at 0500 SMBus adapter

    Testing with FreeIPMI's "ipmi-raw --driver-type=SSIF 0 6 1" returns correct results. I assume this indicates the hardware doesn't have problems.

    However, after loading ipmi_smb with parameter "addr=0,0x500", sending a raw command using ipmitool returns the following error message:

    Could not open device at /dev/ipmi0 or /dev/ipmi/0 or /dev/ipmidev/0: No such file or directory

    The same error message is returned even after I've manually created the node.

    I've made sure the following modules are loaded:
    i2c_core
    i2c_viapro
    ipmi_msghandler
    ipmi_devintf

    In addition, loading ipmi_smb with additional parameters like "dbg=7 dbg_probe=1" yields no message at all.

    Is there something I did or didn't do correctly? How do I get ipmi_smb to work? Any help would be greatly appreciated.

    Thanks,
    Kevin

     
    • Corey Minyard
      Corey Minyard
      2014-06-10

      On 06/10/2014 02:56 AM, Kevin wrote:

      Hello,

      I've compiled Linux kernel 2.6.32.62 with the following patches trying
      to get the SMBus interface to work:

      linux-ipmibase-2.6.32.diff
      linux-i2c-2.6.32.diff
      linux-ipmismb-2.6.32.diff

      The following is the result of "i2cdetect -l" after loading the
      i2c-dev module:
      i2c-0 smbus SMBus Via Pro adapter at 0500 SMBus adapter

      Testing with FreeIPMI's "ipmi-raw --driver-type=SSIF 0 6 1" returns
      correct results. I assume this indicates the hardware doesn't have
      problems.

      However, after loading ipmi_smb with parameter "addr=0,0x500", sending
      a raw command using ipmitool returns the following error message:

      Could not open device at /dev/ipmi0 or /dev/ipmi/0 or /dev/ipmidev/0:
      No such file or directory

      Did you also load ipmi_devintf? That's the user interface code.

      If so, did the ipmi_smb driver generate any logs?

      -corey

      The same error message is returned even after I've manually created
      the node.

      I've made sure the following modules are loaded:
      i2c_core
      i2c_viapro
      ipmi_msghandler
      ipmi_devintf

      In addition, loading ipmi_smb with additional parameters like "dbg=7
      dbg_probe=1" yields no message at all.

      Is there something I did or didn't do correctly? How do I get ipmi_smb
      to work? Any help would be greatly appreciated.

      Thanks,
      Kevin


      Can't get ipmi_smb to work
      https://sourceforge.net/p/openipmi/discussion/112996/thread/f8a8aa5e/?limit=50#97cd


      Sent from sourceforge.net because you indicated interest in
      https://sourceforge.net/p/openipmi/discussion/112996/

      To unsubscribe from further messages, please visit
      https://sourceforge.net/auth/subscriptions/

       
      • Kevin
        Kevin
        2014-06-11

        Hi,

        Like I mentioned in my original post, yes, ipmi_devintf was loaded, and no, loading ipmi_smb didn't generate any logs even with parameters "dbg=7, dbg_probe=1".

        Thanks,
        Kevin

        p.s. The VIA board I'm using is VIA VB8003-16, if that makes any differences.

         
        • Corey Minyard
          Corey Minyard
          2014-06-13

          Sorry about being slow on this, I've been traveling and preparing for
          traveling.

          On 06/10/2014 09:29 PM, Kevin wrote:

          Hi,

          Like I mentioned in my original post, yes, ipmi_devintf was loaded,
          and no, loading ipmi_smb didn't generate any logs even with parameters
          "dbg=7, dbg_probe=1".

          The first thing in the init function (after an "if (initialized)" which
          has to be false at the beginning) is a printk. So something should come
          out when you load the module, no matter what. Is nothing coming out, or
          is just that coming out?

          Can you do a dmidecode and see if there is an IPMI entry there?

          Your address is not valid, BTW. I2C addresses are 7 bits or 10 bits,
          and 0x500 meets neither of those criteria. I'd be extremely surprised
          to see a 10 bit address, so I'd guess it's a 7 bit address (and I don't
          think a 10-bit address will work with ipmi_smb, but I'm not sure).

          Where did you get the address?

          -corey

          Thanks,
          Kevin

          p.s. The VIA board I'm using is VIA VB8003-16, if that makes any
          differences.


          Can't get ipmi_smb to work
          https://sourceforge.net/p/openipmi/discussion/112996/thread/f8a8aa5e/?limit=50#97cd/e917/af98


          Sent from sourceforge.net because you indicated interest in
          https://sourceforge.net/p/openipmi/discussion/112996/

          To unsubscribe from further messages, please visit
          https://sourceforge.net/auth/subscriptions/

           
          • Kevin
            Kevin
            2014-06-17

            Thanks for the pointers.

            The address is gotten from issuing "i2cdetect -l", but I may have misunderstood the output. Here's the complete output:

            i2c-0 smbus SMBus Via Pro adapter at 0500 SMBus adapter

            Could the address be 0x50 instead of 0x500? When I load ipmi_smb with addr=0,0x50, I see the following message from "dmesg":

            i2c i2c-0: Transaction error!

            If I don't specify the "addr" parameter, I see the following message from "dmesg":

            IPMI SMB Interface driver

            But that still doesn't work.
            In addition, I see no IPMI entry from dmidecode.

            Hope my question does bring you too much trouble and thanks for the help.

            Kevin

             
            • Corey Minyard
              Corey Minyard
              2014-06-17

              On 06/17/2014 03:55 AM, Kevin wrote:

              Thanks for the pointers.

              The address is gotten from issuing "i2cdetect -l", but I may have
              misunderstood the output. Here's the complete output:

              i2c-0 smbus SMBus Via Pro adapter at 0500 SMBus adapter

              Could the address be 0x50 instead of 0x500? When I load ipmi_smb with
              addr=0,0x50, I see the following message from "dmesg":

              i2c i2c-0: Transaction error!

              Yes, It's not finding anything there. But i2cdetect only lists buses,
              not devices on the bus. So that's the SMBus interface chip, not the BMC.

              If I don't specify the "addr" parameter, I see the following message
              from "dmesg":

              IPMI SMB Interface driver

              But that still doesn't work.
              In addition, I see no IPMI entry from dmidecode.

              Hope my question does bring you too much trouble and thanks for the help.

              No problem. Since it's not in a DMI entry, and it's probably not in
              ACPI, the driver isn't finding it automatically.

              I'm not sure the best way, but perhaps freeipmi can be coerced to tell
              you the bus address via some debug options. If not, you can strace
              freeipmi and I can probably figure it out (or you can, if you can do
              look at the i2c ioctls and figure out the address it is using).

              -corey

              Kevin


              Can't get ipmi_smb to work
              https://sourceforge.net/p/openipmi/discussion/112996/thread/f8a8aa5e/?limit=25#97cd/e917/af98/f7f7/2ee6


              Sent from sourceforge.net because you indicated interest in
              https://sourceforge.net/p/openipmi/discussion/112996/

              To unsubscribe from further messages, please visit
              https://sourceforge.net/auth/subscriptions/

               
  • Kevin
    Kevin
    2014-06-18

    Hello,

    Here's the log from stracing freeipmi I think that are relevant (strace -f -o ipmi-raw.strace ipmi-raw -D ssif 0 6 1):

    15374 open("/dev/i2c-0", O_RDWR) = 3
    15374 ioctl(3, 0x703, 0x42) = 0
    15374 semop(163842, {{0, -1, SEM_UNDO}}, 1) = 0
    15374 ioctl(3, 0x720, 0x7fff73950020) = 0
    15374 select(4, [3], NULL, NULL, {60, 0}) = 1 (in [3], left {59, 999996})
    15374 ioctl(3, 0x720, 0x7fff73950060) = 0
    15374 semop(163842, {{0, 1, SEM_UNDO}}, 1) = 0
    15374 nanosleep({0, 1000}, NULL) = 0
    15374 fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0
    15374 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7feec227b000
    15374 write(1, "rcvd: 01 00 20 00 01 03 02 DF 00"..., 58) = 58
    15374 close(3) = 0
    15374 brk(0x23d3000) = 0x23d3000
    15374 exit_group(0) = ?

    How do you decipher the address from ioctl()? Non looks like a valid address.

    Thanks again,
    Kevin

     
    • Corey Minyard
      Corey Minyard
      2014-06-18

      On 06/18/2014 01:59 AM, Kevin wrote:

      Hello,

      Here's the log from stracing freeipmi I think that are relevant
      (strace -f -o ipmi-raw.strace ipmi-raw -D ssif 0 6 1):

      15374 open("/dev/i2c-0", O_RDWR) = 3
      15374 ioctl(3, 0x703, 0x42) = 0
      15374 semop(163842, {{0, -1, SEM_UNDO}}, 1) = 0
      15374 ioctl(3, 0x720, 0x7fff73950020) = 0
      15374 select(4, [3], NULL, NULL, {60, 0}) = 1 (in [3], left {59, 999996})
      15374 ioctl(3, 0x720, 0x7fff73950060) = 0
      15374 semop(163842, {{0, 1, SEM_UNDO}}, 1) = 0
      15374 nanosleep({0, 1000}, NULL) = 0
      15374 fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0
      15374 mmap(NULL, 4096, PROT_READ|PROT_WRITE,
      MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7feec227b000
      15374 write(1, "rcvd: 01 00 20 00 01 03 02 DF 00"..., 58) = 58
      15374 close(3) = 0
      15374 brk(0x23d3000) = 0x23d3000
      15374 exit_group(0) = ?

      How do you decipher the address from ioctl()? Non looks like a valid
      address.

      Well, those are stack addresses. You need the contents, which means you
      would have to use gdb and dump the data.

      However, looking at freeipmi, it defaults to address 0x42. Can you try
      that one?

      -corey

      Thanks again,
      Kevin


      Can't get ipmi_smb to work
      https://sourceforge.net/p/openipmi/discussion/112996/thread/f8a8aa5e/?limit=25#6b47


      Sent from sourceforge.net because you indicated interest in
      https://sourceforge.net/p/openipmi/discussion/112996/

      To unsubscribe from further messages, please visit
      https://sourceforge.net/auth/subscriptions/