我需要帮助让 ping 在 Ubuntu 16.04 上的 wine 下工作。我正在尝试运行 Battlefield Bad Company 2 服务器进行测试(我可能在某个时候对某个 mod 进行一些开发),但无法使其进入可玩状态。我可以运行 mase_bc2 和 Frost.Game.Main_Win32_Final.exe,甚至可以在游戏中连接到 LAN 服务器 - 但是,在加载地图时,它不会继续加载,而是游戏冻结。
这是我需要解决的错误,以使服务器可以播放:0049:err:winediag:IcmpCreateFile Failed to use ICMP (network ping), this requires special permissions.
当我这样做wine cmd
时,ping
我只是得到了这个:
Z:\home\user> ping google.com
0075:fixme:ping:main this command currently just sleeps based on -n parameter
以下是我尝试过的:
sudo chmod 4755 /bin/ping
允许 wine 访问 ping。这没有帮助。
然后我尝试了这个:
sudo setcap cap_net_raw+epi "$(readlink -f "/usr/bin/wine")"
这会导致此错误:
wine: error while loading shared libraries: libwine.so.1: cannot open shared object file: No such file or directory
然后在单独运行sudo setcap -r "$(readlink -f "/usr/bin/wine")"
删除共享库错误后,我还运行了这个:
sudo setcap 'cap_net_bind_service=+ep' "$(readlink -f "/usr/bin/wine-preloader")"
两个setcap
命令都导致相同的共享库错误。
我对 Linux 还算熟练,但似乎这超出了我的水平,我需要帮助。我在网上搜索了好几个帖子,但一无所获。如果有人能帮我解决这个问题,这可能是互联网上修复此问题(错误??)的唯一来源之一。
我发现这里有其他人遇到这个问题:https://forum.winehq.org/viewtopic.php?f=8&t=30704他使用后甚至遇到了和我一样的错误,setcap
但是他并没有解决这个问题。
更新于 2018 年 9 月 7 日:创建符号链接可/usr/lib/libwine.so.1
消除shared libraries
错误,但我仍然无法通过 wine 进行 ping 操作。
更新于 2018 年 9 月 8 日:这似乎是一个已知的错误,已在 Wine Development 3.15 中修复:https://bugs.winehq.org/show_bug.cgi?id=43252
谢谢。
答案1
问题是 Wine 中有一个错误,该错误在 Wine 3.14 版及更高版本中已修复,如果 ReplySize 小于 56,则无法正常ping
工作。但是 -在 Wine 3.14 版及更高版本中ping
仍然需要设置特殊权限setcap
。值得庆幸的是,在 Wine 3.14 版及更高版本中还有一个解决方法,ping
如果未设置特殊权限, Wine 将自动使用本机 Linux setcap
,这实际上意味着在 Wine 3.14 版及更高版本中,wine ping
现在可以开箱即用。