SK - 해당되는 글 3건


다음파일들을 만들고  묘듈은 메이크를 하고 어플리케이션은 컴파일을 한다.
make까지 완성되었으면
insmod로 sk.ko모듈을 등록하고
lsmod로 있는 지확인하면
제일 첫번째에 있다고 표시가된다.

# cat /proc/devices 하면 252번의 메이져 넘버에 SK가 등록 된것이 나타난다.

아래의 화면을 보자.
mknod 를 이용해서 장치파일을 만들어주고 c는 캐릭터, 252는 메이져 넘버 0마이너 넘버다
그리고 sk_app를 실행하면 장치를 선택하지만
커널 메세지를 보면 read함수가 문자열을 읽어 오지 않았다.
왜 그런 에러가 발생했나 보니 sk_app.c부분의
printf("\n data : %s \n", buf);의 부분을 printf("/n data : %s /n", buf);로적었다.
즉, / \를 혼동하여서 파일을 작성해서 /로적어버렸다.
다시말하면  개행 문자(\n)가 없었기 때문에 그렇다
개행문자는 반드시 써주도록 해야한다 주의 사항

아래화면에서
rm /dev/SK 해서 우선 장치파일을 제거하고
rmmod해서 sk의 모듈을 커널로 부터 제거한다.
그리고 tail로 로그 메세지를 보면 모듈이 제거 된것을 메세지로 볼수 있다.

cat /proc/devices를 보면 메이져 넘버에도 sk는 할당되지 않았다.

자 그러면 이제 에러를 잡기위해서 다시 한번 했던과정을 삽질해야된다.



      리눅스  |  2007. 10. 18. 10:35







유저영역에 있는 데이터를 읽어온다.
Sk_wirte를 구현할때는 유저영역의 데이터를 가져온다
장치입장에서는 사용자의 데이터를 받아야와야되기때문에 copy_from_user를 사용한다.
SK_wirte{
 copy_from_user();
...........
}










      리눅스  |  2007. 10. 17. 12:53




모듈을 커널에 적제하는것만으로 장치를 사용할수 없다.
장치를 구동할수 있다고 가능성만 생긴거당.
장치 파일을 /dev 디렉토리에다가 생성해야지만  장치를 사용할수 가있다.
지금만든 파일은 가상장치기 때문에 실제 하드웨어가 없다.




 module remove, device file remove
모듈제거, 장치파일 제거


      리눅스  |  2007. 10. 17. 11:44



sokoban's Blog is powered by Daum & Tattertools