Download, what is in the package Intel Media Server Studio 2018 R1 and which linux distro it supports

This howto is just information what to expect from the community package of Intel Media Server Studio.

This package is the starting point of the Quick Sync using and development process – you’ll need parts of it if you want to use hardware encoding and decoding for video streams like MPEG-2, H.264, VC-1, VP8, VP9, HEVC and more!


Most of the time this package is needed for the Intel® Media SDK and the graphics drivers it provides. So the main purpose here is to give you an information which version of the SDK and the graphics drivers are included in the different package and which kernel and Linux distro is supported.
Different versions support different OS linux distros – mainly different CentOS 7. The package supports also a Generic Linux installation on a relatively older kernel.

First we start how to freely download the “Intel Media Server Studio Community Edition” from the Intel site: https://software.intel.com/en-us/intel-media-server-studio
This package (as you can see below) supports CentOS 7.4.1708 or any linux distro by downloading kernel 4.4.111.

STEP 1) Get the free community edition, select “Community” from the dropdown as shown and click on “Free Download”.

main menu
Intel Media Server Studio 2018 for Linux

STEP 2) Intel wants to register before downloading the Community edition, if you have already had an account you could sign in.

Fill the data with your personal and company details, do not fake them! You can miss something important from Intel and you know they give you a big piece of software for free, which could help you a lot!

main menu
Intel user registration

STEP 3) Check your details, enter your password and click “Register” on the bottom.

main menu
Register an Account

STEP 4) Click on “Choose a Version” and select “2018 2018_R1” – this is the latest version at the moment.

If you need another one just choose the right for you from the dropdown box. Check the checkbox with the “Consent to the collection of the information and would like to download the software”.

main menu
Intel Media Server Studio community Edition – 2018

STEP 5) To download the package click in “Intel Media Server Studio for Linux*”, the file is 549MB in size.

main menu
Intel Media Server Studio community Edition – 2018 Download

STEP 6) The file name is MediaServerStudioEssentials2018R1.tar.gz and in fact it is the Essentials version of the studio without any paid support.

main menu
Intel Media Server Studio community Edition – 2018 – file name

Here is what is in the archive:

  1. SDK 2018 Production 16.8 – there two version way to install it:
    1. it supports CentOS version 7.4.1708, because it is deprecated you should use vault.centos.org.
      • libdrm-2.4.74-69021
      • intel-linux-media-devel-16.8-69021
      • intel-opencl-cpu-16.8-67208
      • intel-linux-media-16.8-69021
      • ukmd-kmod-16.8-69021
      • kmod-ukmd-16.8-69021
      • libva-2.0.1.pre1-69021
      • drm-utils-2.4.74-69021
      • libdrm-devel-2.4.74-69021
      • intel-opencl-devel-16.8-67208
      • intel-opencl-16.8-67208
      • libva-devel-2.0.1.pre1-69021

      Here is the modinfo output of the CentOS 7 i915 driver:

      [root@conv11 Generic]# modinfo i915
      filename:       /lib/modules/3.10.0-693.el7.x86_64/weak-updates/ukmd/i915.ko
      license:        GPL and additional rights
      description:    Intel Graphics
      author:         Intel Corporation
      author:         Tungsten Graphics, Inc.
      firmware:       i915/bxt_dmc_ver1.bin
      firmware:       i915/skl_dmc_ver1_26.bin
      firmware:       i915/skl_guc_ver4.bin
      rhelversion:    7.4
      
    2. Generic Install – the setup will try to download kernel version 4.4.111 and install above libraries and compile i915 module.
  2. MediaSamples Linux 2018 R1_b982
  3. Intel SDK for Opencl 2017 7.0.0 2580_x64 – it includes Intel Code builder 2017.0-7.0.0.2580

Here is the files in the archive:

srv@local ~ $ tar xzvf MediaServerStudioEssentials2018R1.tar.gz
MediaServerStudioEssentials2018R1/
MediaServerStudioEssentials2018R1/Intel(R)_Media_Server_Studio_EULA.pdf
MediaServerStudioEssentials2018R1/Intel_SDK_for_OpenCL_2017_r2_release_notes.pdf
MediaServerStudioEssentials2018R1/MediaSamples_Linux_2018R1_b982.tar.gz.sig
MediaServerStudioEssentials2018R1/site_license_materials.txt
MediaServerStudioEssentials2018R1/third_party_programs.txt
MediaServerStudioEssentials2018R1/redist.txt
MediaServerStudioEssentials2018R1/media_server_studio_essentials_release_notes.pdf
MediaServerStudioEssentials2018R1/MediaSamples_Linux_2018R1_b982.tar.gz
MediaServerStudioEssentials2018R1/intel_sdk_for_opencl_2017_7.0.0.2580_x64.tgz
MediaServerStudioEssentials2018R1/SDK2018Production16.8.tar.gz
srv@local ~ $ tar xzvf MediaServerStudioEssentials2018R1/SDK2018Production16.8.tar.gz
SDK2018Production16.8/
SDK2018Production16.8/Generic/
SDK2018Production16.8/Generic/intel-opencl-16.8-67208.x86_64.tar.xz
SDK2018Production16.8/Generic/intel-opencl-devel-16.8-67208.x86_64.tar.xz
SDK2018Production16.8/Generic/intel-linux-media_generic_16.8-69021_64bit.tar.gz
SDK2018Production16.8/Generic/NOTICES.TXT
SDK2018Production16.8/Generic/intel-linux-media_generic_16.8-69021_64bit.tar.gz.sig
SDK2018Production16.8/Generic/vpg_ocl_linux_rpmdeb.public
SDK2018Production16.8/Generic/intel-opencl-cpu-16.8-67208.x86_64.tar.xz
SDK2018Production16.8/media_server_studio_getting_started_guide.pdf
SDK2018Production16.8/CentOS_7.4/
SDK2018Production16.8/CentOS_7.4/libdrm-2.4.74-69021.el7.centos.x86_64.rpm
SDK2018Production16.8/CentOS_7.4/mss-linux-xcode-media.public
SDK2018Production16.8/CentOS_7.4/MediaSamples_Linux_bin-16.8-69021.tar.gz.sig
SDK2018Production16.8/CentOS_7.4/MediaSamples_Linux_bin-16.8-69021.tar.gz
SDK2018Production16.8/CentOS_7.4/intel-linux-media-devel-16.8-69021.el7.centos.x86_64.rpm
SDK2018Production16.8/CentOS_7.4/intel-opencl-cpu-16.8-67208.x86_64.rpm
SDK2018Production16.8/CentOS_7.4/intel-linux-media-16.8-69021.el7.centos.x86_64.rpm
SDK2018Production16.8/CentOS_7.4/NOTICES.TXT
SDK2018Production16.8/CentOS_7.4/install_scripts_centos_16.8-69021.tar.gz
SDK2018Production16.8/CentOS_7.4/install_scripts_centos_16.8-69021.tar.gz.sig
SDK2018Production16.8/CentOS_7.4/ukmd-kmod-16.8-69021.el7.centos.src.rpm
SDK2018Production16.8/CentOS_7.4/kmod-ukmd-16.8-69021.el7.centos.x86_64.rpm
SDK2018Production16.8/CentOS_7.4/libva-2.0.1.pre1-69021.el7.centos.x86_64.rpm
SDK2018Production16.8/CentOS_7.4/drm-utils-2.4.74-69021.el7.centos.x86_64.rpm
SDK2018Production16.8/CentOS_7.4/libdrm-devel-2.4.74-69021.el7.centos.x86_64.rpm
SDK2018Production16.8/CentOS_7.4/intel-opencl-devel-16.8-67208.x86_64.rpm
SDK2018Production16.8/CentOS_7.4/intel-opencl-16.8-67208.x86_64.rpm
SDK2018Production16.8/CentOS_7.4/vpg_ocl_linux_rpmdeb.public
SDK2018Production16.8/CentOS_7.4/libva-devel-2.0.1.pre1-69021.el7.centos.x86_64.rpm
SDK2018Production16.8/intel-opencl-release-notes.pdf
SDK2018Production16.8/media_server_studio_fei_release_notes.pdf
SDK2018Production16.8/media_server_studio_sdk_release_notes.pdf
srv@local ~ $ tar xzvf MediaServerStudioEssentials2018R1/intel_sdk_for_opencl_2017_7.0.0.2580_x64.tgz
intel_sdk_for_opencl_2017_7.0.0.2580_x64/
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/images/
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/images/finish.png
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/images/micl.png
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/images/splash.png
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/licenses/
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/licenses/PYTHON/
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/licenses/PYTHON/License-BEOPEN.com_v1.0.txt
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/licenses/openssl/
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/licenses/openssl/license.txt
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/licenses/openssl/readme.txt
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/licenses/libstdc++/
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/licenses/libstdc++/readme-libstdc++.txt
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/scripts/
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/scripts/force_remove.sh
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/libz/
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/libz/libz.so.1
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/libz/libz.so.1.2.11
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/libz/libz.so
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/qt/
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/qt/libQt5Core.so
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/qt/libQt5Core.so.5
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/qt/libQt5Core.so.5.6
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/qt/libQt5Core.so.5.6.2
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/qt/libQt5DBus.so
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/qt/libQt5DBus.so.5
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/qt/libQt5DBus.so.5.6
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/qt/libQt5DBus.so.5.6.2
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/qt/libQt5Gui.so
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/qt/libQt5Gui.so.5
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/qt/libQt5Gui.so.5.6
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/qt/libQt5Gui.so.5.6.2
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/qt/libQt5Widgets.so
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/qt/libQt5Widgets.so.5
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/qt/libQt5Widgets.so.5.6
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/qt/libQt5Widgets.so.5.6.2
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/qt/libQt5XcbQpa.so
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/qt/libQt5XcbQpa.so.5
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/qt/libQt5XcbQpa.so.5.6
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/qt/libQt5XcbQpa.so.5.6.2
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/qt/libQt5Xml.so
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/qt/libQt5Xml.so.5
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/qt/libQt5Xml.so.5.6
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/qt/libQt5Xml.so.5.6.2
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/qt/libxcb.so
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/qt/libxcb.so.1
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/qt/libxcb.so.1.1.0
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/libsv.so
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/install
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/install_gui
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/platforms/
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/platforms/libqxcb.so
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/imageformats/
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/imageformats/libqjpeg.so
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/libISSASecureWebChannel.so
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/libISSASoapMessenger.so
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/libcrypto.so.1.0.0
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/32e/libssl.so.1.0.0
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/mediaconfig.xml
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/gt_debugger_post_install.cab
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/gt_debugger_prerequisites.cab
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/phonehome.cab
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/pset_standard_dialogs.cab
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/pset_user_stat.cab
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/signing.cab
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/disable_nonroot_installation.cab
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/opencl_prerequisites.cab
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/os_detection.cab
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/ism.cab
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/check.awk
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/install.cab
intel_sdk_for_opencl_2017_7.0.0.2580_x64/pset/EULA.htm
intel_sdk_for_opencl_2017_7.0.0.2580_x64/install.sh
intel_sdk_for_opencl_2017_7.0.0.2580_x64/install_GUI.sh
intel_sdk_for_opencl_2017_7.0.0.2580_x64/rpm/
intel_sdk_for_opencl_2017_7.0.0.2580_x64/rpm/intel-ism-2.2.0.102.tgz
intel_sdk_for_opencl_2017_7.0.0.2580_x64/rpm/gt_debugger_target-ubuntu-2016.0-41250.x86_64.rpm
intel_sdk_for_opencl_2017_7.0.0.2580_x64/rpm/intel-sdk-opencl-codebuilder-base-2017.0-7.0.0.2580.x86_64.rpm
intel_sdk_for_opencl_2017_7.0.0.2580_x64/rpm/intel-sdk-opencl-codebuilder-base-ubuntu-2017.0-7.0.0.2580.x86_64.rpm
intel_sdk_for_opencl_2017_7.0.0.2580_x64/rpm/intel-sdk-opencl-codebuilder-core-2017.0-7.0.0.2580.x86_64.rpm
intel_sdk_for_opencl_2017_7.0.0.2580_x64/rpm/intel-sdk-opencl-codebuilder-devel-2017.0-7.0.0.2580.x86_64.rpm
intel_sdk_for_opencl_2017_7.0.0.2580_x64/rpm/intel-sdk-opencl-codebuilder-devel-ubuntu-2017.0-7.0.0.2580.x86_64.rpm
intel_sdk_for_opencl_2017_7.0.0.2580_x64/rpm/intel-sdk-opencl-codebuilder-eclipse-plugin-2017.0-7.0.0.2580.x86_64.rpm
intel_sdk_for_opencl_2017_7.0.0.2580_x64/rpm/intel-sdk-opencl-codebuilder-intel-devel-2017.0-7.0.0.2580.x86_64.rpm
intel_sdk_for_opencl_2017_7.0.0.2580_x64/rpm/intel-sdk-opencl-codebuilder-intel-devel-ubuntu-2017.0-7.0.0.2580.x86_64.rpm
intel_sdk_for_opencl_2017_7.0.0.2580_x64/rpm/intel-sdk-opencl-codebuilder-intel-cpu-exp-2017.0-7.0.0.2580.x86_64.rpm
intel_sdk_for_opencl_2017_7.0.0.2580_x64/rpm/gt_debugger_core-2016.0-41250.x86_64.rpm
intel_sdk_for_opencl_2017_7.0.0.2580_x64/rpm/gt_debugger_core-pset-2016.0-41250.noarch.rpm
intel_sdk_for_opencl_2017_7.0.0.2580_x64/rpm/gt_debugger_elfdwarf_sources-2016.0-41250.x86_64.rpm
intel_sdk_for_opencl_2017_7.0.0.2580_x64/rpm/gt_debugger_gdb_sources-2016.0-41250.x86_64.rpm
intel_sdk_for_opencl_2017_7.0.0.2580_x64/rpm/gt_debugger_host-2016.0-41250.x86_64.rpm
intel_sdk_for_opencl_2017_7.0.0.2580_x64/rpm/gt_debugger_host-ubuntu-2016.0-41250.x86_64.rpm
intel_sdk_for_opencl_2017_7.0.0.2580_x64/rpm/gt_debugger_igfxgdb_sources-2016.0-41250.x86_64.rpm
intel_sdk_for_opencl_2017_7.0.0.2580_x64/rpm/gt_debugger_licenses-2016.0-41250.x86_64.rpm
intel_sdk_for_opencl_2017_7.0.0.2580_x64/rpm/gt_debugger_target-2016.0-41250.x86_64.rpm
intel_sdk_for_opencl_2017_7.0.0.2580_x64/rpm/intel-sdk-opencl-codebuilder-core-pset-2017.0-7.0.0.2580.noarch.rpm
intel_sdk_for_opencl_2017_7.0.0.2580_x64/silent.cfg
intel_sdk_for_opencl_2017_7.0.0.2580_x64/EULA.txt
intel_sdk_for_opencl_2017_7.0.0.2580_x64/PUBLIC_KEY.PUB

