CentOS* 7.1默认内核被视为目前版本 Intel Media Server Studio的一个主要操作系统 。更多信息请参阅Getting Started Guide.
在build_kernel_rpm_CentOS.sh脚本中使用以下kernel: kernel-3.10.0-229.1.2.el7.src.rpm. 但是, 有许多其他最新的内核。请参阅: vault.centos.org,获得最新的内核列表。
以下部分介绍Intel Media Server Studio Gold内核版本(kernel-3.10.0-229.11.1.el7.src.rpm)以外其他来自CentOS*官方网站上内核上安装Intel Media Server Studio 的细节
1 CentOS* 7.1上安装Intel Media Server Studio
以下章节描述的在CentOS 7.1 OS上安装Intel Media Server Studio 的步骤。
1.1 安装用户模式图形驱动(UMD)
(as regular user)
$ tar –xvzf mediaserverstudio*.tar.gz
$ cd mediaserverstudio*
$ tar -xvzf SDK*.tar.gz
$ cd SDK*/CentOS
$ tar -xvzf install_scripts*.tar.gz
(as root)
# ./install_sdk_UMD_CentOS.sh
For more information, see the Getting Started Guide.
1.2 安装内核模式图形驱动程序(KMD)
以下部分介绍三个不同的选项,用于安装内核模式图形驱动程序(KMD)
通过内核源码
按照以下步骤,在内核源码中为 Intel Media Server Studio 安装内核模式驱动程序(KMD)。
1. 设置rpm的构建环境
(as regular user)
$ mkdir -p ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
$ echo '%_topdir %(echo $HOME)/rpmbuild'> ~/.rpmmacros
2. 安装内核的源码rpm包
(as regular user)
$ wget http://vault.centos.org/7.1.1503/updates/Source/SPackages/kernel-3.10.0-229.11.1.el7.src.rpm
$ rpm -i kernel-3.10.0-229.11.1.el7.src.rpm 2>&1 | grep -v mock
$ cd ~/rpmbuild/SPECS
$ rpmbuild -bp --target=$(uname -m) kernel.spec
3. 应用Intel Media Server Studio的内核补丁
(as regular user)
$ cd ~/rpmbuild/BUILD/kernel-3.10.0-229.11.1.el7
$ cp /opt/intel/mediasdk/opensource/patches/kmd/3.14.5/intel-kernel-patches.tar.bz2 .
$ tar -xvjf intel-kernel-patches.tar.bz2
$ cd linux-3.10.0-229.11.1.el7.centos.x86_64
$ for i in ../intel-kernel-patches/*.patch; do patch -p1 < $i; done
注意: 你需要解决应用补丁造成的补丁冲突和拒绝
4. 构建和安装补丁的内核:
(as regular user)
$ make oldconfig
$ sed -i 's/CONFIG_LOCALVERSION=""/CONFIG_LOCALVERSION="-MSSr6"/g' .config
$ make –j8
(as root)
# make modules_install
# make install
# reboot ==> new kernel
5. 创建源码和二进制rpm包,以便轻松在其他机器上安装(可选)
(as regular user)
$ make rpm-pkg
6. 确认安装
请参阅 media_server_studio_getting_started_guide.pdf中的 "Verifying correct installation"
通过rpmbuild
1. 升级至新内核
(as root)
# yum update kernel-3.10.0-229.11.1.el7 ## upgrade to new kernel
2. 应用内核补丁到内核源码中
参见前文中 "通过内核源码"中1 - 3 节。
3. 构建和安装带有补丁的内核
(as regular user)
$ cd ~/rpmbuild/SPECS
$ sed -i "s#%define specrelease 229.11.1%{?dist}#%define specrelease 229.11.1%{?dist}.MSSr6.39163%{?dist}#" kernel.spec
$ rpmbuild –ba --target=$(uname –m) kernel.spec
(as root)
# cd ~/rpmbuild/RPMS/x86_64
# rpm -Uvh kernel-3.10.*.rpm
# reboot
注意: source rpm package can be found in 可以在~/rpmbuild/SRPMS中找源码rpm包
4. 验证成功,则继续执行
参见media_server_studio_getting_started_guide.pdf中"Verifying correct installation"
通过build_kernel_rpm_CentOS.sh
1. 升级到新内核
(As root)
# yum update kernel-3.10.0-229.11.1.el7 ## upgrade to new kernel
2. 修改build_kernel_rpm_CentOS.sh
-CENTOS7_LATEST_KER_BID=229.1.2
+CENTOS7_LATEST_KER_BID=229.11.1
3. 构建和安装带有补丁内核
(As a regular user)
$ cp build_kernel_rpm_CentOS.sh /MSS
$ cd /MSS
$ ./build_kernel_rpm*.sh 6 ## 6 for R6 version
(as root)
# cd /MSS/rpmbuild/RPMS/x86_64
# rpm -Uvh kernel-3.10.*.rpm
# reboot
注意: 如何这种方法不成功, 请参阅 “通过内核源码”中步骤3,4
1.3 故障排除
1.3.1 修复补丁拒绝,并安装新KMD
在Linux*上的Intel® 图形驱动包括三个重要的内核模块(drm.ko, drm_kms_helper.ko and i915.ko). 通常情况下, Intel Media Server Studio 的内核补丁会应用的这些内核模块上。如果Intel Media Server Studio的内核补丁打到CentOS* 7.1源码中失败, 你会在内核源码树中看到拒绝的文件 (*.rej) 。要修复问题,你需要手动的更改和合并他们到内核源码中。此外你需要修复在内核重建过程的编译和链接的任何问题。
请重新运行以下命令:
$ ./sample_multi_transcode_drm -hw -i::h264 test.h264 -o::h264 output.h264 -angle 180 -opencl
$ ./sample_encode_drm h264 -hw -i test.yuv -o test-la-out.h264 -w 720 -h 480 -la -lad 20
如果命令运行成功,表明内核补丁可供使用。如果这些命令行遇到错误,你需要调试KMD代码。你可以使用以下命令行分开构建DRM和i915。
(As a regular user)
$ cp /boot/config-`uname -r` .config
$ make oldconfig
$ make menuconfig
$ make prepare
$ make modules_prepare
$ make M=drivers/gpu/drm
你可以使用以下命令单独安装DRM和i915。
(As root)
# cp drivers/gpu/drm/drm.ko /lib/modules/`uname -r`/kernel/drivers/gpu/drm
# cp drivers/gpu/drm/ drm_kms_helper.ko /lib/modules/`uname -r`/kernel/drivers/gpu/drm
# cp drivers/gpu/drm/i915/i915.ko /lib/modules/`uname -r`/kernel/drivers/gpu/drm/i915
# mkinitrd -f -v /boot/initrd-$(uname -r).img $(uname -r)
# reboot
1.3.2 使用Intel Media Server Studio 的实例程序验证新的KMD
参阅media_server_studio_getting_started_guide.pdf中的 "Samples and Tutorials"部分,并运行一下命令测试KMD。
$ ./sample_multi_transcode_drm -hw -i::h264 test.h264 -o::h264 output.h264 -angle 180 -opencl
$ ./sample_encode_drm h264 -hw -i test.yuv -o test-la-out.h264 -w 720 -h 480 -la -lad 20
1.3.3 常见问题解答
- Q: 我可否在我的CentOS* 7.1内核上安装Intel Media Server Studio? 如何可以, 如何安装?
A: 是的。 修复补丁后, Intel Media Server Studio应该可以运行你的内核上。 - Q: 如何安装失败,如何回滚到上一个内核?
A: 尝试在grub菜单中选择一个先前的内核,如果grub菜单不能使用,可以运行“make install”安装之前的内核,在重启之前在grub菜单中检查有要启动的新内核。
2 CentOS* 7.1上部署Intel® Media Server Studio
此部分提供有关在CentOS* 7.1上测试和部署Intel Media Server Studio。
1. 部署 Intel Media Server Studio 的UMD
使用二进制运行时软件包,而不是开发软件包。你可以使用命令行 "rpm -qlp *.rpm"检查这些软件包。
(as regular user)
$ tar –xvzf mediaserverstudio*.tar.gz
$ cd mediaserverstudio*
$ tar -xvzf SDK*.tar.gz
$ cd SDK*/CentOS
$ find -name "*.rpm" | grep -v devel ## list runtime rpm package
2. 部署Intel Media Server Studio 的KMD
创建内核二进制rpm包
(as regular user)
$ cd /MSS
$ ./build_kernel_rpm*.sh 6 ## 6 for R6 version
注意: 使用内核的二进制rpm包,可由build_kernel_rpm_CentOS.sh创建. 更多详细信息可在media_server_studio_getting_started_guide.pdf中找到。
(as regular user)
$ cd /MSS
$ sed -i 's/\-bb/\-bs/' build_kernel_rpm_CentOS.sh
$ ./build_kernel_rpm*.sh 6 ## 6 for R6 version
注意: 如果你遇到内核rpm包问题,使用内核源码rpm包进行重建。内核源码rpm包/MSS/rpmbuild/SRPMS/kernel-3.10.0-229.1.2.39163.MSSr6.el7.centos.src.rpm 可以在~/rpmbuild/RPMS/x86_64 folder中找到。
3. 从内核源码rpm包重建内核二进制rpm包
(as regular user)
$ mkdir -p ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
$ echo '%_topdir %(echo $HOME)/rpmbuild'> ~/.rpmmacros
$ rpmbuild --rebuild --target=$(uname -m) --with firmware --without debug --without debuginfo --without perf --without tools kernel-3.10.0-229.1.2.39163.MSSr6.el7.centos.src.rpm
4. 结论
我们建议你在部署 Intel Media Server Studio时, 包含着三个组件。你可以运行自己的脚本在CentOS* 7.1上安装这些组件。
- UMD中不带开发rpm包。
- 内核二进制rpm包。
- 内核源码rpm包。