intel / NMPRK

3 stars 10 forks source link

The following error occurred when we test FRU function getFruRpry() #35

Closed yilongx closed 12 years ago

yilongx commented 12 years ago

testing nmprk::ipmi::fru function: Attempting to access FRU..... Passed Fru is access by byte Attempting to read FRU file..... Error: getFruData Exception - Code: 0x2d, Msg: Invalid checksum found in the FRU common area

jrmassoni commented 12 years ago

This indicates that the FRU that you have on your system is invalid or corrupted. The first 8 bytes of the FRU are checksummed, if the getFruRpry() call finds an invalid checksum it flags it as an error and returns. You probably need to reflash your FRU data area with the FRU from that comes with the system Firmware package for your server. If you wanted to get the FRU data regardless of the checksum, then you could write your own getFruRpry() routine and remove the checksum check. You could take the length of the Fru repository returned from the FruInfo command and do consecutive reads of 32 bytes, incrementing the offset each time, until all the data has been read.

yilongx commented 12 years ago

if we find this error on our system, what we should do can make the FRU normal by calling NM API?

yilongx commented 12 years ago

we cloud get FRU info using command "ipmitool -l open sdr list fru". the output as follows, How do we validate its correctness

######################################################################### cloud@cloud:~$ sudo ipmitool -l open sdr list fru
Baseboard | Log FRU @00h 07.1 | ok Pwr Supply 1 FRU | Log FRU @02h 0a.1 | ok Pwr Supply 2 FRU | Log FRU @03h 0a.2 | ok Front Panel | Log FRU @04h 0c.1 | ok HS Backplane 1 | Log FRU @05h 0f.1 | ok Baseboard | Log FRU @00h 07.1 | ok Pwr Supply 1 FRU | Log FRU @02h 0a.1 | ok Pwr Supply 2 FRU | Log FRU @03h 0a.2 | ok Front Panel | Log FRU @04h 0c.1 | ok HS Backplane 1 | Log FRU @05h 0f.1 | ok Baseboard | Log FRU @00h 07.1 | ok Pwr Supply 1 FRU | Log FRU @02h 0a.1 | ok Pwr Supply 2 FRU | Log FRU @03h 0a.2 | ok Front Panel | Log FRU @04h 0c.1 | ok HS Backplane 1 | Log FRU @05h 0f.1 | ok Baseboard | Log FRU @00h 07.1 | ok Pwr Supply 1 FRU | Log FRU @02h 0a.1 | ok Pwr Supply 2 FRU | Log FRU @03h 0a.2 | ok Front Panel | Log FRU @04h 0c.1 | ok HS Backplane 1 | Log FRU @05h 0f.1 | ok Baseboard | Log FRU @00h 07.1 | ok Pwr Supply 1 FRU | Log FRU @02h 0a.1 | ok Pwr Supply 2 FRU | Log FRU @03h 0a.2 | ok Front Panel | Log FRU @04h 0c.1 | ok HS Backplane 1 | Log FRU @05h 0f.1 | ok

yilongx commented 12 years ago

Hi jrmassoni, Now, we can test all FRU API according by commenting checksum verification. but we want to know how to reflash FRU. please give me some solutions(It would be better if there are some detailed steps). Thanks in advance.

jrmassoni commented 12 years ago

Go to intel.com and select "support", then select "Downloads & Drivers". Find the firmware package for you system. You will need to create an EFI USB key. Copy the files from the firmware package onto the EFI USB key, and insert it into your server. Reboot the server and select boot options. On the boot options menu select boot to EFI. At the efi prompt, select the USB key which is probably fs0

fs0: will bring you to USB key prompt. Run the frusdr.efi routine. frusdr -cfg This should bring up a prompt. Select update FRU (or update FRU and SDR if you want to update both) select to update the chassis and product areas. It is optional if you want to update the product name and product number or serial number. Reboot the server and your FRU should now be updated.

jrmassoni commented 12 years ago

Regarding validating the FRU data. The NMPRK reads the fru data, the only validation that is done is the checksum check. Otherwise it is just raw data. To validate it would be difficult, you would start with the data saved in the file testfile.fru. Next you would need to compare it to the orginal FRU file, which is in a different format (so you would need to remove the excess data and convert it to hex format), plus the user may have entered in items like the product name, product number, serial number, etc... Therefore you would need to take that into account.
As for the screen you showed in a previous message (3 comments back), it is not the FRU data. It is informaton obtained from the SDRs and Sensors relating to each Field Replacable Unit (FRU) device, and not related to the use of the NMPRK.

yilongx commented 12 years ago

Hi jrmassoni , I have updated FRU repository by our server's firmware. it can work well with checksum validation. All FRU APIs can work normally, now. Thanks for your help.