Here are the installed media in “/opt/intel” – the librabry files and which version are available:

/opt/
/opt/intel
/opt/intel/common
/opt/intel/common/mdf
/opt/intel/common/mdf/lib64
/opt/intel/common/mdf/lib64/libigc.so
/opt/intel/common/mdf/lib64/igfxcmrt64.so
/opt/intel/common/mdf/lib64/libigfxcmrt64.so
/opt/intel/opencl
/opt/intel/opencl/libigdccl.so
/opt/intel/opencl/libOpenCL.so
/opt/intel/opencl/__ocl_svml_e9.so
/opt/intel/opencl/libcommon_clang_legacy.so
/opt/intel/opencl/clbltfne9.rtl
/opt/intel/opencl/clbltfnh8_img_cbk.o
/opt/intel/opencl/__ocl_svml_h8.so
/opt/intel/opencl/libintelocl.so
/opt/intel/opencl/clbltfne9_img_cbk.rtl
/opt/intel/opencl/LICENSE
/opt/intel/opencl/libigdrcl.so
/opt/intel/opencl/clbltfnshared.rtl
/opt/intel/opencl/libIntelOpenCL.so
/opt/intel/opencl/libiga64.so
/opt/intel/opencl/libigdbcl.so
/opt/intel/opencl/igdclbif.bin
/opt/intel/opencl/include
/opt/intel/opencl/include/CL
/opt/intel/opencl/include/CL/cl_vebox_intel.h
/opt/intel/opencl/include/CL/cl.hpp
/opt/intel/opencl/include/CL/cl_platform.h
/opt/intel/opencl/include/CL/cl_gl.h
/opt/intel/opencl/include/CL/cl_ext.h
/opt/intel/opencl/include/CL/cl.h
/opt/intel/opencl/include/CL/va_ext.h
/opt/intel/opencl/include/CL/cl_gl_ext.h
/opt/intel/opencl/include/CL/opencl.h
/opt/intel/opencl/include/CL/cl2.hpp
/opt/intel/opencl/__ocl_svml_l9.so
/opt/intel/opencl/clbltfnh8.rtl
/opt/intel/opencl/libcommon_clang.so
/opt/intel/opencl/kernel-4.4-xcode.patch
/opt/intel/opencl/libigdmcl.so
/opt/intel/opencl/libigdfcl.so
/opt/intel/opencl/kernel-4.7.patch
/opt/intel/opencl/libtbb.so.2
/opt/intel/opencl/clbltfnl9_img_cbk.rtl
/opt/intel/opencl/NOTICES
/opt/intel/opencl/libtbb.so
/opt/intel/opencl/libmd.so
/opt/intel/opencl/clbltfnl9.rtl
/opt/intel/opencl/clbltfne9_img_cbk.o
/opt/intel/opencl/libtask_executor.so
/opt/intel/opencl/libtbbmalloc.so.2
/opt/intel/opencl/libtbbmalloc.so
/opt/intel/opencl/clbltfnl9_img_cbk.o
/opt/intel/opencl/libOpenCL.so.1
/opt/intel/opencl/libcpu_device.so
/opt/intel/opencl/libcl_logger.so
/opt/intel/opencl/libclang_compiler.so
/opt/intel/opencl/libOclCpuBackEnd.so
/opt/intel/opencl/libigdfcl_legacy.so
/opt/intel/opencl/OpenCL.pc
/opt/intel/opencl/clbltfnh8_img_cbk.rtl
/opt/intel/mediasdk
/opt/intel/mediasdk/plugins
/opt/intel/mediasdk/plugins/libmfx_hevcd_hw64.so
/opt/intel/mediasdk/plugins/libmfx_h264la_hw64.so
/opt/intel/mediasdk/plugins/libmfx_hevce_hw64.so
/opt/intel/mediasdk/plugins/libmfx_vp8d_hw64.so
/opt/intel/mediasdk/plugins/plugins.cfg
/opt/intel/mediasdk/doc
/opt/intel/mediasdk/doc/dynamic_slice_shutdown.pdf
/opt/intel/mediasdk/doc/mediasdk-man.pdf
/opt/intel/mediasdk/doc/mediasdkvp8-man.pdf
/opt/intel/mediasdk/doc/mediasdkusr-man.pdf
/opt/intel/mediasdk/doc/mediasdkjpeg-man.pdf
/opt/intel/mediasdk/doc/mediasdkfei-man.pdf
/opt/intel/mediasdk/doc/mediasdk_hevc_interlace_whitepaper.pdf
/opt/intel/mediasdk/opensource
/opt/intel/mediasdk/opensource/libva
/opt/intel/mediasdk/opensource/libva/2.0.1.pre1-69021
/opt/intel/mediasdk/opensource/libva/2.0.1.pre1-69021/libva-2.0.1.pre1.tar.bz2
/opt/intel/mediasdk/opensource/libdrm
/opt/intel/mediasdk/opensource/libdrm/2.4.74-69021
/opt/intel/mediasdk/opensource/libdrm/2.4.74-69021/libdrm-2.4.74.tar.bz2
/opt/intel/mediasdk/opensource/readme-dispatcher-linux.pdf
/opt/intel/mediasdk/opensource/mfx_dispatch
/opt/intel/mediasdk/opensource/mfx_dispatch/pkg-config.pc.cmake
/opt/intel/mediasdk/opensource/mfx_dispatch/include
/opt/intel/mediasdk/opensource/mfx_dispatch/include/mfx_plugin_cfg_parser.h
/opt/intel/mediasdk/opensource/mfx_dispatch/include/mfx_vector.h
/opt/intel/mediasdk/opensource/mfx_dispatch/include/mfx_dispatcher_defs.h
/opt/intel/mediasdk/opensource/mfx_dispatch/include/mfx_critical_section.h
/opt/intel/mediasdk/opensource/mfx_dispatch/include/mfx_dispatcher_log.h
/opt/intel/mediasdk/opensource/mfx_dispatch/include/mfx_plugin_hive.h
/opt/intel/mediasdk/opensource/mfx_dispatch/include/mfx_dxva2_device.h
/opt/intel/mediasdk/opensource/mfx_dispatch/include/mfx_win_reg_key.h
/opt/intel/mediasdk/opensource/mfx_dispatch/include/mfx_dispatcher.h
/opt/intel/mediasdk/opensource/mfx_dispatch/include/mfxaudio_exposed_functions_list.h
/opt/intel/mediasdk/opensource/mfx_dispatch/include/mfx_load_dll.h
/opt/intel/mediasdk/opensource/mfx_dispatch/include/mfx_load_plugin.h
/opt/intel/mediasdk/opensource/mfx_dispatch/include/mfx_exposed_functions_list.h
/opt/intel/mediasdk/opensource/mfx_dispatch/include/mfx_library_iterator.h
/opt/intel/mediasdk/opensource/mfx_dispatch/src
/opt/intel/mediasdk/opensource/mfx_dispatch/src/mfx_library_iterator.cpp
/opt/intel/mediasdk/opensource/mfx_dispatch/src/mfx_load_dll_linux.cpp
/opt/intel/mediasdk/opensource/mfx_dispatch/src/mfx_dxva2_device.cpp
/opt/intel/mediasdk/opensource/mfx_dispatch/src/mfx_dispatcher_log.cpp
/opt/intel/mediasdk/opensource/mfx_dispatch/src/mfx_win_reg_key.cpp
/opt/intel/mediasdk/opensource/mfx_dispatch/src/mfx_load_dll.cpp
/opt/intel/mediasdk/opensource/mfx_dispatch/src/mfx_plugin_hive_linux.cpp
/opt/intel/mediasdk/opensource/mfx_dispatch/src/main.cpp
/opt/intel/mediasdk/opensource/mfx_dispatch/src/mfx_critical_section_linux.cpp
/opt/intel/mediasdk/opensource/mfx_dispatch/src/mfx_library_iterator_linux.cpp
/opt/intel/mediasdk/opensource/mfx_dispatch/src/mfx_critical_section.cpp
/opt/intel/mediasdk/opensource/mfx_dispatch/src/mfx_plugin_cfg_parser.cpp
/opt/intel/mediasdk/opensource/mfx_dispatch/src/mfx_function_table.cpp
/opt/intel/mediasdk/opensource/mfx_dispatch/src/mfx_load_plugin.cpp
/opt/intel/mediasdk/opensource/mfx_dispatch/src/mfx_plugin_hive.cpp
/opt/intel/mediasdk/opensource/mfx_dispatch/src/mfx_dispatcher.cpp
/opt/intel/mediasdk/opensource/mfx_dispatch/CMakeLists.txt
/opt/intel/mediasdk/tools
/opt/intel/mediasdk/tools/tracer
/opt/intel/mediasdk/tools/tracer/README
/opt/intel/mediasdk/tools/tracer/libmfx-tracer.so
/opt/intel/mediasdk/tools/tracer/mfx-tracer-config
/opt/intel/mediasdk/tools/metrics_monitor
/opt/intel/mediasdk/tools/metrics_monitor/doc
/opt/intel/mediasdk/tools/metrics_monitor/doc/metricsmon-man.pdf
/opt/intel/mediasdk/tools/metrics_monitor/sample
/opt/intel/mediasdk/tools/metrics_monitor/sample/run.sh
/opt/intel/mediasdk/tools/metrics_monitor/sample/build.sh
/opt/intel/mediasdk/tools/metrics_monitor/sample/cttmetrics_sample.cpp
/opt/intel/mediasdk/tools/metrics_monitor/_bin
/opt/intel/mediasdk/tools/metrics_monitor/_bin/libcttmetrics.so
/opt/intel/mediasdk/tools/metrics_monitor/_bin/metrics_monitor
/opt/intel/mediasdk/tools/metrics_monitor/README
/opt/intel/mediasdk/tools/metrics_monitor/include
/opt/intel/mediasdk/tools/metrics_monitor/include/cttmetrics.h
/opt/intel/mediasdk/include
/opt/intel/mediasdk/include/mfxenc.h
/opt/intel/mediasdk/include/mfxdispatcherprefixedfunctions.h
/opt/intel/mediasdk/include/mfxcommon.h
/opt/intel/mediasdk/include/mfxstructures.h
/opt/intel/mediasdk/include/mfxaudio.h
/opt/intel/mediasdk/include/mfxjpeg.h
/opt/intel/mediasdk/include/mfxplugin++.h
/opt/intel/mediasdk/include/mfxvp8.h
/opt/intel/mediasdk/include/mfxplugin.h
/opt/intel/mediasdk/include/mfxvideo++.h
/opt/intel/mediasdk/include/mfxbrc.h
/opt/intel/mediasdk/include/mfxmvc.h
/opt/intel/mediasdk/include/mfxsession.h
/opt/intel/mediasdk/include/mfxastructures.h
/opt/intel/mediasdk/include/mfxvideo.h
/opt/intel/mediasdk/include/mfxla.h
/opt/intel/mediasdk/include/mfxfei.h
/opt/intel/mediasdk/include/mfxdefs.h
/opt/intel/mediasdk/include/mfxpak.h
/opt/intel/mediasdk/include/mfxaudio++.h
/opt/intel/mediasdk/include/mfxvstructures.h
/opt/intel/mediasdk/lib64
/opt/intel/mediasdk/lib64/hme_downscale_gen9.isa
/opt/intel/mediasdk/lib64/libmfxhw64-p.so.1.25
/opt/intel/mediasdk/lib64/HevcEnc_PB_genx.isa
/opt/intel/mediasdk/lib64/libmfxhw64.so
/opt/intel/mediasdk/lib64/AVCEncKernel_SKL_genx.isa
/opt/intel/mediasdk/lib64/HevcEnc_I_genx.isa
/opt/intel/mediasdk/lib64/hme_gen9.isa
/opt/intel/mediasdk/lib64/FEI_gen8.isa
/opt/intel/mediasdk/lib64/hme_gen8.isa
/opt/intel/mediasdk/lib64/hme_downscale_gen8.isa
/opt/intel/mediasdk/lib64/libmfxsw64.so
/opt/intel/mediasdk/lib64/iHD_drv_video.so
/opt/intel/mediasdk/lib64/hme_downscale_genx.isa
/opt/intel/mediasdk/lib64/libmfxsw64-p.so.1.25
/opt/intel/mediasdk/lib64/FEI_gen9.isa
/opt/intel/mediasdk/lib64/AVCEncKernel_BDW_genx.isa
/opt/intel/mediasdk/lib
/opt/intel/mediasdk/lib/lin_x64
/opt/intel/mediasdk/lib/lin_x64/libmfx.a

