CentOS Intel Media SDK Server インストール
CentOSでQSVをするには、Intel Media SDK Serverのインストールが必要になる。
まず必要なものをインストールする。
開発ツールをインストールしていなければインストールする。
加えて、以下のものが必要らしい。
なんかいろいろインストールされた。
USB3.0接続だが、SSDなので、インストールは高速だった。
Intel Media SDK Serverのインストール
Intel Media SDK Serverからダウンロードする。
Linux用のmediaserverstudioessentials2015r6.tar.gzがダウンロードされてきた。
まずは解凍する。
中にはいろいろ入っている。

その中で、SDK2015Production16.4.2.1.tar.gzを解凍する。
さらにその中のGenericの中にあるアーカイブを解凍する。

いろいろ出てきて、こんな感じ。

無事終われば、+++ HotFixes installed, cleanupと出る。

次に、自分のユーザーIDをvideo groupに追加する。
追加されたか確認。
次に、CentOS用の、Media SDK対応Kernelのビルド・インストールを行う。このビルドは別に専用のディレクトリ、/MSSディレクトリを作ってそこで行う。
install_scripts_centos_16.4.2.1-39163.tar.gzというのがあるので、これを解凍する。中からでてきた./install_sdk_UMD_CentOS.sh を実行する。

ログ
いよいよkernelのビルドを行う。

かなりの時間がかかる。
終わるとこんな感じに。

ビルドが終わったのでインストールを行う。より古いバージョンのものをインストールするので、--oldpackageをつける必要があった。

ログ
なんか警告が出ているが、よくわからんし気にしないでおく。
カーネルがインストールできたら、再起動する。
カーネルが有効か、確認する。なんか表示されればよいらしい。

動作の確認
Media SDK付属のバイナリで、テスト実行を行う。

問題なくQSVエンコードが実行できたようだ。
libmfx.aの配置がどうの、という記述がネット上に存在するが、QSVEncは自前でlibmfxを含むので気にしない。
まず必要なものをインストールする。
開発ツールをインストールしていなければインストールする。
sudo yum groupinstall "Development Tools"
加えて、以下のものが必要らしい。
sudo yum install mesa-dri-drivers redhat-lsb net-tools
なんかいろいろインストールされた。
USB3.0接続だが、SSDなので、インストールは高速だった。
Intel Media SDK Serverのインストール
Intel Media SDK Serverからダウンロードする。
Linux用のmediaserverstudioessentials2015r6.tar.gzがダウンロードされてきた。
まずは解凍する。
tar -xvf mediaserverstudioessentials2015r6.tar.gz
中にはいろいろ入っている。

その中で、SDK2015Production16.4.2.1.tar.gzを解凍する。
cd MediaServerStudioEssentials2015R6/
tar -xvf SDK2015Production16.4.2.1.tar.gz
cd SDK2015Production16.4.2.1/
さらにその中のGenericの中にあるアーカイブを解凍する。

tar -xvf intel-linux-media-ocl_generic_16.4.2.1-39163_64bit.tar.gz
いろいろ出てきて、こんな感じ。

sudo ./install_media.sh
無事終われば、+++ HotFixes installed, cleanupと出る。

次に、自分のユーザーIDをvideo groupに追加する。
sudo usermod -a -G wheel,video rigaya
追加されたか確認。
[rigaya@localhost Generic]$ sudo usermod -a -G wheel,video rigaya
[rigaya@localhost Generic]$ cat /etc/group | grep video
video:x:39:rigaya
次に、CentOS用の、Media SDK対応Kernelのビルド・インストールを行う。このビルドは別に専用のディレクトリ、/MSSディレクトリを作ってそこで行う。
install_scripts_centos_16.4.2.1-39163.tar.gzというのがあるので、これを解凍する。中からでてきた./install_sdk_UMD_CentOS.sh を実行する。
cd ../CentOS/
sudo mkdir /MSS
sudo chmod 777 /MSS
cp * /MSS
cd /MSS
tar -xvf install_scripts_centos_16.4.2.1-39163.tar.gz
sudo ./install_sdk_UMD_CentOS.sh

