'grep'에 해당되는 글 1건
- 2009.04.03
휴;; 오늘은 다소 지치는 금요일.
금요일에 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/
=ㅁ=.. 인데 히밤 왜 안돼... 안돼... 안돼ㅠㅠㅠㅠㅠㅠㅠㅠ