Linux

交叉編譯此源時,為什麼我會在一台主機上收到“沒有創建目標的規則”錯誤,而在另一台主機上卻沒有

  • September 22, 2022

我將以下 linux 核心原始碼庫複製到幾個不同的主機(我的本地機器和 Github Actions 執行器)

https://gitlab.conclusive.pl/devices/linux/-/tree/master

我正在使用kstr-sama5d27 defconfig

使用建構模組時,make modules -j4 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LOCALVERSION=-kstr-sama5d27我在 GA 主機上收到以下錯誤:

製作

$$ 2 $$: *** 沒有規則來製作目標 ‘/lib/firmware’,’net/wireless/extra-certs.c’ 需要。停止。

而在我的本地機器上建構成功:

GEN net/wireless/extra-certs.c

CC

$$ M $$網路/無線/extra-certs.o

我查看了 net/wireless/Makefile,但沒有任何內容讓我想到如何解決這個問題。

我認為這個問題一定是由建構環境的差異引起的。

這是由CONFIG_CFG80211_EXTRA_REGDB_KEYDIRwhich 設置為 引起的/lib/firmware。當這個配置條目不為空時,它會導致建構依賴extra-certs.o,它本身依賴於作為配置值給出的目錄。因此,建構在您自己的系統上成功,它有/lib/firmware,但在 GitHub 操作執行器上失敗,它沒有。

如果您不需要包含額外的證書,則應覆蓋此配置設置,使其最終為空。這將允許建構在沒有/lib/firmware.

引用自:https://unix.stackexchange.com/questions/718216