Chiusakpung's Electronics Blog

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

'Embedded Linux'에 해당되는 글 7건

  1. 2009.04.24
    [개별연구노트] 4월 24일 (금)
  2. 2009.04.04
    [개별연구노트] 4월 4일 토요일 - 첫 주말, SSL을 달리다 +ㅁ+
  3. 2009.04.03
    [문서][링크]UVC(USB Video Class) & V4L2(Video for Linux 2) 1
  4. 2009.04.03
    [개별연구노트] 4월 3일
  5. 2009.04.02
    [개별연구노트] 4월 2일
  6. 2009.04.02
    [중간 보고] 3rd Work : Webcam Control Library on Embedded Linux
  7. 2009.04.01
    [개별연구노트] 4월 1일
와우! 4번째 일인 Assembler 만드는 일이 끝나고 3번째 일인 데모 모듈 제작에 돌아간다.
시간도 잘 맞추어서 도서관을 통해 주문한 'Intel PXA 255를 이용한 임베디드 리눅스 실험 실습 - 신영석 외'이 도착했고.... 바로 공부 시작!

Chap 1과 Chap2는 임베디드 시스템에 대한 설명과 예, 그리고 실제 PXA 타겟보드의 각 장치별 설명이 되어있다. 하드웨어에 대한 지식이 아직 많이 부족해 짧은 시간에 습득이 안된다 ㅠ
좀 넘겨-_-서; Chap 3는 타겟보드를 제어할 임베디드 리눅스에 대한 기초 지식과 설치 방법을 설명하고 있다.

자 그럼 이제 복습할 겸 리눅스의 기초 명령어를 정리해보자!

1) 명령어 도움말
  man(manual), info

2) 파일관리
  파일 시스템(File System, FS)의 기본 디렉터리
  /    루트(최상위) 디렉터리
  /boot 부트 이미지 디렉터리
  /bin   BINaries 사용자 명령어 디렉터리
  /dev  DEVice 장치파일 디렉터리
  /etc  ETCetera 시스템 환경 설정 디렉터리
  /home HOME 사용자 홈 디렉터리
  /lib   LIBraries 공유 라이브러리 및 커널 모듈 디렉터리
  /lost+found  LOST FOUND 파일 시스템 복구를 위한 fsck의 링크 디렉터리
  /misc   MISCellaneous 아키텍처 독립 자료 디렉터리
  /mnt   MouNT 마운트 포인트 디렉터리
  /opt   OPerTion 애드온(Add-on) 소프트웨어 패키지 디렉터리(리눅스에서는 사용하지 않는다.)
  /proc   PROCess 커널과 프로세스를 위한 가상 파일 시스템 디렉터리
  /root   ROOT 루트 사용자 홈 디렉터리
  /sbin    System BINaries 시스템 명령어 디렉터리
  /tmp    TeMPorary 임시 작업 디렉터리
  /usr     USeR 공유 파일 시스템 디렉터리
  /var    VARiable data 가변 자료 디렉터리

  ls
  주로 사용하는 옵션은 -a 또는 -al
  -a : 마침표(.)로 시작하는 파일을 포함한 모든 파일 출력. 마침표로 시작하는 파일은 숨김파일이다.
  -l : long format
  -d : directory의 이름만 표시(내용은 출력안함)
  -F : 이름 끝에 파일의 형식을 표시(예 * / = @ )

  cd (Change Directory)
  틸드(~)는 자신의 Account Directory Path를 뜻한다.
  하이픈(-)은 바로 이전 작업 디렉터리를 뜻한다.

  cp (CoPy)
  -a : 파일의 속성, 링크 정보 등을 유지하면서 복사
  -b : 이미 파일이 존재할 경우 백업 파일 생성
  -f : 기존의 파일을 강제로 지우고 복사
  -i : 복사할 때 물어봄
  -l : 하드 링크 형식으로 복사
  -p : 원본파일의 소유주, 그룹, 권한, 시간정보 복사
  -P : 원본 파일에 경로와 함께 지정했을 경우 해당 경로를 그대로 복사
  -r : 경로와 함께 경로 안의 파일들을 모두 복사

  mv (MoVe)
  -b 백업, -f 강제로 이동, -i 사용자에게 물어봄, -u 업데이트, -v 과정 자세히.

  rm (ReMove)
  -r 디렉터리도. -f 강제로. -i 물어봐. -v 봐. -_-. 히밤 귀찮다.
  가장 자주 쓰이는 옵션 : rm -rf

  mkdir/rmdir

  ln : 파일 사이에 링크를 만드는 명령.
  윈도우의 바로가기와 유사한 개념이지만 리눅스에서는 좀더 복잡하다.
  * 고급 사용자로 거듭나기 위해서는 inode 구조체에 대해 알아볼 것.
