我正在制作Linux内核设备驱动程序(Linux redhat 2.6.32-358.el6.x86_64 x86_64 GNU / Linux)。每当我尝试使用rmap函数时,如rmap_walk
或vma_address
,链接器就会抱怨:
WARNING: "rmap_walk" [/root/my_dir/my_device.ko] undefined!
我正在构建正在运行的内核:
obj-m += my_device.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
我想这是因为这些功能不会与EXPORT_SYMBOL
一起导出。有没有解决办法?
答案 0 :(得分:0)
我正在制作Linux内核设备驱动程序(Linux redhat 2.6.32-358.el6.x86_64 x86_64 GNU / Linux)。每当我尝试使用rmap函数时,如
rmap_walk
或vma_address
,链接器 抱怨......我猜是因为这些功能不会导出EXPORT_SYMBOL
。
关于rmap_walk
- 没有rmap_walk
in Linux 2.6.32。
关于vma_address
,你是对的。
有没有解决办法?
是的,您可以将source code of vma_address
复制到您的驱动程序中。 vma_address
不会调用其他函数,因此可以正常工作。