IPMCTL User Guide
HomePMDKNDCTLBlog
Version 1.x
Version 1.x
  • IPMCTL User Guide
  • Installing IPMCTL
    • Installing IPMCTL packages on Linux
    • Building and Installing IPMCTL from Source on Linux
    • Installing IPMCTL on Microsoft Windows using the MSI Installer
    • Building and Installing IPMCTL on Microsoft Windows from Source
  • Basic Usage
  • Module Discovery
    • Show System Capabilities
    • Show Socket
    • Show Topology
    • Show Memory Resources
    • Show Device
  • Provisioning
    • Concepts
    • Create Memory Allocation Goal
    • Provision App Direct
    • Provision Memory Mode
    • Provision Mixed Mode
    • Show Memory Allocation Goal
    • Dump Memory Allocation Settings
    • Load Memory Allocation Goal
    • Delete Memory Allocation Goal
  • Security
    • Enable Device Security
    • Change Device Passphrase
    • Change Device Security
    • Erase Device Data
  • Instrumentation
    • Show Sensor
    • Change Sensor Settings
    • Show Device Performance
  • Debug
    • Run Diagnostic
    • Show Error Log
    • Dump Debug Log
    • Show ACPI Tables
    • Show Device Platform Configuration Data
    • Delete Device Platform Configuration Data
    • Inject Error
  • Support and Maintenance
    • Show Events
    • Version and Firmware
Powered by GitBook
On this page

Was this helpful?

  1. Installing IPMCTL

Building and Installing IPMCTL from Source on Linux

Building ipmctl from source code if your Linux package repository does not provide package or it contains a old version.

This procedure provides the steps for building and installing ipmctl on Fedora.

Prerequisites

ipmctl has a dependency on libsafec-devel, libndctl-devel and rubygem-asciidoctor. Steps to install these packages is provided below.

Install the required utilities

This procedure requires the following utilities

  • wget

  • git

  • cmake

  • gcc

  • gcc-c++

  • glibc

  • glibc-static

sudo dnf install wget git cmake gcc gcc-g++ glibc glibc-static 

libsafec

libsafec is available as a package in the EPEL repository (Extra Packages for Enterprise Linux).

Alternately, when compiling ipmctl from source code, use the -DSAFECLIB_SRC_DOWNLOAD_AND_STATIC_LINK=ON option to download safelibc source and build it as a static library with ipmctl. See the Build section below for more information.

Verify the libsafec package can be found

dnf info libsafec libsafec-devel

Example:

$ dnf info libsafec libsafec-devel

Available Packages
Name         : libsafec
Version      : 3.3
Release      : 5.fc31
Architecture : i686
Size         : 82 k
Source       : libsafec-3.3-5.fc31.src.rpm
Repository   : fedora
Summary      : Safec fork with all C11 Annex K functions
URL          : https://github.com/rurban/safeclib
License      : MIT
Description  : Safec fork with all C11 Annex K functions

Name         : libsafec-devel
Version      : 3.3
Release      : 5.fc31
Architecture : i686
Size         : 19 k
Source       : libsafec-3.3-5.fc31.src.rpm
Repository   : fedora
Summary      : Development packages for libsafec
URL          : https://github.com/rurban/safeclib
License      : MIT
Description  : Development files for libsafec

Install the libsafec and libsafec-devel packages

sudo dnf install libsafec libsafec-devel

libndctl-devel

To install the package:

sudo dnf install ndctl-devel

Asciidoctor

The rubygem-asciidoctor package can be found in the EPEL (Extra Package for Enterprise Linux) repository.

Install the rubygem-asciidoctor and optional rubygem-asciidoctor-pdf packages

sudo dnf install rubygem-asciidoctor rubygem-asciidoctor-pdf

Build

Create a temporary build area

mkdir ~/downloads
cd ~/downloads

Clone the ipmctl GitHub repository

git clone https://github.com/intel/ipmctl
cd ipmctl

If you installed the safelibc package, use:

mkdir output && cd output
cmake -DRELEASE=ON -DCMAKE_INSTALL_PREFIX=/ ..
make -j all

To have ipmctl cmake download and statically build safelibc, use:

mkdir output && cd output
cmake -DRELEASE=ON -DSAFECLIB_SRC_DOWNLOAD_AND_STATIC_LINK=ON -DCMAKE_INSTALL_PREFIX=/ ..
make -j all

Install

Install ipmctl using:

sudo make install

This procedure provides the steps for building and installing ipmctl on RHEL, CENTOS, and RHEL for SAP HANA 7.5 and later.

Prerequisites

ipmctl has a dependency on libsafec-devel, libndctl-devel and rubygem-asciidoctor. Steps to install these packages is provided below.

EPEL Package Repository

Several packages required by ipmctl are available in the EPEL (Extra Packages for Enterprise Linux). The epel repository must be installed and enabled.

Verify the EPEL repository is available and enabled:

yum repolist

Example:

$ yum repolist
repo id                                   repo name                                                          status
epel/x86_64                               Extra Packages for Enterprise Linux 7 - x86_64                     13,220

