Parallels Tools 無法安裝問題解決

嘎嘣脆發表於2018-07-09

最近在 PD 中安裝了新版的 Mint Linux,死活裝不上 PD,很多功能無法正常使用。

看了一下日誌,是因為核心的原因造成的問題,Google 一波之後,找到了解決辦法,整理一下分享給大家,下文是以 Ubuntu 18.04 作為實驗物件,應該是新版本的核心都適用。

本文介紹方法出處:

https://gist.github.com/rudolfratusinski/a4d9e3caff11a4d9d81d2e84abc9afbf

準備

  • 選中虛擬機器,點選 Parallels Action -> "Install Parallels Tools"
  • 包含" Parallels Tools" 的CD 被插入 Ubuntu 虛擬機器中。
  • 雙擊開啟 CD,拷貝所有的內容到一個新資料夾,起個有識別度的名字,比如"parallels_fixed"
  • 開啟終端,cd 到該目錄
  • 給 install 增加執行許可權(chmod +x install)
  • cd 到 "installer" 目錄
  • 給一些指令碼檔案增加可執行許可權:chmod +x installer.* *.sh prl_*

必須修改一些檔案

  • 到 kmods 目錄(cd ~/Desktop/parallels_fixed/kmods),解壓縮檔案(tar -xzf prl_mod.tar.gz)
  • 刪除prl_mod.tar.gz(rm prl_mod.tar.gz)

修改檔案1/3

  • 開啟 "prl_eth/pvmnet/" 目錄(cd ~/Desktop/parallels_fixed/kmods/prl_eth/pvmnet)
  • 使用文字編輯器開啟"pvmnet.c"檔案
  • 編輯438行:
MODULE_LICENSE("Parallels");
複製程式碼

修改為:

MODULE_LICENSE("GPL");
複製程式碼
  • 儲存

修改檔案2/3

  • 開啟 "prl_tg/Toolgate/Guest/Linux/prl_tg/" 目錄 (cd ~/Desktop/parallels_fixed/kmods/prl_tg/Toolgate/Guest/Linux/prl_tg)
  • 使用文字編輯器開啟"prltg.c"
  • 編輯1535行:
MODULE_LICENSE("Parallels");
複製程式碼

修改為:

MODULE_LICENSE("GPL");
複製程式碼
  • 儲存

修改檔案3/3

  • 開啟"prl_fs_freeze/Snapshot/Guest/Linux/prl_freeze/" 目錄(cd ~/Desktop/parallels_fixed/kmods/prl_fs_freeze/Snapshot/Guest/Linux/prl_freeze)
  • 使用文字編輯器開啟"prl_fs_freeze.c"檔案
  • 在212行,你將找到"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);
}
複製程式碼

然後找到220行:

DEFINE_TIMER(thaw_timer, thaw_timer_fn, 0, (unsigned long)&(thaw_work));
複製程式碼

修改為:

#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
DEFINE_TIMER(thaw_timer, thaw_timer_fn_new_kernel);
#else
DEFINE_TIMER(thaw_timer, thaw_timer_fn, 0, (unsigned long)&(thaw_work));
#endif
複製程式碼

打包

  • 回到 kmods 目錄(cd ~/Desktop/parallels_fixed/kmods),執行:tar -zcvf prl_mod.tar.gz . dkms.conf Makefile.kmods
  • 目錄中將會生成 "prl_mod.tar.gz" 檔案

安裝

  • 回到頂級目錄(cd ../ 或者 cd ~/Desktop/parallels_fixed),然後執行sudo ./install進行安裝。

這時應該正常了。

相關文章