기본 콘텐츠로 건너뛰기

NVIDIA TX2 Gstreamer 1.12.2 설치하기

결론

1.12와 1.8간의 버젼차이로 주요 plugin들이 제대로 동작하지 않습니다.
같은 방법으로 1.8.3을 manual로 재설치하면 잘 동작합니다.

---------------------------------------------------------------------------------

TX2 Board는 ubuntu 기반으로 되어 있습니다.

기존  Gstreamer  1.8 가 설치되어 있는데, 17년 7월 중순에 릴리즈된 1.12을 설치하는 방법입니다. NVIDIA 공식문서에도 간단히 설명이 되어 있지만 시행착오부분이 있어 정리합니다.

원래 gst-install 이라는 툴을 제공해서 간단히 설치하면 되지만, 본인의 환경에서는 (JetSon3 설치이후) gst-install에서 내부적으로 수행하는 wget 이 인증문제가 발생하여 사용할 수 없었습니다.

참고내용
  • http://developer.download.nvidia.com/embedded/L4T/r23_Release_v1.0/L4T_Tegra_X1_Multimedia_User_Guide.pdf
  • https://developer.nvidia.com/embedded/dlc/l4t-accelerated-gstreamer-guide-27-1



설치하려는 위치
/home/nvidia/works/fakeroot

Gstreamer 파일을 다운받을 위치는 아무곳이나 상관없지만 여기서는
/home/nvidia/works/gst
라고 가정합니다.

mkdir -p /home/nvidia/works/fakeroot
mkdir -p /home/nvidia/works/gst

cd /home/nvidia/works/gst

Gstreamer 패키지를 다운받습니다.

● gstreamer-1.12.2.tar.xz
● gst-plugins-base-1.12.2.tar.xz
● gst-plugins-good-1.12.2.tar.xz
● gst-plugins-bad-1.12.2.tar.xz
● gst-plugins-ugly-1.12.2.tar.xz

wget 인증에러가 발생하므로(개별 환경마다 다른것 같습니다)
wget --no-check-certificate https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.12.2.tar.xz


--no-check-certificate 옵션을 붙여서 전부 다운받고 압축을 해제합니다.


빌드에 필요한 패키지를 설치합니다.
sudo apt-get install build-essential dpkg-dev flex bison autotools-dev automake liborc-dev autopoint libtool gtk-doc-tools libgstreamer1.0-dev

sudo apt-get install libxv-dev libasound2-dev libtheora-dev libogg-dev libvorbis-dev
sudo apt-get install libbz2-dev libv4l-dev libvpx-dev libjack-dev libsoup2.4-dev libpulse-dev
sudo apt-get install faad libfaad-dev libfaac-dev libgl1-mesa-dev libgles2-mesa-dev libopencv-dev

sudo apt-get install libx264-dev libmad0-dev



환경변수를 변경합니다.

export LD_LIBRARY_PATH=/home/nvidia/works/fakeroot/lib/
export PKG_CONFIG_PATH=/home/nvidia/works/fakeroot/lib/pkgconfig


압축이 풀린 개별 directory로 이동해서 configure합니다. prefix인자를 지정합니다.
./configure --prefix=/home/nvidia/works/fakeroot

단 bad plugin은 DRM관련 인증에러가 발생합니다.
  1. ake[5]: Entering directory '/home/nvidia/works/gst/gst-plugins-bad-1.12.2/tests/examples/gl/generic/cube'
  2. CXX cube-main.o
  3. CXXLD cube
  4. /usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmMap'
  5. /usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmCloseOnce'
  6. /usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmUnmap'
  7. /usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmOpenOnce'
  8. collect2: error: ld returned 1 exit status

이것을 피하려면 --disable-examples 을 추가합니다.
./configure --prefix=/home/nvidia/works/fakeroot --disable-examples

이것을 추가했을때 side effect는 확인못했습니다.


끝으로 nvidia 독점권이 있는 plugin과 h파일을 새로운 위치로 복사합니다.

libgstnvcamera.so
libgstnveglglessink.so
libgstnveglstreamsrc.so
libgstnvegltransform.so
libgstnvivafilter.so
libgstnvvidconv.so
libgstnvvideosink.so
libnvgstjpeg.so
libgstomx.so
 
