안녕하세요..  전에 안드로이드 세미나때 인사드린 비트 컴퓨터 임베디드 반에있는 장성민입니다. 

저번에 모임 끝나고 저도 인사를 드렸어야 했는데, 머뭇거리다가 시간을 놓쳐서 인사를 못했습니다.

그동안 인사도 없다가 갑자기 질문을 드려 죄송합니다. 너그럽게 이해해주시길 부탁드립니다.


저는 아직 비트 컴퓨터에서 프로젝트를 진행하고 있는데, udev로 인해 고생을 하고 있습니다. 

혹시 udev에 대해 아시는 분이 있으면 많은 조언을 부탁드립니다.


저는 사용자 역역 드라이버인 libusb-1.0 를 이용하여 X86 PC에서 만들어 놓은 프로그램을 받아서 XPA320 ARM CPU를 사용한

하이버스의 X-Hyper-320- 보드에 올리려하고 있습니다.


한 달 정도 고생을 했지만 특별한 성과도 없이 삽질만 계속하느라 마음만 타들어 가고있습니다. 지금 까지 조사한 결과를 보면

우선 커널에서 hotplug과 sysfs를 지원해야 하는 데 ( hotplugs는 usb 커넥터 연결을 커널에 알리고, sysfs를  /sys에 마운트 하여

드라이버 정보를 생성한다고 함.), 제가 가지고 있는 arm 커널( 2.6.14) 에는 아래의 관련 설정을 모두 적용했습니다


========================
Kernel Configuration

Hotplugging support
    # General stup
    CONFIG_HOTPLUG=y

Networking support, for netlink socket
   
    # Networking, networking options
    CONFIG_NET=y
    CONFIG_UNIX=y
    CONFIG_NETFILTER_NETLINK=y
    CONFIG_NETFILTER_NETLINK_QUEUE=y

Pseudofilesystems, to manage /dev
   
    #Pseudofilesystems
    CONFIG_PROC_FS=y
    CONFIG_SYSFS=y
    CONFIG_TMPFS=y
    CONFIG_RAMFS=y

--=============


하지만 이 것 외에도 사용자 영역 드라이버를 실행하기 위해서는 udev와 libusb 관련 자료가 있어야 된다고 하더군요.

libusb는 소스를 받아서 arm-linux-gcc로 컴파일하여 file sysytem의 /usr/lib/에 올렸고, udev (udev-100)도 arm-linx-gcc로 컴파일하여

file system에 올렸습니다.


그 다음에는 보드 올려서 다음의 명령을 실행하라고 하는데,