ログ
[rigaya@localhost MSS]$ sudo ./install_sdk_UMD_CentOS.sh
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: ftp.iij.ad.jp
* epel: ftp.riken.jp
* extras: ftp.iij.ad.jp
* updates: ftp.iij.ad.jp
Maybe run: yum groups mark install (see man yum)
インストールまたは更新に利用できるいくつかの要求されたグループにパッケージがありません
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: ftp.iij.ad.jp
* epel: ftp.kddilabs.jp
* extras: ftp.iij.ad.jp
* updates: ftp.iij.ad.jp
パッケージ kernel-headers-3.10.0-229.14.1.el7.x86_64 はインストール済みか最新バージョンです
パッケージ kernel-devel-3.10.0-229.14.1.el7.x86_64 はインストール済みか最新バージョンです
何もしません
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: ftp.iij.ad.jp
* epel: ftp.kddilabs.jp
* extras: ftp.iij.ad.jp
* updates: ftp.iij.ad.jp
パッケージ bison-2.7-4.el7.x86_64 はインストール済みか最新バージョンです
パッケージ ncurses-devel-5.9-13.20130511.el7.x86_64 はインストール済みか最新バージョンです
パッケージ hmaccalc-0.9.13-4.el7.x86_64 はインストール済みか最新バージョンです
パッケージ zlib-devel-1.2.7-13.el7.x86_64 はインストール済みか最新バージョンです
パッケージ binutils-devel-2.23.52.0.1-30.el7_1.2.x86_64 はインストール済みか最新バージョンです
パッケージ elfutils-libelf-devel-0.160-1.el7.x86_64 はインストール済みか最新バージョンです
パッケージ rpm-build-4.11.1-25.el7.x86_64 はインストール済みか最新バージョンです
パッケージ redhat-rpm-config-9.1.0-68.el7.centos.noarch はインストール済みか最新バージョンです
パッケージ asciidoc-8.6.8-5.el7.noarch はインストール済みか最新バージョンです
パッケージ hmaccalc-0.9.13-4.el7.x86_64 はインストール済みか最新バージョンです
パッケージ perl-ExtUtils-Embed-1.30-285.el7.noarch はインストール済みか最新バージョンです
パッケージ pesign-0.109-9.el7.x86_64 はインストール済みか最新バージョンです
パッケージ xmlto-0.0.25-7.el7.x86_64 はインストール済みか最新バージョンです
パッケージ audit-libs-devel-2.4.1-5.el7.x86_64 はインストール済みか最新バージョンです
パッケージ binutils-devel-2.23.52.0.1-30.el7_1.2.x86_64 はインストール済みか最新バージョンです
パッケージ elfutils-devel-0.160-1.el7.x86_64 はインストール済みか最新バージョンです
パッケージ elfutils-libelf-devel-0.160-1.el7.x86_64 はインストール済みか最新バージョンです
パッケージ newt-devel-0.52.15-4.el7.x86_64 はインストール済みか最新バージョンです
パッケージ numactl-devel-2.0.9-5.el7_1.x86_64 はインストール済みか最新バージョンです
パッケージ pciutils-devel-3.2.1-4.el7.x86_64 はインストール済みか最新バージョンです
パッケージ python-devel-2.7.5-18.el7_1.1.x86_64 はインストール済みか最新バージョンです
パッケージ zlib-devel-1.2.7-13.el7.x86_64 はインストール済みか最新バージョンです
何もしません
準備しています... ################################# [100%]
更新中 / インストール中...
1:libdrm-2.4.56-39163.el7 ################################# [ 9%]
2:libva-1.3.1-staging.20130628.3916################################# [ 18%]
3:intel-linux-media-16.4.2.1-39163.################################# [ 27%]
Install finished. Please reboot.
4:intel-opencl-1.2-16.4-39163.el7 ################################# [ 36%]
5:intel-opencl-1.2-devel-16.4-39163################################# [ 45%]
6:intel-linux-media-devel-16.4.2.1-################################# [ 55%]
7:libva-devel-1.3.1-staging.2013062################################# [ 64%]
8:libva-utils-1.3.1-staging.2013062################################# [ 73%]
9:libdrm-devel-2.4.56-39163.el7 ################################# [ 82%]
10:drm-utils-2.4.56-39163.el7 ################################# [ 91%]
整理中 / 削除中...
11:libdrm-2.4.56-2.el7 ################################# [100%]
+++ Intstall complete, adding HotFixes
intel-linux-media-patches-39163/
intel-linux-media-patches-39163/libdispatch_trace.a
intel-linux-media-patches-39163/libdispatch_shared.a
intel-linux-media-patches-39163/README
intel-linux-media-patches-39163/libmfx-tracer.so
intel-linux-media-patches-39163/KMD-patches-for-realtime-threads/
intel-linux-media-patches-39163/KMD-patches-for-realtime-threads/0001-Work-around-to-avoid-reduce-spinning-in-the-userspac.patch
intel-linux-media-patches-39163/KMD-patches-for-realtime-threads/README
intel-linux-media-patches-39163/KMD-patches-for-realtime-threads/0001-Reducing-KMD-polling-on-ioctl-calls.patch
`intel-linux-media-patches-39163/libdispatch_trace.a' -> `/opt/intel/mediasdk/lib/lin_x64/libdispatch_trace.a'
`intel-linux-media-patches-39163/libdispatch_shared.a' -> `/opt/intel/mediasdk/lib/lin_x64/libdispatch_shared.a'
`intel-linux-media-patches-39163/libmfx-tracer.so' -> `/opt/intel/mediasdk/tools/tracer/libmfx-tracer.so'
+++ HotFixes installed, cleanup
いよいよkernelのビルドを行う。
./build_kernel_rpm_CentOS.sh