cp /usr/lib/aarch64-linux-gnu/gstreamer-1.0/* home/nvidia/works/fakeroot/lib/gstreamer-1.0/ -n


cp /usr/lib/aarch64-linux-gnu/gstreamer-1.0/include/gst/gstconfig.h /home/nvidia/works/fakeroot/lib/gstreamer-1.0/include/gst






댓글

이 블로그의 인기 게시물

TUF Z390-PLUS GAMING 보드 불편한점

2018년 11월말에 PC를 새로 셋업했습니다. 사무실에서 사용하는 조건이라 구성은 단촐하게 CPU + BOARD + Memory 컴파일용이라 그래픽카드는 없습니다. CPU는 i7 9700K이고, Mainboard Model 은 TUF Z390-PLUS GAMING 입니다. 전에사용하던 CPU가 Haswell i5였었기 때문에 비교하면 2배는 좋아서 성능은 좋습니다. 이틀정도 설정하고 사용후 불편한점 0. 기존 DVI-I 인터페이스가 없어져서 구형 모니터의 DVI 포트를 사용하지 못합니다. DVI + VGA 조합이었는데 .. 변경후 DP + HDMI 조합이라서 애매하게 되었습니다. 1. 설치후에 ASUS Q-installer가 실행되고 설치가 끝나지 않는 현상이 있습니다. 혹시나 해서 BIOS는 현재 기준으로 최신버젼인 1004로 업데이트했습니다. 부팅때마다 저러고 있어서 , 일단 ASUS 홈페이지를 통해서 문의를 넣어놓은 상태입니다. 참고로 ASUS에 문의를 넣을때 MotherBoard 시리얼 번호가 필요합니다. cpuZ 프로그램으로 Report.txt를 출력해서 Ctrl+f로 찾아보면 Serial Number 와 문의시 필요한 CPU정보, DDR정보를 알아낼 수 있으니 cpuZ로 report.txt를 먼저 생성한후에 ASUS 문의를 시작하면 시간이 단축됩니다. Processors Information ------------------------------------------------------------------------- Socket 1 ID = 0 Number of cores 8 (max 8) Number of threads 8 (max 8) Name Intel Core i7 9700K Codename Coffee Lake Specification Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz Package

DELL의 새게이밍 노트북, Inspiron 15 7000 Gaming, Dual Display 문제

Dell New 게이밍노트북 7567  I7 Notebook http://www.dell.com/kr/p/inspiron-15-7567-laptop/pd?ref=PD_OC 7th Generation Intel® Core™ i7 프로세서 8GB 메모리 1TB 하드 드라이브 + 128GB 솔리드 스테이트 드라이브 NVIDIA® GeForce® GTX 1050 Ti (4GB GDDR5 그래픽 메모리 포함) 상세 사양 리눅스 개발환경이 필요해서 여러대 구매한 노트북입니다. 기본적으로 ubuntu 16.04 가 설치되어 있는데, 필요한 개발환경이 ubuntu 이고 별도의 windows 개발용 PC가 있기 때문에 구매를 결정하게 되었습니다. Slim하지 않지만 I7 HQ CPU와 1050TI spec 이 결정하는데 주요했고, 받은 후에 빌드환경 구축후 8 thread compile을 만끽하던중 치명적인 문제를 Display쪽 문제를 발견하고, Dell express 쪽과 전화통화도 하고 문의 메일도 보내서 지원을 받고(진행)중입니다. 추가 :  시간낭비하지 말라고 중간에 업데이트합니다.  해결되었고, 해결방법은  Windows 을 설치한 후 Fn+F8을 눌러서 모드를 확장모드를 선택합니다. 디스플레이 설정이나 드라이버 재설치 같은 방법으로는 조정이 불가능했습니다. --------------------------------------------------------------------- 요즘 다들 Dual monitor 환경일텐데, Dual Monitor를 복제형태로만 지원을 합니다. 14.04 설치후 업데이트시 375.66 Driver가 설치됩니다. nVidia driver가 설치되었으나, 모니터 인식에 문제가 있어서 해상도 확장설정자체를 할 수 없습니다. 기본 ubuntu라서 driver 문제인가 확인하기 위해서 우분투 64bit 환경 NVIDIA 최신(최신부터 하나 하나 뒤로 가면서 적용해봄)

UVC Camera 참고 Link

http://erutaso.tistory.com/100   출처 : http://www.rasplay.org/?p=2673 라즈베리파이에서 UVC camera 이용하는 예제인데 PC Linux에서도 동일하게적용   Ubuntu + UVC Camera(Eva Corelogic) motion package설치만으로 jpeg stream windows pc에서는 vlc로 확인가능   Streaming 시작 sudo service motion start sudo service motion stop network스트림에서 http://192.168.141.61:8081 이라고 입력해서 확인     : motion 패키지는 이름에서 알 수 있듯이 비디오 결과물의 영상에서 모션의 움직임을 포착하여 이벤트를 발생시켜주는 프로그램 유명하다. 특화된 기능이외에도 기본적으로 USB 이미지 촬영, 전송, 웹스트리밍 등이 가능하다. sudo apt-get install motion 5. motion 패키지 설정 : 웹 스트리밍 기능을 사용할 수 있도록 /etc/motion/motion.conf 의 설정 파일을 수정하도록 하자. sudo nano /etc/motion/motion.conf 1) daemon = off 에서 on 으로 설정 : daemon 옵션을 프로그램을 백그라운드에서 별도로 돌리기 위한 옵션 설정이다. 2) webcam_localhost = on 에서 off 으로 설정 : 웹캠을 로칼에서만 사용할지를 설정하는 것으로 우리는 다른 컴퓨터 및 장비로부터 접속할 예정이기에 Off로 설정하도록 하자. 위 두 옵션은 웹 스트리밍을 위한 최소한의 조건이고, 그 이외에 웹캠의 이미지의 넓이, 높이, 프레임레이트 설정, 웹캠 포트 설정 등이 있다. 또한, 필자가 언급한 설정 이외에도 많은 설정을 포함하고 있으니, /etc/motion/motion.conf 의 부가 설명을 읽어보고 자신이 원하는 설정으로 바꿔도 된