bacula – Device not in SD Device resources or no matching Media Type

If you happen to have such error in your bacula backup server:

20-Jun 00:19 bkp-srv-dir JobId 23741: No prior Full backup Job record found.
20-Jun 00:19 bkp-srv-dir JobId 23741: No prior or suitable Full backup found in catalog. Doing FULL backup.
20-Jun 00:19 bkp-srv-dir JobId 23741: Start Backup JobId 23741, Job=srv1-img.2018-06-20_00.19.09_56
20-Jun 00:19 bkp-srv-sd JobId 23741: Fatal error: Device reservation failed for JobId=23741: 
20-Jun 00:19 bkp-srv-dir JobId 23741: Fatal error: 
     Storage daemon didn't accept Device "srv1-img" because:
     3924 Device "srv1-img" not in SD Device resources or no matching Media Type.
20-Jun 00:19 bkp-srv-dir JobId 23741: Error: Bacula bkp-srv-dir 7.0.5 (28Jul14):
  Build OS:               x86_64-pc-linux-gnu ubuntu 16.04
  JobId:                  23741
  Job:                    srv1-img.2018-06-20_00.19.09_56
  Backup Level:           Full (upgraded from Incremental)
  Client:                 "srv1-img" 7.4.0 (16Jan16) x86_64-pc-linux-gnu,ubuntu,12.04
  FileSet:                "srv1-img" 2018-04-13 23:05:00
  Pool:                   "srv1-img-full" (From Job FullPool override)
  Catalog:                "DefaultCatalog" (From Client resource)
  Storage:                "srv1-img" (From Job resource)
  Scheduled time:         20-Jun-2018 00:19:06
  Start time:             20-Jun-2018 00:19:11
  End time:               20-Jun-2018 00:19:11
  Elapsed time:           0 secs
  Priority:               10
  FD Files Written:       0
  SD Files Written:       0
  FD Bytes Written:       0 (0 B)
  SD Bytes Written:       0 (0 B)
  Rate:                   0.0 KB/s
  Software Compression:   None
  VSS:                    no
  Encryption:             no
  Accurate:               no
  Volume name(s):         
  Volume Session Id:      3105
  Volume Session Time:    1521814321
  Last Volume Bytes:      0 (0 B)
  Non-fatal FD errors:    1
  SD Errors:              0
  FD termination status:  
  SD termination status:  
  Termination:            *** Backup Error ***

First thing to check is the status of Storage Devices you have with bconsole:

bkp-srv bacula # bconsole 
Connecting to Director localhost:9101
1000 OK: 1 bkp-srv-dir Version: 7.0.5 (28 July 2014)
Enter a period to cancel a command.
*status storage
Automatically selected Storage: bkp-srv
Connecting to Storage daemon bkp-srv at 78.140.166.26:9103

bkp-srv-sd Version: 7.0.5 (28 July 2014) x86_64-pc-linux-gnu ubuntu 16.04
Daemon started 20-Jun-18 00:43. Jobs: run=1, running=0.
 Heap: heap=135,168 smbytes=302,033 max_bytes=478,209 bufs=243 max_bufs=262
 Sizes: boffset_t=8 size_t=8 int32_t=4 int64_t=8 mode=0,0

Running Jobs:
No Jobs running.
====

Jobs waiting to reserve a drive:
====

Terminated Jobs:
 JobId  Level    Files      Bytes   Status   Finished        Name 
===================================================================
 23736  Incr          3    383.9 K  OK       19-Jun-18 14:05 srv1-dns
 23737  Incr          3    859.9 K  OK       19-Jun-18 14:05 srv2-dns
 23738  Incr        485    301.8 M  OK       19-Jun-18 14:05 srv3-dns
 23739  Incr         12    91.44 M  OK       19-Jun-18 14:05 srv4-dns
 23740  Full          1    1.358 G  OK       19-Jun-18 14:14 BackupCatalog
 23741  Full          0         0   Error    20-Jun-18 14:19 srv1-img
====

Device status:

Device "localstorage" (/mnt/storage/backups/localstorage) is not open.
==

Device "srv1-dns" (/mnt/storage/backups/srv1-dns) is not open.
==

Device "srv2-dns" (/mnt/storage/backups/srv2-dns) is not open.
==

Device "srv3-dns" (/mnt/storage/backups/srv3-dns) is not open.
==

Device "srv4-dns" (/mnt/storage/backups/srv4-dns) is not open.
==

Device "bkp-srv" (/mnt/storage/backups/bkp-srv) is not open.
==
====

Used Volume status:
====

====

As you can see there is no storage Device with name “srv1-img” as it expected from the error above.
You should check two files:

bacula-dir.conf

and

bacula-sd.conf

In file “/etc/bacula/bacula-dir.conf” you should have section like this:

Storage {
  Name = srv1-img
  Address = 10.10.10.10
  SDPort = 9103
  Password = mysecretpass
  Device = srv1-img
  Media Type = File
  Maximum Concurrent Jobs = 10
}

And in file “/etc/bacula/bacula-sd.conf”:

Device {
   Name = srv1-img
   Media Type = File
   Archive Device = /mnt/storage/backups/srv1-img
   LabelMedia = yes;
   Random Access = Yes;
   AutomaticMount = yes;
   RemovableMedia = no;
   AlwaysOpen = no;
 }

The important parts for this particular error (“3924 Device “srv1-img” not in SD Device resources or no matching Media Type.”) are highlighted:

  1. “Name” – the name of the storage
  2. “Media Type” – the type of the storage

You may also check the path of the storage – /mnt/storage/backups/srv1-img.

The two parameters must be the same! And if you verify these two configurations exist in the files and the above two parameters are the same and still get the error you MUST restart your SD (storage device) daemon, a “reload” command from the bconsole won’t work!

