多读书多实践,勤思考善领悟

Wine完全使用指南

本文于405天之前发表,文中内容可能已经过时。

Wine (“Wine Is Not an Emulator” 的首字母缩写)是一个能够在多种 POSIX-compliant 操作系统(诸如Linux,Mac,FreeBSD和Solaris等)上运行 Windows 应用的兼容层。Wine 不是像虚拟机或者模拟器一样模仿内部的 Windows 逻辑,而是将 Windows API 调用翻译成为动态的 POSIX 调用,免除了性能和其他一些行为的内存占用,让你能够干净地集合 Windows 应用到你的桌面。Wine是不断发展的免费软件其他平台也可能受益。

一. 安装与配置

在Ubuntu上示例安装,安装Ubuntu可以参考VirtualBox虚拟机安装Ubuntu,记得选择安装图像化界面。

如果您之前安装过来自其他仓库的 Wine 安装包,请在尝试安装 WineHQ 安装包之前删除它及依赖它的所有安装包(如:wine-mono、wine-gecko、winetricks),否则可能导致依赖冲突。

1. 识别是否64位架构的内核

1
2
3
$ sudo dpkg --print-architecture  

#看到像这样的内容:amd64,这说明着你已经拥有了64位架构内核。

2. 打开多架构支持

如果使用的是 64 位系统,请开启 32 bit 架构支持(如果之前没有开启的话):

1
2
$ sudo dpkg --add-architecture i386 
$ sudo apt update

注意:apt只适用于Ubuntu 16.04 之后的版本,apt-get适用于所有版本

apt update:只检查,不更新(已安装的软件包是否有可用的更新,给出汇总报告)

用法:sudo apt update

apt upgrade:更新已安装的软件包

用法:sudo apt upgrade 软件包名

使用sudo apt list –upgradable查看可升级的软件信息

sudo apt list –upgradable -a查看可升级的软件的全部版本信息

3. 安装wine

安装64位 Wine

1
$ sudo apt install wine

安装32位 Wine

1
$ sudo apt install wine32

查看版本

1
$ sudo wine --version

卸载Wine

1
2
$ sudo apt remove wine
$ sudo apt autoremove


1
$ sudo apt remove --purge 'wine.*'

4. 配置wine

4.1 创建 Wine prefix

创建64位 Wine prefix
默认情况下,当第一次运行Wine软件(在64位Linux操作系统上)时,它将在主目录(~)中的~/.wine中创建标准的64位Wine prefix。

1
$ WINEPREFIX=~/.wine winecfg

创建32位 Wine prefix

1
2
$ WINEARCH=win32 WINEPREFIX=~/.wine32 winecfg
$ export WINEPREFIX=~/.wine32

删除Wine prefix

首先,按Ctrl+Alt+T或Ctrl+Shift+T打开终端窗口,然后,使用带有“a”选项的ls命令显示主目录中的所有文件和文件夹:

1
ls -a

查看文件列表中的Wine prefix文件夹的名称,然后,使用带有“rf”选项的rm命令删除前缀文件夹:

1
rm -rf ~/.newprefix/

或者:

1
rm -rf ~/.newprefix32/

需要一次删除多个prefix文件夹?在rm命令时使用括号,例如,要删除两个prefix文件夹,需要:

1
rm -rf ~/{.newprefix,.newprefix32}

4.2 配置 winecfg

运行 wine 配置程序 ,不要用 sudo 或者 root 权限

1
$ winecfg

这样会建立 wine 的运行文件夹 /home/user/.wine .里面有wine的注册表文件和虚拟的C盘;
稍等片刻,就会出现一个面板,这就是 wine 的一些基本的配置。

4.2.1 Drives 标签,配置硬盘和光驱

Autodect 按钮可以自动检测,也打开 Show Advanced 手动配置,
C: /home/用户名/.wine/drive_c Local hard disk
D: /home/用户名 Local hard disk
E: /media/cdrom0 CDROM
其他分区根据需要配置

4.2.2 Audio 标签,配置声卡

