Linux Kernel 5.16環境でVMware Playerを使う
先日、諸事情によりメインPCのDebianをStableからTestingに更新した。
それに伴ってKernelが5.10から5.16に変わったことで、VMware関連モジュールのインストールに失敗するようになってしまった。
エラー
<省略>
make[2]: *** [/usr/src/linux-headers-5.16.0-4-common/scripts/Makefile.build:292: /tmp/modconfig-4A7C8F/vmnet-only/driver.o] エラー 1
make[2]: *** 未完了のジョブを待っています....
make[2]: *** [/usr/src/linux-headers-5.16.0-4-common/scripts/Makefile.build:292: /tmp/modconfig-4A7C8F/vmnet-only/userif.o] エラー 1
In file included from /tmp/modconfig-4A7C8F/vmnet-only/vm_atomic.h:49,
from /tmp/modconfig-4A7C8F/vmnet-only/vnet.h:28,
from /tmp/modconfig-4A7C8F/vmnet-only/vnetInt.h:24,
from /tmp/modconfig-4A7C8F/vmnet-only/netif.c:43:
/tmp/modconfig-4A7C8F/vmnet-only/vm_assert.h:43:10: fatal error: stdarg.h: そのようなファイルやディレクトリはありません
43 | #include <stdarg.h>
| ^~~~~~~~~~
compilation terminated.
make[2]: *** [/usr/src/linux-headers-5.16.0-4-common/scripts/Makefile.build:292: /tmp/modconfig-4A7C8F/vmnet-only/hub.o] エラー 1
make[2]: *** [/usr/src/linux-headers-5.16.0-4-common/scripts/Makefile.build:292: /tmp/modconfig-4A7C8F/vmnet-only/netif.o] エラー 1
make[1]: *** [/usr/src/linux-headers-5.16.0-4-common/Makefile:1870: /tmp/modconfig-4A7C8F/vmnet-only] エラー 2
make[1]: ディレクトリ '/usr/src/linux-headers-5.16.0-4-amd64' から出ます
make: *** [Makefile:117: vmnet.ko] エラー 2
make: ディレクトリ '/tmp/modconfig-4A7C8F/vmnet-only' から出ます
<省略>
エラーをみるとstdarg.hヘッダーファイルが読み込めていない様子。
フォルダ階層が変わったのだろうか…
対応方法
対象のヘッダーファイルが存在していることは確認できた。
$ ll /usr/src/linux-headers-5.16.0-4-common/include/linux/ | grep std
-rw-r--r-- 1 root root 140473 3月 2 19:51 zstd_lib.h
-rw-r--r-- 1 root root 3167 3月 2 19:51 zstd_errors.h
-rw-r--r-- 1 root root 17522 3月 2 19:51 zstd.h
-rw-r--r-- 1 root root 3353 3月 2 19:51 stddef.h
-rw-r--r-- 1 root root 313 3月 2 19:51 stdarg.h
以下のコマンドでヘッダーファイルの所在を指定して、モジュールのインストールが可能。
$ sudo CPATH=/usr/src/linux-headers-5.16.0-4-common/include/linux/ vmware-modconfig --console --install-all
参考
この記事が気に入ったらサポートをしてみませんか?