If the EPEL repository is not listed, install and enable it using:

sudo yum install epel-release

Install the required utilities

This procedure requires the following utilities

  • wget

  • git

  • cmake

  • gcc

  • gcc-c++

  • glibc

  • glibc-static

sudo yum install wget git cmake gcc gcc-g++ glibc glibc-static 

libsafec

libsafec is available as a package in the EPEL repository (Extra Packages for Enterprise Linux).

Alternately, when compiling ipmctl from source code, use the -DSAFECLIB_SRC_DOWNLOAD_AND_STATIC_LINK=ON option to download safelibc source and build it as a static library with ipmctl. See the Build section below for more information.

Verify the libsafec package can be found

yum info libsafec libsafec-devel

Example:

$ yum info safelibc

Available Packages
Name        : libsafec
Arch        : x86_64
Version     : 3.3
Release     : 5.el7
Size        : 69 k
Repo        : epel/x86_64
Summary     : Safec fork with all C11 Annex K functions
URL         : https://github.com/rurban/safeclib
License     : MIT
Description : Safec fork with all C11 Annex K functions

Name        : libsafec-devel
Arch        : x86_64
Version     : 3.3
Release     : 5.el7
Size        : 74 k
Repo        : installed
From repo   : epel
Summary     : Development packages for libsafec
URL         : https://github.com/rurban/safeclib
License     : MIT
Description : Development files for libsafec

Install the libsafec and libsafec-devel packages

sudo yum install libsafec libsafec-devel

libndctl-devel

To install the package:

sudo yum install ndctl-devel

Asciidoctor

The rubygem-asciidoctor package can be found in the EPEL (Extra Package for Enterprise Linux) repository.

Install the rubygem-asciidoctor package

sudo yum install rubygem-asciidoctor

With Ruby >2.1 installed, install asciidoctor-pdf

sudo gem install asciidoctor-pdf

Build

Create a temporary build area

mkdir ~/downloads
cd ~/downloads

Clone the ipmctl GitHub repository

git clone https://github.com/intel/ipmctl

To list all branches:

cd ~/downloads
git branch -a

Example:

$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/gh-pages
  remotes/origin/master
  remotes/origin/master_1_0
  remotes/origin/master_2_0
  remotes/origin/testing

Checkout 01.00.00.xxxx

git checkout master_1_0

Checkout 02.00.00.xxxx

git checkout master_2_0

If you installed the safelibc package, use:

mkdir output && cd output
cmake -DRELEASE=ON -DCMAKE_INSTALL_PREFIX=/ ..
make -j all

To have ipmctl cmake download and statically build safelibc, use:

mkdir output && cd output
cmake -DRELEASE=ON -DSAFECLIB_SRC_DOWNLOAD_AND_STATIC_LINK=ON -DCMAKE_INSTALL_PREFIX=/ ..
make -j all

Install

Install ipmctl using:

sudo make install

This procedure provides the steps for building and installing ipmctl on Ubuntu.

Prerequisites

ipmctl has a dependency on libsafec-devel, libndctl-devel and ruby-asciidoctor. Steps to install these packages is provided below.

Install the required utilities

This procedure requires the following utilities

  • wget

  • git

  • cmake

  • pkg-config

  • autoconf

  • doxygen

  • libtool

  • gcc

  • gcc-c++

  • glibc

sudo apt update
sudo apt install wget git cmake pkg-config autoconf doxygen libtool build-essential

libsafec

libsafec is available as a package in the default package repository for Ubuntu 19.10 (Eoan) or later. For earlier releases, use the -DSAFECLIB_SRC_DOWNLOAD_AND_STATIC_LINK=ON option to download safelibc source and build it as a static library with ipmctl. See the Build section below for more information.

Verify the libsafec package can be found

sudo apt info libsafec* libsafec-dev*

Install the libsafec and libsafec-devel packages

sudo apt install libsafec-3.5.3 libsafec-dev

libndctl-devel

To install the package:

sudo apt install libndctl-dev

Asciidoctor

Ubuntu 16.04 & 18.04

Install asciidoctor using the ruby gems

sudo apt install ruby
sudo gem install asciidoctor asciidoctor-pdf --pre

Ubuntu 19.04 or later

The ruby-asciidoctor package can be found in the default package repository.

Install the ruby-asciidoctor and optional ruby-asciidoctor-pdf packages

sudo apt install ruby-asciidoctor ruby-asciidoctor-pdf

Build

Create a temporary build area

mkdir ~/downloads
cd ~/downloads

Clone the ipmctl GitHub repository

git clone https://github.com/intel/ipmctl

To list all branches:

cd ipmctl
git branch -a

Example:

$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/gh-pages
  remotes/origin/master
  remotes/origin/master_1_0
  remotes/origin/master_2_0
  remotes/origin/testing

Checkout 01.00.00.xxxx

git checkout master_1_0

Checkout 02.00.00.xxxx

git checkout master_2_0

If you installed the safelibc package, use:

mkdir output && cd output
cmake -DRELEASE=ON -DCMAKE_INSTALL_PREFIX=/ ..
make -j all

To have ipmctl cmake download and statically build safelibc, use:

mkdir output && cd output
cmake -DRELEASE=ON -DSAFECLIB_SRC_DOWNLOAD_AND_STATIC_LINK=ON -DCMAKE_INSTALL_PREFIX=/ ..
make -j all

Troubleshooting

The following lists common issues and errors encountered during the cmake process and how to resolve them

Issue: -- Could NOT find asciidoctor-pdf (missing: ASCIIDOCTOR_PDF_BINARY)

You may see a warning during the cmake process referencing a missing asciidoctor-pdf binary.

-- Could NOT find asciidoctor-pdf (missing:  ASCIIDOCTOR_PDF_BINARY) 
asciidoctor-pdf not found

Solution:

PDF documents can be built if asciidoctor-pdf is installed. This is completely optional. Warnings during the cmake make occur but can be ignored. Asciidoctor-pdf is installed using the gem utility. Asciidoctor-pdf requires Ruby 2.1 or later. CentOS 7 provides Ruby 2.0. See How to Install Ruby on CentOS/RHEL 7/6 for instructions to install a later version of Ruby. With Ruby >2.1 installed, install asciidoctor-pdf:

sudo gem install asciidoctor-pdf

Issue: -- Could NOT find asciidoc (missing: ASCIIDOC_BINARY)

Solution:

If asciidoctor is installed, ascidoc is not required. This message can be safely ignored.---

Issue: -- Could NOT find a2x (missing: A2X_BINARY)

Solution:

The a2x binary is delivered with the asciidoc package. a2x converts Asciidoc text file to PDF, XHTML, HTML Help, manpage or plain text. If the asciidoc package is not installed, this message can be safely ignored. Asciidoctor will be used instead to build the documentation.

Issue: -- package 'safec-3.3>=03032018.0-g570fa5' not found

Example:

--   package 'safec-3.3>=03032018.0-g570fa5' not found
CMake Error at /usr/share/cmake/Modules/FindPkgConfig.cmake:279 (message):
  A required package was not found
Call Stack (most recent call first):
  /usr/share/cmake/Modules/FindPkgConfig.cmake:333 (_pkg_check_modules_internal)
  CMakeLists.txt:87 (pkg_check_modules)

You should not encounter this message when using the -DSAFECLIB_SRC_DOWNLOAD_AND_STATIC_LINK=ON cmake option.

Solution:

The issue can occur if the libsafec and libsafec-devel packages are not installed. See the 'Prerequisites' section at the top of this page.

If you installed the libsafec package from a repository other than EPEL, remove and re-install the libsafec package using the epel repository. Follow the instructions in the 'libsafec' section above.

If you built and installed libsafec from source code, the error is caused by a missing pkgconfig (pc) file. Update your LD_LIBRARY_PATH and PKG_CONFIG_PATH to include the path you installed libsafec to. For example, the following adds the common install locaitons to your shell environment. You will need to add these to your shell environment file (eg: ~/.bashrc) for them to become permanent.

export LD_LIBRARY_PATH=/usr/lib:/usr/lib64:/usr/local/lib:/usr/local/lib64:${LD_LIBRARY_PATH}
export PKG_CONFIG_PATH=/usr/lib64/pkgconfig:/usr/lib/pkgconfig:usr/local/lib64/pkgconfig:/usr/local/lib/pkgconfig:/usr/share/pkgconfig:${PKG_CONFIG_PATH}

Alternatively, add -DSAFECLIB_SRC_DOWNLOAD_AND_STATIC_LINK=ONto the cmake file to download and build the static version of libsafec.

PreviousInstalling IPMCTL packages on LinuxNextInstalling IPMCTL on Microsoft Windows using the MSI Installer

Last updated 4 years ago

Was this helpful?

The development files can be installed from source code or packages. See '' in the ndctl user guide for detailed instructions.

The development files can be installed from source code or packages. See '' in the ndctl user guide for detailed instructions.

[Optional] PDF documents can be built if asciidoctor-pdf is installed. This is completely optional. Warnings during the cmake make occur but can be ignored. Asciidoctor-pdf is installed using the gem utility. Asciidoctor-pdf requires Ruby 2.1 or later. CentOS 7 provides Ruby 2.0. See for instructions to install a current Ruby version.

The github repository contains the latest and previous versions. Refer to the 'Releases' table in '' to decide which version of ipmctl you need to build.

The development files can be installed from source code or packages. See '' in the ndctl user guide for detailed instructions.

The github repository contains the latest and previous versions. Refer to the 'Releases' table in '' to decide which version of ipmctl you need to build.

Go to the section of this user guide for more information.

Installing NDCTL & DAXCTL
Installing NDCTL & DAXCTL
How to Install Ruby on CentOS/RHEL 7/6
Installing IPMCTL
Installing NDCTL & DAXCTL
Installing IPMCTL
Basic Usage