这个面板会失去反映一段时间,之后出现一个声音驱动程序的选择框,一般情况下选择OSS。如果你是独立的声卡,选择ALSA更好。如果只有 OSS,就选择 OSS。

4.2.3 Application Settings 标签,配置 Windows 版本

下面的 windows 版本把默认的改成 Windows XP ,实际中可以变更 为 Windows 2000 或 其他版本以使用 wine 的效率更高。

4.2.3 部分 DLL 设置

在真实的 windows 系统中从 C:\WINDOWS\systenm32 里复制 mfc42.dll,msvcp60.dll, riched20.dll,riched32.dll 这几个文件到 /home/用户名/.wine/drive_c/windows/system32 文件里,需要覆盖时确定。其他dll文件不要随便覆盖,要做备份。

4.3 准备字体

为了让中文界面的Windows 应用程序在Wine里运行时能正确显示中文字,需要中文版Windows操作系统下面的字体:

4.3.1 从 Windows 复制字体到Linux

C:\WINDOWS\Fonts\simsun.ttc,复制一份到Linux系统中/root/.wine/drive_c/windows/Fonts里面。

4.3.2 修改/root/.wine/system.reg

装好字体后,还要修改一下 Wine 的注册表设置,指定与字体相关的设置:
gedit /root/.wine/system.reg
(一定要使用 gedit 、vim或其他支持 gb2312/utf8 编码的编辑器修改这些文件,否则文件中的中文可能变乱码)
搜索: LogPixels
找到的行应该是:[System\CurrentControlSet\Hardware Profiles\Current\Software\Fonts]
将其中的:
“LogPixels”=dword:00000060
改为:
“LogPixels”=dword:00000070
搜索: FontSubstitutes
找到的行应该是:[Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]
将其中的:
“MS Shell Dlg”=”Tahoma”
“MS Shell Dlg 2″=”Tahoma”
改为:
“MS Shell Dlg”=”SimSun”
“MS Shell Dlg 2″=”SimSun”

4.3.3 修改 /root/.wine/drive_c/windows/win.ini

gedit /root/.wine/drive_c/windows/win.ini
在文件末尾加入:
[Desktop]
menufontsize=13
messagefontsize=13
statusfontsize=13
IconTitleSize=13

4.3.4 最关键的一步,把下面的代码保存为kashu.reg,然后直接在linux终端上执行regedit kashu.reg即可。

代码:
REGEDIT4
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”

5. 安装winetricks

使用Winetricks只是为了更的轻松安装Wine应用程序,因为使用Wine在Linux系统上运行某些Windows应用程序有时会很棘手。 Winetricks会帮助到这一点,并使它更容易下载和安装必要的组件,如一结DLL文件。默认的WINE环境缺少很多WIN平台的库,而且最可恨的是,system32目录下竟然没有regedit程序。当然你也可以通过手动搜索,下载和安装它们应该是的东西来完成所有必要的事情。

5.1 安装

1
$ sudo apt install winetricks

5.2 使用winetricks安装win支持库。

命令行中输入:

1
$ winetricks

然后勾选你软件需要的如:colorprofile、corefonts、d3dx9、fontfix、fontsmooth-gray、fontsmooth-rgb、fontsmooth-bgr、gdiplus、mfc40、mfc42、

msxml3、msxml4、msxml6、riched20、riched30、tahoma、urlmon、vb6run、vcrun6、vcrun2003、vcrun2005、vcrun2008、ie6、allfonts

也可在命令行中直接安装:

1
$ winetricks corefonts

5.2 使用winetricks安装win应用。

命令行中输入:

1
$ winetricks

然后选择你的win应用安装文件进行安装。

5.3 删除 winetricks

1
$ sudo rm -rf〜/ .cache / winetricks /

二. 安装案例

1. 安装 Visual Basic 6

准备Visual Basic 6安装文件。

windows 2003上可以直接安装上

1
$ wine setup.exe

或用winetricks可视化安装

1
$ winetricks

通用安装办法如下:

1.1 复制OS / SYSTEM /的内容

从CD根目录将OS / SYSTEM /的内容复制到wine系统32目录中