bkp-srv bacula # systemctl restart bacula-sd.service
bkp-srv bacula # systemctl status bacula-sd.service
* bacula-sd.service - LSB: Start Bacula Storage Daemon at boot time
   Loaded: loaded (/etc/init.d/bacula-sd; bad; vendor preset: enabled)
   Active: active (running) since Wed 2018-06-20 00:43:22 UTC; 4s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 25249 ExecStop=/etc/init.d/bacula-sd stop (code=exited, status=0/SUCCESS)
  Process: 25259 ExecStart=/etc/init.d/bacula-sd start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/bacula-sd.service
           `-25269 /usr/sbin/bacula-sd -c /etc/bacula/bacula-sd.conf -u bacula -g tape

Jun 20 00:43:22 bkp-srv systemd[1]: Starting LSB: Start Bacula Storage Daemon at boot time...
Jun 20 00:43:22 bkp-srv bacula-sd[25259]:  * Starting Bacula Storage daemon... bacula-sd
Jun 20 00:43:22 bkp-srv bacula-sd[25259]:    ...done.
Jun 20 00:43:22 bkp-srv systemd[1]: Started LSB: Start Bacula Storage Daemon at boot time.

And verify it restarted successfully.

Then you the storage device named “srv1-img” should appear in bconsole status storage command:
First thing to check is the status of Storage Devices you have with bconsole:

bkp-srv bacula # bconsole 
Connecting to Director localhost:9101
1000 OK: 1 bkp-srv-dir Version: 7.0.5 (28 July 2014)
Enter a period to cancel a command.
*status storage
Automatically selected Storage: bkp-srv
Connecting to Storage daemon bkp-srv at 78.140.166.26:9103

bkp-srv-sd Version: 7.0.5 (28 July 2014) x86_64-pc-linux-gnu ubuntu 16.04
Daemon started 20-Jun-18 00:43. Jobs: run=1, running=0.
 Heap: heap=135,168 smbytes=302,033 max_bytes=478,209 bufs=243 max_bufs=262
 Sizes: boffset_t=8 size_t=8 int32_t=4 int64_t=8 mode=0,0

Running Jobs:
No Jobs running.
====

Jobs waiting to reserve a drive:
====

Terminated Jobs:
 JobId  Level    Files      Bytes   Status   Finished        Name 
===================================================================
 23736  Incr          3    383.9 K  OK       19-Jun-18 14:05 srv1-dns
 23737  Incr          3    859.9 K  OK       19-Jun-18 14:05 srv2-dns
 23738  Incr        485    301.8 M  OK       19-Jun-18 14:05 srv3-dns
 23739  Incr         12    91.44 M  OK       19-Jun-18 14:05 srv4-dns
 23740  Full          1    1.358 G  OK       19-Jun-18 14:14 BackupCatalog
 23741  Full          0         0   Error    20-Jun-18 14:19 srv1-img
====

Device status:

Device "localstorage" (/mnt/storage/backups/localstorage) is not open.
==

Device "srv1-dns" (/mnt/storage/backups/srv1-dns) is not open.
==

Device "srv2-dns" (/mnt/storage/backups/srv2-dns) is not open.
==

Device "srv3-dns" (/mnt/storage/backups/srv3-dns) is not open.
==

Device "srv4-dns" (/mnt/storage/backups/srv4-dns) is not open.
==

Device "bkp-srv" (/mnt/storage/backups/bkp-srv) is not open.
==

Device "srv1-img" (/mnt/storage/backups/srv1-img) is not open.
==
====

Used Volume status:
====

====

Extras – rerun the job and verify the backup was executed.

bkp-srv bacula # bconsole 
Connecting to Director localhost:9101
1000 OK: 1 bkp-srv-dir Version: 7.0.5 (28 July 2014)
Enter a period to cancel a command.
*run
Automatically selected Catalog: DefaultCatalog
Using Catalog "DefaultCatalog"
A job name must be specified.
The defined Job resources are:
     1: BackupCatalog
     2: srv1-dns
     3: srv2-dns
     4: srv3-dns
     5: srv4-dns
     6: srv1-img
Select Job resource (1-33): 6
Run Backup job
JobName:  srv1-img
Level:    Incremental
Client:   srv1-img
FileSet:  srv1-img
Pool:     Default (From Job resource)
Storage:  srv1-img (From Job resource)
When:     2018-06-20 00:43:59
Priority: 10
OK to run? (yes/mod/no): yes
Job queued. JobId=23742
You have messages.
*messages 
20-Jun 00:44 bkp-srv-dir JobId 23742: No prior Full backup Job record found.
20-Jun 00:44 bkp-srv-dir JobId 23742: No prior or suitable Full backup found in catalog. Doing FULL backup.
20-Jun 00:44 bkp-srv-dir JobId 23742: Start Backup JobId 23742, Job=srv1-img.2018-06-20_00.44.01_00
20-Jun 00:44 bkp-srv-dir JobId 23742: Created new Volume="srv1-img-full0394", Pool="srv1-img-full", MediaType="File" in catalog.
20-Jun 00:44 bkp-srv-dir JobId 23742: Using Device "srv1-img" to write.
20-Jun 00:44 bkp-srv-sd JobId 23742: Labeled new Volume "srv1-img-full0394" on file device "srv1-img" (/mnt/storage/backups/srv1-img).
20-Jun 00:44 bkp-srv-sd JobId 23742: Wrote label to prelabeled Volume "srv1-img-full0394" on file device "srv1-img" (/mnt/storage/backups/srv1-img)
*messages
20-Jun 00:44 bkp-srv-dir JobId 23742: Volume used once. Marking Volume "srv1-img-full0394" as Used.
*messages
You have no messages.

How to install new gcc and development tools under CentOS 7

CentOS 7 is a very stable and conservative operating system. It offers us free enterprise-class operating system, which is compatible with Red Hat, but in many situations, we need a newer (not even a bleeding edge) tools from a trusted source not from an unknown third repository! Let’s say you are a developer and you need newer than GCC 4.8 (which is more than 5 years old and at present, we have stable GCC 8.x stable branch). There are repositories, which would surely break your system at one point even they do not break it at first installing a newer version of GNU GCC! There is a really easy and “official” way to have newer development software in CentOS 7 by using the Software Collection – https://www.softwarecollections.org/en/scls/
We can say these packages are officially maintained by CentOS 7 team and as a whole Red Hat/CentOS officials and community developers! The collection aims at

  1. Multiple version installed of the same components, you can have multiple GNU GCC installed without breaking your system or compiling manually. Not only GNU GCC, but you can also have PHP, Ruby, Python, famous databases like Mysql, MongoDB, PostgreSQL and many more
  2. To have a newer version of the same components, you can have multiple version of GNU GCC – you can install with no worries of breaking your system GNU GCC 6 and 7

This article is to install GNU GCC 7 on CentOS 7 and we have a new one to install GNU GCC 8How to install GNU GCC 8 on CentOS 7.

So here is how to install GNU GCC 7:

STEP 1) Install the repository in your system

yum install centos-release-scl

Here is the output in our system:

[srv@local ~]# yum -y install centos-release-scl
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.crazyfrogs.org
 * extras: centos.quelquesmots.fr
 * updates: centos.mirror.fr.planethoster.net
Resolving Dependencies
--> Running transaction check
---> Package centos-release-scl.noarch 0:2-2.el7.centos will be installed
--> Processing Dependency: centos-release-scl-rh for package: centos-release-scl-2-2.el7.centos.noarch
--> Running transaction check
---> Package centos-release-scl-rh.noarch 0:2-2.el7.centos will be installed
--> Finished Dependency Resolution

Dependencies Resolved

======================================================================================================================================================================
 Package                                          Arch                              Version                                   Repository                         Size
======================================================================================================================================================================
Installing:
 centos-release-scl                               noarch                            2-2.el7.centos                            extras                             12 k
Installing for dependencies:
 centos-release-scl-rh                            noarch                            2-2.el7.centos                            extras                             12 k

Transaction Summary
======================================================================================================================================================================
Install  1 Package (+1 Dependent package)

STEP 2) Install the development tools and GNU GCC 7, which is part of the “devtools” package

yum install devtoolset-7-gcc*

Here is the output in our system:

[srv@local ~]# yum install devtoolset-7-gcc*
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.crazyfrogs.org
 * extras: centos.quelquesmots.fr
 * updates: centos.mirror.fr.planethoster.net
centos-sclo-rh                                                                                                                                 | 3.0 kB  00:00:00     
centos-sclo-sclo                                                                                                                               | 2.9 kB  00:00:00     
(1/2): centos-sclo-sclo/x86_64/primary_db                                                                                                      | 281 kB  00:00:00     
(2/2): centos-sclo-rh/x86_64/primary_db                                                                                                        | 3.5 MB  00:00:03     
Resolving Dependencies
--> Running transaction check
---> Package devtoolset-7-gcc.x86_64 0:7.3.1-5.4.el7 will be installed
--> Processing Dependency: glibc-devel >= 2.2.90-12 for package: devtoolset-7-gcc-7.3.1-5.4.el7.x86_64
--> Processing Dependency: devtoolset-7-binutils >= 2.22.52.0.1 for package: devtoolset-7-gcc-7.3.1-5.4.el7.x86_64
--> Processing Dependency: devtoolset-7-runtime for package: devtoolset-7-gcc-7.3.1-5.4.el7.x86_64
--> Processing Dependency: libmpfr.so.4()(64bit) for package: devtoolset-7-gcc-7.3.1-5.4.el7.x86_64
--> Processing Dependency: libmpc.so.3()(64bit) for package: devtoolset-7-gcc-7.3.1-5.4.el7.x86_64
---> Package devtoolset-7-gcc-c++.x86_64 0:7.3.1-5.4.el7 will be installed
--> Processing Dependency: devtoolset-7-libstdc++-devel = 7.3.1-5.4.el7 for package: devtoolset-7-gcc-c++-7.3.1-5.4.el7.x86_64
---> Package devtoolset-7-gcc-gdb-plugin.x86_64 0:7.3.1-5.4.el7 will be installed
---> Package devtoolset-7-gcc-gfortran.x86_64 0:7.3.1-5.4.el7 will be installed
--> Processing Dependency: devtoolset-7-libquadmath-devel = 7.3.1-5.4.el7 for package: devtoolset-7-gcc-gfortran-7.3.1-5.4.el7.x86_64
--> Processing Dependency: libgfortran4 >= 7.1.1-2 for package: devtoolset-7-gcc-gfortran-7.3.1-5.4.el7.x86_64
---> Package devtoolset-7-gcc-plugin-devel.x86_64 0:7.3.1-5.4.el7 will be installed
--> Processing Dependency: mpfr-devel >= 2.2.1 for package: devtoolset-7-gcc-plugin-devel-7.3.1-5.4.el7.x86_64
--> Processing Dependency: libmpc-devel >= 0.8.1 for package: devtoolset-7-gcc-plugin-devel-7.3.1-5.4.el7.x86_64
--> Processing Dependency: gmp-devel >= 4.1.2-8 for package: devtoolset-7-gcc-plugin-devel-7.3.1-5.4.el7.x86_64
--> Running transaction check
---> Package devtoolset-7-binutils.x86_64 0:2.28-11.el7 will be installed
---> Package devtoolset-7-libquadmath-devel.x86_64 0:7.3.1-5.4.el7 will be installed
--> Processing Dependency: libquadmath for package: devtoolset-7-libquadmath-devel-7.3.1-5.4.el7.x86_64
---> Package devtoolset-7-libstdc++-devel.x86_64 0:7.3.1-5.4.el7 will be installed
---> Package devtoolset-7-runtime.x86_64 0:7.1-4.el7 will be installed
--> Processing Dependency: scl-utils >= 20120927-11 for package: devtoolset-7-runtime-7.1-4.el7.x86_64
--> Processing Dependency: /usr/sbin/semanage for package: devtoolset-7-runtime-7.1-4.el7.x86_64
--> Processing Dependency: /usr/sbin/semanage for package: devtoolset-7-runtime-7.1-4.el7.x86_64
---> Package glibc-devel.x86_64 0:2.17-222.el7 will be installed
--> Processing Dependency: glibc-headers = 2.17-222.el7 for package: glibc-devel-2.17-222.el7.x86_64
--> Processing Dependency: glibc-headers for package: glibc-devel-2.17-222.el7.x86_64
---> Package gmp-devel.x86_64 1:6.0.0-15.el7 will be installed
---> Package libgfortran4.x86_64 0:7.2.1-1.2.1.el7_5 will be installed
---> Package libmpc.x86_64 0:1.0.1-3.el7 will be installed
---> Package libmpc-devel.x86_64 0:1.0.1-3.el7 will be installed
---> Package mpfr.x86_64 0:3.1.1-4.el7 will be installed
---> Package mpfr-devel.x86_64 0:3.1.1-4.el7 will be installed
--> Running transaction check
---> Package glibc-headers.x86_64 0:2.17-222.el7 will be installed
--> Processing Dependency: kernel-headers >= 2.2.1 for package: glibc-headers-2.17-222.el7.x86_64
--> Processing Dependency: kernel-headers for package: glibc-headers-2.17-222.el7.x86_64
---> Package libquadmath.x86_64 0:4.8.5-28.el7_5.1 will be installed
---> Package policycoreutils-python.x86_64 0:2.5-22.el7 will be installed
--> Processing Dependency: setools-libs >= 3.3.8-2 for package: policycoreutils-python-2.5-22.el7.x86_64
--> Processing Dependency: libsemanage-python >= 2.5-9 for package: policycoreutils-python-2.5-22.el7.x86_64
--> Processing Dependency: audit-libs-python >= 2.1.3-4 for package: policycoreutils-python-2.5-22.el7.x86_64
--> Processing Dependency: python-IPy for package: policycoreutils-python-2.5-22.el7.x86_64
--> Processing Dependency: libqpol.so.1(VERS_1.4)(64bit) for package: policycoreutils-python-2.5-22.el7.x86_64
--> Processing Dependency: libqpol.so.1(VERS_1.2)(64bit) for package: policycoreutils-python-2.5-22.el7.x86_64
--> Processing Dependency: libcgroup for package: policycoreutils-python-2.5-22.el7.x86_64
--> Processing Dependency: libapol.so.4(VERS_4.0)(64bit) for package: policycoreutils-python-2.5-22.el7.x86_64
--> Processing Dependency: checkpolicy for package: policycoreutils-python-2.5-22.el7.x86_64
--> Processing Dependency: libqpol.so.1()(64bit) for package: policycoreutils-python-2.5-22.el7.x86_64
--> Processing Dependency: libapol.so.4()(64bit) for package: policycoreutils-python-2.5-22.el7.x86_64
---> Package scl-utils.x86_64 0:20130529-18.el7_4 will be installed
--> Running transaction check
---> Package audit-libs-python.x86_64 0:2.8.1-3.el7 will be installed
---> Package checkpolicy.x86_64 0:2.5-6.el7 will be installed
---> Package kernel-headers.x86_64 0:3.10.0-862.3.2.el7 will be installed
---> Package libcgroup.x86_64 0:0.41-15.el7 will be installed
---> Package libsemanage-python.x86_64 0:2.5-11.el7 will be installed
---> Package python-IPy.noarch 0:0.75-6.el7 will be installed
---> Package setools-libs.x86_64 0:3.3.8-2.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

======================================================================================================================================================================
 Package                                             Arch                        Version                                    Repository                           Size
======================================================================================================================================================================
Installing:
 devtoolset-7-gcc                                    x86_64                      7.3.1-5.4.el7                              centos-sclo-rh                       29 M
 devtoolset-7-gcc-c++                                x86_64                      7.3.1-5.4.el7                              centos-sclo-rh                       11 M
 devtoolset-7-gcc-gdb-plugin                         x86_64                      7.3.1-5.4.el7                              centos-sclo-rh                      123 k
 devtoolset-7-gcc-gfortran                           x86_64                      7.3.1-5.4.el7                              centos-sclo-rh                       11 M
 devtoolset-7-gcc-plugin-devel                       x86_64                      7.3.1-5.4.el7                              centos-sclo-rh                      1.3 M
Installing for dependencies:
 audit-libs-python                                   x86_64                      2.8.1-3.el7                                base                                 75 k
 checkpolicy                                         x86_64                      2.5-6.el7                                  base                                294 k
 devtoolset-7-binutils                               x86_64                      2.28-11.el7                                centos-sclo-rh                      5.3 M
 devtoolset-7-libquadmath-devel                      x86_64                      7.3.1-5.4.el7                              centos-sclo-rh                      153 k
 devtoolset-7-libstdc++-devel                        x86_64                      7.3.1-5.4.el7                              centos-sclo-rh                      2.6 M
 devtoolset-7-runtime                                x86_64                      7.1-4.el7                                  centos-sclo-rh                       20 k
 glibc-devel                                         x86_64                      2.17-222.el7                               base                                1.1 M
 glibc-headers                                       x86_64                      2.17-222.el7                               base                                678 k
 gmp-devel                                           x86_64                      1:6.0.0-15.el7                             base                                181 k
 kernel-headers                                      x86_64                      3.10.0-862.3.2.el7                         updates                             7.1 M
 libcgroup                                           x86_64                      0.41-15.el7                                base                                 65 k
 libgfortran4                                        x86_64                      7.2.1-1.2.1.el7_5                          updates                             676 k
 libmpc                                              x86_64                      1.0.1-3.el7                                base                                 51 k
 libmpc-devel                                        x86_64                      1.0.1-3.el7                                base                                 32 k
 libquadmath                                         x86_64                      4.8.5-28.el7_5.1                           updates                             188 k
 libsemanage-python                                  x86_64                      2.5-11.el7                                 base                                112 k
 mpfr                                                x86_64                      3.1.1-4.el7                                base                                203 k
 mpfr-devel                                          x86_64                      3.1.1-4.el7                                base                                 68 k
 policycoreutils-python                              x86_64                      2.5-22.el7                                 base                                454 k
 python-IPy                                          noarch                      0.75-6.el7                                 base                                 32 k
 scl-utils                                           x86_64                      20130529-18.el7_4                          base                                 24 k
 setools-libs                                        x86_64                      3.3.8-2.el7                                base                                619 k

Transaction Summary
======================================================================================================================================================================
Install  5 Packages (+22 Dependent packages)

Total download size: 73 M
Installed size: 188 M
Is this ok [y/d/N]: y

STEP 3) Use the installed tools.

Because using such a package with multiple complex packages you must configure multiple environment and links to the versions you installed replacing the ones from your base system, but the package comes with a handy tool, which executing it will configure everything and you are ready to go!

scl enable devtoolset-7 bash

And you’ll be in a bash environment, which is configured for GNU GCC 7.

[srv@local ~]# scl enable devtoolset-7 bash
[srv@local ~]# which gcc
/opt/rh/devtoolset-7/root/usr/bin/gcc
[srv@local ~]# gcc --version
gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

[root@srv ~]#

As long as you are in this bash shell (you do not type exit) your environment is configured to use GNU GCC 7 and you can use make, cmake to compile your projects with this newer version.

Before entering the devtoolset-7 bash shell, here is the error for the GNU GCC version:

[srv@local build]# cmake3 ../
-- The C compiler identification is GNU 4.8.5
-- The CXX compiler identification is GNU 4.8.5
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at CMakeLists.txt:29 (message):
  g++ version must be at least 5.1!


-- Configuring incomplete, errors occurred!
See also "/root/myproject/build/CMakeFiles/CMakeOutput.log".

After entering the devtoolset-7 bash shell, everything is configured OK and you can proceed with the “make”:

[srv@local build]# rm -R *
[srv@local build]# cmake3 ../ 
-- The C compiler identification is GNU 7.3.1
-- The CXX compiler identification is GNU 7.3.1
-- Check for working C compiler: /opt/rh/devtoolset-7/root/usr/bin/cc
-- Check for working C compiler: /opt/rh/devtoolset-7/root/usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /opt/rh/devtoolset-7/root/usr/bin/c++
-- Check for working CXX compiler: /opt/rh/devtoolset-7/root/usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Found OpenSSL: /usr/lib64/libcrypto.so (found version "1.0.2k") 
-- Configuring done
-- Generating done
-- Build files have been written to: /root/myproject/build
[srv@local ~]# make -j 8
Scanning dependencies of target myproject
[  3%] Building C object CMakeFiles/myproject.dir/myproject/backend/cpu/crypto/c_keccak.c.o
[  7%] Building C object CMakeFiles/myproject.dir/myproject/backend/cpu/crypto/c_groestl.c.o
[ 15%] Building C object CMakeFiles/myproject.dir/myproject/backend/cpu/crypto/c_blake256.c.o
...

*Update1

Here you can see how to install GNU GCC 8.3 – How to install GNU GCC 8 on CentOS 7

Replace an old IP with new one in all files of all sub-directories recursively

Here is a quick Linux tip for those who want to replace their old IP with new one for all files in a given directory and all its sub-directories recursively:

find [path-to-directory] -type f -print0 | xargs -0 sed -i 's[old-IP-escape-dot]/[new-IP]/g'

Quick example:

find /etc/nginx/ -type f -print0 | xargs -0 sed -i 's/192\.168\.10\.124/10.10.10.224/g'

As you can see the directory is “/etc/nginx” and replace it with the directory where are your (configuration) files are. We are replacing old IP=192.168.10.124 with the new one 10.10.10.224, so after the execution of the above line you’ll get modified files with IP 10.10.10.224.
You must escape the dot “.” in the IP!

Configure and mount samba share in Supermicro IPMI Virtual media (CD-ROM)

Having many Supermicro servers we used multiple times Virtual Media to install, diagnose and rescue Supermicro server. It is really simple to open the Console Redirection – java web start and just mount the ISO file from Virtual Media -> ISO File, but this way if your server is not local to your network and it is located in a colocation as it should be the connection is slow and in many cases bogus! Because it uses UDP it happened many times to remount or just to lose the connection and the media to disappear in the middle of the booting/loading process from the installation media, for example. And probably you have noticed there is additional option in the web interface of mounting ISO file from a windows share. Of course, in linux world it might be samba share as in our case and the share could be easily configured on a server in your colocation.
And we noticed was several times we have no problems using it, but some time the share could not be even saved and respectively could not be mounted. No error reported, just the edit boxes resets to blank and apparently everything was the same as the previous box, which it worked as a charm!
Here are the steps to enable one of your CentOS 7 servers to share a resource and to use it in your Supermicro IPMI KVM. The server is selinux enabled and the policy is Enforcing.

STEP 1) Install samba server in CentOS 7

[root@srv0 ~]# yum -y install samba samba-client samba-common policycoreutils-python
Loaded plugins: fastestmirror
Determining fastest mirrors
epel/x86_64/metalink                                                                                                                           |  30 kB  00:00:00     
 * base: mirrors.neterra.net
 * epel: mirrors.neterra.net
 * extras: mirrors.neterra.net
 * updates: mirrors.neterra.net
base                                                                                                                                           | 3.6 kB  00:00:00     
epel                                                                                                                                           | 3.2 kB  00:00:00     
extras                                                                                                                                         | 3.4 kB  00:00:00     
updates                                                                                                                                        | 3.4 kB  00:00:00     
(1/7): base/7/x86_64/group_gz                                                                                                                  | 166 kB  00:00:00     
(2/7): epel/x86_64/group_gz                                                                                                                    |  88 kB  00:00:00     
(3/7): base/7/x86_64/primary_db                                                                                                                | 5.9 MB  00:00:00     
(4/7): extras/7/x86_64/primary_db                                                                                                              | 147 kB  00:00:00     
(5/7): updates/7/x86_64/primary_db                                                                                                             | 2.0 MB  00:00:00     
(6/7): epel/x86_64/updateinfo                                                                                                                  | 932 kB  00:00:00     
(7/7): epel/x86_64/primary                                                                                                                     | 3.5 MB  00:00:00     
epel                                                                                                                                                      12584/12584
Package samba-client-4.7.1-6.el7.x86_64 already installed and latest version
Package samba-common-4.7.1-6.el7.noarch already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package samba.x86_64 0:4.7.1-6.el7 will be installed
--> Processing Dependency: samba-libs = 4.7.1-6.el7 for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: samba-common-tools = 4.7.1-6.el7 for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libxattr-tdb-samba4.so(SAMBA_4.7.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libaio.so.1(LIBAIO_0.4)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libaio.so.1(LIBAIO_0.1)(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libxattr-tdb-samba4.so()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Processing Dependency: libaio.so.1()(64bit) for package: samba-4.7.1-6.el7.x86_64
--> Running transaction check
---> Package libaio.x86_64 0:0.3.109-13.el7 will be installed
---> Package samba-common-tools.x86_64 0:4.7.1-6.el7 will be installed
---> Package samba-libs.x86_64 0:4.7.1-6.el7 will be installed
--> Processing Dependency: libpytalloc-util.so.2(PYTALLOC_UTIL_2.1.9)(64bit) for package: samba-libs-4.7.1-6.el7.x86_64
--> Processing Dependency: libpytalloc-util.so.2(PYTALLOC_UTIL_2.1.6)(64bit) for package: samba-libs-4.7.1-6.el7.x86_64
--> Processing Dependency: libpytalloc-util.so.2(PYTALLOC_UTIL_2.0.6)(64bit) for package: samba-libs-4.7.1-6.el7.x86_64
--> Processing Dependency: libpytalloc-util.so.2()(64bit) for package: samba-libs-4.7.1-6.el7.x86_64
--> Running transaction check
---> Package pytalloc.x86_64 0:2.1.10-1.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

======================================================================================================================================================================
 Package                                        Arch                               Version                                     Repository                        Size
======================================================================================================================================================================
Installing:
 samba                                          x86_64                             4.7.1-6.el7                                 base                             661 k
Installing for dependencies:
 libaio                                         x86_64                             0.3.109-13.el7                              base                              24 k
 pytalloc                                       x86_64                             2.1.10-1.el7                                base                              17 k
 samba-common-tools                             x86_64                             4.7.1-6.el7                                 base                             463 k
 samba-libs                                     x86_64                             4.7.1-6.el7                                 base                             275 k

Transaction Summary
======================================================================================================================================================================
Install  1 Package (+4 Dependent packages)

Total download size: 1.4 M
Installed size: 3.8 M
Downloading packages:
(1/5): libaio-0.3.109-13.el7.x86_64.rpm                                                                                                        |  24 kB  00:00:00     
(2/5): pytalloc-2.1.10-1.el7.x86_64.rpm                                                                                                        |  17 kB  00:00:00     
(3/5): samba-4.7.1-6.el7.x86_64.rpm                                                                                                            | 661 kB  00:00:00     
(4/5): samba-common-tools-4.7.1-6.el7.x86_64.rpm                                                                                               | 463 kB  00:00:00     
(5/5): samba-libs-4.7.1-6.el7.x86_64.rpm                                                                                                       | 275 kB  00:00:00     
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                 4.5 MB/s | 1.4 MB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : pytalloc-2.1.10-1.el7.x86_64                                                                                                                       1/5 
  Installing : samba-libs-4.7.1-6.el7.x86_64                                                                                                                      2/5 
  Installing : samba-common-tools-4.7.1-6.el7.x86_64                                                                                                              3/5 
  Installing : libaio-0.3.109-13.el7.x86_64                                                                                                                       4/5 
  Installing : samba-4.7.1-6.el7.x86_64                                                                                                                           5/5 
  Verifying  : libaio-0.3.109-13.el7.x86_64                                                                                                                       1/5 
  Verifying  : samba-libs-4.7.1-6.el7.x86_64                                                                                                                      2/5 
  Verifying  : samba-common-tools-4.7.1-6.el7.x86_64                                                                                                              3/5 
  Verifying  : samba-4.7.1-6.el7.x86_64                                                                                                                           4/5 
  Verifying  : pytalloc-2.1.10-1.el7.x86_64                                                                                                                       5/5 

Installed:
  samba.x86_64 0:4.7.1-6.el7                                                                                                                                          

Dependency Installed:
  libaio.x86_64 0:0.3.109-13.el7        pytalloc.x86_64 0:2.1.10-1.el7        samba-common-tools.x86_64 0:4.7.1-6.el7        samba-libs.x86_64 0:4.7.1-6.el7       

Complete!
[root@srv0 ~]#

STEP 2) Configure samba server CentOS 7 for the purpose of using it in IPMI Virtual share.

We are going to use a share without login credentials, because our KVM IP are always local ones and accessed via a vpn network and in addition only the network of the IPMI IPs could access the share (the samba server has a firewall configured).
Set the configuration file of the samba server – one directory storing the files shared with no login credentials (no username/password means anonymous login).
The configuration file is:

/etc/samba/smb.conf

[global]
workgroup = WINSHARE
server string = Samba Server %v
netbios name = centossrv
security = user
map to guest = bad user
dns proxy = no
#============================ Share Definitions ============================== 
[share]
path = /mnt/storage1/samba
browsable =yes
writable = no
guest ok = yes
read only = yes

As you can see we use “/mnt/storage1/samba” for our directory where the ISO files will be located. Change this path if you want to put your ISO files somewhere else.
Set the right permissions for the directory and selinux (if you server is not selinux enabled, you could skip the selinux part) and run the samba daemon:

[root@srv0 ~]# mkdir /mnt/storage1/samba
[root@srv0 ~]# chown -R nobody:nobody /mnt/storage1/samba/
[root@srv0 ~]# semanage fcontext -a -t samba_share_t '/mnt/storage1/samba(/.*)?'
[root@srv0 ~]# restorecon -Rv /mnt/storage1/samba/
restorecon reset /mnt/storage1/samba context unconfined_u:object_r:unlabeled_t:s0->unconfined_u:object_r:samba_share_t:s0
[root@srv0 ~]# cd /mnt/storage1/samba/
[root@srv0 samba]# wget http://mirror.leaseweb.com/centos/7.5.1804/isos/x86_64/CentOS-7-x86_64-Minimal-1804.iso
--2018-06-01 14:15:42--  http://mirror.leaseweb.com/centos/7.5.1804/isos/x86_64/CentOS-7-x86_64-Minimal-1804.iso
Resolving mirror.leaseweb.com (mirror.leaseweb.com)... 37.58.58.140, 2a00:c98:2030:a034::21
Connecting to mirror.leaseweb.com (mirror.leaseweb.com)|37.58.58.140|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 950009856 (906M) [application/octet-stream]
Saving to: ‘CentOS-7-x86_64-Minimal-1804.iso’

100%[============================================================================================================================>] 950,009,856 40.1MB/s   in 33s    

2018-06-01 14:16:15 (27.3 MB/s) - ‘CentOS-7-x86_64-Minimal-1804.iso’ saved [950009856/950009856]

[root@srv0 samba]# chown nobody:nobody CentOS-7-x86_64-Minimal-1804.iso
[root@srv0 samba]# systemctl start smb
[root@srv0 samba]# systemctl status smb
● smb.service - Samba SMB Daemon
   Loaded: loaded (/usr/lib/systemd/system/smb.service; disabled; vendor preset: disabled)
   Active: active (running) since Fri 2018-06-01 14:17:57 UTC; 20s ago
 Main PID: 31961 (smbd)
   Status: "smbd: ready to serve connections..."
    Tasks: 4
   Memory: 19.0M
   CGroup: /system.slice/smb.service
           ├─31961 /usr/sbin/smbd --foreground --no-process-group
           ├─31964 /usr/sbin/smbd --foreground --no-process-group
           ├─31965 /usr/sbin/smbd --foreground --no-process-group
           └─31966 /usr/sbin/smbd --foreground --no-process-group

Jun 01 14:17:56 srv0@local systemd[1]: Starting Samba SMB Daemon...
Jun 01 14:17:57 srv0@local smbd[31961]: [2018/06/01 14:17:57.761913,  0] ../lib/util/become_daemon.c:124(daemon_ready)
Jun 01 14:17:57 srv0@local smbd[31961]:   STATUS=daemon 'smbd' finished starting up and ready to serve connections
Jun 01 14:17:57 srv0@local systemd[1]: Started Samba SMB Daemon.

Configure the firewall to allow only connections from the IPMI KVM IP networks (or a single IP if you need to expose it in the Internet). You can work with build in zone “trusted”, but here we prefer more generic approach, which could be used not only for local IP networks but for real IPs:

[root@srv0 samba]# firewall-cmd --new-zone=smbshare --permanent
success
[root@srv0 samba]# firewall-cmd --zone=smbshare --add-source=192.168.7.0/24 --permanent
success
[root@srv0 samba]# firewall-cmd --zone=smbshare --add-service=samba --permanent
success
[root@srv0 samba]# firewall-cmd --zone=smbshare --add-service=samba-client --permanent
success
[root@srv00 samba]# firewall-cmd --reload
success
[root@srv00 samba]# firewall-cmd --zone=smbshare --list-all
smbshare (active)
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 192.168.7.0/24
  services: samba samba-client
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

[root@srv00 samba]#

STEP 3) Mount a disk in IPMI Virutal Media and boot from it

You could check our additional tutorial for it here –

STEP 3.1) Fill “Share host” and “Path image” only, because we configured our samba share without a password

main menu
Image on Windows Share

STEP 3.2) Upon a successful configuration saving you’ll get a confirmation dialog.

If no confirmation is shown you would not be able to mount the share, check out our Troubleshooting below!

main menu
Save configuration of Image on Windows Share

STEP 3.3) After saving the configuration click on “Mount” to load your ISO file in the virtual CD-ROM.

main menu
Mount Image on Windows Share

STEP 3.4) This dialog is always shown no matter there is such share or not: “Please check the device status to confirm whether the image is mounted/unmounted.”

main menu
Check device status

STEP 3.5) If the Supermicro IPMI accessed successfully the share resource it would mount it (load the ISO file as s CD in the virtual CD-ROM).

If not the three Device 1,2,3 will show the same: “No disk emulation set.”, which means the samba share is not accessible, check the permissions for the file and the firewall first (and the logs files, too).

main menu
There is an iso file mounted

* Troubleshooting

– if you click on button “Save” and just nothing happen – no dialog for successful saving and no dialog at all, probably there is a Javascript error, try to open the web interface from a different browser with clean history or click ctrl+F5 when loading the Virtual Media page! More in Cannot save and mount a Supermicro IPMI Virtual media mount – javascript error?

Cannot save and mount a Supermicro IPMI Virtual media mount – javascript error?

If you have multiple Supermicro servers with many different versions of IPMI KVM software installed it could happen your browser to cache some of the JavaScript and other static content to reuse them, but it could very unpleasant when you have different version of IPMI software on different servers and you might notice strange behavior of the web interface! Especially if you use ssh tunneling to access your multiple Supermicro IPMI KVMs from local IP on your computerTunneling the IPMI/KVM ports over ssh (supermicro ipmi ports)

One of the big problems we have when we wanted to mount a Virtual Media

from a windows share (samba share in our case) in IPMI KVM web interface -> Virtual Media -> CD-ROM image -> Save and when the Save is clicked just nothing happen (sometimes it triggers a reload of the iframe) – no error nothing and no confirmation for successful save! At first it seems the web interface accepted the “Share Host” and “Path to Image”:

main menu
Fill “Share Host” and “Path to Image”

but when you click “Mount” it does not mount the media:
main menu
no disk emulation set

and when you reload the CD-ROM image page you get again blank edit boxes or (the old values):
main menu
Old values

Probably a refresh will get the values blank:
main menu
Blank edit boxes

And if you check your browser console you’ll see there is a JavaScript error:

Uncaught ReferenceError: FocusOnErrorSpecificCharSet3 is not defined

The error might be different, this was in our case. the problem was

the browser cached “https://192.168.0.170/js/utils.js”

from one of the previous servers and there the version of the IPMI KVM software was different and apparently the

/js/utils.js

was throwing an error and not working (this function did not exist in some older Supermicro IPMI KVM versions, the file is there but it is slightly different). The solution is so simple!

Just refresh the page with CTRL+F5 or delete the history or use another browser.

Such a simple problem, but could lead to big problems if you try to use the mount virtual media. In fact look for problems in the JavaScript if you cannot save the configuration in the “Share Host” and “Path to Image”, because when saving the IPMI do not check if there is a live “Share Host” with a windows/samba share and an image there, the software just check for special in “Shared” characters like:

var SpeficCharFilter = /[,; &'"<>\\=$|^?*~`()\[\]\{\}#%]/;

