我正在制作一个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导出的。有什么解决方法吗?
发布于 2017-01-12 16:57:54
我正在制作一个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不会调用其他函数,所以这是可行的。
https://stackoverflow.com/questions/20843059
复制相似问题