Device Driver] Hello World 모듈 컴파일 Hello World 모듈을 만들어보자. 프로그래밍을 함에 있어서 맨 처음으로 작성하는 코드는 항상 Hello World일 것이다. 우리는 모듈로 이 Hello World를 만나보자!! ^───^,, 우리는 hello.c와 Makefile을 작성하고 # make 명령으로 hello.ko 파일을 내고자 한다. hello.ko 파일이 삽입될 모듈이다. 천천히 소스코드와 그 내용을 살펴보자. hello.c #include #include #include MODULE_LICENSE("GPL"); int module_start() { printk ("Hello World!! \n"); return 0; } void module_end() { printk ("Goodbye World!! \n"); } module_.. 더보기 Device Driver] 모듈 프로그래밍 ※ 모듈의 구현 원리 커널 라이브러리를 객체(.ko)형태로 만들어 시스템콜을 통해 커널에 적재 요청하고, 그 요청에 따라 커널은 해당 객체를 커널에 동적으로 링크하여 사용한다. 이를 구현하기 우해 커널에 심볼 테이블 기능이 추가 됐다. /proc/ksyms 는 v2.4 의 kernel 소스에서 커널 심볼 테이블이고, v2.6 kernel에서는 /proc/kallsyms 로 바뀌었다. ※ 모듈 유틸리티 ㅡ.# insmod .ko 커널에 모듈 추가 ㅡ.# rmmod 커널에서 모듈 제거 ㅡ.# lsmod 현재 등록된 모듈을 확인 /proc/modules 파일을 읽어서 모듈 정보를 얻는다. ㅡ.# modprobe 모듈의 의존성 검사 및 추가, 삭제(-r) ㅡ.# depmod 모듈의 의존성 검사 및 의존성 업데이.. 더보기 Device Driver] 디바이스 드라이버 만드는 법 디바이스 드라이버를 작성하려는데 감이 오질 않을 것이다. 어떻게 작성하는지 들어가기 전에 우선 작성 단계를 짚어보자. ※ 새로운 디바이스 드라이버 작성 단계 ㅡ.디바이스 드라이버 커널 인터페이스 구현 (entry point functions, file_operations) ㅡ.디바이스 드라이버 초기화 인터페이스 구현 (주번호 할당 및 디바이스 드라이버 루틴 등록) ㅡ.디바이스 드라이버 하드웨어 인터페이스 구현 (레지스터 접근) ㅡ.장치 파일 생성 ex) # mknod /dev/mydrv [b|c] major_number minor_number ㅡ.응용 프로그램 작성 ㅡ.커널 컴파일 및 리부팅 위의 디바이스 드라이버 작성단계를 보면 디바이스 드라이버를 만드는데 3계의 단계를 거친다. 그 과정을 좀더 자세히.. 더보기 이전 1 ··· 6 7 8 9 10 11 12 ··· 31 다음