[ARM64] 在华为ExaGear容器里安装Wine游戏助手(兼容鲲鹏、飞腾)

@Ta 2021-12-12发布,03-28 17:04修改 3851点击

32位游戏性能不佳警告

华为ExaGear运行32位游戏的性能很差,War3不到2帧。不过改用Eltechs的ExaGear运行32位游戏,性能就会好很多,相关教程正在编写中。

此外,华为ExaGear与基于box86的“Wine游戏助手ARM64测试版”不兼容,所以如果你已经开始使用“Wine游戏助手ARM64测试版”打游戏,那么建议你等ExaGear方案的游戏性能问题解决后再尝试。

为什么华为ExaGear运行32位游戏的性能比Eltechs的ExaGear差那么多?因为它是把32位x86指令集转换为64位ARM指令集运行的。指令集位数转换(导致指针位数转换)会产生很大的开销,所以性能不佳。而Eltechs的ExaGear和box86一样,都是32位x86转32位ARM,所以性能尚可。

至于华为为什么不做32位x86转32位ARM,是因为鲲鹏CPU根本不支持32位ARM指令集,只支持64位ARM指令集,所以做了也没用。虽然飞腾CPU支持32位ARM指令集,但是因为华为只做了32位x86转64位ARM,所以飞腾也只能接受相同的性能损失。

64位游戏性能未知

我还没有测试过64位游戏,如果有结果我会更新。

安装方法


  1. 【必要步骤。请不要跳过这一步。如果这一步失败或者未完成,不应该继续安装。】
    按照这里的方法安装华为ExaGear,并切换到中文:
    https://hu60.cn/q.php/bbs.topic.102147.1.html

  2. 执行以下命令:

# 进入x86容器
grep ExaGear /proc/cpuinfo >/dev/null || exagear || echo '进入exagear失败,请先执行第1步,正确安装exagear。在解决该问题前不要继续安装。'

# 安装命令行工具和显卡驱动
sudo apt install -y less wget libgl1-mesa-dri libgl1-mesa-dri:i386 mesa-vulkan-drivers mesa-vulkan-drivers:i386 libvulkan1 libvulkan1:i386 'vulkan-utils|vulkan-tools' mesa-utils

# 下载deb
wget -O net.winegame.client_0.5.9.3_amd64.deb http://file.hu60.cn/file/hash/deb/2848f405aad1eadec288e7057309abce661764.deb

# 安装deb
grep ExaGear /proc/cpuinfo >/dev/null && sudo apt install --reinstall -y ./net.winegame.client_0.5.9.3_amd64.deb || echo '不在exagear内,无法安装。请先执行第1步,正确安装exagear。'

如果提示部分软件包下载失败,再运行命令几次即可。软件源可能有限速,同时下载太多软件包就可能有几个会失败,多运行几次命令就能下载完了。

安装过程中可能会弹出让你选择键盘布局的窗口,默认的“Chinese”(汉语)就可以,直接回车确认即可。

image.png

image.png

然后还会弹出选择“时区”的窗口,我们首先选“Asia”(亚洲),然后选“Chongqing”(重庆)。为什么没有北京?因为Linux用的时区数据库太老了,里面恰好没有北京,只有重庆和上海。

image.png

image.png

还有一个关于地区的弹窗,选“Asia”亚洲:

image.png

看到这种提示,直接回车即可(所有都直接回车):

image.png


启动Wine游戏助手

exagear

/opt/apps/net.winegame.client/files/bin/winegame

image.png

为Wine游戏助手创建应用程序图标

安装在exagear里的软件默认不会显示图标,不过我们可以自己创建一个。请打开一个新终端,不要进入exagear,然后执行以下命令:

# 检测是否在exagear中
grep ExaGear /proc/cpuinfo >/dev/null && echo '不能在exagear里执行,请打开一个新终端,不要进入exagear。';

# 获取root权限
sudo -i

# 创建启动程序包装器
f='/opt/apps/net.winegame.client/files/bin/winegame';
[ -e "$f" ] || { mkdir -p "$(dirname "$f")"; echo -e '#!/bin/sh\nexec exagear -- '"$f"' "$@"' >"$f"; chmod +x "$f"; };

