Chiusakpung's Electronics Blog

블로그 이미지
Computer programming ...
by 치우삭풍
  • Total hit
  • Today hit
  • Yesterday hit

'luvcview'에 해당되는 글 1건

  1. 2009.04.03
    [개별연구노트] 4월 3일

휴;; 오늘은 다소 지치는 금요일.

금요일에 9시 수업이 딱 하나 있으니, 이게 잘 가지지가 않는다. 오늘도 8시 40분에 일어나서 부랴부랴 씻고 자전거로 창의관 직행. 다행히 오늘 수업의 키포인트는 다 들을 수가 있었다.

오늘까진 일단 보고서를 다 써야 하므로 기숙사에 들어와 실험 결과를 쭉 훑어보고 틀린것 찾고...
다시 물전개 수업에 들어가서 실험의 이론 수업까지 마치니 4시.

에휴휴.. 내일도 보강이 있으니 집에 가는건 포기했다.

@SSL
어제 찾은 scottro라는 사람의 Ubuntu, Fedora, CentOS에서의 Webcam 설치기를 다시 찾아보고 하나씩 해보았다. 이 분은 luvcview로 test해보았다는데.... (PM 4.10)
http://www.scottro.net/acer4720z.html

첫 번째 과정으로 다음과 같이 여러 개발 라이브러리들을 다운 받아 성공적으로 설치했다.


yum install make gcc gcc-c++ kernel-devel SDL-devel subversion

[사진1]

그런 후 Logictech Quickcamteam의 Subversion Repository로부터 luvcview source를 가져온다.

[사진2]

위의 결과에서 알 수 있듯이 /luvcview/trunk/luvcview 디렉터리가 생긴다.

그 다음엔 trunk/luvcview 폴더 아래 있는 README를 읽고 그 안에 있는 url로부터
3개의 파일을 다운받아야 한다. 이걸 쉽게하는 테크닉을 scottro는 다음과 같이 소개하고 있다.

grep wget README|cut -d ' ' -f 2|xargs wget

wget은 아래 주소로 부터 사용방법을 알 수 있다.
http://bioinfo0421.tistory.com/entry/wget-%EC%82%AC%EC%9A%A9%EB%B0%A9%EB%B2%95

cut 명령어는 이름에서부터 알 수 있듯이 tokenization을 하는 명령어다.

-_- 그 이하 사용법은 일단 아래 인용했다. (field가 뭔 뜻인지 모르겠다 -_-)차근차근 번역하자.. (위 scottro의 홈페이지 내용 중 발췌)

Next, one has to download a few other header files.  (This is mentionedin the REAMDE, along with the urls of the files.)One can just grep wget from the README file to get the current urls.What I have below, although kludgy, is convenient for me.  I use grep tograb the urls, pipe that to the cut command, using a space as fieddelineator.  Note that it is a single quote, a space and another singlequote.  The -f 2 means echo the second field, in other words,everything after the space, which turns out to be the url.  I then passit to xargs, a very handy command which can perform operations on theresults of find, grep, and probably anything else you can think ofusing.  The default for xargs is to simply echo a result, so I typexargs wget and it performs wget on the three urls. 

그 다음에 할 일은 그저 컴파일 하는 것 뿐 - 오늘은 부드럽게 잘 흘러가서 기분이 좋다!

make
make install

[사진3]

성공!

/usr/local/bin에 프로그램이 설치되었는데, 허용권한(퍼미션, Permission)을 바꿔줘야
정규 사용자(Regular Users)들이 사용할 수 있다고 한다.응? 뭐를 뭐로 바꾸어야 할지 모르겠는데?
아까 make 결과가 아래 처럼 나오긴 하더라.

[jaeheon@localhost luvcview]$ make
gcc -DUSE_SDL -O2 -DLINUX -DVERSION=\"0.2.5\" -I-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT  -DUSE_SDL -O2 -DLINUX -DVERSION=\"0.2.5\" -I-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT   -c -o luvcview.o luvcview.c
.
.
.
                -L/usr/lib -lSDL -lpthread \
                -o luvcview
