드라이버에서 시스콜을 이용하고 싶은데요..
글쓴이: fxPolaris / 작성시간: 목, 2008/01/24 - 3:48오후
Linux에서 드라이버를 작성해보고있습니다.
init_module시에 mount를 행하는 드라이버를 짜보려고 하는데 잘 안됩니다.
user준위 어플리케이션에서는 mount함수를 써서 쉽게 해보았는데 드라이버에서 마운트하려니 잘 안됩니다.
제가 알고있기에는 유저준위의 mount함수가 sys_mount라는 시스콜이라고 알고있는데 드라이버에서 파일을 참조해서 컴파일하니 컴파일은 되는데 undefined에러가 나옵니다.
드라이버와 시스콜은 같은 커널준위라 호출에는 문제가 없는것 같은데...
sys_mount함수는 fs/namespace.c파일에 있더군요
메이크파일은 아래와 같이 작성했습니다.
obj-m := driver.c KERNEL_DIR := /Work/uClinux-dist/linux-2.6.x all: $(MAKE) -C $(KERNEL_DIR) SUBDIRS=$(PWD) modules
드라이버에 대해 문서를 보니 module-objs라는 변수에 여러개의 파일을 지적해서 컴파일시에 링크되도록 한다는데 namespace.o를 주어도 같습니다.
커널2.6에서는 sys_call_table에 접근할수 없는것으로 알고있습니다.
그래서 sys_mount함수를 직접 호출하려고 하는데~
선배님들 도와주세요~
Forums:
댓글 달기