首先,我对定制的硬件几乎没有经验。到目前为止,我只在完全的系统上设计了Linux内核模块,所以这可能是一个愚蠢的问题,但我无法解决。
我有一个香蕉PI M2零与一个最小的Linux5.6.0-RX5+内核的Ubuntu。我想为ADS1294 SPI模拟前端创建一个驱动程序,所以我从最基本的内核文件开始:
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("GPL");
static int __init test_init(void){
printk(KERN_INFO "TEST: starting...");
return 0;
}
static void __exit test_exit(void){
printk(KERN_INFO "TEST: stopping...");
}
module_init(test_init);
module_exit(test_exit);与Makefile:
obj-m := test_mod.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean执行make all后,系统声明为make[1]: *** /lib/modules/5.6.0-rc5+/build: No such file or directory. Stop.。
如果我列出/lib/modules/5.6.0-rc5+/的内容,我得到:build kernel modules.alias modules.alias.bin modules.builtin modules.builtin.bin modules.builtin.modinfo modules.dep modules.dep.bin modules.devname modules.order modules.softdep modules.symbols modules.symbols.bin source
类似地,对于ls /usr/src/linux-headers-5.6.0-rc5+/,我得到一个include文件夹。
由此,我怀疑报头被打破了(?),但我不知道如何进行,检查什么。如果可能的话,我想避免重新构建内核。
发布于 2020-04-01 01:21:46
似乎您使用了一些实验性内核,比如来自https://github.com/avafinger/bananapi-zero-ubuntu-base-minimal的
v32 mailine内核5.6.0-rc5 (实验)Ubuntu19.10EOAN
它是为您的板自定义编译的,如果您不能构建内核模块,那么无论是您还是图像作者,它似乎都没有完全安装到映像中。(ls -l /lib/modules/5.6.0-rc5+/build或ls -l /lib/modules/$(uname -r)/build可能有助于调试此问题。)
你可以尝试:
https://github.com/avafinger/bananapi-zero-ubuntu-base-minimal/releases/tag/v3.2)
build目录指向构建内核的目录。他的https://github.com/avafinger/bananapi-zero-ubuntu-base-minimal/releases/tag/v3.2 - linux-image-5.6.0-rc5+_1.0-41.deb没有完全打包,build只是他本地目录的一个符号链接,没有包含在已发布的deb文件中:
$ dpkg-deb -c ~/Downloads/linux-image-5.6.0-rc5+_1.0-41.deb |grep build
lrwxrwxrwx root/root 0 2020-03-10 02:10 ./usr/lib/modules/5.6.0-rc5+/build -> /arm/ubuntu/cubieboard2/linux-5.6.yPS:你已经联系过他了:https://github.com/avafinger/bananapi-zero-ubuntu-base-minimal/issues/34
https://stackoverflow.com/questions/60957265
复制相似问题