
內核模組建構導致錯誤
由於 vmlinux 不可用,正在跳過 BTF 產生 [我的模組名稱]。
此操作在我之前使用核心 5.8.0.55* 的 Ubuntu 20.10 版本中運作良好。我最近更新到 Ubuntu 版本 21.04 —— 我的核心模組建置出現了這個錯誤。
答案1
這對我在 ubuntu 22.04 上有用。我不再收到錯誤“正在跳過 BTF 生成...”。
apt install dwarves
cp /sys/kernel/btf/vmlinux /usr/lib/modules/`uname -r`/build/
當然,您首先必須檢查您的 vmlinux 確實位於/sys/kernel/btf
.
答案2
好吧,這就是答案。
之前在我的 Ubuntu 21.10 下啟動任何虛擬機器都失敗。從VMWare的角度來看,問題是
Could not open /dev/vmmon: No such file or directory.
請確保載入了核心模組“vmmon”。
(vmnet
並且)
這個命令:sudo vmware-modconfig --console --install-all
給出了這個錯誤(並且仍然如此!)
Skipping BTF generation for /tmp/modconfig-9O1P2c/vmmon-only/vmmon.ko due to unavailability of vmlinux
解決方案
在我的情況下,我正在將虛擬機器從 Windows 平台遷移到安裝了安全啟動的 Ubuntu 筆記型電腦
雖然上面的編譯並不完美,但它正在創建必要的二進位文件,但因為它們沒有簽名,所以無法在 Ubuntu 啟動時加載
因此,我收到了 BTF 錯誤訊息,我認為這些訊息阻止了 VMNware 啟動,但我錯了。
這個連結 https://github.com/mkubecek/vmware-host-modules/issues/87#issuecomment-800051833 解釋簽署二進位所需的酷刑
# generate a key openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=VMware/" # import to UEFI database sudo mokutil --import MOK.der (generate a password need next step) # reboot system and import in UEFI BIOS # (use same password) sudo shutdown -r now # once rebooted need to sign the binaries sudo kmodsign sha256 ./MOK.priv ./MOK.der $(modinfo -n vmmon) sudo kmodsign sha256 ./MOK.priv ./MOK.der $(modinfo -n vmnet) # on reboot new signed binaries used sudo shutdown -r now # now good to start VMware and use any VM
一旦 UEFI BIOS 獲悉並簽署了驅動程式二進位文件,VMware 就可以正常運行,世界再次被拯救
所以我沒有完全解決編譯問題,但似乎我將此錯誤訊息與VMware無法運行混為一談,這是錯誤的。
答案3
他們更改了檔案“vmlinux.xz”的位置
嘗試ln -sf /usr/lib/modules/$(uname -r)/vmlinux.xz /boot/