freeipmi-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Freeipmi-users] [Freeipmi-devel] Dell ipmi-oem chassis slot availab


From: Ryan Cox
Subject: Re: [Freeipmi-users] [Freeipmi-devel] Dell ipmi-oem chassis slot availability?
Date: Tue, 20 Dec 2011 15:44:33 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:8.0) Gecko/20111124 Thunderbird/8.0

And the results of 0xE0-0xEF:
================================================

address@hidden computenodehealthcheck.d]# for a in {0..9} A B C D E F; do for selector in {0..1}; do for blocksel in {0..15}; do echo -ne "\n0xE$a $selector $blocksel: "; ipmi-raw 0 6 59 0 0xE$a $selector $blocksel | perl -e '$s = <>; chomp $s; print "$s => \""; @bytes = split /\s+/, $s; @bytes; if($bytes[2] ne "00") { print "Error code $bytes[2] returned\n"; exit; } for($a=4; $a<$#bytes+1; $a++) { printf "%s ", chr(hex($bytes[$a])); } print "\"\n";'; done; done; done |grep -v Error |grep -a rcvd 0xE0 0 0: rcvd: 59 00 11 00 00 1B 68 74 74 70 73 3A 2F 2F 31 39 32 2E 31 36 => "  h t t p s : / / 1 9 2 . 1 6 " 0xE0 1 0: rcvd: 59 00 11 01 38 2E 32 30 38 2E 39 35 3A 34 34 33 00 => " 8 . 2 0 8 . 9 5 : 4 4 3 "
0xE1 0 0: rcvd: 59 00 11 01   =>  " "
0xE5 0 0: rcvd: 59 00 11 03   =>  " "
0xE5 1 0: rcvd: 59 00 11 03   =>  " "
0xE8 0 0: rcvd: 59 00 11 01 00 01 01 00 01 00 00 00 00 => "    " 0xE8 1 0: rcvd: 59 00 11 01 00 01 01 00 01 00 00 00 00 => "    " 0xE9 0 0: rcvd: 59 00 11 0C 01 95 31 00 AD 00 80 01 00 00 26 B9 00 00 00 00 00 00 => "
                                                                                         
  � 1  �  �  & �       "
0xE9 1 0: rcvd: 59 00 11 0C 02 95 31 00 AD 00 80 01 00 00 26 B9 00 00 00 00 00 00 => "
                                                                                         
  � 1  �  �  & �       "
0xEA 0 0: rcvd: 59 00 11 54 01 00 54 01 F2 00 00 00 00 00 00 => "T  T  � " 0xEA 1 0: rcvd: 59 00 11 88 04 01 54 01 F2 00 00 00 00 00 00 => "�   T  � "
0xEB 0 0: rcvd: 59 00 11 4A 00 5B 00 78 00 75 00   =>  "J  [  x  u  "
0xEB 1 0: rcvd: 59 00 11 4A 00 5B 00 78 00 75 00   =>  "J  [  x  u  "
0xEC 0 0: rcvd: 59 00 11 4F 00 7E 00 B4 00 B4 00 10 AB F0 4E 02 9E F0 4E E6 4F F0 4E E6 4F F0 4E => "O ~ � �  � � N  � � N � O � N � O � N " 0xEC 1 0: rcvd: 59 00 11 4F 00 7E 00 B4 00 B4 00 10 AB F0 4E 02 9E F0 4E E6 4F F0 4E E6 4F F0 4E => "O ~ � �  � � N  � � N � O � N � O � N " 0xED 0 0: rcvd: 59 00 11 47 00 42 00 42 00 40 00 3E AB F0 4E 7C A1 F0 4E 7C A1 F0 4E 84 F3 ED 4E => "G B B @ > � � N | � � N | � � N � � � N " 0xED 1 0: rcvd: 59 00 11 47 00 42 00 42 00 40 00 3E AB F0 4E 7C A1 F0 4E 7C A1 F0 4E 84 F3 ED 4E => "G B B @ > � � N | � � N | � � N � � � N "

================================================


0xE0 - enclosure's web interface URL spread across two set selectors.

Also, 0xF3 shows "https://[]:443";. We don't have IPv6 set up anywhere, but I'll have to test that out when I get back from Christmas holidays. 0xF0, 0xF2, 0xF3, 0xF4, and 0xF6 showed information, but only 0xF3 (IPv6 URL) and 0xF2 showed anything interesting: 0xF2 0 0: rcvd: 59 00 11 00 00 37 00 01 00 00 00 00 00 00 00 00 00 00 00 00 => " 7  ". Not sure what 0xF2 is.

