Search
François Donzé

CHIF driver not found

June 22, 2021

Introduction

When using the HPE RESTful Interface Tool (iLOrest) or other applications, like the Smart Update Manager (SUM) or the integrated Smart Update Tool (iSUT), you may get errors similar to the one shown below without any other information to identify the origin of the problem or how to fix it.

Chif driver not found, please check that the chif driver is installed

This article attempts to explain what causes this error and why.

What is the CHIF driver ?

The Channel Interface (CHIF) driver is an HPE proprietary driver allowing in-band communication between applications and the Insight Lights Out (iLO) within HPE iLO based servers. It is stored as a dynamic loadable library file (.dll) on Microsoft Windows and a shared object (.so) on Linux.

This driver can only be loaded by applications when an iLO chip set is embedded in the computer.

The CHIF driver allows communication between applications and iLO

The CHIF driver comes packaged with HPE applications requiring it. You don't need to import it manually. However, for home grown applications using the HPE Redfish library or PowerShell Cmdlets (i.e. HPESysinfoCmdlets), you will have to install it from the HPE Software ProLiant Pack (SPP) or download it from the HPE Support Center before manual installation if it has not already been installed by an application that required it.

Quick reminder of iLOrest in-band management

The iLOrest tool allows in-band and out-of-band Redfish management, as explained in this article.

If you are logged into an HPE iLO 4 or iLO 5 based server as a privileged user (root or Administrator), you can perform in-band management tasks with iLOrest without providing any credentials. You just have to issue GET or SET commands in a straight forward manner to query the local iLO Redfish service.

The following picture shows an SSH root session creation toward an HPE DL360 Gen10 with the execution of an iLOrest GET command without any formal login process. The Discovering data...Done message means that iLOrest could effectively log into the local iLO 5 and save metadata in its cache. Then, it displays the output of the GET command (Model=iLO 5).

Successful in-band GET command

What causes the Chif Driver not found error?

The most typical situation is when you are logged in, as a privileged user in a non-iLO based server, a virtual machine or a laptop, and you issue a script performing in-band Redfish commands.

In those cases, there is no iLO underneath the operating system. Hence the CHIF driver, although present as a file somewhere on disk, cannot be properly loaded by the application.

Issuing iLOrest in-band commands on a non-iLO based server

The most typical iLOrest invocation is:

ilorest login <RedfishService-IP-address>
ilorest cmd1
ilorest cmd2
...
ilorest logout

If you don't provide any <RedfishService-IP-address> to the iLOrest login command, or if you completely omit this command, iLOrest uses the blobstore://. target URL and tries to connect to the local iLO via the CHIF driver.

If you use a Redfish client different from iLOrest that uses another library, like the DMTF Python Redfish Library, you will not be able to perform in-band management through the CHIF driver. An alternative is to enable the iLO Virtual NIC and use its IP address as the target URL.

The following picture shows an SSH privileged session in a VMware virtual machine and an iLOrest in-band GET command returning the error.

Unsuccessful in-band GET from Virtual Machine

The next screenshot shows the same iLOrest command launched from a Microsoft Windows laptop.

Unsuccessful in-band GET from laptop

In-band Python scripts

In this section, I will address in-band Python scripts, PowerShell Cmdlets and VMware infrastructures with respect to the CHIF driver.

The blobstore://. URL mentioned above can also be used in Redfish Python scripts based on the HPE python-ilorest-library to perform in-band management operations. Such programs will have the same behavior as iLOrest since iLOrest also uses the HPE Python Redfish library.

In the picture below, you can see the Python example get_ilo_ip.py configured for in-band management. In the picture, there are a few things you should note, which I’ll itemize here.

The grep command, following the dmidecode command, returns all the lines of the get_ilo_ip.py file, containing strings SYSTEM_URL or LOGIN_ACCOUNT or LOGIN_PASSWORD. Lines starting with a # sign are commented lines, and are thus not executed.

The target URL (SYSTEM_URL) points to blobstore://. and the LOGIN_ACCOUNT and LOGIN_PASSWORD variables are empty. With this configuration, the RedfishClient method will try to connect to the CHIF driver to access the local iLO. However, it fails because the script is executed on a virtual machine.

