我目前正在尝试为Debian版本7(3.8.13-bone47)下的Beaglebone黑板构建LKM(Linux内核模块)。
每当我尝试下载Linux标头时,我都会遇到问题...
这是运行命令sudo apt-get install linux-headers-$(uname -r)
时控制台显示的内容:
root@beaglebone:/# sudo apt-get install linux-headers-$(uname -r)
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package linux-headers-3.8.13-bone47
E: Couldn't find any package by regex 'linux-headers-3.8.13-bone47'
我已经尝试过更新和升级软件包:这不能解决问题。如果可以脱机安装,可以在哪里找到当前版本的存档?
预先感谢您的回答!
答案 0 :(得分:0)
在目标上进行编译永远不是正确的工作方式。您可以从here克隆Beaglebone内核。列出该内核源代码的标签,我看不到bone47版本。除非有特定原因,否则您坚持使用较旧的版本,否则我建议迁移到具有新内核的新image。您可以从该git存储库中检出所需的分支。
在构建内核模块之后,可以通过在命令行上指定ARCH,CROSS_COMPILE和KDIR标志,在PC上对内核模块进行交叉编译。
答案 1 :(得分:0)
按目标编译是一种完全有效和合法的操作模式。并非所有人都希望为简单的内核模块编译或试验设置完整的linux开发环境。那可能是浪费时间。
BeagleBone具有强大的功能,可用于这种类型的工作,最新的工作映像具有可用的内核头文件(内核版本为4.19.94,截至2020-06-16)。
在安装生效之前,您可能需要更新本地apt索引。以下命令对我有用:
xpath3