かなりの時間がかかる。
終わるとこんな感じに。

ビルドが終わったのでインストールを行う。より古いバージョンのものをインストールするので、--oldpackageをつける必要があった。
cd rpmbuild/RPMS/x86_64
sudo rpm -Uvh --oldpackage kernel-3.10.*.rpm

ログ
[rigaya@localhost x86_64]$ sudo rpm -Uvh kernel-3.10.*.rpm
[sudo] password for rigaya:
準備しています... ################################# [100%]
パッケージ kernel-3.10.0-229.14.1.el7.x86_64 (kernel-3.10.0-229.1.2.39163.MSSr4.el7.centos.x86_64 より新しいもの) は既にインストールされています。
[rigaya@localhost x86_64]$ sudo rpm -Uvh --oldpackage kernel-3.10.*.rpm
準備しています... ################################# [100%]
更新中 / インストール中...
1:kernel-3.10.0-229.1.2.39163.MSSr4################################# [ 33%]
整理中 / 削除中...
2:kernel-3.10.0-229.14.1.el7 警告: ファイル /lib/modules/3.10.0-229.14.1.el7.x86_64/weak-updates: 削除に失敗しました: そのようなファイルやディレクトリはありません
警告: ファイル /lib/modules/3.10.0-229.14.1.el7.x86_64/modules.softdep: 削除に失敗しました: そのようなファイルやディレクトリはありません
警告: ファイル /lib/modules/3.10.0-229.14.1.el7.x86_64/modules.devname: 削除に失敗しました: そのようなファイルやディレクトリはありません
################################# [ 67%]
3:kernel-3.10.0-229.el7 警告: ファイル /lib/modules/3.10.0-229.el7.x86_64/weak-updates: 削除に失敗しました: そのようなファイルやディレクトリはありません
警告: ファイル /lib/modules/3.10.0-229.el7.x86_64/modules.softdep: 削除に失敗しました: そのようなファイルやディレクトリはありません
警告: ファイル /lib/modules/3.10.0-229.el7.x86_64/modules.devname: 削除に失敗しました: そのようなファイルやディレクトリはありません
################################# [100%]
なんか警告が出ているが、よくわからんし気にしないでおく。
カーネルがインストールできたら、再起動する。
sudo reboot
カーネルが有効か、確認する。なんか表示されればよいらしい。
lsmod | grep "i915"

