一直苦于沒(méi)有一篇像樣的使用指南,原來(lái)外國(guó)有朋友跟我有同感,既然他捷足先登了,那我只好翻譯了。
原文作者說(shuō)會(huì)保持更新,這篇文章是很新的,介紹了很多實(shí)用的Wine設(shè)置方法,非常全面,無(wú)論新手還是老鳥(niǎo)都值得一讀。
原文:
我收集到的關(guān)于Wine的一些資料
如果你像我一樣的話(huà),當(dāng)你第一次使用Wine的時(shí)候,就會(huì)被Wine的幫助文章現(xiàn)狀所困擾?;ヂ?lián)網(wǎng)上確實(shí)有很多的HOWTO文章來(lái)教你使用一些程序或游
戲,但是我找不到一個(gè)全面的“Wine初學(xué)者教程”來(lái)讓我真正懂得實(shí)際了解和使用Wine所需的基本知識(shí)。我不需要一個(gè)教我如何運(yùn)行半條命2的文章,我需
要的是一篇能實(shí)實(shí)在在教我怎樣使用Wine的文章。最后,我整理了從眾多的Wiki、指南、帖子和HOWTO搜集來(lái)的資料,寫(xiě)成這篇文章。雖然這篇文章主
要針對(duì)在Wine下運(yùn)行游戲,但是它包括的幾乎所有的信息都可以應(yīng)用到用Wine來(lái)運(yùn)行其它的程序。
一般資料
“winecfg”的使用資料
特殊配置資料
安裝資料
一般使用資料
第三方軟件資料
高級(jí)設(shè)置資料
1一般資料
1.1Wine is not an emulator
這個(gè)我就不翻譯了,沒(méi)有多少技術(shù)介紹。
1.2使用最新的Wine
記住最新版的Wine會(huì)包含一些舊版本里沒(méi)有的bug。在feisty的軟件倉(cāng)庫(kù)里包含了0.9.33,而最新的Wine是0.9.44(我翻譯
文章時(shí))。0.9.33更加穩(wěn)定,但是最新的版本包含重大的DirectX改進(jìn)。有一些不能在0.9.33下運(yùn)行的游戲能夠在0.9.44中很好地運(yùn)行。
在使用0.9.37到0.9.40之間的某些版本運(yùn)行KotOR2時(shí),聲音在我的系統(tǒng)上崩潰了。那是最好的有關(guān)使用最新版導(dǎo)致棘手問(wèn)題的好例子。
(譯者:我個(gè)人還是推薦使用最新版,使用新版本會(huì)有更好的運(yùn)行速度,而且基本上每個(gè)bug都會(huì)在未來(lái)的2~3個(gè)版本中被修復(fù))
1.3不要從源碼編譯安裝Wine
(譯者:作者沒(méi)有說(shuō)為什么,可能是因?yàn)榫幾g要解決的依賴(lài)性問(wèn)題太多了。
我個(gè)人還是推薦編譯安裝,這樣安裝完后問(wèn)題少一點(diǎn),性能好一點(diǎn)。)
1.4使用終端
如果正確安裝的話(huà),wine會(huì)把它自己關(guān)聯(lián)到exe文件,所以你只要雙擊exe文件就可以運(yùn)行。無(wú)論怎樣,這都不是我們所推薦的使用wine的方
法(譯者:我也不推薦)。使用終端會(huì)比較好,因?yàn)檫@樣可以正確地設(shè)定程序的路徑,否則程序就會(huì)找不到所需要的文件。另外,使用終端還可以顯示出錯(cuò)誤信息,
這對(duì)于解決問(wèn)題是非常有用的。
1.5準(zhǔn)備對(duì)付挫折
Wine并不完美。不會(huì)所有的事情都能順利發(fā)展,有時(shí)候甚至需要你自己去解決問(wèn)題。但你現(xiàn)在是一個(gè)linux用戶(hù)了,你就要準(zhǔn)備著去應(yīng)付。
2“winecfg”的使用資料
2.1運(yùn)行“winecfg”
你至少需要運(yùn)行一次winecfg來(lái)設(shè)置wine的目錄和硬件。
2.2虛擬桌面
使用這個(gè)選項(xiàng)可以使軟件的安裝更加流暢。我發(fā)現(xiàn)在不使用這個(gè)選項(xiàng)的時(shí)候,使用某些程序會(huì)導(dǎo)致已經(jīng)激活的對(duì)話(huà)框、CDKEY輸入窗口或更換光盤(pán)的確
認(rèn)窗口不能出現(xiàn)在前端。讓我以為程序卡死了,就kill掉了進(jìn)程。選擇這個(gè)選項(xiàng)還能夠避免程序鎖死你的桌面或者把你的屏幕分辨率改成難看的模式。
2.3使用Application Settings
你可以在winecfg的Application標(biāo)簽里的Application
Settings對(duì)話(huà)框?qū)€(gè)別的程序進(jìn)行自定義設(shè)置。那里只允許你進(jìn)行windows兼容運(yùn)行模式設(shè)置(譯者:像windows下的exe屬性里的兼容性
標(biāo)簽)、某些顯示設(shè)置和DLL的設(shè)置。
當(dāng)你只需要設(shè)置某個(gè)程序使用某些特定的windows自帶的DLL,不希望其它程序(包括wine)使用這些native的DLL的時(shí)候(而其
它程序使用這些DLL會(huì)導(dǎo)致問(wèn)題),(譯者:wine自帶的DLL叫做builtin,windows下原生的DLL叫做native)這個(gè)選項(xiàng)就會(huì)變得
十分有用。在進(jìn)行DLL設(shè)置時(shí)我都用這個(gè)方法,就是為了防止某些對(duì)wine的運(yùn)行存在潛在威脅的nativeDLL被wine調(diào)用(譯者:在一般情況下,
wine只調(diào)用自帶的builtinDLL,而不會(huì)使用native的DLL,版權(quán)問(wèn)題,除非經(jīng)過(guò)設(shè)置,如上所述)。這樣我就只是修改了那些可執(zhí)行的配置
文件,當(dāng)我不需要時(shí),可以改回來(lái)而不會(huì)損壞整個(gè)Wine。(譯者:設(shè)置這些東西之前,保證已經(jīng)將一個(gè)程序的exe文件添加到Application標(biāo)簽的
白框中,并且反色選中。不是default的那個(gè),是你所需要設(shè)置的那個(gè)exe文件。)
2.4Windows版本
對(duì)不同的程序嘗試不同的Windows版本。這就是說(shuō)一個(gè)為了XP而設(shè)計(jì)的游戲可能會(huì)在wine的98模式的支持下能更好地運(yùn)行。在做這個(gè)之前確認(rèn)你已經(jīng)把程序添加到Application的白框中,并且選中,反色顯示。
2.5使用ALSA驅(qū)動(dòng)
有些游戲是需要OSS才能運(yùn)行,但是OSS已經(jīng)不會(huì)再繼續(xù)開(kāi)發(fā)了。
(譯者:推薦只是獨(dú)立聲卡使用ALSA,集成的還是使用OSS最好)
2.6不要總是選擇allow the window manager to control the windows(winecfg里的)
使用這個(gè)選項(xiàng)有時(shí)候會(huì)使游戲在全屏幕運(yùn)行時(shí)出現(xiàn)問(wèn)題。當(dāng)前的wine版本0.9.39+已經(jīng)修正了多數(shù)游戲的全屏問(wèn)題,但是引入了一個(gè)新的問(wèn)題:
當(dāng)不使用這個(gè)選項(xiàng)時(shí),會(huì)使鍵盤(pán)不能游戲中輸入。在使用一個(gè)單獨(dú)的X server來(lái)運(yùn)行游戲時(shí),這個(gè)問(wèn)題可以得到解決。(見(jiàn)“高級(jí)設(shè)置資料”)
2.7謹(jǐn)慎對(duì)待DLL
winecfg可以讓你用native的DLL替換builtin的DLL。下面的這些DLL是絕對(duì)不能被替換的。kernel32.dll,
gdi32.dll,user32.dll,和ntdll.dll。有些nativeDLL也可能使一些程序不能運(yùn)行。記得永遠(yuǎn)不要覆蓋wine自帶的
dll,如果native的用不了就用builtin的換回來(lái)。有些MS的DLL要得到許可才能用,如果你沒(méi)有許可,就不要用。
3特殊配置資料
3.1建立一個(gè)到CD的鏈接
Wine會(huì)建立一個(gè)到你掛載CD的文件夾的鏈接,但是建立一個(gè)到真正的/dev里的設(shè)備的鏈接會(huì)更好。我發(fā)現(xiàn)如果不這樣做,Wine會(huì)自己建立到
/dev的鏈接,把CD認(rèn)成E:盤(pán),而我的掛載目錄卻鏈接為D:盤(pán)。我認(rèn)為這個(gè)可能會(huì)導(dǎo)致某些使用CD安裝的程序出現(xiàn)問(wèn)題。修改/dev/hdc以適應(yīng)你
的系統(tǒng)(譯者:7.04一般都是/dev/scd0)。
3.2實(shí)用注冊(cè)表鍵值
有些設(shè)置是不能通過(guò)winecfg來(lái)進(jìn)行設(shè)置的,但是可以在注冊(cè)表中進(jìn)行設(shè)置。在wine的wiki中有一篇保持更新的文章
http://wiki./UsefulRegistryKeys
有兩個(gè)鍵值是非常有用的,一個(gè)是Alsa Driver的UseDirectHW,可以解決一些聲音跳頓的問(wèn)題;還有Direct3D的VideoMemorySize,你應(yīng)該設(shè)置成你的顯卡的準(zhǔn)確顯存,默認(rèn)wine會(huì)設(shè)置成64MB。
3.3WINEPREFIXCREATE
這個(gè)我暫時(shí)不翻譯
3.4安裝Wine Gecko IE engine
有些程序的運(yùn)行依賴(lài)于IE,但是,安裝IE會(huì)嚴(yán)重地破環(huán)Wine。所以可以安裝Wine Gecko IE engine作為替代品。
1、在終端下運(yùn)行下面的命令:
代碼: |
wine iexplore http://www. |
2、當(dāng)出現(xiàn)安裝提示時(shí)回答yes
3、打開(kāi)http://wiki./UsefulRegistryKeys,找到HKEY_LOCAL_MACHINE板塊
4、把所有有關(guān)Internet Explorer的鍵值加到注冊(cè)表中
安裝完成后,運(yùn)行
代碼: |
wine iexplore http://www. |
成功的話(huà)就會(huì)出現(xiàn)winehq的主頁(yè)。
3.5中文支持設(shè)置
把下面的代碼保存為zh.reg,然后終端執(zhí)行regedit zh.reg。從Windows目錄下的Fonts里的simsun.ttc復(fù)制到/home/user/.wine/drive_c/windows/fonts里面。
代碼: |
REGEDIT4
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]
"Arial"="simsun"
"Arial CE,238"="simsun"
"Arial CYR,204"="simsun"
"Arial Greek,161"="simsun"
"Arial TUR,162"="simsun"
"Courier New"="simsun"
"Courier New CE,238"="simsun"
"Courier New CYR,204"="simsun"
"Courier New Greek,161"="simsun"
"Courier New TUR,162"="simsun"
"FixedSys"="simsun"
"Helv"="simsun"
"Helvetica"="simsun"
"MS Sans Serif"="simsun"
"MS Shell Dlg"="simsun"
"MS Shell Dlg 2"="simsun"
"System"="simsun"
"Tahoma"="simsun"
"Times"="simsun"
"Times New Roman CE,238"="simsun"
"Times New Roman CYR,204"="simsun"
"Times New Roman Greek,161"="simsun"
"Times New Roman TUR,162"="simsun"
"Tms Rmn"="simsun" |
4安裝資料
4.1不要在CD的目錄下安裝程序
(譯者:就是不要cd到CD的掛載目錄運(yùn)行安裝程序)
如果這樣做的話(huà),就會(huì)在換CD時(shí)出現(xiàn)CD不能推出的問(wèn)題,用下面的命令來(lái)安裝CD:
代碼: |
wine /media/cdrom0/setup.exe |
4.2需要用到“wine eject”
如果安裝程序需要你換CD,而系統(tǒng)卻說(shuō)不能推出CD,那就打開(kāi)一個(gè)新終端,輸入:
4.3安裝InstallShield的bug補(bǔ)丁
安裝http://support./kb/files/Q108322/IkernelUpdate.exe
這個(gè)補(bǔ)丁可以解決一些CD安裝問(wèn)題。
4.4使用uninstaller
使用命令“uninstaller”來(lái)卸載安裝的程序,不要使用程序在菜單里面創(chuàng)建的卸載快捷方式,他們有時(shí)候不能正常工作,而uninstaller可以。
4.5安裝.msi文件
有些windows的安裝程序是使用msi來(lái)安裝的,那就用下面的命令來(lái)安裝:
代碼: |
wine msiexec /i install.msi |
或者
代碼: |
wine start install.msi |
4.6不要安裝DirectX
Wine有它自己的DirectX庫(kù),安裝微軟的DirectX會(huì)破壞wine的DirectX庫(kù)和Wine。
但是,d3dx9_##.dll和d3dx10_33.dll可以從Windows復(fù)制過(guò)來(lái)使用,可能會(huì)在啟動(dòng)某些游戲時(shí)有所幫助。使用這些dll你需要微軟的授權(quán)證書(shū)。
5一般使用資料
5.1如何用wine來(lái)運(yùn)行程序
5.2運(yùn)行程序前cd到程序的安裝目錄
cd到程序的安裝目錄再運(yùn)行程序。
5.3關(guān)掉WINEDEBUG
一般情況下,wine會(huì)不斷地產(chǎn)生一些debug信息(那些“fixme”的東西)。那些信息在很多情況下是沒(méi)有用的,尤其你已經(jīng)可以正常地運(yùn)行一個(gè)程序。你可以使用下面的命令來(lái)避免debug信息,節(jié)省資源:
代碼: |
WINEDEBUG=-all game.exe |
5.4不要使用root或者sudo來(lái)運(yùn)行wine
可能會(huì)損壞系統(tǒng)文件。
5.5其他wine的命令
wineboot 模擬windows的重新啟動(dòng)
wine control 運(yùn)行控制面板
wineserver wineserver會(huì)隨著wine的命令自動(dòng)啟動(dòng),但也能通過(guò)終端啟動(dòng)來(lái)達(dá)到不同的目的。
wineserver的一些參數(shù)
1、-d# 設(shè)置終端中debug的顯示級(jí)別。
2、-h 顯示wineserver幫助文件
3、-k kill掉當(dāng)前的wineserver,當(dāng)程序失去響應(yīng)而你要結(jié)束它時(shí)使用。
4、-p 讓wineserver一直運(yùn)行,也就是說(shuō)即使程序退出了,wineserver還繼續(xù)運(yùn)行。當(dāng)你需要運(yùn)行連續(xù)的程序時(shí)可以使用,這樣可以縮短程序的啟動(dòng)時(shí)間。
5、-w 讓wineserver一直運(yùn)行直到當(dāng)前已激活的wineserver退出。
5.6讓W(xué)ine運(yùn)行更流暢
當(dāng)出現(xiàn)程序運(yùn)行緩慢或性能起伏不定的問(wèn)題時(shí),可以通過(guò)提高進(jìn)程的優(yōu)先級(jí)來(lái)解決。啟動(dòng)游戲后,可以使用“renice”命令來(lái)改變進(jìn)程的優(yōu)先級(jí)。
“renice”命令可以改變當(dāng)前進(jìn)程的優(yōu)先級(jí),“nice”的值是優(yōu)先級(jí)級(jí)別的標(biāo)志,(高優(yōu)先級(jí)=低nice值,低優(yōu)先級(jí)=高nice值)。這個(gè)命令把
程序優(yōu)先級(jí)的值設(shè)置為從-20(最高優(yōu)先級(jí))到19(最低優(yōu)先級(jí))之間的任何一個(gè)整數(shù)值,而默認(rèn)的值是0。在啟動(dòng)游戲以后,你需要打開(kāi)另外一個(gè)終端輸入下
面的命令來(lái)改變程序的優(yōu)先級(jí):
代碼: |
sudo renice -10 -n game.exe |
在用Wine運(yùn)行游戲時(shí),我不推薦直接把程序的優(yōu)先級(jí)設(shè)置到-20,最好是從-10開(kāi)始,如果效果提升不明顯,可以一步步嘗試小幅度的提高(-
11,-12,……)。你會(huì)發(fā)現(xiàn)絕大多數(shù)的游戲不需要比-10更高的優(yōu)先級(jí)就已經(jīng)可以達(dá)到最好的性能了。不用多說(shuō)(我認(rèn)為),在游戲中你可以用ALT-
TAB組合鍵回到桌面使用“renice”命令。
第二種方法
使用圖形界面來(lái)設(shè)置優(yōu)先級(jí)。
1、 用終端運(yùn)行游戲,按ALT-TAB回到桌面
2、 系統(tǒng)——>系統(tǒng)管理——>系統(tǒng)監(jiān)視程序,切換到進(jìn)程標(biāo)簽
3、 在進(jìn)程上點(diǎn)右鍵——更改優(yōu)先權(quán)
4、 要求密碼時(shí)輸入
5、 關(guān)閉系統(tǒng)監(jiān)視程序,用ALT-TAB回到游戲
6第三方軟件資料
6.1 WineTools
WineTools是一個(gè)菜單式的可以安裝90多個(gè)常見(jiàn)Windows程序的軟件。它也可以幫助你設(shè)置Wine的基本目錄。已經(jīng)不再有人維護(hù)
WineTools,它已經(jīng)兩年沒(méi)有升級(jí)了,但很多用戶(hù)都發(fā)現(xiàn)它依然有用。而WineTools所作的一切事情都可以自己通過(guò)winecfg或終端完成。
6.2Wine-Doors
Wine-Doors是一個(gè)幫助你安裝很多的Windows程序,包括游戲的一個(gè)圖形界面的軟件。它現(xiàn)在還處在開(kāi)發(fā)階段,但已經(jīng)發(fā)布了一個(gè)可以下載的最初版本。就這個(gè)軟件看來(lái),是非常有前途的。
6.3Cedega
Cedega
就技術(shù)上來(lái)說(shuō)是Wine的一個(gè)分支,它明確地針對(duì)于游戲。cedega包含了一個(gè)安裝和運(yùn)行游戲的圖形界面,還加上了對(duì)受防拷貝保護(hù)的軟件的
支持(不需要使用破解來(lái)免CD)(譯者:wine的對(duì)防拷貝的支持不是很好)。cedega不適免費(fèi)的,最低消費(fèi)是購(gòu)買(mǎi)3個(gè)月,每月3美元,如果預(yù)付一年
的費(fèi)用的話(huà),可以享受一點(diǎn)折扣。cedega從前叫做WineX,在Wine還是MIT軟件,而不是現(xiàn)在的GPL的時(shí)候,WineX就從wine的一個(gè)分
支分離出來(lái),就因?yàn)閏edega不屬于GPL,cedega不再對(duì)wine的代碼發(fā)展作貢獻(xiàn)了。再加上cedega缺少支持,很多人便不再用cedega
在linux下玩游戲。
6.4CrossOver
CrossOver從技術(shù)上來(lái)說(shuō),CrossOver不是wine的一個(gè)第三方產(chǎn)品,而是wine的主要財(cái)力支持者。CrossOver一開(kāi)始是
以在linux下運(yùn)行Microsoft
Office軟件為目標(biāo)的,但最近它開(kāi)始添加對(duì)游戲的支持。CrossOver基于一個(gè)更老,更穩(wěn)定的Wine版本(譯者:好像是0.9.17),但
CrossOver也隨著Wine一起升級(jí)。CrossOver標(biāo)準(zhǔn)版的售價(jià)是39.95美元。
6.5ReactOS
正如CrossOver一樣,ReactOS也是Wine的一個(gè)支持者,基于許多Wine已經(jīng)完成的成果,它致力于建立一個(gè)能與Windows完
全兼容的操作系統(tǒng)。完成后,ReactOS能夠使用Windows的驅(qū)動(dòng)程序和軟件,完全兼容。這項(xiàng)計(jì)劃還處于開(kāi)發(fā)階段,但已經(jīng)可以提供安裝CD、
LiveCD、QEMU和VMware鏡像的下載。
7高級(jí)設(shè)置資料
7.1使用啟動(dòng)腳本(使用之前確保游戲能夠正常運(yùn)行)
再使用單獨(dú)得X
server時(shí),很多游戲一般都可以發(fā)揮出他們最佳性能。wine不需要窗口管理器(GNOME或KDE)就可以正常地運(yùn)行,所以如果你在一個(gè)單獨(dú)的X
server下運(yùn)行游戲,你會(huì)得到明顯的性能提升。在運(yùn)行游戲之前,關(guān)閉GDM或KDM,還會(huì)得到更大的性能提升(只能通過(guò)控制(console)臺(tái)來(lái)實(shí)
現(xiàn))。
1、首先,在終端下建立一個(gè)腳本
代碼: |
nano launcher.sh(可以用vim替換nano) |
2、復(fù)制下面的文字到終端里。如果你沒(méi)有nVidia的顯卡,就刪除nvidia settings的那部分,然后用你的游戲的正確路徑替換里面的路徑
代碼: |
#!/bin/sh
#uncomment if launching from console session
#sudo /etc/init.d/gdm stop
#KDE use this instead
#sudo /etc/init.d/kdm stop
# Launches a new X session on display 3. If you don‘t have an Nvidia card
# take out the "& nvidia-settings --load-config-only" part
X :3 -ac & nvidia-settings --load-config-only
# Goto game dir (modify as needed)
cd "$HOME/.wine/drive_c/Program Files/Game/Directory/"
# Forces the system to have a break for 2 seconds, X doesn‘t launch instantly
sleep 2
# Launches game (modify as needed)
DISPLAY=:3 WINEDEBUG=-all wine "C:/Program Files/Game/Directory/game.exe" |
3、把文件保存到你的主文件夾(保存Ctrl+O,退出Ctrl+X。Vim的話(huà)先Esc,再Shift+:,保存w,退出q)
4、然后,給你的腳本加上可執(zhí)行屬性
代碼: |
chmod +x ~/launcher.sh |
5、運(yùn)行腳本
或
6、結(jié)束游戲后,用CTRL-ALT-BACKSPACE回到桌面
第二種方法
如果你的游戲不能運(yùn)行或者只是單純想壓榨出更好的游戲性能,跟著下面的步驟嘗試在關(guān)閉X session的情況下運(yùn)行游戲。
1、取消注銷(xiāo)“sudo /etc/init.d/gdm stop”語(yǔ)句(刪除#)后保存,如果你是使用KDE,就取消注銷(xiāo)“sudo /etc/init.d/kdm stop”。
2、關(guān)閉所有程序,按CTRL-ALT-F1打開(kāi)控制臺(tái)
3、在控制臺(tái)登陸并運(yùn)行這個(gè)腳本。你會(huì)被要求輸入密碼,然后游戲會(huì)在它自己的X session里運(yùn)行,而沒(méi)有GDM或KDM的妨礙。
4、如果腳本顯示你沒(méi)有啟動(dòng)X session的權(quán)限,就修改那個(gè)腳本
按照這樣修改X server的啟動(dòng)語(yǔ)句
代碼: |
sudo X :3 -ac & nvidia-settings --load-config-only |
注意:為了避免修改腳本,你可以修改Xwrapper.config給與一般用戶(hù)啟動(dòng)X的權(quán)限。用sudo vim打開(kāi)/etc/X11/Xwrapper.config,把a(bǔ)llowed_users=console修改為allowed_users=anybody。
5、結(jié)束游戲后,可以重啟或CTRL-ALT-BACKSPACE回到控制臺(tái),重新啟動(dòng)X和桌面:
代碼: |
sudo /etc/init.d/gdm start |
如果是KDE
代碼: |
sudo /etc/init.d/kdm start |
桌面會(huì)很快出現(xiàn),還不行的話(huà)就輸入
注意:
1、如果讓游戲使用它自己的X session,確認(rèn)禁止winecfg里的virtual desktop。
2、讓游戲使用它自己的X session可以解決在游戲時(shí)鍵盤(pán)無(wú)法輸入的問(wèn)題。