Starting udev
    $ mount -t tmpfs udev /dev      (  tmpfs 는 파일 시스템타입,  /dev를  udev로 mount 시키는 내용이고  )
    
    $ cp -a -f /lib/udev/devices/*  /dev   ( static device files 파일 모두 copy하라고 합니다.)


    $ ls -la /lib/udev/devices    ( 내부의 파일을 보면 아래의 파일들이 보인다고 하는데,  )


==============
crw------- 1 root root         5, 1 2007-01-31 04:18 console
lrwxrwxrwx 1 root root     11 2007-01-31 04:18  core -> /proc/kcore
lrwxrwxrwx 1 root root     13 2007-01-31 04:18  fd -> /proc/self/fd
crw-r----- 1 root kmem         1, 2 2007-01-31 04:18  kmem
brw------- 1 root root         7, 0 2007-01-31 04:18  loop0
lrwxrwxrwx 1 root root         13 2007-01-31 04:18  MAKEDEV -> /sbin/MAKEDEV
drwxr-xr-x 2 root root         4096 2007-01-31 04:18  net
crw------- 1 root root         1, 3 2007-01-31 04:18  null
crw------- 1 root root         108, 0 2007-01-31 04:18   ppp
drwxr-xr-x 2 root root         4096 2007-01-31 04:18  pts
drwxr-xr-x 2 root root         4096 2007-01-31 04:18  shm
lrwxrwxrwx 1 root root         24 2007-01-31 14:39  sndstat -> /proc/asound/oss/sndstat
lrwxrwxrwx 1 root root     15 2007-01-31 14:39  stderr -> /proc/self/fd/2
lrwxrwxrwx 1 root root     15 2007-01-31 04:18  stdin -> /proc/self/fd/0
lrwxrwxrwx 1 root root     15 2007-01-31 04:18  stdout -> /proc/self/fd/1

=========


저는  file system에 /lib/udev 디렉토리가 없습니다. 


위의 내용을 실행하면 대략 아래와 같은 결과가 나온다고 하는데..


/sbin/udevd  ( 의 udev daemon 이 실행 실행되고 )
/etc/udev/rules.d/   ( 에서 .rules 파일의 내용을 읽어서 메모리에 올린다고 합니다. ) 
 usb 디바이스가 연결되면 hotplug 가 실행되고  /etc/udev/rules.d 내의 파일의 내용을 참조하여

/dev 밑에 usb 디렉토리와  device 파일이 생성된다고 합니다.


한지만 저는 udevd 데몬이 올라가지 않는 것 같습니다.  그리고 mount -t tmpfs udev /dev  를 만들고 staic device file 을 populate 할고 하는데(cp -a -f /lib/udev/devices/*  /dev ) ,  정확히 어떤 뜻인지 모르겠고요..

그리고 udev 를 시험하기 위한 명령들이 udevmonitor 등 여러가지 있다고 하느데, 혹시 시험하는 방법을 아시면 좀 알려주시길 부탁드립니다.









번호 제목 글쓴이 날짜 조회 수
공지 [공지] 프로그래밍 관련 Q&A 게시판 입니다. woos 2016.04.09 22270
498 spin lock 을 사용하는 이유를 알고 싶습니다. [6] 장성민 2011.04.25 16479
497 ppc에서 preempt 완벽 지원여부 아시는분? [1] 최종환 2007.02.22 16131
496 리눅스에서의 동기화 정리 [13] 홍문화 2011.04.25 16027
» Embeded 보드에 udev 올리는 법에 관한 조언을 요청드립니다. [4] 장성민 2011.01.08 15939
494 플래시 메모리에서 FTL(Flash Translation Layer) S/W 모듈과 관련하여 문의 드립니다. [4] 남현우 2009.01.09 15867
493 create_workqueue 와 create_singlethread_workqueue 의 차이? 김영민 2010.12.24 15521
492 VMware의 Linux에 Xen 설치해서 XP 설치 가능?? [5] 무명 2009.01.17 15513
491 u-boot 소스 분석에서 궁금한 점이 있습니다. [6] 원민수 2006.06.28 15196
490 멀티 스레드를 이용한 20억번 돌기의 시간 재기 [29] 이경문 2011.07.15 15194
489 mov r0,r0 [27] 송원준 2010.05.03 15172
488 모듈오류가 나는데 이유가 뭔지 안잡히네요.. [5] 김영일 2010.11.30 14560
487 linux swap out 관련.. [1] 박은병 2009.03.05 14463
486 안드로이드 고수님들께 질문드립니다. ^^ [11] Jason 2012.10.23 14200
485 [toolchain] arm-linux-gcc [4] 김민종 2010.04.27 14094
484 i386의 i 와 386은 각각 어떤 의미인가요? [4] 이경호 2007.03.07 13685
483 thread의 상태값 [4] 송선희 2009.03.10 13568
482 kernel의 virtual address [5] file 김민종 2010.04.28 13480
481 디버거 원리.. [6] 박은병 2008.01.31 13443
480 mutex와 semaphore차이? [2] 김영민 2011.03.02 13316
479 ___reserved_mem_reserve_reg 관련 질문 [4] DEWH 2020.03.09 12866
XE Login