動作の確認
Media SDK付属のバイナリで、テスト実行を行う。
[rigaya@localhost build]$ cd MediaServerStudioEssentials2015R6/
[rigaya@localhost MediaServerStudioEssentials2015R6]$ tar -xvf MediaSamples_Linux_bins_6.0.16043175.175.tar.gz
MediaSamples_Linux_bins_6.0.16043175.175/
MediaSamples_Linux_bins_6.0.16043175.175/content/
MediaSamples_Linux_bins_6.0.16043175.175/content/about-the-video.txt
MediaSamples_Linux_bins_6.0.16043175.175/content/test_stream.264
MediaSamples_Linux_bins_6.0.16043175.175/content/test_stream.265
MediaSamples_Linux_bins_6.0.16043175.175/content/test_stream.jpg
MediaSamples_Linux_bins_6.0.16043175.175/content/test_stream.mpeg2
MediaSamples_Linux_bins_6.0.16043175.175/content/test_stream_176x96.yuv
MediaSamples_Linux_bins_6.0.16043175.175/content/test_stream_vp8.ivf
MediaSamples_Linux_bins_6.0.16043175.175/content/test_stream_vp9.ivf
MediaSamples_Linux_bins_6.0.16043175.175/README
MediaSamples_Linux_bins_6.0.16043175.175/sample_decode_drm
MediaSamples_Linux_bins_6.0.16043175.175/sample_decode_x11
MediaSamples_Linux_bins_6.0.16043175.175/sample_encode_drm
MediaSamples_Linux_bins_6.0.16043175.175/sample_encode_x11
MediaSamples_Linux_bins_6.0.16043175.175/sample_multi_transcode_drm
MediaSamples_Linux_bins_6.0.16043175.175/sample_multi_transcode_x11
MediaSamples_Linux_bins_6.0.16043175.175/sample_vpp_drm
MediaSamples_Linux_bins_6.0.16043175.175/sample_vpp_x11
[rigaya@localhost MediaServerStudioEssentials2015R6]$ cd MediaSamples_Linux_bins_6.0.16043175.175/
[rigaya@localhost MediaSamples_Linux_bins_6.0.16043175.175]$ ./sample_encode_drm h264 -i content/test_stream_176x96.yuv -o test.264 -w 176 -h 96
libva info: VA-API version 0.35.0
libva info: va_getDriverName() returns 0
libva info: User requested driver 'iHD'
libva info: Trying to open /opt/intel/mediasdk/lib64/iHD_drv_video.so
libva info: Found init function __vaDriverInit_0_32
libva info: va_openDriver() returns 0
Encoding Sample Version 6.0.16043175.175
Input file format YUV420
Output video AVC
Source picture:
Resolution 176x96
Crop X,Y,W,H 0,0,176,96
Destination picture:
Resolution 176x96
Crop X,Y,W,H 0,0,176,96
Frame rate 30.00
Bit rate(Kbps) 112
Target usage balanced
Memory type system
Media SDK impl hw
Media SDK version 1.16
Processing started
Frame number: 101
Processing finished

問題なくQSVエンコードが実行できたようだ。
libmfx.aの配置がどうの、という記述がネット上に存在するが、QSVEncは自前でlibmfxを含むので気にしない。
スポンサーサイト