- 심볼릭 링크와 하드 링크 두 가지 방법을 제공하는데, 심볼릭 링크는 윈도우의 바로가기와 동일하고 하드링크는 아예 동일한 파일을 옮겨 놓는 것이다. 이는 복사와는 다른데, 복사된 파일은 원본과 inode가 다르지만 하드링크는 inode가 같은 파일을 생성하는 것이기 때문이다.
   옵션 -s : 심볼릭 링크, -n 파일이 존재하면 겹쳐쓰지 않음, -f 파일이 존재해도 겹쳐쓰기

  du (Disk Usage)  주로 du -h (단위를 MB나 GB라 나타내줌)
  df -h

  find 파일이나 디렉터리 찾을 때 사용
  find [경로] [옵션]
  -empty 비어있는 파일
  -gid n   특정 gid를 갖는 파일
  -group name 특정 그룹에 속한 파일
  -name  지정한 형식을 갖는 파일명
  -newer 특정 파일 이후에 생성된 파일
  -perm  특정 허가모드를 가지고 있는 파일
  -uid n  특정 uid를 갖는 파일
  -used n  최근 n일 이후에 변경된 파일
  -user   특정 파일을 소유하고 있는 소유자의 파일

  touch 비어있는 파일을 만들거나 파일의 시간을 변경할 때 사용.
  file 특정 파일의 종류를 알고 싶을 경우

3) 파일 내용 확인
   cat [옵션] [파일명]
   리눅스의 표준 입출력 변환
   > 파일이 있을 경우 덮어쓴다
   >> 파일이 있을 경우 덧붙인다. (기존 파일의 맨 뒤에 추가)
   &>  표준 출력과 표준 에러 모두를 리다이렉트한다.
   2> 일반 출력은 제외하고 에러 메시지만 전달한다.

   head, tail
   more, less

4) 파일 시스템 관리

AND

이얍!

보고서 제출하고 야식 먹다 쥐쥐! 퇴근할 마음이 사라졌다!
그래 달려 보는거야! 오늘은 기필코 UVC 널 깔아보겠으!

-
모르는게 있음 역시 랩 선배님들께 여쭤보는 것이 빠르다.
=ㅁ= 커널 업그레이드...... S.J. Lee형께서 한 5분 정도 어루만저 주시니 업그레이드가 완료 되었다.(kernel 2.6.18-92.1.22.el5 -> kernel 2.6.18-128.1.6.el5)

교훈 : 삽질 해서 안되면 바로 여쭤보자. 물론 삽질에서 얻은 자료가 쌓여있으니 지금 다시 처음부터 하는데 정말 편하지만서도, 때론 두드리면 열리니까.

(ㅇ_ㅇ 아 역시 S.J. Lee형 포스 대박. 다음학기도 만일 SSL에서 졸업연구를 하게 되면 또 사수님으로 뵙고 싶다. 정말 하나하나 가르침을 선사하시는 분!)

아래는 지금까지 한 삽질들의 순서를 최적화 한 것. 아래 순서대로 하면 스무뜨하게 UVC가 설치된다ㅋ 자세한 사항은 뒤에 있는 날의 개별연구노트를 참고하면 된다.

4/1일자 : http://chiusakpung.tistory.com/entry/개별연구노트-4월-1
4/3일자 : http://chiusakpung.tistory.com/entry/개별연구노트-4월-3

1) RPMforge 설치 (4/1)
  RPMforge라는 Third Party Repository를 추가하는 단계.
  이 것을 설치함으로써 yum에서 인식하고 설치할 수 있는 패키지가 다양해 진다.

2) Mercurial 설치 (4/1)
  RPMforge로부터 yum은 mercurial을 설치할 수 있게 된다.

