自己写了一个Makefile文件,通过make命令编译自己写的字符驱动代码为.ko文件,报错如下:
make: *** No rule to make target ‘/data2/linux-digilent-digilent-v4.4/Module.symvers’, needed by ‘driver/axidma.ko’。 stop
意思是缺失Module.symvers文件。
原因就在于,内核代码下载后,只是进行了解压,没有将内核代码编译过。也就是说此时内核代码只是一段源码,没什么用,需要将内核代码编译之后,在自己的makefile中使用内核编译设备驱动才有用。
在内核源码中使用如下命令即可生成Module.symvers:
make modules