본문 바로가기

라즈베리파이(RPI)

[추천][펌] 파이카메라 활용강좌 : 라즈베리파이 PI-CAM V4L2(VIDEO4LINUX2) 설치


영상 스트리밍을 통한 원격 제어에 관심이 많다보니 파이 카메라를 구매했었는데

라즈베리 파이 카메라의 경우 나무꾼님이 추천하시는 V4L2 글로서 나무꾼님이 작성하신 글입니다.

 

출처 : http://www.rasplay.org/?p=6257


  • 1
  • 2

라즈베리파이 Pi-cam V4L2(Video4Linux2) 설치

 Created Date: 2013.09.03
Modified Date: 2013.11.09
revision 2

기다리고 기다리던 Pi-cam V4L2(Video4Linux2) 가 정식으로 개발이 완료 되었다는 소식을 접하고, 급하게 포스트를 하게 되었습니다.

0. V4L2(Video4Linux2) 란 ?

간단히 V4L2(Video4Linux2)에 대한 내용을 설명하자면, 리눅스에서 카메라 입력을 받기위한 표준 디바이스로서 V4L2(Video4Linux2)를 설치 후 활성화 시에 사용자 프로그램이 커널을 통해 I/O요청을 확인하고 장치 드라이버로 전송이 이루어지는 것이 가능해진다.

이러한 것처럼 사용자 프로그램이 커널을 통해 시스템 하드웨어에 접근 할 수 있도록 “dev” 디렉토리 내에 “video*” 라는 장치 파일이 생성이 이루어진다. 사용자는 이러한 “/dev/video*”을 통해 자료를 읽거나 기타 장치로 자료를 전송이 가능해진다.

 

다음은 V4L2(Video4Linux2)가 지원하는 소프트웨어는 아래와 같다.

 

 

자 그럼 이제부터 새롭게 얻은 지식을 바탕에 기본이 되는 Pi-Cam V4L2(Video4Linux2) 드라이브를 설치를 진행 하고 간단한 테스트를 해 보자.

 

1. UV4L(Video4Linux2) 설치

1.1. V4L2(Video4Linux2) 인증키 설치

 

ssh 터미널에 접속 후, 아래와 같이 인증키를 등록합니다.

pi@rasplay ~ $ wget http://www.linux-projects.org/listing/uv4l_repo/lrkey.asc && sudo apt-key add ./lrkey.asc

–2013-08-31 15:44:36– http://www.linux-projects.org/listing/uv4l_repo/lrkey.asc
Resolving www.linux-projects.org (www.linux-projects.org)… 62.149.140.25

Connecting to www.linux-projects.org (www.linux-projects.org)|62.149.140.25|:80… connected.

HTTP request sent, awaiting response… 200 OK

Length: 1337 (1.3K) [application/pgp-signature]

Saving to: `lrkey.asc’

100%[======================================>] 1,337 –.-K/s in 0s

2013-08-31 15:44:38 (11.1 MB/s) – `lrkey.asc’ saved [1337/1337]

OK

 

1.2. 소스리스트 추가 및 업데이트

라즈비안에서 Pi-cam용 V4L2 패키지 설치를 위해, 소스리스트에 새로운 주소 값을 추가합니다.

pi@rasplay ~ $ sudo nano /etc/apt/sources.list

# 소스리스트 내에 아래 주소를 추가 하자.

deb http://www.linux-projects.org/listing/uv4l_repo/raspbian/ wheezy main 

pi@rasplay ~ $ sudo apt-get update

 

1.3. raspicam UV4L(Video4Linux2) pakage 설치

pi@rasplay ~ $ sudo apt-get install uv4l uv4l-raspicam

Reading package lists… Done

Building dependency tree

Reading state information… Done

The following NEW packages will be installed:

uv4l uv4l-raspicam

0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.

Need to get 661 kB of archives.

After this operation, 2,252 kB of additional disk space will be used.

Get:1 http://www.linux-projects.org/listing/uv4l_repo/raspbian/ wheezy/main uv4l armhf 1.7-1 [553 kB]

Get:2 http://www.linux-projects.org/listing/uv4l_repo/raspbian/ wheezy/main uv4l-raspicam armhf 1.7 [108 kB]

Fetched 661 kB in 5s (129 kB/s)

 

