将 /dev/ttyUSB 转换为 com 端口,以便在 Linux 中与 Wine 一起使用

将 /dev/ttyUSB 转换为 com 端口,以便在 Linux 中与 Wine 一起使用

我有一些在 Windows 上运行的软件。我安装了 Wine 并在 Linux 中运行它。它运行良好,但问题是它与串行端口通信。因此,我唯一能选择的选项是com1,,com2

但我在Linux机器上的设备实际上位于该/dev/ttyUSBn位置。如何在Linux Ubuntu中使用上述软件?

我已经尝试过了ln -s /dev/ttyUSBn COM1~/.wine/dosdevices/但似乎不起作用。

答案1

从 Wine 2.8 开始,简单的符号链接编辑配置方法不再起作用。必须通过编辑 Wine 注册表来配置 COM 端口。从Wine 用户指南/其他配置/串行和并行端口

要覆盖 Wine 的默认设备映射,请运行wine regedit并创建字符串条目,HKEY_LOCAL_MACHINE\Software\Wine\Ports其中条目名称是 Windows 设备名称,条目值是 Unix 设备的路径。继续上面的示例,要使 COM1 成为第一个 USB 连接的串行端口,请创建一个名称为COM1且值为 的条目/dev/ttyUSB0。您可能还想创建一个名为COM5且没有值的条目来删除COM5现在与 重复的设备COM1。编辑注册表后,使用 关闭 Wine wineserver -k,下次 Wine 运行程序时,您的更改将生效。

答案2

符号链接应该可以工作;但是,它们必须位于 中~/.wine/dosdevices/,而不是任何随机目录中。WineHQ 文章还以小写形式显示名称。

4.3.1. 串行和并行端口

串行和并行端口配置与驱动器配置非常相似 - 只需使用~/.wine/dosdevices设备名称创建一个符号链接即可。Windows 串行端口遵循命名约定,即单词“com”后跟一个数字,例如com1com2等。同样,并行端口使用“lpt”后跟一个数字,例如lpt1。您应该将它们直接链接到相应的 Unix 设备,例如/dev/ttyS0/dev/lp0。例如,要配置一个串行端口和一个并行端口,请运行以下命令:

ln -s /dev/ttyS0 com1
ln -s /dev/lp0 lpt1

答案3

这可能是由于权限问题引起的。

tty 设备通常可由特定组读取/写入,例如dialout。使用以下命令将自己添加到该组,最后注销并重新登录

gpasswd -a $USER dialout

说实话,最好先检查一下你的用户是否属于 dialout 组。使用此命令可以显示你的用户所在的组

groups $USER

如果dialout没有,则通过临时更改文件夹ttyACMX/ttyUSBX中文件的权限来测试该方法/dev

sudo chmod 666 /dev/ttyACMX_OR_ttyUSBX

使用 wine 重新运行你的程序并让我知道。

答案4

除了您创建的链接之外,还要确保用户位于正确的用户组中。从Wine 用户指南/其他配置/串行和并行端口

确保您具有访问计算机串行和并行端口所需的权限。在 Linux 上,用户通常必须是sysdialout访问串行端口

相关内容