症狀
升級 linux Kernel 或 vbox 版本後,執行 VirtualBox 會跑出一些錯誤訊息,要你輸入下面指令來重編程式。
/etc/init.d/vboxdrv setup
到終端機照著跑(記得先打 sudo
空一格再照著填)後,又跑出下面的訊息。
* Recompiling VirtualBox kernel modules
* Look at /var/log/vbox-install.log to find out what went wrong
用文字編輯器(比如說在終端機打 gedit
再接後面要看的檔案路徑)查看 /var/log/vbox-install.log 會看見以下錯誤。
Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR= and run Make again.
原因
簡單來說,「vbox 不知道你現在使用的 linux kernel 版本,和該版本的原始碼在哪,所以沒辦法編譯程式」,所以把符合版本的 source 裝上去,再指定 source 所在路徑就解決了。
解決
首先,如果不知道你現在用的 linux kernel 版本的話,請打以下指令。
uname -r
接著先去搜尋一下你的 src 有哪些版本的,確認要不要再安裝。
ls /usr/src
請注意看一下 linux-headers 開頭的,有沒有符合你上面 uname 查到的版本,沒有的話,請用下面的指令安裝。
sudo apt-get install linux-headers-`uname -r`
(※註:上述這行指令中的 `uname -r` 會自動幫你填好版本,怕出錯的話,請自己先打 uname -r 再複製版本字串,要 apt-get 安裝時,再用貼上,緊加在 linux-headers- 後,當然要先去掉 'uname -r' 字串再加啦。)
裝好後,請用 export
指令,重新指定 linux 原始碼的資料夾位置。(請注意不要用 sudo 去跑)
export KERN_DIR=/usr/src/linux-headers-`uname -r`/
(※註一:因為這邊要指定正確資料夾位置才行,所以建議用 uname 去幫你自動抓就好,別再手動輸入了。)
(※註二:不清楚現在的 KERN_DIR 設定的話,請執行 export | grep KERN_DIR
這個指令。export 會列出全部設定,用 | 把結果丟給 grep 會幫你抓出有你指定字串的那幾行來顯示。)
將 KERN_DIR 的位置設定好後,請再重新編譯一次 vbox 試試,等個幾分鐘後,應該就會成功編譯好了,接著再重新執行一次看看有沒有問題。
sudo /etc/init.d/vboxdrv setup
USB 2.0
如果你是把 VirtualBox 舊版移除,升級新版的話,一執行,就會跑出個 USB 2.0 怎樣怎樣的問題,所以不給你跑,這時可以選擇去 vbox 的「機器 → 設定值 → USB」項下,關閉 2.0 支援,不過這樣就不能跑 2.0 的速度了。
所以就照警告訊息說的,去下載 VirtualBox Extension Pack 來裝就行了。(請務必安裝與 vbox 版本號相同的 extension pack)
下載好 extension pack 後,先打開 vbox 視窗,再把 pack 的檔案圖示,用滑鼠拖拉到 vbox 視窗內再放開滑鼠左鍵,就能安裝了,這樣應該 USB 2.0 支援就沒問題了。
0 comments:
張貼留言