리눅스버전 3.19.4

 

 

커널에 자원 처리를 요청하는 방법은 시스템 호출    과 파일입출력을 이용하여 드바이스 드라이버를 사용하는 방식

 

 

 

 

/usr/src/linux-3.19.4/include/linux/types.h 의

15 typedef __kernel_dev_t      dev_t;

 12 typedef __u32 __kernel_dev_t;

 

진입점 (entry point, entrance)  IT용어사전, 한국정보통신기술협회

진입점 [entry point, entrance, 進入點] (용어해설)

 1. 어떤 프로그램이나 서브루틴의 시작주소. 즉 제어를 서브루틴으로 옮기기 위해 분기하는 주소이다.

 2. 어떤 서브루틴을 호출 했을 때 그 안에서 제일 먼저 실행되는 명령어

 

 

  • 커널에 모듈 삽입/제거 명령어
      Insmod
    sys_create_module(모듈을 위한 메모리 공간 할당 받음)
    get_kernel_syms(모듈 링크위한 커널 심볼테이블 작업)
    sys_init_module(코드 복사, 모듈의 초기화함수 호출)
  •  rmmod는 내부적으로
    delete_module 호출 → 사용수 카운트가 0 이면
    cleanup_module 호출

/usr/src/linux-3.19.4/Documentation$ vim devices.txt
linux-3.19.4/include/uapi/linux/major.h   에 디바이스에대한 major 즉 주번호 들이 정의되어 있다.

 

실제 사용중인 주번호는 "cat /proc/devices" 를 통해서 확인 가능

root@li:/usr/src/linux-3.19.4/include/uapi/linux# cat /proc/devices
Character devices:
  1 mem        4 /dev/vc/0        4 tty         4 ttyS         5 /dev/tty     5 /dev/console
  5 /dev/ptmx   5 ttyprintk         6 lp         7 vcs         10 misc        13 input
 14 sound/midi   14 sound/dmmidi          21 sg          29 fb            99 ppdev
108 ppp             116 alsa                       128 ptm      136 pts          180 usb
189 usb_device   216 rfcomm                  226 drm       251 hidraw     252 bsg
253 watchdog     254 rtc

 

Block devices:
  1 ramdisk    2 fd       259 blkext       7 loop
  8 sd           9 md11 sr
 65 sd   66 sd 67 sd   68 sd     69 sd   70 sd   71 sd  128 sd           129 sd
130 sd  131 sd   132 sd  133 sd  134 sd
135 sd      252 device-mapper   253 virtblk  254 mdp
 

 

 

 

 

 

참고

 리눅스 디바이스 드라이버-유영창

 심볼 테이블  http://kirari83.tistory.com/entry/EXPORTSYMBOL

 플랫폼디바이스 드라이버 http://blog.naver.com/sigsaly/100102042663

 

 

 

'리눅스커널 > Device Driver' 카테고리의 다른 글

USB 인사이드 muosys.egloos.com  (0) 2016.05.16
PS/2 키보드 LED제어  (0) 2015.05.13
문자디바이스 드라이버와 file_operations  (0) 2015.05.12
IOCTL  (0) 2015.05.12
platform_driver  (0) 2015.04.23

+ Recent posts