커널 드라이버 제작시에 undefined symbol 오류 입니다.
글쓴이: trymp / 작성시간: 금, 2015/05/08 - 11:11오전
환경은 linux fc6 이고 2.6.24 kernel 입니다.
제가 아래 매크로를 이용해서 각 zone 별 메모리 상태를 보려고 하는데요.
for_each_zone(zone) { ... }
이 매크로를 사용할 때 아래와 같은 애러가 나옵니다.
WARNING: "next_zone" [aaa.ko] undefined!
WARNING: "first_online_pgdat" [aaa.ko] undefined!
일반적인 코딩에서는 다른 오브젝트에 심볼이 있으면 link 시에 추가만 해주면 되는데,
커널 드라이버 빌드시에는 붙이기 어렵더군요. mm/mmzone.o 를 어떻게 붙여주어야 하나요?
아니면 undefined 가 나지 않게 하는 방법이 따로 있을 까요?
고수님들 조언 주시면 감사하겠습니다.
제 Makefile 입니다.
PWD = $(shell pwd) KSRC = 생략 DRIVER_NAME = aaa TARGET = $(DRIVER_NAME).ko SRCS = aaa1.c obj-m += $(DRIVER_NAME).o $(DRIVER_NAME)-objs := $(SRCS:.c=.o) EXTRA_CFLAGS = all: default default: $(MAKE) -C ${KSRC} SUBDIRS=${PWD} modules depend: clean: rm -rf $(TARGET) $(TARGET:.ko=.o) $(TARGET:.ko=.mod.c) $(TARGET:.ko=.mod.o) $(SRCS:.c=.o) .*cmd .tmp_versions Module.symvers
Forums:
이 키워드로 한번 검색해 보세요.
EXPORT_SYMBOL
로 한번 검색해 보시면 답이 나올겁니다.
댓글 달기