将我所犯的错误列出,留给别人参考:
在Beagleboard 上加载ko模块后,执行app挂了,打印如下信息:
在Beagleboard 上加载ko模块后,执行app挂了,打印如下信息:
CMEM Error: init: major version mismatch between interface and driver.
CMEM Error: needs driver version 0x3000100, got 0xffffffff
CMEM Error: CMEM_exit() already called, check stderr output for earlier CMEM failure messages (possibly version mismatch).
CMEM Error: CMEM_exit() already called, check stderr output for earlier CMEM failure messages (possibly version mismatch).
CMEM_alloc error.
本以为是内核不匹配或者文件系统不匹配,但是想想怎么都不可能,我所使用的内核没变,文件系统应该不会影响这个cmemk.ko模块的使用,所以google之,发现了该问题的原因。
由于在重新搞了一个新的文件系统后,我加载ko模块时的主设备号变了,但是那个loadmodules.sh里面为了ko模块的设备文件权限,我删除了设备文件并手动创建,由于主设备号变了,我手动创建的设备文件的主设备号跟具体的设备不对应。
注意在更换文件系统后,由于内核驱动加载的不同,造成有些设备的设备号变了,但是加载ko模块的脚本内可能设备号是写好的,所以造成这个问题。
注意在更换文件系统后,由于内核驱动加载的不同,造成有些设备的设备号变了,但是加载ko模块的脚本内可能设备号是写好的,所以造成这个问题。