首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Banana PI M2 0中添加缺失的内核头来构建内核模块?

如何在Banana PI M2 0中添加缺失的内核头来构建内核模块?
EN

Stack Overflow用户
提问于 2020-03-31 18:17:10
回答 1查看 339关注 0票数 0

首先,我对定制的硬件几乎没有经验。到目前为止,我只在完全的系统上设计了Linux内核模块,所以这可能是一个愚蠢的问题,但我无法解决。

我有一个香蕉PI M2零与一个最小的Linux5.6.0-RX5+内核的Ubuntu。我想为ADS1294 SPI模拟前端创建一个驱动程序,所以我从最基本的内核文件开始:

代码语言:javascript
复制
#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:

代码语言:javascript
复制
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文件夹。

由此,我怀疑报头被打破了(?),但我不知道如何进行,检查什么。如果可能的话,我想避免重新构建内核。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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+/buildls -l /lib/modules/$(uname -r)/build可能有助于调试此问题。)

你可以尝试:

https://github.com/avafinger/bananapi-zero-ubuntu-base-minimal/releases/tag/v3.2)

  • switch与
  • 联系镜像作者,以获得模块编译时内核头安装的提示;(他确实在中发布linux文件,但不发布headers文件到其他具有更正确安装包的内核版本;
    • 或重新编译内核(如果映像作者有用于构建的公共脚本)并正确安装它。实际上,手动安装可能只是将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文件中:

代码语言:javascript
复制
$ 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.y

PS:你已经联系过他了:https://github.com/avafinger/bananapi-zero-ubuntu-base-minimal/issues/34

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60957265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档