上一篇记录了编译在NanoPC-T4上编译riffa的曲折过程,但当时虽然编译成功了,但却无法加载模块,提示“Invalid module format”,并在这上面卡了很长时间。当时通过度娘知道应该是内核版本匹配的问题,由于开发板原厂提供的系统镜像中并未包含头文件,而且在系统 中也没找到.config文件,期间有发邮件到友善群里提供的技术支持邮箱索要官方内核对应的头文件包,按群公告要求也对问题进行了详细的描述,但到现在也没收到回复的邮件,更不要说技术支持了~~没法,谁叫咱是菜鸟呢,也许咱的问题别人根本就不当一回事,还是自己折腾吧。
还是从最简单最基本的Hello驱动例程开始,在网上搜了相关教程,在T4编译成功但无法加载,依旧提示“Invalid module format”,然后在虚拟机上编译,加载成功,然后又在树莓派2上编译,发现树莓派的系统竟然也没有自带头文件,有apt-cache search有rpi2的头文件安装包,虽然版本不对,但死马当活马,直接apt-get install了,然后软链接过去,编译成功,但加载竟然也提示“Invalid module format”,这让我增加了内核不匹配的判断的信心,基于对树莓派资料丰富的信心,我相信虽然系统没有自带内核头文件,但肯定有关于安装头文件的说明,于是在树莓派官方github的文档中找到了安装头文件的说明,原来是sudo apt-get install raspberrypi-kernel-headers就自动安装对应版本的头文件了,期间由于hello的Makefile文件不兼容高版本内核(应该是),导致make时还自动编译内核自带的modules,