我试图编译mem.c
模块并禁用CONFIG_STRICT_DEVMEM
。我们的想法是拥有一个模块,允许我访问1MB以上/dev/mem
的地址空间。为什么?我正在进行一些需要访问此内存空间的测试。
我将mem.c
复制到我的主目录中,删除了具有访问限制的代码并对其进行了编译。但是,我收到以下警告:
WARNING: "kmsg_fops" [/home/user/projects/new_mem/mem.ko] undefined!
WARNING: "tty_init" [/home/user/projects/new_mem/mem.ko] undefined!
WARNING: "phys_mem_access_prot" [/home/user/projects/new_mem/mem.ko] undefined!
WARNING: "xlate_dev_mem_ptr" [/home/user/projects/new_mem/mem.ko] undefined!
WARNING: "devmem_is_allowed" [/home/user/projects/new_mem/mem.ko] undefined!
WARNING: "splice_from_pipe" [/home/user/projects/new_mem/mem.ko] undefined!
WARNING: "shmem_zero_setup" [/home/user/projects/new_mem/mem.ko] undefined!
make[1]: Leaving directory `/usr/src/linux-headers-4.4.0-34-generic'
我的问题是:
我是否真的必须编译定义了这些函数的每个模块,或者还有其他方法可以执行此操作?那有什么呢?
我需要的是编译代码以便能够访问/dev/mem
,我真的不需要所有其他模块。如果没有从mem.c
删除不必要的代码,还有其他方法可以删除此代码吗?
感谢任何帮助。