如何使 DKMS 将正确的 ARCH 传递给 'make'?

How to make DKMS pass the right ARCH to 'make'?

我正在尝试使用 DKMS 构建模块。我的问题是我似乎无法让 DKMS 将正确的 ARCH 传递给 'make'。它一直使用我的 OS 内核的架构,即 armv7l。但是没有地图
/usr/src/linux/arch/armv7l
它需要看看里面
/usr/src/linux/arch/arm

我尝试将 -a arm、-k 4.4.21-v7+/arm 作为参数传递给 'dkms build',但它没有将其传递给 'make'。将 BUILD_EXCLUSIVE_ARCH="arm" 添加到 /usr/src/rtl8812AU-4.3.14/dkms.conf 也没有区别。

sudo dkms build -m ${DRV_NAME} -v ${DRV_VERSION} -k 4.4.21-v7+/arm

Kernel preparation unnecessary for this kernel. Skipping...

Building module:
cleaning build area....
'make'....(bad exit status: 2)
Error! Bad return status for module build on kernel: 4.4.21-v7+ (arm)
Consult /var/lib/dkms/rtl8812AU/4.3.14/build/make.log for more information.

cat /var/lib/dkms/rtl8812AU/4.3.14/build/make.log

DKMS make.log for rtl8812AU-4.3.14 for kernel 4.4.21-v7+ (arm)
Thu Sep 29 16:36:07 UTC 2016
make ARCH=armv7l CROSS_COMPILE= -C /lib/modules/4.4.21-v7+/build M=/var/lib/dkms/rtl8812AU/4.3.14/build modules
make[1]: Entering directory '/usr/src/linux'
Makefile:606: 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'
Makefile:1576: recipe for target 'modules' failed
make: [modules] Error 2

如何解决这个问题?
已经谢谢了

我在 Raspberry Pi 2 上用 Ubuntu Mate (16.04) 通过符号链接 arm 目录解决了这个问题:

sudo ln -s arm armv7l

肮脏的 hack,但它有效:)

你可以通过 -a, --arch 像这样通过 arch:

dkms install rtl8188fu/1.0 -j 4-a arm

阅读 运行 man dkms 的手册页或在此处找到更多信息:

http://manpages.ubuntu.com/manpages/bionic/man8/dkms.8.html