3
我有一个可加载的模块,它在Ubuntu 9.10(Linux 2.6.31-22-server)下生成时会对phys_mem_access_prot发出警告。Linux驱动程序phys_mem_access_prot undefined
[664] make -C /lib/modules/`uname -r`/build M=`pwd`
make: Entering directory `/usr/src/linux-headers-2.6.31-22-server'
LD /home/chuck/dev/svd/built-in.o
CC [M] /home/chuck/dev/svd/svd.o
LD [M] /home/chuck/dev/svd/svd_drv.o
Building modules, stage 2.
MODPOST 1 modules
WARNING: "phys_mem_access_prot" [/home/chuck/dev/svd/svd_drv.ko] undefined!
CC /home/chuck/dev/svd/svd_drv.mod.o
LD [M] /home/chuck/dev/svd/svd_drv.ko
make: Leaving directory `/usr/src/linux-headers-2.6.31-22-server'
该函数在System.map-2.6.31-22服务器文件
[667] grep phys_mem_access_prot /boot/System.map-2.6.31-22-server
ffffffff8103fb40 T phys_mem_access_prot
ffffffff8103fb50 T phys_mem_access_prot_allowed
,并加载驱动程序显示出来,所以我很困惑,为什么modpost
很不高兴。这是一个问题,因为内核不会导出功能EXPORT_SYMBOL()
?
感谢您的确认! LDD解释EXPORT_SYMBOL的方式,我不确定它是否仅应用了模块 - >内核,或者它是否应用了两种方式。 – ctuffli 2010-06-17 16:11:20