도와주세요!!
글 수 15,339
2010.01.20 17:23:33 (*.109.174.54)
16972
안녕하세요 이피아테크에 조현호라고 합니다.
한빛 미디어사의 유영창 저자의 "리눅스 디바이스 드라이버" 를 보고 질문 드리겠습니다.
다름이 아니라 21장에 커널 소스에 디바이스 파일 넣는 방법을 보는 중인데요.
이번에 GPIO 핸들하는것을 커널에 적재 하고 싶습니다.
그래서 다음과 같이 시도중에 있습니다.
처음 사진은 gpio_drv.c 파일로서 커널에 넣으려고 끝부분만 수정하였습니다.
다음에는 Makefile 과 Kconfig 입니다.
이와 같이 설정 후
make 를 시행해보니 다음과 같은 에러가 나왔습니다.
그래서 혹시나 해서 위의 gpio_drv.c 를 어떤식으로 바꿨더니 저런 에러가 안나고 커널 컴파일이
완성이 되었습니다. (위의 주석부분을 수정해주었습니다. / 혹은 __initcall 부분을 __initcall6으로 바꿔 주었습니다.)
그래서 다음과 같이 printk 부분을 넣어주었습니다.
그리고 커널에서 dmesg 라는 명령어를 써서 확인해보니 모듈이 올라간것처럼 보였습니다.
하지만 모듈이 작동이 안되었습니다.
이런 결과를 나왔는데.. 혹시 중간 과정에서 무언가 빠트렸다던가
저의 방식이 잘못되었으면 알려주시면 감사하겠습니다.
원인을 몰라 질문 하게 되었습니다.
우선 init_module 이 아니고 module_init 아닐까요?
커널이 부팅할때 호출하게 하려면 __init 를 함수 명 앞에 붙이면 됩니다.
그리고 헤더파일에는
#include <linux/module.h>
#include <linux/types.h>
#include <linux/errno.h>
#include <linux/kernel.h>
을 꼭..
넣어 주세요