0xC0-0xCF revealed nothing new beyond what's in ipmi-oem. 0xA0-0xBF returned nothing. If there's anything else worthwhile to check, let me know.

Ryan


On 12/20/2011 03:34 PM, Ryan Cox wrote:
Al,

I should have caught that it was ASCII :)

Please pardon the horrific line noise.... Here's the output for an M610 using a very ugly command I strung together:
================================================

# for a in {0..9} A B C D E F; do for selector in {0..15}; do for blocksel in {0..15}; do echo -ne "\n0xD$a $selector $blocksel: "; ipmi-raw 0 6 59 0 0xD$a $selector $blocksel | perl -e '$s = <>; chomp $s; print "$s => \""; @bytes = split /\s+/, $s; @bytes; if($bytes[2] ne "00") { print "Error code $bytes[2] returned\n"; exit; } for($a=4; $a<$#bytes+1; $a++) { printf "%s ", chr(hex($bytes[$a])); } print "\"\n";'; done; done; done |grep -v Error |grep -a rcvd 0xD1 0 0: rcvd: 59 00 11 00 00 0F 50 6F 77 65 72 45 64 67 65 20 4D 36 31 30 => " P o w e r E d g e M 6 1 0 "
0xD1 1 0: rcvd: 59 00 11 01 00 => " "
0xD1 2 0: rcvd: 59 00 11 02 => " "
0xD1 3 0: rcvd: 59 00 11 03 => " "
0xD2 0 0: rcvd: 59 00 11 01 => " "
0xD3 0 0: rcvd: 59 00 11 00 00 => " "
0xD4 1 0: rcvd: 59 00 11 02 01 C2 06 02 00 50 5F 53 31 00 00 => "  �   P _ S 1 " 0xD4 2 0: rcvd: 59 00 11 02 02 C2 06 02 00 50 5F 53 31 00 00 => "  �   P _ S 1 "
0xD4 3 0: rcvd: 59 00 11 00 00 00 00 00 00 00 00 00 00 00 00 => " "
0xD4 4 0: rcvd: 59 00 11 00 00 00 00 00 00 00 00 00 00 00 00 => " "
0xD4 5 0: rcvd: 59 00 11 01 00 00 00 00 00 00 00 00 00 00 00 => " "
0xD4 6 0: rcvd: 59 00 11 00 00 00 00 00 00 00 00 00 00 00 00 => " "
0xD4 7 0: rcvd: 59 00 11 00 00 00 00 00 00 00 00 00 00 00 00 => " "
0xD4 8 0: rcvd: 59 00 11 00 00 00 00 00 00 00 00 00 00 00 00 => " "
0xD4 9 0: rcvd: 59 00 11 00 00 00 00 00 00 00 00 00 00 00 00 => " "
0xD4 10 0: rcvd: 59 00 11 00 00 00 00 00 00 00 00 00 00 00 00 => " "
0xD4 11 0: rcvd: 59 00 11 00 00 00 00 00 00 00 00 00 00 00 00 => " "
0xD4 12 0: rcvd: 59 00 11 00 00 00 00 00 1F 05 00 00 26 B9 FC => "  & � � " 0xD4 13 0: rcvd: 59 00 11 B2 7C 15 00 00 26 B9 FC B2 7D 05 01 => "� |  & � � � }  " 0xD4 14 0: rcvd: 59 00 11 00 26 B9 FC B2 7E 15 01 00 26 B9 FC => " & � � � ~   & � � "
" 0: rcvd: 59 00 11 B2 7F 0D 00 00 00 00 00 00 00 0D 00 => "� 
0xD5 1 0: rcvd: 59 00 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 => " " 0xD5 2 0: rcvd: 59 00 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 => " " 0xD5 3 0: rcvd: 59 00 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 => " " 0xD5 4 0: rcvd: 59 00 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 => " " 0xD5 5 0: rcvd: 59 00 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 => " " 0xD5 6 0: rcvd: 59 00 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 => " " 0xD5 7 0: rcvd: 59 00 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 => " " 0xD5 8 0: rcvd: 59 00 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 => " " 0xD5 9 0: rcvd: 59 00 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 => " "
0xD6 0 0: rcvd: 59 00 11 00 01 0F 00 => "  "
0xDC 0 0: rcvd: 59 00 11 00 00 10 53 4C 4F 54 2D 30 36 00 00 00 00 00 00 00 => "  S L O T - 0 6 "
0xDC 1 0: rcvd: 59 00 11 01 00 00 => " "
0xDC 2 0: rcvd: 59 00 11 02 => " "
0xDC 3 0: rcvd: 59 00 11 03 => " "
0xDD 0 0: rcvd: 59 00 11 00 00 27 00 01 C0 A8 D2 8A 00 00 00 00 00 00 00 00 => " '  � � � � " 0xDD 1 0: rcvd: 59 00 11 01 00 00 00 00 33 2E 30 35 20 28 42 75 69 6C 64 20 => " 3 . 0 5 ( B u i l d "
0xDD 2 0: rcvd: 59 00 11 02 31 29 00 00 00 00 00 00 0B => " 1 )
"
0xDD 3 0: rcvd: 59 00 11 03 00 00 00 00 D8 3A 8D BE D7 39 8D BE 00 00 00 00 => " � : � � � 9 � � " 0xDD 4 0: rcvd: 59 00 11 04 02 00 00 00 24 7A 2A 40 DC 72 02 00 01 00 00 00 => "  $ z * @ � r   " 0xDE 0 0: rcvd: 59 00 11 00 00 1B 68 74 74 70 73 3A 2F 2F 31 39 32 2E 31 36 => "  h t t p s : / / 1 9 2 . 1 6 " 0xDE 1 0: rcvd: 59 00 11 01 38 2E 32 31 30 2E 31 33 38 3A 34 34 33 => " 8 . 2 1 0 . 1 3 8 : 4 4 3 " 0xDE 2 0: rcvd: 59 00 11 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 => " " 0xDE 3 0: rcvd: 59 00 11 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 => " " 0xDE 4 0: rcvd: 59 00 11 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 => " " 0xDE 5 0: rcvd: 59 00 11 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 => " " 0xDE 6 0: rcvd: 59 00 11 06 00 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 => "  " 0xDF 0 0: rcvd: 59 00 11 00 00 29 00 01 C0 A8 D0 5F 00 00 00 00 00 00 00 00 => " )  � � � _ " 0xDF 1 0: rcvd: 59 00 11 01 00 00 00 00 33 2E 30 33 00 00 00 00 00 00 00 00 => " 3 . 0 3 "
0xDF 2 0: rcvd: 59 00 11 02 00 00 00 00 00 00 00 00 09 01 03 => "   "
0xDF 3 0: rcvd: 59 00 11 03 => " "