3) repository에서 hg로 V4L-DVB clone 받기. (4/3)
  linuxtv.org가 V4L-DVB Project의 중심지이다. 이곳의 Repository에서 V4L-DVB를 받고 컴파일하려고 했는데, 일단 받고 나서 make하니 에러가 난다. gcc가 없단다.

3') 온갖 개발 환경 라이브러리 받기 - scottro에서 확인바람. (첫줄 하나만 수행) (4/3)
   yum install make gcc gcc-c++ kernel-devel SDL-devel subversion

  생각해보니 3)을 할게 아니라, 원래 목적은 UVC였다. 따라서 아래와 같이 작업.

4) repository에서 hg로 UVC clone 받고 make (4/3)
  -> 아무런 에러 없이 성공!

5) 마지막 인식 작업은 scottro 홈페이지의 맨 마지막에 있는 다음의 명령어를 입력하면 된다.
  depmod -a
  modprobe

=> 이제 /dev/video0가 생겼고, lsmod | grep 'video'를 uvcvideo 모듈이 올라와 있음을 확인할 수 있다. (A.M. 3.30)

(PM 4:40)

혹시나 해서 재부팅한 뒤에도 /dev/video0가 뜨는지 확인해 보았다.
이젠 마음 놓고 Ekiga를 실행해도 동영상이 나오는 것을 확인!

이제 해야할 일은
1) V4L-DVB를 설치하고 (4/4 PM 5:00, OK)
2) V4L을 이용하여 리눅스용 USB Control Library를 제작한 뒤
3) PXA 계열 보드와 통신을 하여 임베디드 시스템을 구현하는 것!

아자자! SSL, 화이팅!
AND
다음은 V4L2 및 Linux USB Video Class에 대한 문서 및 관련 홈페이지을 다음과 같이 정리한다.

1) UVC 프로젝트 홈페이지. http://linux-uvc.berlios.de/ 

2) Mercurial 공식 위키. - 사실 CentOS의 경우 아래의 RPMforge를 설치해주면 yum을 통해 쉽게 설치할 수 있다.
http://www.selenic.com/mercurial/wiki

---

1) V4L2 API Official Online Document (출처 : http://www.linuxtv.org)
http://www.linuxtv.org/downloads/video4linux/API/V4L2_API/spec-single/v4l2.html

2) V4L 한글 문서 - 상명대 Embedded S/W 연구회
http://blog.naver.com/varcars?Redirect=Log&logNo=31181767

3) RPMforge
RPMforge 홈페이지.
http://rpmrepo.org/RPMforge/

RPMforge 설치로 Third Party Repository를 추가하면 Mercurial은 yum을 통해 바로 설치 가능(CentOS version >= 5)

CentOS에서는 다음과 같이 설치를 처음부터 끝까지 도와주는 친절한 문서가 있다.(CentOS wiki)
http://wiki.centos.org/AdditionalResources/Repositories/RPMForge?action=show&redirect=Repositories%2FRPMForge

4) Webcam install on CentOS by Scottro (아래 문서 맨 아래)
http://www.scottro.net/acer4720z.html

5) V4L wiki
http://linuxtv.org/wiki/index.php/Main_Page

이 위키에서 User section->Getting Started->How to Obtain, Build and Install V4L-DVB Device Drivers

6) V4L관련 한글 자료들

영진이와 함께하는 서당
http://user.chol.com/~valentis/Suhdang/Linux/Video4LinuxAPI.html

KLDP
http://kldp.org/node/251

AND

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

금요일에 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
uvc driver를 다운 받아 컴파일을 하게 되면 다음과 같은 에러가 발생하면서 종료한다.

File not found: /lib/modules/2.6.18-92.1.22.el5/build/.config at ./scripts/make_kconfig.pl line 32, <IN> line 4.

??? 전에 페도라에서 할 때는 이런 에러가 전혀 없었던 것으로 기억한다. 혹시나 해서 저 경로로 따라가 보는데 build가 잘 못 링크 되어 있는 것을 확인하였다.

[root@localhost 2.6.18-92.1.22.el5]# ls -al
합계 1208
drwxr-xr-x 6 root root   4096  3월 31 07:41 .
drwxr-xr-x 4 root root   4096  3월 31 07:41 ..
lrwxrwxrwx 1 root root     48  3월 31 07:41 build -> ../../../usr/src/kernels/2.6.18-92.1.22.el5-i686

