안녕하세요.
데비안 8 amd64 시스템에 적용되는 QSV 한방 패키지 입니다.
데비안 9 에서도 되는지는 잘 모르겠습니다.
IMSS 2016 기반으로 만들었고 4 5 6 세대 지원입니다. 7세대는 지원되지 않습니다.
카페에서 공구한 i3-5005u 시스템에 적용 가능합니다.
커널패치는 4세대 6세대가 필요합니다. 5세대는 데비안8의 백포트 커널 4.9에서 기본적으로 지원됩니다.
백업용 글임으로 상세하게 적지 않습니다.
1. 패키지 빌드 방법
디렉터리 구조
├── DEBIAN
├── opt
│ └── ffmpeg
│ ├── compat
│ │ ├── aix
│ │ ├── avisynth
│ │ │ ├── avs
│ │ │ └── windowsPorts
│ │ ├── cuda
│ │ ├── dispatch_semaphore
│ │ ├── float
│ │ ├── msvcrt
│ │ ├── nvenc
│ │ ├── plan9
│ │ ├── solaris
│ │ ├── tms470
│ │ └── windows
│ ├── doc
│ │ ├── doxy
│ │ └── examples
│ ├── libavcodec
│ │ ├── aarch64
│ │ ├── alpha
│ │ ├── arm
│ │ ├── avr32
│ │ ├── bfin
│ │ ├── mips
│ │ ├── neon
│ │ ├── ppc
│ │ ├── sh4
│ │ ├── sparc
│ │ ├── tests
│ │ │ ├── arm
│ │ │ ├── ppc
│ │ │ └── x86
│ │ └── x86
│ ├── libavdevice
│ │ └── tests
│ ├── libavfilter
│ │ ├── tests
│ │ └── x86
│ ├── libavformat
│ │ └── tests
│ ├── libavresample
│ │ ├── aarch64
│ │ ├── arm
│ │ ├── tests
│ │ └── x86
│ ├── libavutil
│ │ ├── aarch64
│ │ ├── arm
│ │ ├── avr32
│ │ ├── bfin
│ │ ├── mips
│ │ ├── ppc
│ │ ├── sh4
│ │ ├── tests
│ │ ├── tomi
│ │ └── x86
│ ├── libpostproc
│ ├── libswresample
│ │ ├── aarch64
│ │ ├── arm
│ │ ├── tests
│ │ └── x86
│ ├── libswscale
│ │ ├── aarch64
│ │ ├── arm
│ │ ├── ppc
│ │ ├── tests
│ │ └── x86
│ ├── presets
│ ├── tests
│ │ ├── api
│ │ ├── checkasm
│ │ │ ├── aarch64
│ │ │ ├── arm
│ │ │ └── x86
│ │ ├── fate
│ │ ├── filtergraphs
│ │ └── ref
│ │ ├── acodec
│ │ ├── fate
│ │ ├── lavf
│ │ ├── lavf-fate
│ │ ├── seek
│ │ ├── vsynth
│ │ ├── vsynth1
│ │ └── vsynth_lena
│ └── tools
├── root
└── usr
└── lib
└── pkgconfig
DEBIAN 폴더를 제외하고는 설치시 그대로 복사됩니다.
DEBIAN 폴더 내용
root@DESKTOP-CTBRHLM:~/qsv-2016-ffmpeg/DEBIAN# ls
control postinst
control 내용 (패키지 명 , 버전, 메인테이너, 의존성 패키지 목록, 설명)
Package: qsv-2016-ffmpeg
Source: imss 2016 , ffmpeg 3.2
Version: 1.0.2-djjproject
Architecture: amd64
Maintainer : djjproject
Depends : gcc, gobjc, pkg-config, libpthread-stubs0-dev, libpciaccess-dev, make, patch, yasm, g++, autoconf, cmake, automake, build-essential, libass-dev, libfreetype6-dev, libgpac-dev, libsdl1.2-dev, libtheora-dev, libtool, libva-dev, libvdpau-dev, libvorbis-dev, libx11-dev, libxext-dev, libxfixes-dev, texi2html, zlib1g-dev, libx264-dev, libmp3lame-dev, libfaac-dev, librtmp-dev, libvo-aacenc-dev, libx264-dev, cifs-utils, lsb-release, libfdk-aac-dev
Homepage: http://blog.djjproject.com/
Description: qsv auto installer. fix make -j option. fix error.
postinst 의 내용
#!/bin/sh
# mediasdk install
clear
echo " -------------------------------"
echo "mediasdk install..."
echo " -------------------------------"
sleep 3
cd /root
tar xf MediaServerStudioEssentials2016.tar.gz
cd /root/MediaServerStudioEssentials2016
tar xf SDK2016Production16.4.4.tar.gz
cd /root/MediaServerStudioEssentials2016/SDK2016Production16.4.4/Generic
tar xf intel-linux-media-ocl_generic_16.4.4-47109_64bit.tar.gz
./install_media.sh << EOF
YES
EOF
# libdrm install
clear
echo " -------------------------------"
echo "libdrm install..."
echo " -------------------------------"
sleep 3
cd /opt/intel/mediasdk/opensource/libdrm/2.4.54-47109
tar xf libdrm-2.4.54.tar.bz2
cd /opt/intel/mediasdk/opensource/libdrm/2.4.54-47109/libdrm-2.4.54
./configure --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu
make -j `cat /proc/cpuinfo | grep cores | wc -l`
make install
# libva install
clear
echo " -------------------------------"
echo "libva install..."
echo " -------------------------------"
sleep 3
cd /opt/intel/mediasdk/opensource/libva/1.67.0.pre1-47109
tar xf libva-1.67.0.pre1.tar.bz2
cd /opt/intel/mediasdk/opensource/libva/1.67.0.pre1-47109/libva-1.67.0.pre1
./configure --enable-static --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu
make -j `cat /proc/cpuinfo | grep cores | wc -l`
make install
# libmfx install
clear
echo " -------------------------------"
echo "libmfx install..."
echo " -------------------------------"
sleep 3
mkdir -p cd /opt/intel/mediasdk/opensource/mfx_dispatch/build
cd /opt/intel/mediasdk/opensource/mfx_dispatch/build
cmake ?D__ARCH:STRING=intel64 ../
make -j `cat /proc/cpuinfo | grep cores | wc -l`
# libmfx setting
clear
echo " -------------------------------"
echo "setting the libmfx..."
echo " -------------------------------"
sleep 3
ln -s /opt/intel/mediasdk/include/ /usr/local/include/mfx
ln -sf /opt/intel/mediasdk/opensource/mfx_dispatch/build/__lib/libmfx.a /usr/lib/x86_64-linux-gnu/
ln -sf /opt/intel/mediasdk/opensource/mfx_dispatch/build/__lib/libdispatch_trace.a /usr/lib/x86_64-linux-gnu/
ln -sf /opt/intel/mediasdk/opensource/mfx_dispatch/build/__lib/libdispatch_shared.a /usr/lib/x86_64-linux-gnu/
ln -sf /opt/intel/mediasdk/opensource/libva/1.67.0.pre1-47109/libva-1.67.0.pre1/va/.libs/libva.a /usr/lib/x86_64-linux-gnu/
ln -sf /opt/intel/mediasdk/opensource/libva/1.67.0.pre1-47109/libva-1.67.0.pre1/va/.libs/libva-drm.a /usr/lib/x86_64-linux-gnu/
ln -sf /opt/intel/mediasdk/opensource/libva/1.67.0.pre1-47109/libva-1.67.0.pre1/va/.libs/libva-tpi.a /usr/lib/x86_64-linux-gnu/
# /etc/environment
clear
echo " -------------------------------"
echo "set environment..."
echo " -------------------------------"
sleep 3
echo "LD_LIBRARY_PATH="/usr/local/lib:/usr/lib64:/usr/lib/x86_64-linux-gnu"" >> /etc/environment
echo "MFX_HOME=/opt/intel/mediasdk" >> /etc/environment
echo "LIBVA_DRIVER_NAME=iHD" >> /etc/environment
echo "LIBVA_DRIVERS_PATH=/usr/lib/x86_64-linux-gnu/dri" >> /etc/environment
source /etc/environment
# module copy
clear
echo " -------------------------------"
echo "module copying..."
echo " -------------------------------"
sleep 3
cp /opt/intel/mediasdk/lib64/iHD_drv_video.so /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
cp /opt/intel/mediasdk/lib64/iHD_drv_video.so /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
cp /opt/intel/mediasdk/lib64/libmfxsw64-p.so.1.17 /usr/lib/x86_64-linux-gnu/dri/libmfxsw64-p.so.1.17
cp /opt/intel/mediasdk/lib64/libmfxhw64-p.so.1.17 /usr/lib/x86_64-linux-gnu/dri/libmfxhw64-p.so.1.17
cp /opt/intel/mediasdk/lib64/libmfxsw64-p.so.1.17 /usr/lib/x86_64-linux-gnu/dri/libmfxsw64.so
cp /opt/intel/mediasdk/lib64/libmfxhw64-p.so.1.17 /usr/lib/x86_64-linux-gnu/dri/libmfxhw64.so
ldconfig -v
# ffmpeg compile
clear
echo " -------------------------------"
echo "compile and install ffmpeg..."
echo " -------------------------------"
sleep 3
cd /opt/ffmpeg
./configure --prefix=/usr --enable-nonfree --enable-static --enable-libmfx --enable-gpl --enable-libfdk-aac
make -j `cat /proc/cpuinfo | grep cores | wc -l`
make install
vainfo
echo ""
echo ""
echo " -------------------------------"
echo "install finished..."
echo " -------------------------------"
postinst 의 경우 복사한 후에 실행할 스크립트 입니다.
간단히 알아보면 아래와 같습니다.
preinst, postinst, prerm, postrm 등이 있는데요. 파일을 복사하기전에 실행하는 스크립트, 나중에 하는 스크립트.. 지우기 전에 할 스크립트 지우고 나서 할 스크립트 ..
이런식으로 구성되어 있고 만들때에 꼭 실행권한을 주셔야합니다.
패키지 만드는 명령
root@DESKTOP-CTBRHLM:~# dpkg -b qsv-2016-ffmpeg/
이런식으로 됩니다.
물론 automate 스크립트가 있겠지만.. 간단히 만들때에는 편하겠지요?
2. 설치 방법 및 패키지 다운로드
imss 와 ffmpeg 를 동봉하였습니다만, 계약 내용에 문제가 있으면 파일을 내리도록 하겠습니다.
wget 으로 받으신 다음 설치하시길 바랍니다.
ffmpeg 가 포함되고 바이너리 상태가 아니라 컴파일 작업이 포함되어 있습니다. 컴파일 된 파이너리를 넣으려고 했으나 귀찮아서 수정을 안하고 있습니다.
설치할때, 의존성 에러가 발생하면
1. repo 에 main contrib non-free 설정을 해줘야합니다.
2. apt-get -f install 명령으로 설치합니다.
필요하신 시스템 (4세대 6세대) 은 커널도 올리시길 바랍니다.
설치영상 5분 남짓
감사합니다.
'서버 > 리눅스 서버' 카테고리의 다른 글
우분투 / 데비안 OpenSSH 서버를 통한 X11 포워딩 하기 (2) | 2018.05.30 |
---|---|
클라우드 엣 코스트 (Cloud At Cost) 가상 서버 간단 사용후기 (0) | 2018.05.25 |
OpenMediaVault 4 설치 및 테스트 (4) | 2018.05.01 |
오드로이드 HC2 간단 리뷰 (0) | 2018.05.01 |
WD MyCloud GEN1 클린 데비안 , UPNP 포트포워딩 - 4편 (0) | 2018.04.19 |
댓글