|
楼主 |
发表于 2003-2-21 09:33:49
|
显示全部楼层
第 4 章. 配置 Wine
目录
4.1. 一般配置
4.2. Win95/98 外观
4.3. 配置 x11drv 驱动器
4.4. 注册表
4.5. Wine 的驱动器标签和系列号
4.6. Dll 加载
4.7. 键盘
4.8. 处理字体
4.9. 在 Wine 中打印
设置 config 文件等。
4.1. 一般配置
Copyright 1999 Adam Sacarny <magicbox@bestweb.net>
(提取自 wine/documentation/config)
4.1.1. Wine 配置文件
Wine config 文件存储各种 Wine 的设置。包括:
*
驱动器和关于它们的信息
*
目录设置
*
端口设置
*
Wine 外观和感觉
*
Wine 的 DLL 用法
4.1.2. 我如何做一个?
本节将带领你经过制作一个 config 文件的(全部)过程。看一下文件 <dirs to wine>/documentation/samples/config。它是由段组织起来的。
段名 需要? 用途
[Drive X] 是 设置 wine 识别的驱动器
[wine] 是 设置 wine 目录
[DllDefaults] 推荐 缺省装载的 DLL
[DllPairs] 推荐 对 DLL 的健全检查
[DllOverrides] 推荐 屏弃缺省的 DLL 装载
[options] 否 好象没人知道
[fonts] 是 字体外观和识别
[serialports] 否 wine 见到的 COM 端口
[parallelports] 否 wine 见到的 LPT 端口
[spooler] 否 打印缓冲池
[ports] 否 直接访问端口
[spy] 否 怎样处理特定的调试信息
[Registry] 否 指定 windows 注册表文件的位置
[tweak.layout] 推荐 wine 的外观
[programs] 否 自动运行的程序
[Console] 否 控制台设置
4.1.2.1. [Drive X] 段
这是自明的,下面是深入的指导。对于 Wine 中的每个驱动器最多有 6 行。
[Drive X]
上面的行开始了一个给字母是 X 的那个驱动器的段落。
Path=/dir/to/path
这个路径是这个驱动器开始的地方。当 Wine 在驱动器 X 中浏览的时候,它将见到目录 /dir/to/path 中的文件。不要忘记去掉尾随的斜杠!
"Type" = "floppy|hd|cdrom|network" <--- 这个 | 的意思是 "Type = "<选项之一>"
设置 Wine 将见到的驱动器类型。类型必须等于下列四者之一 floppy、hd、cdrom、或 network。它们是自明的。
"Label" = "blah"
定义驱动器标签。一般只有查找一个特定的 CD-ROM 的应用程序需要它。关于查找标签的信息请参见 <dirs to wine>/documentation/cdrom-labels。标签最多是 11 个字符。
"Serial" = "deadbeef"
告诉 Wine 这个驱动器的系列号。一些意图防止剽窃的应用程序可能需要它,否则不要使用它。最多 8 个字符和十六进制数。
"Filesystem" = "msdos|win95|unix"
设置 Wine 查看这个驱动器上的文件的方式。
msdos
大小写不敏感文件系统。类似于 DOS 和 Windows 3.x。 8.3 是文件名的最大长度(eightdot.123) - 更长的部分将被截掉。(注意: 如果你想运行使用长文件名的程序,这将是非常糟的选择。win95 可以很好的与设计在 msdos 系统下运行的应用程序一起工作。换句话来说,你可能不需要使用它。)
win95
大小写不敏感。类似于 Windows 9x/NT4。这可能是你用来工作的长文件名文件系统。是给 wine 下运行的多数应用程序选择的文件系统。可能正是你需要的!
unix
大小写敏感。这个文件系统基本不用(Windows 应用程序需要大小写不敏感文件名)。如果你敢就试一下,win95 是更好的选择。
"Device" = "/dev/xx"
只用于软盘和光盘设备。在 Extended2 分区上使用它将有灾难性的结果(在一个 windows 应用程序尝试做一次低层写的时候,他们以在 FAT 下的方式去做 -- FAT 不能与 Extended2 混同使用)。
注意: 这个设置不是十分重要;如果保持未指定,几乎所有的应用程序都没有问题。对于 CD-ROM 你可能希望添加它来获得自动的标签检测。如果你不能确定指定的设备名字,只须为你的设备空缺这个设置。
下面是 Drive X 的一个设置,它是一个通用的硬盘驱动器:
[Drive X]
"ath" = "/dos-a"
"Type" = "hd"
"Label" = "Hard Drive"
"Filesystem" = "win95"
下面是 Drive X 的一个设置,它是一个通用的 CD-ROM 驱动器:
[Drive X]
"ath" = "/dos-d"
"Type" = "cdrom"
"Label" = "Total Annihilation"
"Filesystem" = "win95"
"Device" = "/dev/hdc"
下面是 Drive X 的一个设置,它是一个通用的软盘驱动器:
[Drive X]
"Type" = "floppy"
"ath" = "/mnt/floppy"
"Label" = "Floppy Drive"
"Serial" = "87654321"
"Filesystem" = "win95"
"Device" = "/dev/fd0"
4.1.2.2. [wine] 段
配置文件的 [wine] 段包含 wine 使用的目录的信息。在给这些设置指定目录的时候,按它们在 wine 中出现的那样设置它们。如果你的驱动器 C 有一个路径 /dos,并且你的 windows 目录位于 /dos/windows,则使用:
"Windows" = "c:\\windows"
它设置 windows 目录。如果你未曾有这个目录则建一个。没有尾随的斜杠(不能是 C:\\windows\)!
"System" = "c:\\windows\\system"
它设置 windows 系统文件所在的地方。这个目录应当驻留在用于 Windows 设置的目录中。如果你没有 windows 则它应是系统文件所在的地方。再次强调,没有尾随的斜杠!
"Temp" = "c:\\temp"
这应该是你打算把临时文件存储到其中的目录。你必须有到它的写访问权限。
"ath" = "c:\\windows;c:\\windows\\system;c:\\blanco"
行为好象是 UNIX 的 PATH 环境变量设置。在 wine 运行如 wine sol.exe,如果 sol.exe 驻留在 Path 设置中指定的一个目录中,wine 将会运行它(当然,如果 sol.exe 驻留在当前目录中,wine 也可以运行它)。确保它总包含你的 windows 目录和系统目录(对于这个设置,它必须包含 "c:\\windows;c:\\windows\\system")。
"SymbolTableFile" = "wine.sym"
为 wine 调试器设置符号表。你可能不需要摆弄它。如果你的 wine 出了问题(stripped)可能用到它。
"printer" = "off|on"
告诉 wine 是否允许打印机驱动程序和打印工作。这些东西仍处在 alpha 阶段,所以使用它你要当心。但一些人可能发现它很有用。如果你不打算进行打印工作,则不要把它添加到你的 ~/.wine/config 中(它可能不在其中)。还要检查 [spooler] 和 [parallelports] 段。
4.1.2.3. 介绍 DLL 段
在 wine 配置文件中设置 DLL 段之前,你需要知道一些事情。
4.1.2.3.1. Windows DLL 对
多数 windows DLL 有 win16 (Windows 3.x) 和 win32 (Windows 9x/NT) 两种形式。win16 和 win32 DLL 版本的组合叫做"DLL 对"。下面是最常见的 DLL 对:
Win16 Win32 固有 [a]
KERNEL KERNEL32 否!
USER USER32 否!
SHELL SHELL32 是
GDI GDI32 否!
COMMDLG COMDLG32 是
VER VERSION 否
注释:a.
是 wine 可以使用固有的 dll?(参见下节)
4.1.2.3.2. DLL 的不同形式
wine 可以装载的 DLL 有多种形式:
native(本地,固有)
DLL 包含在 windows 中。许多 windows DLL 可以用它们固有的形式来装载。许多时候这些固有版本比它们的非 Microsoft 替代品要好一些,但不总是。
elfdll
用 ELF 封装的 windows DLL。当前还是实验性的(仍不能工作)。
so
本地 ELF 库。仍不能工作。
builtin(内置)
DLL 装载的最通常形式。如果 DLL 用固有形式装载是错误的(error-prone)(例如,KERNEL),你没有固有的 DLL,或你想自由于 Microsoft,则可以使用它们。
4.1.2.4. [DllDefaults] 段
这些设置提供了 wine 的缺省 DLL 装载处理。
"DefaultLoadOrder" =" native, so, builtin"
这个设施是一个逗号分界的列表,按它的次序尝试装载 DLL。如果第一种选项失败了,它将尝试第二种,以次类推。上面的次序在多数情况下是最好的。
4.1.2.5. [DllPairs] 段
有时,在缺省配置文件中有一个叫做 [DllPairs] 的段,它已经被废弃了,原因是组对信息已经被嵌入到 Wine 自身中。(本段的目的只不过是如果用户尝试组对(pair codependent)不同类型的16-bit/32-bit DLL 则发起警告。) 如果你的 wine.conf 或 ~/.wine/config 中仍然有它,你删除它是安全的。
4.1.2.6. [DllOverrides] 段
本段的格式对于每行都是相同的:
<DLL>{,<DLL>,<DLL>...} = <FORM>{,<FORM>,<FORM>...}
例如,要装载内置的 KERNEL 对(这里大小写都行):
"kernel,kernel32" = "builtin"
要装载固有 COMMDLG 对,但如果它们不工作则尝试内置的:
"commdlg,comdlg32" = "native,builtin"
要装载 COMCTL32:
"comctl32" = "native"
下面是一个很好的通用设置(在你 wine 包中的 config 文件中定义的):
[DllOverrides]
"commdlg" = "builtin, native"
"comdlg32" = "builtin, native"
"ver" = "builtin, native"
"version" = "builtin, native"
"shell" = "builtin, native"
"shell32" = "builtin, native"
"lzexpand" = "builtin, native"
"lz32" = "builtin, native"
"comctl32" = "builtin, native"
"commctrl" = "builtin, native"
"wsock32" = "builtin"
"winsock" = "builtin"
"advapi32" = "builtin, native"
"crtdll" = "builtin, native"
"mpr" = "builtin, native"
"winspool.drv" = "builtin, native"
"ddraw" = "builtin, native"
"dinput" = "builtin, native"
"dsound" = "builtin, native"
"mmsystem" = "builtin"
"winmm" = "builtin"
"msvcrt" = "native, builtin"
"msvideo" = "builtin, native"
"msvfw32" = "builtin, native"
"mcicda.drv" = "builtin, native"
"mciseq.drv" = "builtin, native"
"mciwave.drv" = "builtin, native"
"mciavi.drv" = "native, builtin"
"mcianim.drv" = "native, builtin"
"msacm.drv" = "builtin, native"
"msacm" = "builtin, native"
"msacm32" = "builtin, native"
"midimap.drv" = "builtin, native"
"wnaspi32" = "builtin"
"icmp" = "builtin"
注意: 你见到此中的一些 dll 的第一选项是 elfdll 或 so。对于你这个尝试将是失败的,但你不用管它,它会使用第二个或第三个选项。
4.1.2.7. [options] 段
好象没人知道这段是干什么用的...
"AllocSystemColors" = "100"
分配的系统颜色? 保持它为 100。
4.1.2.8. [fonts] 段
本段设置 wine 的字体处理。
"Resolution" = "96"
因为 X 处理字体的方式与 Windows 的方式不同,wine 使用一个特殊的机制来处理它们。它必须使用在"Resolution"设置中的数来缩放字体。60-120 是合理的值,96 是此间的一个很好的值。如果你能获得真实的 windows 字体(参见 <dirs to wine>/documentation/ttfserver 和 fonts),这个选项就不重要了。当然,总是可以使你的 X 字体在 wine 中工作的很好。
"Default" = "-adobe-times-"
wine 使用的缺省字体。随你的喜好去设置(fool around with)它。
可选的:
Alias 设置允许你把一个 X 字体映射成在 wine 中使用的一个字体。如果应用程序需要使用你没有的特定字体,而存在一个很好的替代字体,可使用这个设置。语法如下:
"AliasX" = "[伪装的 windows 名字],[真实的 X 名字]"<,可选的"屏蔽"标志>
非常直接,把 "AliasX" 替换为 "Alias0", 接着 "Alias1" 并以此类推。伪装的 windows 名字是在 wine 中的 windows 应用程序将见到的字体名字。而真实的 X 名字是 X 见到的字体名字(运行 "xfontsel"可以查看)。可选的"屏蔽" 段允许你利用你定义的伪装 windows 名字。如果不使用它,则 wine 将只是尝试提取伪装 windows 名字自身而不使用你输入的值。
下面是没有屏蔽的别名的例子。字体在 windows 应用程序中将表现为"Google"。在一个 config 文件中定义一个别名的时候,请忘记我的注释文本("<-- blah" 材料)
"Alias0" = "Foo,--google-"
下面是启用屏蔽的例子。在 windows 中字体将表现为 "Foo"。
"Alias1" = "Foo,--google-,subst"
详情参见 <dirs to wine>/documentation/fonts
4.1.2.9. [serialports]、[parallelports]、[spooler]、和 [ports] 段
尽管看起来好象是很多段,它们是紧密关联的。它们都是关于通信和并行端口的。
[serialports] 段告诉 wine 那些串行端口是允许使用的。
"ComX" = "/dev/cuaY"
把 X 替换为 Windows 中 COM 端口号(1-8) 而 Y 是它在 X 的编号(通常是在 Windows 中端口号减 1)。 ComX 实际上可以是任何设备(/dev/modem 是可接受的)。不总是需要定义任何 COM 端口(一个可选的设置)。下面是一个例子:
"Com1" = "/dev/cua0"
你想设置多少就设置多少。定义你需要的所有 COM 端口。
[parallelports] 段设置在 wine 下可以访问的任何并行端口。
"LptX" = "/dev/lpY"
很熟悉? 语法很象 COM 端口设置。把 X 替代为 1-4 的一个值如同在 Windows 中那样,把 Y 替代为 0-3 的一个值(同 COM 端口一样,Y 通常是在 windows 中的值减 1)。你不总是需要定义一个并行端口(AKA,它是可选的)。象其他段一样,LptX 可以等于任何设备(可能是 /dev/printer)。下面是一个例子:
"Lpt1" = "/dev/lp0"
[spooler] 段将通知 wine 在那里缓冲(spool)打印作业。如果你想打印的话就要使用它。Wine docs 声称现在的缓冲池是 "非常原始的",所以它不能很好的工作。这是可选的。在本段中你唯一的设置工作是把一个端口(例如,LPT1)映射到一个文件或一个命令上。下面是一个例子,把 LPT1 映射到一个文件 out.ps 上:
"LPT1:" = "out.ps"
下列命令把到 LPT1 的打印作业映射到命令 lpr。注意这个 |:
"LPT1:" = "|lpr"
[ports] 段只在需要直接端口访问的时候是有用的,例如用户的程序需要 dongle(加密/解密器)或扫描仪。如果不需要,就不要用它!
"read" = "0x779,0x379,0x280-0x2a0"
给予到这些 IO 的直接读访问。
"write" = "0x779,0x379,0x280-0x2a0"
给予到这些 IO 的直接写访问。这是保持 read 和 write 的设置相同可能是个好主意。只有你以 root 运行的时候这些材料才能工作。
4.1.2.10. [spy]、[Registry]、[tweak.layout]、和 [programs] 段
使用 [spy] 来包含或排除调试信息,并把它们输出到一个文件中。后者是很少使用的。这些都是可选的,你可能不需要向你的 config 中的这个段增加或删除任何东西。
"File" = "/blanco"
为 wine 设置日志文件。设置为 CON 来记录到标准输出。这很少使用。
"Exclude" = "WM_SIZE;WM_TIMER;"
在日志文件中排除关于 WM_SIZE 和 WM_TIMER 的调试信息。
"Include" = "WM_SIZE;WM_TIMER;"
在日志文件中包含关于 WM_SIZE 和 WM_TIMER 的调试信息。
使用 [Registry] 来告诉 wine 你的旧有的 windows 注册表文件存在于什么地方。这个段是完全可选的,而且对没有现存 windows 安装的人是没用的。
"UserFileName" = "/dirs/to/user.reg"
你旧有的 user.reg 文件的位置。
[tweak.layout] 决定 wine 的外观。它只有一个设置。
"WineLook" = "win31|win95|win98"
可以把 wine 的外观改变为 Windows 3.1 和 Windows 95。win98 设置的行为在多数情况下类似于 win95。
使用 [programs] 来说明在特定条件下运行什么程序。
"Default" = "/program/to/execute.exe"
设置启动 wine 而未指定一个程序的时候运行的程序。
"Startup" = "/program/to/execute.exe"
设置在每次启动的时候自动运行的程序。
4.1.3. 我把它放在哪里?
wine config 文件可以放到两个地方。
/usr/local/etc/wine.conf
系统范围的 config 文件,用于没有自己的配置文件的任何人。注意: 这个文件当前未使用,原因是一个新的全局配置机制现在仍未准备好。
$HOME/.wine/config
你自己的 config 文件,只用于你的用户。
把你的 wine.conf 版本文件复制到 /usr/local/etc/wine.conf 或 $HOME/.wine/config 来让 wine 识别它。
4.1.4. 如果它不工作怎么办?
事情总是可能出错。如果不可想象的事情发生了,尝试一下新闻组,comp.emulators.ms-windows.wine,或者在 irc.stealth.net:6668 或连接的服务器上找寻 IRCnet 频道 #WineHQ。确保你完全的查阅了本文档,并且还读了:
*
README
*
http://www.la-sorciere.de/wine/index.html (可选的,推荐的)
如果看起来你真的已经作了研究,等着收到有帮助的建议好了。如果你没有,作好受到指责的准备。 |
|