由于需要在armbian 上编译ko 模块,应该是发布程序为了精简没有带 kernel-header ;查找相关资料很模糊,使用armbian 自带的配置命令 armbian-config -> packge-> kernel header 安装后并没有解决问题 ,
可尝试如下命令:
1、先查看本机名:
bananapim64:/:# uname -r
5.15.74-sunxi64
bananapim64:/:#
这里我们的名字是sunxi64 ;
2、 联网下载:
apt-get install linux-headers-current-sunxi64
3、查看下载结果:
bananapim64:/:# cd /lib/modules
bananapim64:modules:# ls
5.15.74-sunxi64 5.15.93-sunxi64
bananapim64:modules:# cd 5.15.93-sunxi64
bananapim64:5.15.93-sunxi64:#
bananapim64:5.15.93-sunxi64:#
bananapim64:5.15.93-sunxi64:# ls
build
bananapim64:5.15.93-sunxi64:# cd build
bananapim64:build:# ls
arch Documentation init kernel Module.symvers security virt
block drivers io_uring lib net sound
certs fs ipc Makefile samples tools
crypto include Kconfig mm scripts usr
bananapim64:build:#
可见成功安装了kernel-header ,只是这个头的版本和我目前系统不一致(单板5.15.74 ,下载5.15.93),在insmod xxx.ko 文件后会报出如下错误:
XXX: version magic '5.15.93-sunxi64 SMP mod_unload aarch64' should be '5.15.74-sunxi64 SMP mod_unload aarch64'
insmod: ERROR: could not insert module .ko: Invalid module format
这就需要修改版本信息了,将如下文件修改为当前系统版本即可
/usr/src/linux-headers-5.15.93-sunxi64/include/generated/utsrelease.h