Linux
交叉編譯此源時,為什麼我會在一台主機上收到“沒有創建目標的規則”錯誤,而在另一台主機上卻沒有
我將以下 linux 核心原始碼庫複製到幾個不同的主機(我的本地機器和 Github Actions 執行器)
https://gitlab.conclusive.pl/devices/linux/-/tree/master
使用建構模組時,
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_KEYDIR
which 設置為 引起的/lib/firmware
。當這個配置條目不為空時,它會導致建構依賴extra-certs.o
,它本身依賴於作為配置值給出的目錄。因此,建構在您自己的系統上成功,它有/lib/firmware
,但在 GitHub 操作執行器上失敗,它沒有。如果您不需要包含額外的證書,則應覆蓋此配置設置,使其最終為空。這將允許建構在沒有
/lib/firmware
.