解決Parallels Tools無法安裝在Ubuntu 18.04、ElementaryOS-5.0 以及其他核心版本大於4.15的Linux之問題
解決Parallels Tools無法安裝在Ubuntu 18.04、ElementaryOS-5.0 以及其他核心版本大於4.15的Linux之問題
問題描述:
在parallels desktop 12中安裝elementaryos-5.0後,無法安裝parallels_tools
發生問題過程:
前置parallels_tools安裝流程
1.掛載parallels_tools映像檔
2.執行./install
3.執行./install失敗
在查看錯誤log和網上爬文後,發現執行失敗原因是在Kernel version >= 4.15 時parallels_tools安裝會有 問題。
解決步驟:
需要修改parallels_tools映像檔內的三個文件後重新安裝
複製parallels_tools映像檔內的內容到新目錄,例:
xxxxxxxxxxmkdir ~/Desktop/parallels_fixed cd ~/Desktop/parallels_fixed
解壓縮 parallels_fixed/kmods/prl_mod.tar.gz並刪掉(之後要重包)
tar -xzf prl_mod.tar.gz rm prl_mod.tar.gz
文件一 parallels_fixed/kmods/prl_eth/pvmnet/pvmnet.c
修改line 438
MODULE_LICENSE("Parallels");改成
MODULE_LICENSE("GPL"); 保存
文件二 parallels_fixed/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg/prltg.c
修改line 1535
MODULE_LICENSE("Parallels"); 改成以下code後保存
MODULE_LICENSE("GPL");文件三 parallels_fixed/kmods/prl_fs_freeze/Snapshot/Guest/Linux/prl_freeze/prl_fs_freeze.c
修改line 212的function:thaw_timer_fn
void thaw_timer_fn(unsigned long data){ struct work_struct *work = (struct work_struct *)data; schedule_work(work);} 改成
void thaw_timer_fn(unsigned long data){ struct work_struct *work = (struct work_struct *)data; schedule_work(work);}void thaw_timer_fn_new_kernel(struct timer_list *data){ struct work_struct *work = data->expires; schedule_work(work);}再來修改line 220
DEFINE_TIMER(thaw_timer, thaw_timer_fn, 0, (unsigned long)&(thaw_work));改成
DEFINE_TIMER(thaw_timer, thaw_timer_fn_new_kernel);DEFINE_TIMER(thaw_timer, thaw_timer_fn, 0, (unsigned long)&(thaw_work));最後將改好的檔案壓縮後重新安裝
cd ~/Desktop/parallels_fixedtar -zcvf prl_mod.tar.gz . dkms.conf Makefile.kmods
回到上層,更改檔案權限使其可執行
1.修改install檔案權限
xxxxxxxxxxchmod +x install
2.修改parallels_fixed/installer下執行檔
xcd installerchmod +x installer.* *.sh prl_*
3.回到上層執行
cd ..sudo ./install
參考資料:https://gist.github.com/rudolfratusinski/a4d9e3caff11a4d9d81d2e84abc9afbf

留言
張貼留言