2. UV4L(Video4Linux2) 장치활성화 및 테스트

 

2.1. V4L2 장치활성화

 

V4L2 장치활성화를 위해 아래 명령어를 수행 해 보자.

pi@rasplay ~ $ uv4l --driver raspicam --auto-video_nr --width 640 --height 480 --encoding jpeg

<notice> [core] Trying driver ‘raspicam’

<warning> [core] Driver not found

<notice> [core] Loading external library libraspicam.so

<notice> [core] Trying driver ‘raspicam’

<notice> [driver] Raspicam Video4Linux2 Driver v1.7 built Aug 18 2013

<notice> [driver] Selected format: 1920×1080, encoding: h264, H264 Video Compression, max. 30 fps

<notice> [driver] H264 bitrate: 17000000

<warning> [driver] NOTE: you might need to run the driver with a RealTime scheduling (–sched-rr), if you are going to use the (slow) Read I/O interface at high resolutions.

<notice> [core] Device detected!

<notice> [core] Registering device node /dev/video0

 

 2.2. 파이카메라 사진촬영 테스트

아래 명령어를 입력하여 사진을 찍어보자.

 

pi@rasplay ~ $ dd if=/dev/video0 of=snapshot.jpeg bs=11M count=1

0+1 records in

0+1 records out

29 bytes (29 B) copied, 0.131206 s, 0.2 kB/s

 

자 이제 그 동안  즐기지 못했던, Pi-CAM 을 한껏 응용해 OpenNI2, OpenCV, SimpleCV 등을 마음껏 즐겨보도록 하자.

위 명령어를 수행 후,

dd; opening ‘/dev/video0′: Operation not permitted , 

dd: opening `/dev/video0′: Interrupted system call

와 같은 오류 메세지 발생 시, 오래된 커널 드라이브 사용에서 발생하는 문제이므로,

다음과 같이 펌웨어 업데이트 명령어를 통해 3.6.11+ → 3.10.18+ 로 커널 드라이브를 업데이트 수정을 해 주면 위와 같은 현상이 사라 집니다.

pi@rasplay ~ $ sudo rpi-update
pi@rasplay ~ $ sudo reboot

P.S 위 내용 후 아래 3가지 패키지를 추가로 설치해 주세요.

$ sudo apt-get install uv4l-uvc
$ sudo apt-get install uv4l-xscreen
$ sudo apt-get install uv4l-mjpegstream

 [참고사이트]

http://en.wikipedia.org/wiki/Video4Linux

http://www.linux-projects.org/modules/sections/index.php?op=viewarticle&artid=14

http://www.linux-projects.org/modules/sections/index.php?op=viewarticle&artid=16



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[이하 덧 글 및 참고 내용]

John Seo

on 2013/09/15 at 11:29 오후 said:

dd if=/dev/video0 of=snapshot.jpeg bs=11M count=1 라고 실행하면

dd; opening ‘/dev/video0′: Operation not permitted 라고 뜨는데 왜 그럴까요 ?ㅠㅠ

분명히 처음부터 똑같이 따라했는데도 말이에요 ㅠㅠ

 

나무꾼

on 2013/09/16 at 8:21 오전 said:

우선 발생하시는 메세지는 장치드라이브 활성화가 정상적으로 이루어지지 않을 경우, 발생한는 메세지라고 보시면 됩니다.

 

$ sudo apt-get install uv4l-uvc

$ sudo apt-get install uv4l-xscreen

$ sudo apt-get install uv4l-mjpegstream

 

위에 패키지를 추가로 설치하시고, h264 영상처리 가 아닌 아래 명령어로 장치활성화를 실행하셔야합니다.

 

uv4l –driver raspicam –auto-video_nr –width 640 –height 480 –encoding jpeg

 

 

라즈베리파이 전용카메라로 mjpeg-streamer 멈춤 현상

http://cafe.naver.com/openrt/2917

v4l 드라이버 가동시켜줄때 기존의 명령어에서 --frame-timeout0 명령어를 넣어주니 한시간동안 끄덕없네요.

ㅎㅎ 메뉴얼 페이지를 하나하나 다 살펴본 결과 잘나오네요 ^^ 아래와같이 실행시켰습니다.

uv4l --driver raspicam --auto-video_nr --width 640 --height 480 --frame-timeout 0