And for the password:

var SpeficCharFilter = /[,; &'"<>\\=$|^?~`()\[\]\{\}#%]/;

But in both cases you’ll get an alert with an error.

So to summer it up if you put IP and a path to the windows share of Virtual Media and click “Save” and nothing happen – no confirmation for successful saving you got a JavaScript error and probably your browser cached one of the JavaScript files, the solution is simple just refresh with CTRL+F5 or load from different browser!
We often use ssh tunneling for IPMI KVM accessTunneling the IPMI/KVM ports over ssh (supermicro ipmi ports) and different version of the static files of the supermicro IPMI web interface are cached locally, which as you can see could have really bad consequences!

Working Save button

click Save button

main menu
Fill “Share Host” and “Path to Image”

Confirmation when everything is OK

main menu
The confirmation of image on windows share has been successfully set.

sysbench – FATAL: Too large position discovered in request

Here is a quick fix, which could take you a long time solving it even with Internet, because not so much information on the topic!
Let’s you want to run sysbench to check the IO of an SSD or NVME or your old hard drive? You run something like:

sysbench --test=fileio --file-total-size=4G --file-block-size=32K --file-num=128000 --num-threads=100 --max-requests=0 --max-time=300 --file-extra-flags=direct --file-test-mode=rndrd prepare
sysbench --test=fileio --file-total-size=4G --file-block-size=32K --file-num=128000 --num-threads=100 --max-requests=0 --max-time=300 --file-extra-flags=direct --file-test-mode=rndrd run
sysbench --test=fileio --file-total-size=4G --file-block-size=32K --file-num=128000 --num-threads=100 --max-requests=0 --max-time=300 --file-extra-flags=direct --file-test-mode=rndrd cleanup

Total of 4G files split in 128000 files and each file should be 32K seems OK at first, but you got:

FATAL: Too large position discovered in request

And the solution is simple enough:

file-total-size = file-num * file-block-size

And put the file-total-size in the units you used for file-block-size to be sure there are no rounding!
To put in simple words:

the size of file data should evenly divide by the number of files

So the above will transform to:

ssysbench --test=fileio --file-total-size=4096000K --file-block-size=32K --file-num=128000 --num-threads=100 --max-requests=0 --max-time=300 --file-extra-flags=direct --file-test-mode=rndrd prepare
ssysbench --test=fileio --file-total-size=4096000K --file-block-size=32K --file-num=128000 --num-threads=100 --max-requests=0 --max-time=300 --file-extra-flags=direct --file-test-mode=rndrd run
ssysbench --test=fileio --file-total-size=4096000K --file-block-size=32K --file-num=128000 --num-threads=100 --max-requests=0 --max-time=300 --file-extra-flags=direct --file-test-mode=rndrd cleanup

Here are the computes:

–file-total-size=4096000K = –file-num=128000 * –file-block-size=32K

Simple equation could save you a lot of time!

* Good run – no errors!

srv@local:/disks/1/test# sysbench --test=fileio --file-total-size=4096000K \
--file-block-size=32K --file-num=128000 --num-threads=100 --max-requests=0 \
--max-time=300 --file-extra-flags=direct --file-test-mode=rndrd prepare
sysbench 0.4.12:  multi-threaded system evaluation benchmark

128000 files, 32Kb each, 4000Mb total
Creating files for the test...
srv@local:/disks/1/test# echo 3 > /proc/sys/vm/drop_caches
srv@local:/disks/1/test# sysbench --test=fileio --file-total-size=4096000K \
--file-block-size=32K --file-num=128000 --num-threads=100 --max-requests=0 \
--max-time=300 --file-extra-flags=direct --file-test-mode=rndrd run
sysbench 0.4.12:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 100

Extra file open flags: 16384
128000 files, 32Kb each
3.9062Gb total file size
Block size 32Kb
Number of random requests for random IO: 0
Read/Write ratio for combined random IO test: 1.50
Periodic FSYNC enabled, calling fsync() each 100 requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing random read test
Threads started!
Time limit exceeded, exiting...
(last message repeated 99 times)
Done.

Operations performed:  4605591 Read, 0 Write, 0 Other = 4605591 Total
Read 140.55Gb  Written 0b  Total transferred 140.55Gb  (479.74Mb/sec)
15351.63 Requests/sec executed

Test execution summary:
    total time:                          300.0067s
    total number of events:              4605591
    total time taken by event execution: 29893.5378
    per-request statistics:
         min:                                  0.07ms
         avg:                                  6.49ms
         max:                                 40.43ms
         approx.  95 percentile:               7.06ms

Threads fairness:
    events (avg/stddev):           46055.9100/51.84
    execution time (avg/stddev):   298.9354/0.00


sysbench 0.4.12:  multi-threaded system evaluation benchmark

srv@local:/disks/1/test# sysbench --test=fileio --file-total-size=4096000K \
--file-block-size=32K --file-num=128000 --num-threads=100 --max-requests=0 \
--max-time=300 --file-extra-flags=direct --file-test-mode=rndrd run
Removing test files...

* Bad run – with the error: FATAL: Too large position discovered in request

srv@local:/disks/1/test# sysbench --test=fileio --file-total-size=4096M \
--file-block-size=32K --file-num=128000 --num-threads=100 --max-requests=0 \
--max-time=300 --file-extra-flags=direct --file-test-mode=rndrd prepare
sysbench 0.4.12:  multi-threaded system evaluation benchmark

128000 files, 32Kb each, 4096M total
Creating files for the test...
srv@local:/disks/1/test# echo 3 > /proc/sys/vm/drop_caches
srv@local:/disks/1/test# sysbench --test=fileio --file-total-size=4096M \
--file-block-size=32K --file-num=128000 --num-threads=100 --max-requests=0 \
--max-time=300 --file-extra-flags=direct --file-test-mode=rndrd run
sysbench 0.4.12:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 100

Extra file open flags: 16384
128000 files, 32.768Kb each
3.9999Gb total file size
Block size 32Kb
Number of random requests for random IO: 200000
Read/Write ratio for combined random IO test: 1.50
Periodic FSYNC enabled, calling fsync() each 100 requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing random read test
Threads started!
FATAL: Too large position discovered in request!
(last message repeated 30 times)
FATAL: Failed to read file! file: 80714 pos: 2 errno = 22 ()
FATAL: Too large position discovered in request!
(last message repeated 67 times)
Done.

Operations performed:  1 Read, 0 Write, 0 Other = 1 Total
Read 32Kb  Written 0b  Total transferred 32Kb  (114.71Kb/sec)
    3.58 Requests/sec executed

Test execution summary:
    total time:                          0.2790s
    total number of events:              1
    total time taken by event execution: 0.0038
    per-request statistics:
         min:                                  3.79ms
         avg:                                  3.79ms
         max:                                  3.79ms
         approx.  95 percentile:         10000000.00ms

Threads fairness:
    events (avg/stddev):           0.0100/0.10
    execution time (avg/stddev):   0.0000/0.00
srv@local:/disks/1/test# sysbench --test=fileio --file-total-size=4096M \
--file-block-size=32K --file-num=128000 --num-threads=100 --max-requests=0 \
--max-time=300 --file-extra-flags=direct --file-test-mode=rndrd cleanup
Removing test files...

Receive multicast packets on CentOS 7 (and other linux distros)

There are so many web pages and blogs post for multicast traffic under linux and how to enable it, but in most of them something always is missing and if you follow them probably you’ll end up with not working setup and you’ll have to search the Internet again – some do need tuning of the linux kernel variables not to drop packets, some need tuning the firewall to allow protocols.
Here we present a real working example of a server under CentOS 7, our server has two network ports:

  1. eno1 – local unicast traffic with local IP
  2. eno2 – multicast traffic

We have multicast TV streams, which we can use through our second network interface and we want to use ffmpeg to encode the video. We have “Multicast Group:port” for every stream, which is like “IP:PORT” and in our case the port is always the same 5000. Here are the steps you need to do if you want to receive these streams.

STEP 1) Set networking and make the configuration permanent.