# 复制应用程序Logo
f='/opt/apps/net.winegame.client/entries/icons/hicolor/scalable/apps/net.winegame.client.svg';
rootfs='/opt/exagear/images/ubuntu-2004-x86_64';
dest='/usr/share/icons/hicolor/scalable/apps';
[ -e "$f" ] || { mkdir -p "$dest"; ln -sf "$rootfs$f" "$dest/"; };

# 创建应用程序图标
f='/opt/apps/net.winegame.client/entries/applications/net.winegame.client.desktop';
rootfs='/opt/exagear/images/ubuntu-2004-x86_64';
dest='/usr/share/applications';
[ -e "$f" ] || { mkdir -p "$dest"; ln -sf "$rootfs$f" "$dest/"; };

然后图标就会出现了:

image.png

安装游戏

从exagear启动的Wine游戏助手可能没办法在网页上点链接安装游戏,不过你可以直接在客户端里面搜索游戏进行安装:

image.png

增大文件描述符上限以便启用ESync

exagear容器之外执行。

# 检测是否在exagear中
grep ExaGear /proc/cpuinfo >/dev/null && echo '不能在exagear里执行,请打开一个新终端,不要进入exagear。';

# 修改配置文件
sudo sed -i 's/EXAGEAR_FD_HARD_LIMIT=".*"/EXAGEAR_FD_HARD_LIMIT="1048576"/g' /etc/exagear*.conf;
sudo systemctl stop exagear-x86_32.service exagear-x86_64.service;
sudo killall exagear ubt_x32a64_al ubt_x64a64_al;

验证:

ulimit -Hn
exagear
ulimit -Hn

image.png

第二个数值应该比第一个略小,如果确实如此,那说明修改生效了。如果第二个数值是8192,说明修改没生效,你可以重启电脑让修改生效。

禁用游戏性能优先模式

默认开启的游戏性能优先模式可能会导致错误,可以通过以下方式禁用:

image.png

image.png

删除Wine游戏助手添加的Windows程序图标

Wine游戏助手有时候会自动创建一些并不能使用的Windows应用程序图标,可以通过以下方式删除(不要加sudo,不要用root权限执行):

rm -rf ~/.local/share/applications/wine*;
sed -i '/wine/d' ~/.local/share/applications/mimeinfo.cache;

image.png

永久禁止Wine游戏助手创建此类图标(不要加sudo,不要用root权限执行):

dir="$HOME/.local/share/applications/";
rm -rf "$dir/wine"*;
sed -i '/wine/d' "$dir/mimeinfo.cache";
touch "$dir/wine";
mkdir "$dir/wine-extension-chm.desktop";
mkdir "$dir/wine-extension-hlp.desktop";
mkdir "$dir/wine-extension-msp.desktop";
mkdir "$dir/wine-extension-vbs.desktop";
回复列表(3)
  • @Ta / 2021-12-27 / /
    期待改用Eltechs的ExaGear教程。
  • @Ta / 2021-12-28 / /

    @zhpch21,32位exagear体验版。必须用root权限解压,且不能解压到/root目录,否则会出问题。
    容器镜像用的是Ubuntu 18.04,不太好,与winehq的wine不兼容。等我之后换成Ubuntu 20.04或者Debian 10。

    exagear-x32a32.tar.xz(1.55 GB)

    使用方法:

    sudo tar vxf exagear-x32a32.tar.xz
    ./exagear-x32a32/run.sh
    

    如果需要root权限

    sudo ./exagear-x32a32/run.sh
    

    容器内的sudo不管用,所以必须在容器外sudu。

    预装了Wine游戏助手,运行winegame命令可以打开,但是因为wine版本不兼容,安装脚本几乎都不正常。不过,全手动安装然后选系统wine应该可以。

  • @Ta / 03-23 23:37 / /
    安装好助手啦,游戏下载后无法运行!!!
添加新回复
回复需要登录