insmod 할때 변수 값 지정하는 방법

basher의 이미지

insmod mymod.o ival_test=1

이와 같은 방법으로 ival_test라는 모듈내의 전역변수를 적재시에
초기화 하는 방법이 있는것으로 알고 있는데요..

이게 가능하게 할라면 어떻게 하는 것인가요?

현재 해본방법은 전역변수 int ival_test를 정의해보았습니다만

insmod: invalid parameter ival_test

라는 오류를 뱉어 버리는 군요.. ㅠㅠ

revizes의 이미지

kernel 2.6 은..여기를 참고하세요..
http//lwn.net/Articles/22197/

다 덤벼! 다 받아줄께!!

basher의 이미지

근데요~ 제가 쓰는건 2.4.19에요.. 임베디드용이거덩요..헤헷

암턴 방법은 찾았어요..

2.4와 2.6이 다르더군요..

2.6은 revizes님이 알려주신사이트에 잘 설명되어있는데요..

제가 2.4에서 한 방법은..

include/linux/module.h에 있는 매크로를 뒤져서 찾았네요..

Global var.가 선언되어있을때..

이를테면 int ival_test = 0; 이렇게요..

MODULE_PARM(ival_test, "i");

이걸 모듈소스 끝자락에 추가해줬습니다.

매크로에 넘겨준 인자에 대한 설명은 module.h를 보시면 잘 나오네요^^

행복하세요~