저런 경로는 없다. /usr/src/이하 모든 디렉터리를 뒤져보았는데도 없다. 따라서  find / -name 2.6.18-92.1.22 를 해보았으나 역시 없음.

앗 그러고 보니 뒤에 i686으로 되어 있다 - 내 컴퓨터는 i386인데 말이지. (uname -i로 확인 가능)

-_- 이건 뭐- 하면서 구글링 : 키워드 centos uvc

https://www.centos.org/modules/newbb/viewtopic.php?viewmode=thread&topic_id=16189&forum=38&post_id=57849

대충 읽어보니 어떤 사람이 나랑 같은 상황에 처해있고, 고수로 보이는 사람이 다음의 두 글을 읽고 커스텀 커널 컴파일할 각오를 하란다.
http://wiki.centos.org/HowTos/I_need_the_Kernel_Source
http://wiki.centos.org/HowTos/Custom_Kernel

.... 결국엔 커널 업그레이드 해야 하는건가;;;

좌절하다가 다시 글들을 쭉 읽어보니 초보자가 커널 컴파일은 하기 싫고, 고수가 제안한 또 다른 방법을 해봤는데 안된다더라. 그래서 다음과 같이 하라는데....
https://www.centos.org/modules/newbb/viewtopic.php?viewmode=thread&topic_id=16189&forum=38&post_id=57410

그러더니 그 고수가 다음과 같이 자신의 홈페이지를 알려주면서 참고하란다.
http://www.scottro.net/acer4720z.html
그리고 이것 관련 이 분의 답변글들.
https://www.centos.org/modules/newbb/viewtopic.php?viewmode=thread&topic_id=16189&forum=38&post_id=57416
.
.
.
-_- 히밤... 자꾸 실험 보고서 털린거 생각난다 ㅠㅠㅠㅠ 오늘까지 2개를 다써야 주말에 집을 다녀오는데 ㅠ_ㅠ...... 이번학기 두 번째로 집에 갈 수 있는 기회를 놓치긴 싫단말이야!


AND
3rd Work : 3월 18일(수) ~ 5월 중순 학기 말까지.
(왠지 마지막 일이 될 것 같다.)

1) 중간보고. (~3월 25일)

이번 일은 거대하다. 그 악명 높은 전자과 실험 3를 지금 단 두 달만에 해보는 것이니까.
좋아. 난 이런거 대단히 즐겁다고. 근데 히밤 왜 중간고사를 보는거야! (라고 생각했더니 난 학부생이더라 ㅠ)

오! 이번엔 정말 즐거울 수 밖에 없는 건 사수님이신 S.J. Lee 횽님께서 리눅스 서버 한대를 주셨다. ㄻ나ㅓ울ㅈ다ㅜㅍ미망ㅎ룾대ㅑㅁㄴ웊 주ㅐㅑㄷ개재두히ㅏㅁㄴㅇㄹ!!!!! 감개무량 하옵니다! - 그동안 리눅스 공부하고 싶었는데 여건이 안되고 (내 놋북이 삼성껀데, 이건 뭐 복원 솔루션 때문에 파티션 잘못 건드렸다가는 피보기 십상이던데... ㅠ) 한다고 해도 구체적으로 뭘 할까 딱히 떠오르는게 없어 접어두고있었는데 말이지!

19일(목) 내 놋북에는 Xming과 PuTTY를 설치해 원격접속이 가능하게 하고, 하루 종일 삽질한 끝에 윈도우 드라이버만 지원되는 웹캠을 리눅스에 인식시켰다.

그리곤 중간고사 모드로 돌입.

근데 간간히 원격으로 시도해보니 이런, 웹캠이 완벽하게 인식 된게 아니다. 장치 인식은 되었는데 왜 영상이 안받아지지? 임베디드 리눅스에 대한 아무런 지식이 없는 건 둘째치고, 일단 문제는 카메라 인식이 안된다는 거니까 시험 끝나고 나면 언능 손봐야 할 것 같다.

p.s1) 내가 사용할 보드는 Intel PXA 시리즈. 관련 자료 찾다가 네이버에 책 하나가 있길래 학부도서관에 구입신청을 했다. 이건 좀 칭찬 받을 듯? ㅋ
p.s2) SDIA에서 관련 자료를 받았다. 이 분들께서 이미 Qt로 하려고 하셨다던데... 이 자료로부터 일단 PXA보드 X-Compile(크로스 컴파일)을 공부해보자.