1
$ cp -r /media/cdrom/OS/SYSTEM/* 〜/.wine/drive_c/windows/system32/

1.2 复制VB98

由于我们只关心Visual Basic 6,因此将CD根目录下的文件夹VB98复制到程序文件中

1
2
$ cp -r /media/cdrom/VB98//.wine/drive_c/Program Files/
$ mv ~/.wine/drive_c/Program Files/VB98/ 〜/.wine/drive_c/Program Files/Visual Basic 6/

1.3 注册动态链接库

注册两个动态链接库,这对于顺利运行Visual Basic 6是必不可少的

1
2
3
$ cd ~/.wine/drive_c/windows/system32/
$ wine regsvr32 comcat.dll
$ wine regsvr32 MSSTDFMT.DLL

1.4 创建启动命令

完成所有操作,让我们创建一个包含以下内容文件的可选启动命令

打开文本编辑器$ gedit,复制粘贴文件内容,将文件另存为vb6在您的主目录中,退出编辑器并打开终端。
文件内容:

1
2
3
#!/bin/bash
cd ~/.wine/drive_c/"Program Files"/"Visual Basic 6"/
wine VB6.EXE

使我们的启动器可执行,并将其放置在正确的位置

1
2
$ sudo chmod + x vb6
$ sudo mv vbasic /usr/local/bin/

现在,只需发出命令vb6启动 Visual Basic 6。

1
$ vb6

2. 安装Visual Studio 2019

要运行vs安装程序,您需要使用“ winetricks dotnet45”安装dotnet v4.5,并使用32位 Wine prefix前缀。

2.1 确保在干净的WINEPREFIX(〜/ .wine)上运行!

删除WINEPREFIX和其他可能的东西。如果您以root用户身份运行Wine,则需要:

1
$ sudo rm -rf〜/ .wine

然后运行winecfg来设置Wine文件夹结构。如果您使用winetricks脚本作为root用户,则可能还需要:

1
$ sudo rm -rf〜/ .cache / winetricks /

2.2 Winetricks将解决所有必需的安装先决条件,并解决一些问题。

再说一遍:只需以普通用户身份运行wine,一切就可以了。

1
2
$ wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
$ winetricks -q dotnet462

要解决一些错误,您还需要:

1
$ winetricks -q corefonts

2.3 安装 Visual Studio 2019

下载 Visual Studio 2019

三. 释疑

1. 使用最新的Wine

记住最新版的Wine会包含一些旧版本里没有的bug。个人还是推荐使用最新版,使用新版本会有更好的运行速度,而且基本上每个bug都会在未来的2~3个版本中被修复

2. 不要从源码编译安装Wine

因为编译要解决的依赖性问题太多了。

我个人还是推荐编译安装,这样安装完后问题少一点,性能好一点。

3. 使用终端

如果正确安装的话,wine会把它自己关联到exe文件,所以你只要双击exe文件就可以运行。无论怎样,这都不是我们所推荐的使用wine的方法(译者:我也不推荐)。使用终端会比较好,因为这样可以正确地设定程序的路径,否则程序就会找不到所需要的文件。另外,使用终端还可以显示出错误信息,这对于解决问题是非常有用的。

4. “winecfg”的使用资料

4.1 运行“winecfg”

你至少需要运行一次winecfg来设置wine的目录和硬件。

4.2 虚拟桌面

使用这个选项可以使软件的安装更加流畅。我发现在不使用这个选项的时候,使用某些程序会导致已经激活的对话框、CDKEY输入窗口或更换光盘的确认窗口不能出现在前端。让我以为程序卡死了,就kill掉了进程。选择这个选项还能够避免程序锁死你的桌面或者把你的屏幕分辨率改成难看的模式。

4.3 使用Application Settings

你可以在winecfg的Application标签里的Application Settings对话框对个别的程序进行自定义设置。那里只允许你进行windows兼容运行模式设置(译者:像windows下的exe属性里的兼容性标签)、某些显示设置和DLL的设置。

当你只需要设置某个程序使用某些特定的windows自带的DLL,不希望其它程序(包括wine)使用这些native的DLL的时候(而其它程序使用这些DLL会导致问题),(译者:wine自带的DLL叫做builtin,windows下原生的DLL叫做native)这个选项就会变得十分有用。在进行DLL设置时我都用这个方法,就是为了防止某些对wine的运行存在潜在威胁的nativeDLL被wine调用(译者:在一般情况下, wine只调用自带的builtinDLL,而不会使用native的DLL,版权问题,除非经过设置,如上所述)。这样我就只是修改了那些可执行的配置文件,当我不需要时,可以改回来而不会损坏整个Wine。(译者:设置这些东西之前,保证已经将一个程序的exe文件添加到Application标签的白框中,并且反色选中。不是default的那个,是你所需要设置的那个exe文件。)

4.4 Windows版本

对不同的程序尝试不同的Windows版本。这就是说一个为了XP而设计的游戏可能会在wine的98模式的支持下能更好地运行。在做这个之前确认你已经把程序添加到Application的白框中,并且选中,反色显示。

4.5 使用ALSA驱动

有些游戏是需要OSS才能运行,但是OSS已经不会再继续开发了。

(推荐只是独立声卡使用ALSA,集成的还是使用OSS最好)

4.6 不要总是选择allow the window manager to control the windows(winecfg里的)

使用这个选项有时候会使游戏在全屏幕运行时出现问题。当前的wine版本0.9.39+已经修正了多数游戏的全屏问题,但是引入了一个新的问题:当不使用这个选项时,会使键盘不能游戏中输入。在使用一个单独的X server来运行游戏时,这个问题可以得到解决。(见“高级设置资料”)

4.7 谨慎对待DLL

winecfg可以让你用native的DLL替换builtin的DLL。下面的这些DLL是绝对不能被替换的。kernel32.dll, gdi32.dll,user32.dll,和ntdll.dll。有些nativeDLL也可能使一些程序不能运行。记得永远不要覆盖wine自带的 dll,如果native的用不了就用builtin的换回来。有些MS的DLL要得到许可才能用,如果你没有许可,就不要用。

5. 特殊配置资料

5.1建立一个到CD的链接

Wine会建立一个到你挂载CD的文件夹的链接,但是建立一个到真正的/dev里的设备的链接会更好。我发现如果不这样做,Wine会自己建立到 /dev的链接,把CD认成E:盘,而我的挂载目录却链接为D:盘。我认为这个可能会导致某些使用CD安装的程序出现问题。修改/dev/hdc以适应你的系统(译者:7.04一般都是/dev/scd0)。

代码:

1
ln -s /dev/hdc ~/.wine/dosdevices/d\:\:

5.2 实用注册表键值

有些设置是不能通过winecfg来进行设置的,但是可以在注册表中进行设置。有两个键值是非常有用的,一个是Alsa Driver的UseDirectHW,可以解决一些声音跳顿的问题;还有Direct3D的VideoMemorySize,你应该设置成你的显卡的准确显存,默认wine会设置成64MB。

5.3 安装Wine Gecko IE engine

有些程序的运行依赖于IE,但是,安装IE会严重地破环Wine。所以可以安装Wine Gecko IE engine作为替代品。

1、在终端下运行下面的命令:

代码:

1
wine iexplore http://www.winehq.org

2、当出现安装提示时回答yes

3、打开http://wiki.winehq.org/UsefulRegistryKeys,找到HKEY_LOCAL_MACHINE板块

4、把所有有关Internet Explorer的键值加到注册表中

安装完成后,运行

代码:

1
wine iexplore http://www.winehq.org

成功的话就会出现winehq的主页。

5.4 中文支持设置

把下面的代码保存为zh.reg,然后终端执行regedit zh.reg。从Windows目录下的Fonts里的simsun.ttc复制到/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”

6. 安装资料

6. 1不要在CD的目录下安装程序

(就是不要cd到CD的挂载目录运行安装程序)

如果这样做的话,就会在换CD时出现CD不能推出的问题,用下面的命令来安装CD:

代码:

1
wine /media/cdrom0/setup.exe

6. 2 需要用到“wine eject”

如果安装程序需要你换CD,而系统却说不能推出CD,那就打开一个新终端,输入:

代码:

1
wine eject d:

6. 3 安装InstallShield的bug补丁

安装http://support.installshield.com/kb/files/Q108322/IkernelUpdate.exe

这个补丁可以解决一些CD安装问题。

6. 4 使用uninstaller

使用命令“uninstaller”来卸载安装的程序,不要使用程序在菜单里面创建的卸载快捷方式,他们有时候不能正常工作,而uninstaller可以。

6. 5 安装.msi文件

有些windows的安装程序是使用msi来安装的,那就用下面的命令来安装:

代码:

1
wine msiexec /i install.msi

或者

代码:

1
wine start install.msi

6. 6 不要安装DirectX

Wine有它自己的DirectX库,安装微软的DirectX会破坏wine的DirectX库和Wine。

但是,d3dx9_##.dll和d3dx10_33.dll可以从Windows复制过来使用,可能会在启动某些游戏时有所帮助。使用这些dll你需要微软的授权证书。

7. 一般使用资料

7.1 如何用wine来运行程序

代码:

1
wine application.exe

7.2 运行程序前cd到程序的安装目录

cd到程序的安装目录再运行程序。

7.3 关掉WINEDEBUG

一般情况下,wine会不断地产生一些debug信息(那些“fixme”的东西)。那些信息在很多情况下是没有用的,尤其你已经可以正常地运行一个程序。你可以使用下面的命令来避免debug信息,节省资源:

代码:

1
WINEDEBUG=-all game.exe

7.4 不要使用root或者sudo来运行wine

可能会损坏系统文件。

7.5 其他wine的命令

wineboot 模拟windows的重新启动

wine control 运行控制面板

wineserver wineserver会随着wine的命令自动启动,但也能通过终端启动来达到不同的目的。

wineserver的一些参数

1、-d# 设置终端中debug的显示级别。

2、-h 显示wineserver帮助文件

3、-k kill掉当前的wineserver,当程序失去响应而你要结束它时使用。

4、-p 让wineserver一直运行,也就是说即使程序退出了,wineserver还继续运行。当你需要运行连续的程序时可以使用,这样可以缩短程序的启动时间。

5、-w 让wineserver一直运行直到当前已激活的wineserver退出。

7.6 让Wine运行更流畅

当出现程序运行缓慢或性能起伏不定的问题时,可以通过提高进程的优先级来解决。启动游戏后,可以使用“renice”命令来改变进程的优先级。 “renice”命令可以改变当前进程的优先级,“nice”的值是优先级级别的标志,(高优先级=低nice值,低优先级=高nice值)。这个命令把程序优先级的值设置为从-20(最高优先级)到19(最低优先级)之间的任何一个整数值,而默认的值是0。在启动游戏以后,你需要打开另外一个终端输入下面的命令来改变程序的优先级:

代码:

1
sudo renice -10 -n game.exe

在用Wine运行游戏时,我不推荐直接把程序的优先级设置到-20,最好是从-10开始,如果效果提升不明显,可以一步步尝试小幅度的提高(- 11,-12,……)。你会发现绝大多数的游戏不需要比-10更高的优先级就已经可以达到最好的性能了。不用多说(我认为),在游戏中你可以用ALT- TAB组合键回到桌面使用“renice”命令。

第二种方法

使用图形界面来设置优先级。

1、 用终端运行游戏,按ALT-TAB回到桌面

2、 系统——>系统管理——>系统监视程序,切换到进程标签

3、 在进程上点右键——更改优先权

4、 要求密码时输入

5、 关闭系统监视程序,用ALT-TAB回到游戏

8. 第三方软件资料

8.1 WineTools

WineTools是一个菜单式的可以安装90多个常见Windows程序的软件。它也可以帮助你设置Wine的基本目录。已经不再有人维护 WineTools,它已经两年没有升级了,但很多用户都发现它依然有用。而WineTools所作的一切事情都可以自己通过winecfg或终端完成。

8.2 Wine-Doors

Wine-Doors是一个帮助你安装很多的Windows程序,包括游戏的一个图形界面的软件。它现在还处在开发阶段,但已经发布了一个可以下载的最初版本。就这个软件看来,是非常有前途的。

8..3 Cedega

Cedega就技术上来说是Wine的一个分支,它明确地针对于游戏。cedega包含了一个安装和运行游戏的图形界面,还加上了对受防拷贝保护的软件的支持(不需要使用破解来免CD)(译者:wine的对防拷贝的支持不是很好)。cedega不适免费的,最低消费是购买3个月,每月3美元,如果预付一年的费用的话,可以享受一点折扣。cedega从前叫做WineX,在Wine还是MIT软件,而不是现在的GPL的时候,WineX就从wine的一个分支分离出来,就因为cedega不属于GPL,cedega不再对wine的代码发展作贡献了。再加上cedega缺少支持,很多人便不再用cedega 在linux下玩游戏。

8.4 CrossOver

CrossOver从技术上来说,CrossOver不是wine的一个第三方产品,而是wine的主要财力支持者。CrossOver一开始是以在linux下运行Microsoft Office软件为目标的,但最近它开始添加对游戏的支持。CrossOver基于一个更老,更稳定的Wine版本,但 CrossOver也随着Wine一起升级。CrossOver标准版的售价是39.95美元。

8.5 ReactOS

正如CrossOver一样,ReactOS也是Wine的一个支持者,基于许多Wine已经完成的成果,它致力于建立一个能与Windows完全兼容的操作系统。完成后,ReactOS能够使用Windows的驱动程序和软件,完全兼容。这项计划还处于开发阶段,但已经可以提供安装CD、 LiveCD、QEMU和VMware镜像的下载。

9. 高级设置资料

9.1 使用启动脚本(使用之前确保游戏能够正常运行)

再使用单独得X server时,很多游戏一般都可以发挥出他们最佳性能。wine不需要窗口管理器(GNOME或KDE)就可以正常地运行,所以如果你在一个单独的X server下运行游戏,你会得到明显的性能提升。在运行游戏之前,关闭GDM或KDM,还会得到更大的性能提升(只能通过控制(console)台来实现)。

1、首先,在终端下建立一个脚本

代码:

1
nano launcher.sh(可以用vim替换nano)

2、复制下面的文字到终端里。如果你没有nVidia的显卡,就删除nvidia settings的那部分,然后用你的游戏的正确路径替换里面的路径

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/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的话先Esc,再Shift+:,保存w,退出q)

4、然后,给你的脚本加上可执行属性

代码:

1
chmod +x ~/launcher.sh

5、运行脚本

代码:

1
sh launcher.sh

代码:

1
./launcher.sh

6、结束游戏后,用CTRL-ALT-BACKSPACE回到桌面

第二种方法

如果你的游戏不能运行或者只是单纯想压榨出更好的游戏性能,跟着下面的步骤尝试在关闭X session的情况下运行游戏。

1、取消注销“sudo /etc/init.d/gdm stop”语句(删除#)后保存,如果你是使用KDE,就取消注销“sudo /etc/init.d/kdm stop”。

2、关闭所有程序,按CTRL-ALT-F1打开控制台

3、在控制台登陆并运行这个脚本。你会被要求输入密码,然后游戏会在它自己的X session里运行,而没有GDM或KDM的妨碍。

4、如果脚本显示你没有启动X session的权限,就修改那个脚本

按照这样修改X server的启动语句

代码:

1
sudo X :3 -ac & nvidia-settings –load-config-only

注意:为了避免修改脚本,你可以修改Xwrapper.config给与一般用户启动X的权限。用sudo vim打开/etc/X11/Xwrapper.config,把allowed_users=console修改为allowed_users=anybody。

5、结束游戏后,可以重启或CTRL-ALT-BACKSPACE回到控制台,重新启动X和桌面:

代码:

1
sudo /etc/init.d/gdm start

如果是KDE

代码:

1
sudo /etc/init.d/kdm start

桌面会很快出现,还不行的话就输入

代码:

1
startx

注意:

1、如果让游戏使用它自己的X session,确认禁止winecfg里的virtual desktop。

2、让游戏使用它自己的X session可以解决在游戏时键盘无法输入的问题。