리눅스 모듈 추가와 제거
그림 1) 리눅스 모듈 추가와 제거 소스.
1. 그림 1)은 리눅스 모듈을추가 하고 제거 하는 소스이다. 그리고 모듈에 간단히 말하자면 재부팅을 하지 않고도 바로 실행 가능 프로그램을 말한다. 자세한 내용은 넘긴다. 일단 모듈 추가하는 코드는 아래와 같다.
int __init init_module(void) // 모듈 추가 함수.
{
printk(KERN_AlERT "[Module Message] Hello, Module.\n"); // 커널 메시지를 출력하여 준다.
return 0; // 프로그램이 정상적으로 종료 될때 0을 리턴한다.
}
2. 위 코드가 모듈을 추가 하는 코드였다면 제거 하는 코드는 아래와 같다.
int __exit exit_module(void) // 모듈 제거 함수.
{
printk(KERN_AlERT "[Module Message] Do you really want to break up with me?\n"); // 커널 메시지를 출력하여 준다.
}
3. 마지막 코드 MODULE_LICENSE(" GPL "); 은 리눅스의 모듈 라이센서를 이용 한다는 것으로 라이센서에 대해서는 자세히 언급 하지 않겠다.
그림 4) VMware에서 리눅스 모듈 추가.
4. 그림 4)는 VMware에서 모듈을 추가하였을때의 화면이다. insmod hello.o라는 명령어로 소스에서 넣었던 문자가 출력 되는 것을 확인 할 수있다.
그림 5) putty를 이용하여 모듈 추가.
5. 그림 5)는 보는 사람들은 같은 명령어 인데 왜 넣었지 라고 생각을 할 수도 있다. 하지만 그림 5)를 보면 뭔가 다른 점을 볼 수 있을 것이다. 잘 본 사람은 어디가 다른지를 볼 수 있을 것이다. 그렇다.~~ ㅎㅎ 그렇다를 너무 자주 쓰는데 유행 되는 건 아닐까? 암튼 보면 알겠지만 putty에서 insmod hello.o를 실행 시키면 VMware 에서 커널 메시지를 출력 시키는 것을 볼 수있다.
그림 6) lsmod 명령어로 hello 라는 모듈을 확인.
6. lsmod 라는 명령어로 hello 라는 모듈이 추가 된 것을 확인 할 수 있다.
그림 7) lsmod 에 grep 라는 명령어와 함께.
7. 그림 6)에서 lsmod 로 hello라는 모듈이 추가 된 것을 확인 했듯이 이번에도 lsmod 라는 명령어로 확인 하지만 이번에는 다르다. lsmod 다음 줄에 | 가 붙은 것을 알 수 있는데 | 은 다른 명령어와 함께 쓸때 쓰는 것이며, 뒤에 grep 도 더 붙은 것을 볼 수 있다. grep 이라는 명령어를 추가 함으로써 사용자가 확인 하고자 하는 내용만을 확인 할 수 있다. 마지막 줄은 확인 하고자 하는 이름을 넣어 주면 된다. 여기서는 hello라는 모듈명을 확인 하고자 하였기에 hello 라고 입력 한것이다.
그림 8) rmmod로 모듈제거.
8. 그림 8)은 VMware에서 모듈을 제거하기 위해 rmmod hello 라는 명령어를 입력하였다. 소스에서 넣었던 문자가 출력 되는 것을 확인 할 수있다( 그림 1) 참조 ).
그림 9) putty를 이용하여 모듈 제거.
9. 그림 9) 역시 그림 5)에서 처럼 putty에서 rmmod hello를 실행 시키면 VMware 에서 커널 메시지를 출력 시키는 것을 볼 수있다.
그림 10) lsmod 명령어로 hello 라는 모듈제거 확인.
10. lsmod 라는 명령어로 hello 라는 모듈이 제거 된 것을 확인 할 수 있다.
그림 11) lsmod 에 grep 라는 명령어와 함께.
11. 그림 11) lsmod | grep hello 로 hello가 제거 된 것을 확인 할 수있다.
'코스웨어 > 12년 내장형하드웨어' 카테고리의 다른 글
게임 관심 있는분 (3) | 2012.10.17 |
---|---|
[RFID]Write Multiple Block (8) | 2012.10.16 |
[RFID] 10.16 업무일지 - 정철 (쓰기와 읽기) (12) | 2012.10.16 |
[RFID]20121016 수업내용 Write Multiple Blocks , Read Multiple Blocks----------------------------> by: Lee Dong hyuck (8) | 2012.10.16 |
2012.10.15 리눅스 커널 수업 정리 자료입니다.(모듈) (7) | 2012.10.15 |
[리눅스 커널] 모듈 개발 (5) | 2012.10.15 |
[RFID]2012/10/11 작업일지(비프음 설정) - by. 이창현 (1) | 2012.10.15 |
[ASM]요약입니다@@ (5) | 2012.10.12 |