Update the storage node VPD

This section covers the procedure to update the ThinkAgile CP storage node VPD.

Prior to updating the storage node VPD, perform the following tasks:

Check if the SES driver is present by entering the command:

lsmod | grep cls

If the driver is not present, insert it with the following command:

insmod /usr/share/tacp/lenovo/cls.ko

Procedure performed by: ThinkAgile Advantage Support

To pull current FRU information before beginning the VPD reprogram process (also logged during reprogram), use the check option on the ThinkAgile CP-SB VPD tool (./thinkagile_cpsb_vpd_tool.sh check).

To update the storage node VPD, follow these steps:

  1. Download the VPD tool bundle from https://support.lenovo.com/us/en/downloads/ds506277.
  2. Copy the VPD tool bundle (thinkagile_cpsb_vpd_tool_vX.X.tgz) onto the storage controller. See Place a support file on the storage or compute node.
  3. Untar the VPD tool and navigate to the tool’s root directory (thinkagile_cpsb_vpd_tool).
  4. Execute the following command to bring up the parameters for the programmable fields:

    ./thinkagile_cpsb_vpd_tool.sh help

  5. Execute the following command to begin the reprogramming process for specified FRU fields:

    ./thinkagile_cpsb_vpd_tool.sh –p <fields>


    Be mindful of maximum lengths as outlined in included readme document.

  6. The VPD tool prompts you for new values for each specified field and will reprogram with the new values. Enter the new values as directed.
  7. The VPD tool verifies that the programming process has completed. Confirm that the values are correct.
  8. Remove all artifacts from the VPD tool with the following commands:

    rm -rf thinkagile_cpsb_vpd_toolrm -rf thinkagile_cpsb_vpd_tool_vX.X.tgz

Logs are stored under the log/ directory and contains all prior FRU information as well as the fields programmed. The previous values for programmed fields are listed under src/previous_FRU_info.txt.

Refer to the included readme document for more info on VPD tool.


If you are reprogramming the controller model (canister board product): if they are mismatched on the two storage controllers, ESM B (the top controller) enters lockdown mode. To remedy this, ensure that the canister model on both storage controllers is the same. As necessary (if B is current active controller), failover all traffic and applications to ESM A (bottom controller) and then hard-reboot ESM B.