In CentOS 7 the network of eno2, set a local IP, in fact it does not matter the exact IP, we used 10.10.10.0/24 local network.

/etc/sysconfig/network-scripts/ifcfg-eno2

TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=eno2
UUID=2481b907-5e6e-45f9-ab96-7091e4e7d6d1
ONBOOT=yes
HWADDR=0c:c4:7a:44:87:a5
IPADDR0=10.10.10.152
PREFIX0=24
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
NM_CONTROLLED=no

The important lines are highlighted. Configure the network adapter on boot and set 10.10.10.152.
Second and very important add a static route for the multicast traffic for the network interface, which is supposed to have the multicast streams (in our case “eno2”). Use file:

/etc/sysconfig/network-scripts/route-eno2

224.0.0.0/4 dev eno2

STEP 2) Kernel variables tuning

[srv@local ~]# for i in /proc/sys/net/ipv4/conf/*/rp_filter ; do echo 0 > "$i";   done
[srv@local ~]# echo "0" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

Turn off “Reverse Path Filtering” for all interfaces (rp_filter) and ping for the multicast address to work properly we need to disable icmp_echo_ignore_broadcasts. By default kernel drops these packets so you need this tuning or your application will not receive a single udp packet.
You could save the above two lines in

/etc/rc.local

and do not forget to set proper access rights:

[srv@local ~]# chmod 755 /etc/rc.local

Or you can use

/etc/sysctl.conf

Add the following lines in it:

net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.eno2.rp_filter=0
net.ipv4.icmp_echo_ignore_broadcasts=0

STEP 3) Allow UDP traffic (and/or IGMP) if you have firewall

Here the port is the “Multicast Group:port” of the IP your application will join (look the example below)

  1. firewalld – the default with CentOS 7:
    [srv@local ~]# firewall-cmd --new-zone=multicast --permanent
    [srv@local ~]# firewall-cmd --zone=multicast --add-interface=eno2 --permanent
    [srv@local ~]# firewall-cmd --zone=multicast --add-protocol=igmp --permanent
    [srv@local ~]# firewall-cmd --zone=multicast --add-protocol=icmp --permanent
    [srv@local ~]# firewall-cmd --zone=multicast --add-source=224.0.0.0/4 --permanent
    [srv@local ~]# firewall-cmd --zone=multicast --add-source=10.10.10.0/24 --permanent
    [srv@local ~]# firewall-cmd --zone=multicast --add-port=5000/udp --permanent
    [srv@local ~]# firewall-cmd --reload
    

    We make a new zone for the multicast streams and add our interface, the sources and the port we use. We added IGMP, because in some use cases it is needed (in our it could work without IGMP added)

  2. iptables – if you have disabled firewall and still you wanted to have a firewall:
    # allow multicast addresses
    [srv@local ~]# iptables -A INPUT -p udp -d 5000 -j ACCEPT
    [srv@local ~]# iptables -A INPUT -s 224.0.0.0/4 -j ACCEPT
    [srv@local ~]# iptables -A INPUT -p igmp -d 224.0.0.0/4 -j ACCEPT
    [srv@local ~]# iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
    

    Probably it is a good idea to see if you have current rules (with “iptables -L -v -n” or even “iptables-save”) and to see if you should use “-A” (above) or “-I” to insert the rules above the DROP rule(s).