The result of this in-band configuration is a ChifDriverMissingOrNotFound error.

NOTE: Only the last two lines of the stack dump are displayed.

blobstore target URL

HPE PowerShell Cmdlets and in-band management

As of the writing of this article, only the HPESysinfoCmdlets uses the CHIF driver for in-band management. Other PowerShell Cmdlets, like the HPEiLOCmdlets or the HPERedfishCmdlets, cannot be configured for in-band management through the CHIF driver.

Misconfigured HPE/VMware infrastructures

I've seen cases where VMware system managers manually installed a .rpm iLOrest package in their ESXi hypervisor instead of getting it installed properly with a supported HPE custom image. It is important to remember that HPE bundles and tests specific application packages of iLOrest, SUM, SUT and the Agentless Management Service (AMS) for the ESXi hypervisor. Manual installation of those applications will generate problems like the Chif driver not found error.

Up to this point in this article, I've focused on the root causes of the Chif driver not found error. However, you can face situations involving the CHIF driver where iLOrest commands return a valid output, but from the wrong system !

iLOrest scripts accessing the wrong iLO

You may come across this error if you are a privileged user launching an iLOrest script from an iLO-based server targeting a remote iLO, but the script supplies the wrong credentials. In that case, iLOrest returns an error code, but sadly enough, the script does not test the return code of the login process and continues its execution.

As you are privileged on a physical iLO based system with the CHIF driver up and running, iLOrest performs the following requests successfully on your system via the CHIF driver in place of the remote server. This situation is embarrassing because you are performing management actions on the wrong system.

The following picture displays a script launched from an iLO 4 based computer, targeting an iLO 5, but supplying a faulty username and password in the login command and discarding errors (&> /dev/null).

As a consequence, the next iLOrest command retrieves the local iLO 4 firmware version, instead of the remote iLO 5 firmware version !

iLOrest accessing wrong iLO

In order to avoid embarrassing situations like this, it's always good to double-check that your script tests iLOrest return codes.

Take away

I hope you found this tutorial helpful. You can find many articles regarding iLO here in the HPE DEV blog. In this post, I've tried to point out situations where you may come across the Chif driver not found error and offer suggestions on how to avoid this. The most important things you should remember concerning this error are:

  • The CHIF driver is an HPE proprietary driver allowing communications between applications and iLO
  • The error occurs when the CHIF driver cannot be loaded by applications calling it.
  • Avoid performing remote management tasks as an OS privileged user.

Related

Nathan Lin

Accessing iLO Redfish APIs and HPE OneView APIs on Ansible AWX

Feb 9, 2021
HPE Global Sales Engineering (GSE) team

Automate boot from SAN target configurations using Redfish

Jun 1, 2023
François Donzé

Benefits of the Platform Level Data Model for Firmware Update Standard

Jun 7, 2022
François Donzé

Build your own iLO Redfish simulator

Jun 11, 2021
Gokul Sreeramaiah

Configuring threads for Optimal performance in HPE PowerShell Cmdlets

Dec 3, 2018
HPE DEV staff

COVID-19 limits accessibility – Free offer for HPE iLO Advanced opens it up

Apr 23, 2020
Matthew Kocurek - iLOREST Developer

Creating a Python version that enforces FIPS

Feb 15, 2018
Naveen Gupta

Discover the power of data center monitoring using Redfish telemetry and cloud-native tooling: Part 2 - Streaming

Dec 1, 2023

HPE Developer Newsletter

Stay in the loop.

Sign up for the HPE Developer Newsletter or visit the Newsletter Archive to see past content.

By clicking on “Subscribe Now”, I agree to HPE sending me personalized email communication about HPE and select HPE-Partner products, services, offers and events. I understand that my email address will be used in accordance with HPE Privacy Statement. You may unsubscribe from receiving HPE and HPE-Partner news and offers at any time by clicking on the Unsubscribe button at the bottom of the newsletter.

For more information on how HPE manages, uses, and protects your personal data please refer to HPE Privacy Statement.