搞了半天原来是Makefile的问题
vdisk.c中
char * vdisk[VHDD_MAX_DEVICE]={NULL,}; EXPORT_SYMBOL(vdisk);
vhdd.c中
extern char *vdisk[VHDD_MAX_DEVICE];
一开始分别使用Makefile生成的就出错了
dmesg结果
正确的Makefile:
obj-m :=vhdd.o export-objs :=vdisk.o KDIR :=/lib/modules/$(shell uname -r)/build PWD :=$(shell pwd) default: $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules clean: rm -rf *.ko rm -rf *.mod.* rm -rf .*.cmd rm -rf *.o
export-objs是关键