================================================


Observations::
0xD1 - the system type
0xD4 - shows something... not sure what it is
0xDC - the slot number
0xDD - the iDRAC version including build number
0xDE - the iDRAC web interface URL (IP and port)
0xDF - the enclosure's CMC version

* These observations are consistent for: M610, M910, M600, M610x (M610x requires both 0 and 1 sets for 0xD1 so that the "x" shows up).
* It does NOT work at all on an R200 (fairly old iDRAC firmware)
* An R710 shows 0xD1, 0xD4 (no clue what it is) and 0xDE only, though the R710's iDRAC firmware is much older. The R710 returns zero bytes for most of the others but doesn't error out.

Multiple set selectors (correct term?) are required for at least 0xDD and 0xDE. The block selector seemed to do nothing.


Ryan

On 12/20/2011 02:47 PM, Albert Chu wrote:
[moving thread to freeipmi-devel]

Hey Ryan,

This looks very interesting.  0xDC isn't one I know of yet.  It could
totally be available and just not published by Dell yet.

rcvd: 59 00 11 00 00 10 53 4C 4F 54 2D 31 36 00 00 00 00 00 00 00

the 0x59 is the command byte (same as in the input command line).  The
next 0x00 is the completion code (0 = success).

In similar formats from Dell (see ipmi-oem-dell.c), the byte afterwards
is typically a length/count of some sort, 0x11 = 17, which does equal
the remaining number of bytes.  So we're on the right track.

I took a guess that this might be ascii, lookie at what it maps too.

53 = S
4C = L
4F = O
54 = T
2D = -
31 = 1
36 = 6

only the 0x10 = DLE is an oddity.  Do 0xD1 - 0xDF output anything
similar?  I'm wondering if this data is a part of additional data.
Could you also fiddle with:

/usr/sbin/ipmi-raw 0 6 59 0 0xDC XX YY

the XX&  YY bytes.  They are the set selector/block selector fields.
Perhaps there is additional string data surrounding this.

If it's consistent across all slots, systems, and we can figure this all
out, we can get this into ipmi-oem.  Chris can you also verify on your
systems?

Al

On Tue, 2011-12-20 at 12:43 -0800, Ryan Cox wrote:
Al,

I just found this on 0xDC for a blade in slot 16:
# ipmi-raw 0 6 59 0 0xDC 0 0
rcvd: 59 00 11 00 00 10 53 4C 4F 54 2D 31 36 00 00 00 00 00 00 00

You'll have to bear with me on this since I'm not sure of what the
standard is for counting bytes when referring to the data returned from
ipmi-raw, so I'll assume the "59" is byte 0.

