
カーネルモジュールのビルドでエラーが発生しました
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/