※ 2009년 3월 25일자 테터툴즈 블로그에 있던 글을 이 곳에 옮겨왔다(2009년 4월 1일)
AND
오늘은 J.Y. Park 선배님 생일이 하루 지난 날!!
ㅠ_ㅠ.... 아쉽게도 형은 어제 석사 실험을 들어가셨단 말이지... 음... 생일날 실험하면.. 히밤..... ㅜ_-.. 슬프다. 그래서 어제 생일 축하도 못하고 오늘에야 축하해드렸다.
암튼 석사 1년차 형들 따라 세미나 수업을 듣^-^;고 (PM 4:00) 한 시간 전에 다운 받아 놓은 우분투 Live CD 8.10 버젼을 지금 굽고 있다. 어제 성진이 형(아ㅋ 성진형에 대한 포스팅도 해야겠군 : 우리나라 최초 구글 코리아 인턴 중 한 명)한테 여쭤보았는데 우분투라면 아마 웹캠이 자동으로 인식될 것 같다고 하셨다. 어차피 내가 해야할 일이 임베디드니까 개발은 웹캠에 대한 백지 상태인 CentOS에서 해야겠지만 우선 내가 뭘 빼먹었길래 웹캠인식이 안되는지 확인차로 Live CD를 구워본다.

- 아 그리고 CD 구우면서 웹툰 보다가 랩 선배-_-님께서 지나가실길래 휙하고 화면을 바꿨는데 CentOS Wiki에 들어가게 되었다. 혹시나 해서 webcam으로 검색해 보았는데 오! 자료가있다.(PM 4:25)

http://wiki.centos.org/AdditionalResources/HardwareList/Webcams?highlight=(webcam)

Now I'm on Ubuntu Linux Live CD. Because there is no Hanguel Ami, I write in English. (so sorry but please understand.)
사용자 삽입 이미지

Ekiga, the software for VoIP, in CentOS doesn't recognize my Logitech Quickcam, however in Ubuntu easily detect the webcam device.
사용자 삽입 이미지

Well, I type gqcam or xawtv in console, which are required to install qc-usb library, but I find out that they are not installed. - That is, my work in CentOS yesterday was .... well it just wastes time.
사용자 삽입 이미지

and I found the following article. - the general guide for webcam in Linux (PM 4:50)

https://help.ubuntu.com/community/Webcam
사용자 삽입 이미지