Bytes 11 and 12 ("31" and "36" above) have the slot number for each of
the M610s, M910s, M600s, and M610X that I tested.  It's a weird way of
encoding it but it has worked everywhere I have tested.  Bit 0 of byte
11 is the first *decimal* digit of the slot number (i.e. 0 or 1).  I
assume that other bits could be used if Dell comes out with a chassis
that holds more blades but, of course, have no way to test that.  Bits
0-3 of byte 12 are the second decimal digit of the slot number (i.e. 0-9).

I've tested on close to 100 blades and it is consistent.

Examples:

Slot 15: rcvd: 59 00 11 00 00 10 53 4C 4F 54 2D 31 35 00 00 00 00 00 00 00 Slot 05: rcvd: 59 00 11 00 00 10 53 4C 4F 54 2D 30 35 00 00 00 00 00 00 00 Slot 02: rcvd: 59 00 11 00 00 10 53 4C 4F 54 2D 30 32 00 00 00 00 00 00 00 Slot 14: rcvd: 59 00 11 00 00 10 53 4C 4F 54 2D 31 34 00 00 00 00 00 00 00

Ryan

On 12/20/2011 12:50 PM, Albert Chu wrote:
On Tue, 2011-12-20 at 11:20 -0800, Ryan Cox wrote:
Al,

I tried iterating from 0xC0 through 0xCF on some Dell M610s and didn't
find the slot number.  I compared the results of several that were in
the same chassis so that most of the information would be the same. I
saw no differences that seemed to indicate the slot number.  The only
differences at all that I saw from blades in the same chassis were at
0xC3 and 0xC5 (expected).  We don't have asset tags set or I would
expect to see differences in 0xC4.
Sorry it didn't work.  It was worth a shot :-)

Al

Ryan

On 12/19/2011 11:04 AM, Albert Chu wrote:
Hi Chris,

I might be misunderstanding your question, but it seems you want to
figure out what type of board is inside each slot?  I assume the
ipmi-oem Dell command 'get-system-info' isn't enough b/c you only get
the board name and not the slot number?

I don't know of any OEM commands for this, so the first thing is I'd bug Dell, b/c someone there might be able to provide it (you will have to
fight them to get to the right people, the first line support will
likely have no idea). If you get something from them, please let the
list know and we can put it in ipmi-oem.

Depending on your willingness to try and reverse engineer something,
there might be a way to determine it. The following is an ipmi-raw that
should implement the same thing as "ipmi-oem dell get-system-info
asset-tag"

/usr/sbin/ipmi-raw 0 6 59 0 0xC4 0 0

In ipmi-oem here's a comment on the parameter numbers:

      * guid parameter = 0xC3
      * asset-tag parameter = 0xC4
      * service-tag parameter = 0xC5
      * chassis-service-tag parameter = 0xC6
      * chassis-related-service-tag parameter = 0xC7
      * board-revision parameter = 0xC8

This is what we know of or have been told.  It wouldn't be hard to
imagine that 0xC9, 0xCA ,0xCB might return your slot number.

Al

On Sun, 2011-12-18 at 06:39 -0800, DeRamus, Chris wrote:
I've just learned about the wonders of IPMI this past month and have re-written our inventory system from scratch to take advantage of the data the FreeIPMI suite of tools provides easy access to. Right now the only drawback is that I have to run a secondary script at each co-location to access each of our Dell M1000e chassis, running proprietary racadm command over SSH to correlate which 10g/11g PowerEdge blades are running in the various slots. I've been digging through the documentation in hopes of finding either a oem command that I can run or even a ipmi-raw command that can be passed to each blade to pull this data, but so far I've come up short.

Has anyone on this list been able to identify a method to capture this particular information? Dell's OMSA utility also provides the slot information as seen in the output below.

#>    omreport chassis info
Chassis Information

Index                                    : 0
Chassis Name                             : Main System Chassis
Host Name                                : xxxxxxxxxxxx
iDRAC6 Version                           : 1.60
Chassis Model                            : PowerEdge M600
Chassis Lock                             : Not Present
Chassis Service Tag                      : XX11YY2
Server Module Service Tag                : YY11XX2
Server Module Location : Slot 14<-- This is what I need
Flash chassis identify LED state         : Off
Flash chassis identify LED timeout value : 300

Thanks in advance for the time guys.

--Chris
_______________________________________________
Freeipmi-users mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/freeipmi-users







--
Ryan Cox
Systems Administrator
Fulton Supercomputing Lab
Brigham Young University

http://tech.ryancox.net




reply via email to

[Prev in Thread] Current Thread [Next in Thread]