도와주세요!!
안녕하세요?
ubuntu 10.04로 device driver를 짜보려고 하는데요
시작부터 난관이네용...
driver를 작성하고 테스트를 하려고 간단한 프로그램을 만들었습니다.
int main(int argc, char *argv[])
{
int dev;
struct buzzer_info buzzer;
if( ( dev = open("/dev/buzzer_driver", O_RDWR)) < 0 )
{
printf("buzzer Device Open Failed..\n");
printf("dev value = %d\n", dev );
perror("open");
return -1;
}
printf("============================\n");
buzzer.frq = 4175; // Hz
buzzer.duty = 50; // %
buzzer.time = 100; // x.x sec
ioctl(dev, IOCTL_GPIO_BUZZER, &buzzer);
close(dev);
usleep(10); // Hardware Stable Delay
return 0;
}
그런데 open하지 못하고 계속 error가 나네요
No such device or address...라고 error message가 뜹니다.
target에서 linux가 boot되고
# mknod /dev/buzzer_driver c 256 1
로 해서 device file을 하나 생성했습니다.
그런데... device file을 지웠다가 다시 만들어도 같은 message가 출력됩니다.
/dev/에 있는 다른 device로 열면 열리는데 buzzer_driver는 안열리네요.
혹시 kernel source 쪽에서나 아니면 config file쪽을 수정해야 하는건 아닌지요?
아... 그리고 driver source에 포함되어 있는 debuging message들이 나오지 않네요.
insmod랑 rmmod할때도 안나오고...
dmesg명령을 쳐도 아무런 말도 안나옵니다...
이건 어찌해야 하나요?ㅠㅠ
insmod로 올려 놓고 해봤지만 안되고 있습니다.
강좌나 책은 이미 보고 있구요...
에러 대책에 관한 내용은 찾을 수가 없네요...
디바이스 파일과 어플리케이션만 필요 한게 아니라
모듈을 작성해서 insmod 로 올려야 드라이버가 적제 됩니다.
저희 포럼에 디바이스 드라이버 관련 강좌가 있으니 한번 보시는것도 좋을것 같습니다.
그리고 리눅스 디바이스 드라이버 관련된 책을 구입하여 보시는것도 추천 합니다.
강좌 페이지 http://forum.falinux.com/zbxe/?mid=device_driver