Media Server Studio CentOS Update Options

ID 672147
Updated 3/13/2016
Version Latest
Public

author-image

By

This article covers options for updating Intel(R) Media Server Studio releases based on 16.4 Linux drivers, such as Media Server Studio 2015 R6 and Media Server Studio 2016. 

These releases have a "Gold" OS of CentOS 7.1.1503.  Please keep in mind that this is still the only configuration with full "Gold" support status, and changes such as those proposed below will make your configuration a "Generic" install.  This means that the environment does not get extensive validation and managing the changes is up to you.  Any issues will need to be reproducible in a "Gold" environment.     

Two straightforward approaches are available:

  1. Enable updates for CentOS 7.1.1503
  2. Use Generic install on CentOS 7.2 and enable updates

A third option is to manually merge the Generic or CentOS 7.1 patches with the 7.2 kernel.  However, this is a more difficult approach involving more time and risk.  As with any changes to kernel patches and open source graphics stack components, Intel provides full source but help with integrating changes is out of our scope.

Option 1:Enable updates for CentOS 7.1.1503

The Media Server Studio install process updates

  • The Linux kernel and i915 module
  • graphics stack components: libdrm and libva
  • The user-mode graphics driver (iHD)

All of these components must have the correct version to enable Media Server Studio features.  To avoid changes from package updates, add them to the exclude list in /etc/yum.repos.d/CentOS-Base.repo. 

Add "exclude=kernel,drm*,libdrm*,libva*" to the base and updates sections as below:

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
exclude=kernel,drm*,libdrm*,libva*

#released updates 
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
exclude=kernel,drm*,libdrm*,libva*

 

Option 2: Generic install on CentOS 7.2

This is the best option to get the latest package updates from Redhat/CentOS.

Recommended steps for CentOS 7.2:

  1. Install CentOS 7.2 from .iso image (fresh install has many advantages over upgrading in place)
  2. Add "exclude=kernel,drm*,libdrm*,libva*" to the base and updates sections of /etc/yum.repos.d/CentOS-Base.repo as in the CentOS 7.1 section above.
  3. Run the steps in the  'install_Generic.sh' script (below) from the MediaServerStudio*/SDK*/Generic directory.
  4. Reboot

 

Please note: the script below is not heavily validated and only intended to describe the steps required.

install_Generic.sh

#!/usr/bin/bash -v

echo "install prerequisite packages"
yum -y -t groupinstall "Development Tools"
yum -y -t install kernel-headers kernel-devel bc
yum -y -t install wget bison ncurses-devel hmaccalc zlib-devel binutils-devel elfutils-libelf-devel rpm-build redhat-rpm-config asciidoc hmaccalc perl-ExtUtils-Embed pesign xmlto audit-libs-devel binutils-devel elfutils-devel elfutils-libelf-devel newt-devel numactl-devel pciutils-devel python-devel zlib-devel


find . -name 'libdrm*' -exec rm {} \;
find . -name 'libkms*' -exec rm {} \;
find . -name 'libva*' -exec rm {} \;

cp -r etc/* /etc
cp -r opt/* /opt
/bin/cp -r usr/* /usr

echo "Getting kernel source"

GENERIC_KERNEL_SRC_PKG=linux-3.14.5.tar.xz
GENERIC_KERNEL_WEB_PATH=https://www.kernel.org/pub/linux/kernel/v3.x/

if [ ! -f ./$GENERIC_KERNEL_SRC_PKG ]; then
     wget $GENERIC_KERNEL_WEB_PATH/$GENERIC_KERNEL_SRC_PKG
fi


if [ ! -f ./$GENERIC_KERNEL_SRC_PKG ]; then
    echo -e "Failed to get $GENERIC_KERNEL_SRC_PKG, please try download it manually from $GENERIC_KERNEL_WEB_PATH, put it same folder as this script, then run this script again." 1>&2
    exit 1
fi

tar -xJf linux-3.14.5.tar.xz

echo "Applying kernel patches"
cp /opt/intel/mediasdk/opensource/patches/kmd/3.14.5/intel-kernel-patches.tar.bz2 .

tar -xjf intel-kernel-patches.tar.bz2
cd linux-3.14.5
for i in ../intel-kernel-patches/*.patch; do patch -p1 < $i; done

echo "Building kernel"

make olddefconfig
make -j 8
make modules_install
make install