J'ai un module chargeable qui lance un avertissement à propos de phys_mem_access_prot lorsqu'il est construit sous Ubuntu 9.10 (Linux 2.6.31-22-server).Pilote 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'
La fonction ne montre dans le fichier System.map-2.6.31-22-server
[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
et les charges du pilote, donc je suis confus quant à pourquoi modpost
est malheureux. Est-ce un problème car le noyau n'exporte pas la fonction avec EXPORT_SYMBOL()
?
Merci pour la confirmation! La façon dont LDD expliquait EXPORT_SYMBOL, je n'étais pas sûr si elle appliquait uniquement le module -> noyau ou si elle s'appliquait dans les deux sens. – ctuffli