如何修复 raspbian 上一个奇怪的 linux 内核模块构建问题,该问题在 x64 ubuntu 上运行良好
How to fix a weird linux kernel module build problem on raspbian that works fine on x64 ubuntu
我 运行 解决了这个问题,但我花了一段时间,因为它不是很明显,所以我想 post 如果其他人有这个问题。
我有一个 linux 内核模块,我在 x86 和一堆树莓派 运行ning raspian 上构建。
构建在 x64 ubuntu 上工作正常,当我 运行 从树莓派上的命令行创建时它工作正常。
但是我有一个构建脚本来自动化所有必须构建的东西,只有在那种情况下它才会在 raspians 上失败。
我遇到的错误是:
make[1]: Entering directory '/usr/src/linux-headers-4.19.75-v7+' Makefile:614: arch/armv7l/Makefile: No such file or directory make[1]:
*** No rule to make target 'arch/armv7l/Makefile'. Stop. make[1]: Leaving directory '/usr/src/linux-headers-4.19.75-v7+'
对我来说看起来不错,而且它在命令行中运行良好,而不是我的构建脚本。
请参阅下面的解决方案。
我有几个构建不同架构的树莓派,所以在我的构建脚本中添加了
导出 ARCH=uname -m
我会将其附加到构建结果文件名的末尾。
事实证明,关于内核模块构建的一些东西 make forks make -C 再次使用了 ARCH 环境变量,我的脚本意外地改变了它。
我对消息“*** No rule to make target 'arch/armv7l/Makefile'”感到困惑,因为它看起来合法,但显然它是从不正确的 ARCH 环境变量派生的。
我在脚本中更改了 ARCH 变量的名称,它又开始工作了。
希望这对某人有所帮助。
我 运行 解决了这个问题,但我花了一段时间,因为它不是很明显,所以我想 post 如果其他人有这个问题。
我有一个 linux 内核模块,我在 x86 和一堆树莓派 运行ning raspian 上构建。
构建在 x64 ubuntu 上工作正常,当我 运行 从树莓派上的命令行创建时它工作正常。
但是我有一个构建脚本来自动化所有必须构建的东西,只有在那种情况下它才会在 raspians 上失败。
我遇到的错误是:
make[1]: Entering directory '/usr/src/linux-headers-4.19.75-v7+' Makefile:614: arch/armv7l/Makefile: No such file or directory make[1]:
*** No rule to make target 'arch/armv7l/Makefile'. Stop. make[1]: Leaving directory '/usr/src/linux-headers-4.19.75-v7+'
对我来说看起来不错,而且它在命令行中运行良好,而不是我的构建脚本。 请参阅下面的解决方案。
我有几个构建不同架构的树莓派,所以在我的构建脚本中添加了
导出 ARCH=uname -m
我会将其附加到构建结果文件名的末尾。
事实证明,关于内核模块构建的一些东西 make forks make -C 再次使用了 ARCH 环境变量,我的脚本意外地改变了它。
我对消息“*** No rule to make target 'arch/armv7l/Makefile'”感到困惑,因为它看起来合法,但显然它是从不正确的 ARCH 环境变量派生的。
我在脚本中更改了 ARCH 变量的名称,它又开始工作了。
希望这对某人有所帮助。