chmod 755 luvcview

권한의 8진법 표기는 다음과 같은 의미가 있다.
한 자리 숫자는 이진법으로 rwx의 Yes/No를 의미한다.
당연히 rwx는 Read, Write, eXecute에서 따온것.즉 파일을 읽고, 쓰고, 실행하는 허용 권한을 명시해주는 것이다.
그리고 첫번째 숫자는 user, 즉 이 파일을 만든이, 소유자를 뜻한다.
그 다음은 group이라 하여 user가 속해있는 group의 사람들에게 주는 권한이고
마지막은 other로 그외 모든 다른 사람들에게 주는 권한이다.

777은 모든 이에게 모든 권한을 허용하는 것인데 보안면에서 참 무-_-식한 권한이라 한다.
조심해야디;;
음.. 지금 권한이 755면 다른 사용자가 읽고 실행할 수 있으니 퍼미션을 바꿀 필요는 없을 거라 생각된다.
이젠 /etc/security/console.perms.d/50-default.perms 파일에 다음을 추가한다.
굵은 부분이 표시한 명령줄이다.줄

# device classes -- these are shell-style globs
<video>=/dev/video0
<floppy>=/dev/fd[0-1]* \
         /dev/floppy* /mnt/floppy*
<sound>=/dev/dsp* /dev/audio* /dev/midi* \
        /dev/mixer* /dev/sequencer* \
        /dev/sound/* /dev/beep \
        /dev/snd/* /dev/adsp*
<cdrom>=/dev/cdrom* /dev/cdroms/* /dev/cdwriter* /mnt/cdrom*
.
.
# permission definitions
<console>  0660 <floppy>     0660 root.floppy
<console>  0600 <sound>      0600 root
<console>  0600 <cdrom>      0660 root.disk
<console>  0600 <pilot>      0660 root.uucp
.
.
<console>  0600 <dvb>        0600 root

<xconsole> 0600 /dev/console 0600 root.root
<console>  0600 <dri>        0600 root
<console>  0666 <video>      0600 root
--END--

앗! 난 이제 재부팅을 하려 했는데 재부팅 안하고 장치 인식 시키는 방법이 있단다!
[root@localhost luvcview]# chmod 666 /dev/video0
chmod: cannot access `/dev/video0': 그런 파일이나 디렉토리가 없음

-_-.. 이런...

+ㅁ+ 앗, 계속 읽어보니 CentOS에서는 약간 더 해줘야 할 일이 있단다.=ㅁ= 근데 그게
uvcvideo module을 설치해줘야 한다...고?(-_- 히말라야... 그럼 내가 여태까지 삽질한
상황으로 돌아가는건가....- 개별연구노트 4월 1일자 참고)

근데 여기서 언급해주는 건 다른 곳의 rpm으로 설치하는 방법이다.
다음에서 uvc를 항목에 들어가 uvc-kmdl rpm을 다운받아 설치한다.
http://atrpms.net/dist/el5/ -> uvc -> uvc-kmdl (자기 커널에 맞는것)

[사진4]

헉 뭐가 이렇게 많아;; 일단 uname -a 결과가 아래와 같으니 걍 i686에 centos라는 이름 없어도
2.6.18-92에 해당되는 것을 다운받는다.

[root@localhost luvcview]# uname -a
Linux localhost.localdomain 2.6.18-92.1.22.el5 #1 SMP Tue Dec 16 12:03:43 EST 2008 i686 i686 i386 GNU/Linux

rpm이 정상적으로 설치되었으므로 아래와 같은 절차를 따라 uvc를 설치한다.
svn checkout http://svn.berlios.de/svnroot/repos/linux-uvc/linux-uvc/trunk
cd trunk
make
make install
depmod -a
modprobe uvcvideo

헉 근데 make를 하니 다음의 경고가 뜬다.
[root@localhost trunk]# make
-------------------------------- WARNING ---------------------------------------
 The USB Video Class driver has moved to http://linuxtv.org/.
 Using the Berlios SVN repository is now deprecated.
 Please check http://linux-uvc.berlios.de for download instructions.
 If you really want to compile this historical version, run 'make uvcvideo'.
--------------------------------------------------------------------------------
[root@localhost trunk]#

.... linuxtv.org라.... -_- 무언가 깊은 수렁에 빠지는 느낌... (-_- 히말라야.. 또 4월 1일자 참고.)

일단 linuxtv.org에 들어가보니 영상 관련 오픈소스 프로젝트가 진행중이었다.
바로 이곳에서 Video for linux 2 를 관리하나 보다.
다음은 이곳에있는 V4L wiki.
http://linuxtv.org/wiki/index.php/Main_Page
이 위키에서 User section->Getting Started->How to Obtain, Build and Install V4L-DVB Device Drivers
를 클릭하고 OTL....

-_-.. 엊그저께 했던 삽질이다. mercurial 받고.. 등등... 혹시나 다시 하면 될까 싶어
다시 uvcvideo 폴더 들어가 make 해보았으나 역시 다음의 에러가 뜬다..

[jaeheon@localhost Desktop]$ cd uvcvideo
[jaeheon@localhost uvcvideo]$ ls
COPYING   README          hgimport    v4l        v4l2-spec
INSTALL   README.patches  linux       v4l-dvb    v4l_experimental
Makefile  dvb-spec        mailimport  v4l2-apps
[jaeheon@localhost uvcvideo]$ make
make -C /home/jaeheon/Desktop/uvcvideo/v4l
make[1]: Entering directory `/home/jaeheon/Desktop/uvcvideo/v4l'
Updating/Creating .config
Preparing to compile for kernel version 2.6.18
File not found: /lib/modules/2.6.18-92.1.22.el5/build/.config at ./scripts/make_kconfig.pl line 32, <IN> line 4.
make[1]: *** `config-compat.h'에서 필요로 하는  타겟 `.myconfig'를 만들 규칙이 없습니다.  멈춤.
make[1]: Leaving directory `/home/jaeheon/Desktop/uvcvideo/v4l'
make: *** [all] 오류 2

.
.
.
신발.

다음은 Dr. google의 조언.
http://www.linuxquestions.org/questions/fedora-35/building-kernel-modules-problems-511537/
-_- 이젠 이런거 읽어보면 꼭 마지막 답변의 날짜와 Thanked를 확인한다.
오예~ 03년도 글이지만 Thanked : 3 인 글이 마지막 것이다.

이제 답변자가 해주는 조언을 질문자처럼 따라 했는데, 질문자가 되는게 나는 안된다.
응? /boot에 있는 config* 파일을 /usr/src/kernels/커널버젼/에 복사하라며?
-_- 근데 왜 안되지?

앗! -_- 경로가 이렇다 /usr/src/kernels/2.6.18-128.1.1.el5-i686..
-_- 히밤..... 뭐야 이거 - 128ㅋㅋ kernel 소스를 다시 받아야겠구나! 서광이 비친다 ㅋㅋ
어제 일자 연구노트에 CentOS의 커널 소스 받는 방법이 있다.
[개별연구노트] 4월 2일
http://chiusakpung.tistory.com/entry/%EA%B0%9C%EB%B3%84%EC%97%B0%EA%B5%AC%EB%85%B8%ED%8A%B8-4%EC%9B%94-2%EC%9D%BC
뭐, 결국 삽질해서 알아낸 건 다음의 주소.
http://mirror.centos.org/centos/5.2/os/i386/CentOS/

=ㅁ=.. 인데 히밤 왜 안돼... 안돼... 안돼ㅠㅠㅠㅠㅠㅠㅠㅠ

 

AND

ARTICLE CATEGORY

전체 (126)
EECS (56)
Physics (5)
Misc. (60)

RECENT ARTICLE

RECENT COMMENT

RECENT TRACKBACK

CALENDAR

«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

ARCHIVE