faye님이 올려주신 소스를 이용하여 방금 커널에서 파일을 생성하고
쓰기 기능까지 확인하였습니다.
그런데요, 일반 디바이스 드라이버도 가능할까요?
유저모드 용으로 만들어진 디바이스 드라이버도(char device drver)도
file_operation 구조체의 멤버를 가지고 있으니깐 가능도 할것 같은데요.
실제로 제가 하려는 것은 시리얼 디바이스 입니다.
또 시리얼 셋팅도 가능하다면 좋겠네요.
faye님의 소스를 가지고 해보는데 않되네염
제가 초보라 버그가 떠도 어떻게 해야할지 모르겠구여
일단 필요한 함수인 open write read 함수만 ipv6에 있는
route.c라는 커널모듈에 넣었습니다.
그리구 include 파일들을 넣구여 아래와 같이 커널모듈컴파일을 했습니다.
make modules && make modules_install
그런데 erro는 없는데 결과도 않드구 가끔 부팅하면 파일 체크까지 하는 걸 보면
문제가 있는 것 같습니다.
파일을 기냥 통째로 커널에 인클루드 시키려면 어떻게 하져?
처음 접해서 잘 모르겠어여
구현 하신분 있으면 소스 좀 주세여
그리구 컴파일 방법두 가르쳐 주시면 감사하겠습니다.^^
제가 초보라 버그가 떠도 어떻게 해야할지 모르겠구여
일단 필요한 함수인 open write read 함수만 ipv6에 있는
route.c라는 커널모듈에 넣었습니다.
그리구 include 파일들을 넣구여 아래와 같이 커널모듈컴파일을 했습니다.
make modules && make modules_install
그런데 erro는 없는데 결과도 않드구 가끔 부팅하면 파일 체크까지 하는 걸 보면
문제가 있는 것 같습니다.
파일을 기냥 통째로 커널에 인클루드 시키려면 어떻게 하져?
처음 접해서 잘 모르겠어여
구현 하신분 있으면 소스 좀 주세여
그리구 컴파일 방법두 가르쳐 주시면 감사하겠습니다.^^
printk()를 이용해보시는건 어떨까요?Module프로그램에서 또는
printk()를 이용해보시는건 어떨까요?
Module프로그램에서 또는 Device Driver를 만들때 printk()를 사용하면 Console에서 출력이
가능하거나 dmesg에서 찾아볼 수 있습니다.
http://www.linuxforum.com/linux-kernel-programming/index.html
여기의 10장에서는 tty로 출력하는 방법을 제시했고
http://www.freeos.com/articles/4051/
여기서는 console(모듈일때)이나 dmesg에서 출력하는 방법을 제시하네요.
한번 참고해보시기 바랍니다.
그런데 일반적인 fopen형태로 파일을 만들지 못하나요?
파일 만들기/읽기/쓰기에 문제가 없다고 생각했었는데 그게 아니였나보군요. ???
------------------------------
좋은 하루 되세요.
커널에서 file read/write
우선 open 이 커널에서는 지원이 안되는걸로 알고 있거든요.
fopen도 마찬가지 이고요.
위의 함수들은 모두 usermode에서 사용가능하도록 되어있기 때문에
커널모드에서는 저도 잘 모르겠습니다.
커널 내에서 open 하는 방법만 보자면.. 예전에.. linux
커널 내에서 open 하는 방법만 보자면..
예전에.. linuxkernel.net에 이호님이 작성하신 klib 라이브러리를 이용하면 됐었던것으로 기억합니다..
지금은 사이트가 안열리는데..... 정식? klib는 찾기 힘드내요..
아래 링크는 다른분이 올려놓으신 klib에서 open관련인것 같습니다.
http://catchme.xcool.net:8080/emm_i686/download/tech/lib_lkm/fileio.c
참고하세요..
printk()를 이용하면 syslog에서도 받을 수 있겠지요..
printk()를 이용하면 syslog에서도 받을 수 있겠지요..
Re: 디바이스 모듈에서 일반 파일을 create/read/write 가능할까
왜 안되겠습니까? 다 됩니다.
커널 시스템 콜을 잠시만 따라가봐도 어떻게 파일을 읽고 쓰는지 알 수 있습니다.
http://ns.mykernel.net/jsboard/read.php?table=onepage&no=13&page=1
위 부분을 응용하시면 될듯합니다. 그럼 고운 하루되시길.
=========================
CharSyam ^^ --- 고운 하루
=========================
커널에서 file open/read/write
되었습니다. !!!
faye님이 올려주신 소스를 이용하여 방금 커널에서 파일을 생성하고
쓰기 기능까지 확인하였습니다.
그런데요, 일반 디바이스 드라이버도 가능할까요?
유저모드 용으로 만들어진 디바이스 드라이버도(char device drver)도
file_operation 구조체의 멤버를 가지고 있으니깐 가능도 할것 같은데요.
실제로 제가 하려는 것은 시리얼 디바이스 입니다.
또 시리얼 셋팅도 가능하다면 좋겠네요.
어쨋든 답변 주신분들께 감사드립니다.
faye님의 소스를 가지고 해보는데 잘 않되네염
faye님의 소스를 가지고 해보는데 않되네염
제가 초보라 버그가 떠도 어떻게 해야할지 모르겠구여
일단 필요한 함수인 open write read 함수만 ipv6에 있는
route.c라는 커널모듈에 넣었습니다.
그리구 include 파일들을 넣구여 아래와 같이 커널모듈컴파일을 했습니다.
make modules && make modules_install
그런데 erro는 없는데 결과도 않드구 가끔 부팅하면 파일 체크까지 하는 걸 보면
문제가 있는 것 같습니다.
파일을 기냥 통째로 커널에 인클루드 시키려면 어떻게 하져?
처음 접해서 잘 모르겠어여
구현 하신분 있으면 소스 좀 주세여
그리구 컴파일 방법두 가르쳐 주시면 감사하겠습니다.^^
제가 초보라 버그가 떠도 어떻게 해야할지 모르겠구여
일단 필요한 함수인 open write read 함수만 ipv6에 있는
route.c라는 커널모듈에 넣었습니다.
그리구 include 파일들을 넣구여 아래와 같이 커널모듈컴파일을 했습니다.
make modules && make modules_install
그런데 erro는 없는데 결과도 않드구 가끔 부팅하면 파일 체크까지 하는 걸 보면
문제가 있는 것 같습니다.
파일을 기냥 통째로 커널에 인클루드 시키려면 어떻게 하져?
처음 접해서 잘 모르겠어여
구현 하신분 있으면 소스 좀 주세여
그리구 컴파일 방법두 가르쳐 주시면 감사하겠습니다.^^
저두 faye님의 소스를 가지고 커널에서 파일 입출력 성공했습니다. mo
저두 faye님의 소스를 가지고 커널에서 파일 입출력 성공했습니다. mode=0;을 넣어서 그랬어여
write하려면 mode=200을 해야 쓰기 권한이 되네염^^;
도움이 마니 됐음다^^
댓글 달기