Home » 산딸기 가지고 놀기 » 파이카메라 활용강좌 : 라즈베리파이 Pi-cam V4L2(Video4Linux2) 설치

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

 Created Date: 2013.09.03
Modified Date: 2014.02.20
revision 4

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

그림1

0. V4L2(Video4Linux2) 란 ?

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

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

 

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

 

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

 

1. UV4L(Video4Linux2) 드라이브 설치

* 2014년 01월 07일 을 기준으로 라즈베리파이 재단에서 V4L2 드라이브를 펌웨어에 기본 탑재 되었다. 

   단, 기본 장치드라이브만 커널 모듈에 포함이 되었을 뿐, uv4l 기능 활용을 위해선 어플리케이션 사용을 위해선 기존과 같이 소스리스트를 등록 해 주여야 만 한다. 

 

0. 라즈베리파이 전용 카메라(Pi-Camera) 장치 활성화

cam_1

cam_2

cam_3

cam_4

0.1. V4L2(Video4Linux2) 드라이버 활성화

pi@openmake ~ $ sudo modprobe bcm2835-v4l2
pi@openmake ~ $ ls /dev/video0
/dev/video0

 

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 --frame-time 0

<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

 

Tip : V4L2 영상 출력 시에 아래 명령어를 이용 시에 Overlay Screen이 뜨지 않습니다.

pi@rasplay ~ $  uv4l --driver raspicam --auto-video_nr --nopreview

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

 

[참고사이트]

o http://en.wikipedia.org/wiki/Video4Linux
o http://www.linux-projects.org/modules/sections/index.php?op=viewarticle&artid=14
o http://www.linux-projects.org/modules/sections/index.php?op=viewarticle&artid=16

  • John Seo

    dd if=/dev/video0 of=snapshot.jpeg bs=11M count=1 라고 실행하면
    dd; opening ‘/dev/video0’: Operation not permitted 라고 뜨는데 왜 그럴까요 ?ㅠㅠ
    분명히 처음부터 똑같이 따라했는데도 말이에요 ㅠㅠ

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

      $ 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

  • GW

    안녕하세요 파이카메라를 통해 웹스트리밍을 해주려고 하는 학생입니다.
    다름이 아니라 위에 쓰신 것처럼
    pi@rasplay ~ $ dd if=/dev/video0 of=snapshot.jpeg bs=11M count=1 이라는 명령어에서 허용되지 않는다는 에러가 발생하는데 저희 커널 버전은 4.4.48로 오래된 버전은 아닌 듯 합니다. 어떻게 해결 해야 할까요?? 도움 부탁드려요!

산딸기마을 포스트 검색

공동제작 공동프로젝트 무상후원 기관

산딸기마을 기부하기

산딸기마을 방문자 현황

Flags Countries Visits Page views
South Korea 626063 1845660
United States 10882 26091
Japan 5011 13204
Germany 2755 5151
India 1897 2902
Canada 1729 4640
United Kingdom 1596 2642
Australia 1240 2901
Russia 1219 1677
China 1077 2239
Total Pageviews: 1936700