어머나 ㅜ_ㅜ 다시 CentOS로 왔는데(Live CD는 랩에 기증 ㅋ 뭐 어차피 랩 공CD로 구웠으니까), Ekiga에서 오디오 장치로는 인식을 하는데 비디오 장치로는 인식을 못하고 있는걸 확인했다(PM 5:10) 암튼 위의 자료를 읽어보니.... 일단 로지텍 퀵캠팀 (http://www.quickcamteam.org)에 들어가서 UVC(USB Video Class) Driver를 설치해야 겠다는 생각이 들었다. 다음은 UVC 프로젝트 홈페이지. http://linux-uvc.berlios.de/ 내가 갖고 있는 Logitech Quickcam Orbit/Sphere AF가 안정하게 지원되고 있음을 확인할 수 있었다.
사용자 삽입 이미지

더 밑으로 내려보면 다음과 같이 다운로드 하는 방법이 나와있다.

사용자 삽입 이미지

엥 근데 커널 2.6.26 이상에서는 설치할 필요가 없다는데? 이건 뭐.. (리눅스 버젼 확인하는 법 http://myknowledge.kr/13 )

----------------------------------------------------------------------------------------------------
금강산도 식후경 - PM 5:20 ~ PM 7:30 ^-^ 와우~ J.Y. Park 횽 생일 축하 겸 회식으로 저 멀리 신탄진 너머 누룽지 삼계탕? 맞나? 그 곳에 다녀왔다 ㅋ 역시 SSL!! 스케일이 달라~
----------------------------------------------------------------------------------------------------
사용자 삽입 이미지

다시 랩... 리눅스 버젼을 확인해보니 2.6.18이네.... UVC driver를 일단 설치해 보아야 겠다.(PM 7:50)

음.. Developer에게 있어서 Mercurial이라는 프로그램을 먼저 설치하여야 한다는데....(바로 위위 스냅샷 참고) 일단 Mercurial 홈페이지는 다음과 같다. 홈페이지 메인에 있는 Getting Started 첫번째 줄 binary package 링크 클릭.
사용자 삽입 이미지

rpm 버젼을 보니 CentOS 5.0에서는 yum을 통해 설치가 가능하다 한다.

사용자 삽입 이미지

.... 는데 아 히밤 왜 또 안돼 -_-... 그런거 없단다. 앗 그런데 자세히 읽어보니 RPMforge에 있다는데... 다음은 RPMforge 홈페이지.

http://rpmrepo.org/RPMforge/

사용자 삽입 이미지

Using RPMforge로 따라 들어가서면 아래 how to enable RPMforge ~ 가 있다. 이걸 클릭하면 CentOS wiki 문서로 가게 된다.
사용자 삽입 이미지
사용자 삽입 이미지

CentOS에서 RPMforge를 설치하는 가이드라인을 쭉 따라서 한 결과는 다음과 같다.
rpm 다운받고 다음과 같이 rpm -K rpmforge-release-0.3.6-1.el4.rf.i386.rpm 명령으로 확인.
사용자 삽입 이미지

그리고 yum을 했을 때 다음과 같이 'Loading "priorities" plugin'이라는 문구와 '69 packages excluded due to repository priority protections'가 출력되면 성공이라고 한다.
사용자 삽입 이미지

결과는 GOOOOOOD

이제 다시 Mercurial로 돌아가서 설치를 시도해본다. (PM 8:15)
http://www.selenic.com/mercurial/wiki/index.cgi/BinaryPackages#head-6e12bb40fa2d25075d090f2e9a42010e786ac661

-_-.. 바보.... CentOS 5에선 yum으로 설치했었자나...
사용자 삽입 이미지

와우 성공!!!

이제 다음의 명령어(hg clone 주소)를 입력해 보았는데 안된다. 응? 근데 주소를 확인해보니 pin뭐뭐 앞에 대쉬가 있네... 엥? 이건 뭥미? 아~ 지금 CentOS에서 물결표랑 대쉬랑 구분이 안된다. 물결표로 바꿔서 다시 입력하니 OK!
사용자 삽입 이미지

아 설치가 너무 오래걸려서 생각난김에 화면 지우는 명령어 정리.

DOS(or cmd for Windows > 2000, XP) : cls (clear screen)
MATLAB : clc (clear... console? 몰라 -_- 걍 찍었다.)
Linux : clear (MATLAB에서는 clear하면 메모리 상에 할당된 변수들을 싹 날려준다.)

난 설치가 다 된 줄 알고 확인해보려고 껐다 켰는데, 알고보니 바탕화면에 uvcvideo라는 디렉터리로 설치 소스코드가 다운받아져 있던 것이었다. 근데 less명령어로 README 를 읽고 간단히 make를 했는데 걍 에러 발생ㅠㅠ

다음의 글을 참고해서 일단 v4l-dvb를 받기로 했다. 방법은 위와 동일하게 Mercurial을 사용.

http://www.linuxtv.org/wiki/index.php/How_to_Obtain,_Build_and_Install_V4L-DVB_Device_Drivers#To_Update_the_Hg_Sources_at_Some_Future_Point_in_Time

사용자 삽입 이미지

흐어엉엉어엉어어엉ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ 안돼 안돼 에러만 나 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ (PM 9:45)

히밤 축구(북한전)도 지금 0:0이고 웹캠은 인식도 안되고 -_-....
ㅠ_ㅠ 실험 결과 보고서도 이번엔 두 개 써야되는데 ㅠㅠㅠㅠㅠㅠㅠㅠ

앗! 아~~~~싸~~~~ 지금 글 쓰자마자 바로 골넣었다~ (김치우 후반 42분. 오른쪽에서 프리킥~ 골~~~~)

지금까지 스냅샷 찍은거 메일로 보내고 이만 꺼야디 ㅋㅋㅋ
리눅스에서는 티스토리 사진 올리기가 안된다 ㅠㅠㅠ
그래서 기숙사에 들어와 포스팅한 글에 추가하고 끝!
오늘 하루도 수고했음!
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