请问这个Module.symvers东西要怎么搞出来。
直接用驱动实验1的文件去make,出现了下图
然后我没管它,直接在板子上加载,然后,串口消息告诉我:
/lib/modules/4.1.15 # ls
chrdevbase.ko chrdevbaseApp
/lib/modules/4.1.15 # modprobe chrdevbase.ko
modprobe: can't open 'modules.dep': No such file or directory
/lib/modules/4.1.15 # insmod chrdevbase.ko
chrdevbase: no symbol version for module_layout
chrdevbase: no symbol version for module_layout
insmod: can't insert 'chrdevbase.ko': invalid module format
/lib/modules/4.1.15 # depmod
/lib/modules/4.1.15 # ls
chrdevbase.ko modules.alias modules.symbols
chrdevbaseApp modules.dep
/lib/modules/4.1.15 # modprobe chrdevbase.ko
chrdevbase: no symbol version for module_layout
chrdevbase: no symbol version for module_layout
modprobe: can't load module chrdevbase.ko (chrdevbase.ko): invalid module format
/lib/modules/4.1.15 # insmod chrdevbase.ko
chrdevbase: no symbol version for module_layout
chrdevbase: no symbol version for module_layout
insmod: can't insert 'chrdevbase.ko': invalid module format
好了,我自己解决了
下面是解决方法:
在虚拟机的内核上(就是要自己编译的内核)打下面的命令
make oldconfig
make prepare
make scripts
然后重新编译整个内核
之后重新去make驱动就没有出现warning了,之后再把新编译出来的.ko文件和App文件传到板子后,就能正常使用了。
具体原因不知道为什么,请各位大神麻烦解释一下,谢谢。