* Example with ffmpeg joining to a multicast group

[srv@local ~]# ffmpeg -i 'udp://239.100.10.5:5000'
ffmpeg version 2.8.6 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 5.3.0 (Gentoo 5.3.0 p1.0, pie-0.6.5)
  configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/share/man --enable-shared --cc=x86_64-pc-linux-gnu-gcc --cxx=x86_64-pc-linux-gnu-g++ --ar=x86_64-pc-linux-gnu-ar --optflags='-march=native -O2 -msse3 -fomit-frame-pointer -pipe' --disable-static --enable-avfilter --enable-avresample --disable-stripping --enable-nonfree --enable-version3 --enable-nonfree --disable-indev=alsa --disable-indev=oss --disable-outdev=alsa --disable-outdev=oss --enable-version3 --enable-bzlib --disable-runtime-cpudetect --disable-debug --disable-doc --disable-gnutls --enable-gpl --enable-hardcoded-tables --enable-iconv --disable-lzma --enable-network --enable-openssl --enable-postproc --disable-libsmbclient --enable-ffplay --enable-sdl --disable-vaapi --disable-vdpau --enable-xlib --disable-libxcb --disable-libxcb-shm --disable-libxcb-xfixes --enable-zlib --disable-libcdio --disable-libiec61883 --disable-libdc1394 --enable-libcaca --disable-openal --disable-opengl --disable-libv4l2 --disable-libpulse --enable-libopencore-amrwb --enable-libopencore-amrnb --disable-libfdk-aac --enable-libopenjpeg --disable-libbluray --disable-libcelt --disable-libgme --enable-libgsm --disable-libmodplug --disable-libopus --disable-libquvi --disable-librtmp --disable-libssh --disable-libschroedinger --disable-libspeex --enable-libvorbis --enable-libvpx --disable-libzvbi --disable-libbs2b --disable-libflite --disable-frei0r --disable-libfribidi --enable-fontconfig --disable-ladspa --disable-libass --enable-libfreetype --disable-libsoxr --enable-pthreads --enable-libvo-aacenc --disable-libvo-amrwbenc --enable-libmp3lame --disable-libaacplus --enable-libfaac --disable-libsnappy --enable-libtheora --disable-libtwolame --disable-libwavpack --disable-libwebp --enable-libx264 --disable-libx265 --enable-libxvid --enable-x11grab --disable-amd3dnow --disable-amd3dnowext --disable-fma4 --disable-xop --cpu=host
  libavutil      54. 31.100 / 54. 31.100
  libavcodec     56. 60.100 / 56. 60.100
  libavformat    56. 40.101 / 56. 40.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 40.101 /  5. 40.101
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.101 /  1.  2.101
  libpostproc    53.  3.100 / 53.  3.100
[mpeg2video @ 0xf2fa80] Invalid frame dimensions 0x0.
    Last message repeated 10 times
Input #0, mpegts, from 'udp://239.100.10.5:5000':
  Duration: N/A, start: 87846.990933, bitrate: 5659 kb/s
  Program 5 
    Metadata:
      service_name    : ?TVtest
      service_provider: ?ss
    Stream #0:0[0x33]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv), 720x576 [SAR 64:45 DAR 16:9], 5467 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x34](bul): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 192 kb/s
At least one output file must be specified

As you can see to join the multicast group and ffmpeg to start encoding you use “udp://239.100.10.5:5000” for input stream parameter. Here ffmpeg joins the group and receives packets successfully.

* Generic example to receive UDP multicast stream

You may use the following example in any linux distro like Ubuntu, CentOS 7, Gentoo, OpenSuse and many others to receive muticast streams

[srv@local ~]# #ifconfig or ip - use one of them
[srv@local ~]# #ifconfig
[srv@local ~]# ifconfig eno1 10.10.10.152/24 up
[srv@local ~]# route add -net 224.0.0.0 netmask 240.0.0.0 eno2
[srv@local ~]# #or ip
[srv@local ~]# ip addr add 10.10.10.152/24 dev eno2
[srv@local ~]# ip link set eno2 up
[srv@local ~]# #allow multicast packets to the server
[srv@local ~]# for i in /proc/sys/net/ipv4/conf/*/rp_filter ; do echo 0 > "$i";   done
[srv@local ~]# echo "0" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
[srv@local ~]# #if you have firewall use the following for the iptables OR firewalld after that - use only one of them!
[srv@local ~]# iptables -A INPUT -p udp -d 5000 -j ACCEPT
[srv@local ~]# iptables -A INPUT -s 224.0.0.0/4 -j ACCEPT
[srv@local ~]# iptables -A INPUT -p igmp -d 224.0.0.0/4 -j ACCEPT
[srv@local ~]# iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
[srv@local ~]# #firewalld setup
[srv@local ~]# firewall-cmd --new-zone=multicast --permanent
[srv@local ~]# firewall-cmd --zone=multicast --add-interface=eno2 --permanent
[srv@local ~]# firewall-cmd --zone=multicast --add-protocol=igmp --permanent
[srv@local ~]# firewall-cmd --zone=multicast --add-protocol=icmp --permanent
[srv@local ~]# firewall-cmd --zone=multicast --add-source=224.0.0.0/4 --permanent
[srv@local ~]# firewall-cmd --zone=multicast --add-source=10.10.10.0/24 --permanent
[srv@local ~]# firewall-cmd --zone=multicast --add-port=5000/udp --permanent
[srv@local ~]# firewall-cmd --reload

Review of freshly installed Fedora 27 Cinnamon Desktop

After the tutorial of Install Fedora 27 Cinnamon Desktop this tutorial is mainly to see what to expect from a freshly installed Fedora 27 Cinnamon – the look and feel of the Cinnamon GUI – http://developer.linuxmint.com/projects/cinnamon-projects.html
The idea of this tutorial is just to see what to expect from Fedora 27 Cinnamonthe look and feel of the GUI, the default installed programs and their look and how to do some basic steps with them, it is included also screenshots of the Cinnamon settings programs. Here you’ll find more than 100 screenshots and not so many text we do not want to turn this review of many text and version information and 3 meaningless screenshot, which you cannot see anything for the user interface, which these days is the primary goal of a Desktop system. You can expect more of this kind reviews in the future…
Cinnamon derives from GNOME 3 and it follows the traditional desktop conventions. After the release of GNOME 3 and GNOME Shell (and abandoning GNOME 2) a fork of GNOME 3 was made and Cinnamon was born to follow traditional desktop not the “shell” interface of GNOME 3. At present Cinnamon is not a front-end on top of the GNOME any more despite it still uses GTK+. If you search for a GTK+ based GNOME 2 or xfce similar linux desktop GUI you might reach a good option with Cinnamon. Its look and feel is more like KDE than MATE, which follows more strictly GNOME 2 layout.
Cinnamon is developed by Linux Mint team, which is yet another Linux distro.You can check it here – https://linuxmint.com/ As you may see from the screenshots below the main idea is to have a taskbar situated bottom of the screen with a “start” button and all programs arranged in different categories – the traditional Desktop behavior. The desktop feels fast, but there are reports of using greater memory footprint.

SCREENSHOT 1)

main menu
Keep on reading!

Install Fedora 27 Cinnamon Desktop

This tutorial will show you the simple steps of installing a modern Linux Distribution like Fedora 27 Cinnamon for the user graphical interface. Cinnamon derives from GNOME 3 and it follows the traditional desktop conventions. After the release of GNOME 3 and GNOME Shell (and abandoning GNOME 2) a fork of GNOME 3 was made and Cinnamon was born to follow traditional desktop not the “shell” interface of GNOME 3. At present Cinnamon is not a front-end on top of the GNOME any more despite it still uses GTK+. If you search for a GTK+ based GNOME 2 or xfce similar linux desktop GUI you might reach a good option with Cinnamon. Its look and feel is more like KDE than MATE, which follows more strictly GNOME 2 layout.
First we present the basic steps for installing the Operating system in addition to your present operating systems (here we have two: Windows 10 and Ubuntu) and then you can see some screenshots of the installed system and the look and feel of it. We have another tutorials showing more screenshots of the installed and working Fedora 27 Cinnamon (Gnome and KDE plasma) – so you can decide which of them to try first – coming soon. All of the installation setups are very similar for all GUIs of Fedora 27 it loads a live edition of the version of Fedora 27 you install and then the setup is launched by the user, the setup almost identical in all editions, but we do not want to give you a tutorials with “spaghetti” and unstructured flow of steps to follow.

We used the following ISO for the installation process:

https://download.fedoraproject.org/pub/fedora/linux/releases/27/Spins/x86_64/iso/Fedora-Cinnamon-Live-x86_64-27-1.6.iso

It is a LIVE image so you can try it before installing. The easiest way is just to download the image and burn it to a DVD disk and then follow the installation below:

STEP 1) If you booted from the DVD you would get this first screen – select “Start Fedora-Cinnamon-Live 27” and hit Enter

main menu
Start Fedora-Cinnamon-Live 27

Keep on reading!