محمد حسین حاجی وندی
محمد حسین حاجی وندی
خواندن ۲ دقیقه·۳ سال پیش

حل مشکل compile نشدن کرنل ماژول های VMware Workstation [به روز رسانی اردیبهشت ۰۱]

اگر ازون دسته آدمایی هستین که به یک سری ابزار های خاص عادت کردین و تحت هر شرایطی می خواین با همون ها کار کنید احتمالا به مشکلی که تو عنوان این نوشته اومده بر خورده باشین. من خودم چندین بار تو توزیع های مختلف لینوکس به این مشکل برخوردم حتی بعد از به روز رسانی کرنل لینوکس هم هربار با این مشکل مواجه شدم. برای همین هم اینجا مستندش می کنم که دوستانی که دنبال راه حل سرراست میگردند کارشون راه بیافته و منم دعا کنن.?

اول باید مطمئن بشین که ماژول های کرنل vmware workstation که شامل چندین ماژول از جمله vmmon ٬ vmnet و ... هست کامپایل نمیشه. برنامه ی vmware workstation برای اولین بار بازکنید تا پنجره ی نصب ماژول های کرنل رو بهتون نشون بده یا با زدن دستور زیر می تونید چک کنید:

sudo vmware-modconfig --console --install-all

خروجی دستور بالا یه چیزی مثل شکل زیر شامل خطا خواهد بود:

خطا در نصب کرنل ماژول ها
خطا در نصب کرنل ماژول ها

خب راه حل خیلی ساده است و یه بنده خدایی سورس این ماژول ها رو برامون اینجا گذاشته پس با استفاده از git اون رو clone می کنیم و روی سیستممون میسازیمش:

git clone https://github.com/mkubecek/vmware-host-modules.git
cd vmware-host-modules
git checkout workstation-16.1.2 //بسته به نسخه ای ای که استفاده می کنید
make
sudo make install

و در نهایت سرویس vmware رو راه اندازی مجدد میکنیم:

sudo systemctl restart vmware.service

و vmware workstation مثل آدم اجرا میشه!

اگر Secure Boot توی سیستم شما فعال باشه بازم ممکنه vmware workstation اجرا نشه برای برطرف کردن این مشکل شما یا میتونید از طریق تنظیمات BIOS اون -منظورم Secure Boot هست- رو غیر فعال کنید یا اگر به هر دلیلی قصد ندارید غیرفعالش کنید به روش زیر باید ماژول های کرنل رو امضا کنید که در ادامه توضیح میدم.

اول پیشنیاز های امضا کردن ماژول کرنل رو نصب کنید.

sudo apt install openssl

برای امضا کردن ماژول کرنل نیاز به کلید RSA داریم که با زدن دستور زیر ساخته میشن(کلمه ی MOK رو با اسمی که میخواید برای کلیدتون بگذارید جایگزین کنید):

sudo openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj &quot/CN=VMware/&quot

با استفاده از دستورات زیر ماژول ها رو امضا کنید:

sudo /usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vmmon)
sudo /usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vmnet)

با ابزار mokutil کلید عمومی رو وارد کنید(احتمالا تو این مرحله یه رمز عبور دلخواه هم باید تنظیم کنید):

sudo mokutil --import MOK.der

در نهایت سیستم رو ریست کنید و هنگام بالا اومدن سیستم رمز عبوری که تو مرحله ی قبل وارد کردید رو برنید تا امضا تایید بشه و سیستم عامل بالا بیاد و این دفعه امیدوارم بتونید vmware workstation رو اجرا کنید.

البته تهشم اگر اجرا نشد می تونید از gnome boxes و kvm یا Oracle virtualbox استفاده کنید:)

VMware Workstationkernel modulevirtualizationvmwareworkstation
مهندس نرم افزار
شاید از این پست‌ها خوشتان بیاید