UBB测试

@Ta 2021-12-13发布,2021-12-13修改 666点击
被下沉

华为ExaGear简介:https://support.huaweicloud.com/ug-exagear-kunpengdevps/kunpengexagear_06_0003.html

ExaGear是一款二进制指令动态翻译软件,运行在ARM64服务器上,通过将x86的指令在运行时翻译为ARM64指令并执行,使得绝大部分Linux on x86应用无需重新编译就可运行在ARM64服务器上,实现低成本、快速迁移Linux on x86应用到ARM64服务器。

这非常好。

但有一点不好:华为ExaGear只能在华为CPU上运行,在其他CPU上运行会报错“Unsupported CPU detected”。

不过,只要把可执行文件稍微修改一下,绕过这个CPU类型检测,就能让它在飞腾CPU上运行了,方法在下面。

备注:这篇教程也做为华为鲲鹏CPU安装ExaGear的教程,不过鲲鹏CPU本身就是华为的,所以不需要执行破解那一步。

安装步骤

  1. 华为ExaGear与基于box86的“Wine游戏助手ARM64测试版”不兼容,如果你安装了“Wine游戏助手ARM64测试版”,请先卸载它,再安装华为ExaGear。

    卸载“Wine游戏助手ARM64测试版”的方法:

    sudo apt purge net.winegame.client
    

    安装华为ExaGear之后,可以在exagear容器里安装x86_64版的“Wine游戏助手”,教程在这里

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

  2. 华为ExaGear对Linux内核有要求,不兼容内核无法正常启动华为ExaGear。

    目前已知飞腾UOS的内核是兼容的,但是银河麒麟的内核似乎不兼容。

    已知树莓派官方64位系统的内核不兼容。

    替换内核并不难,教程正在编写中。

    需要CONFIG_ARM64_VA_BITS_48=y的内核。

  3. 下载并安装华为exagear:
    https://support.huaweicloud.com/ug-exagear-kunpengdevps/kunpengexagear_06_0009.html

    建议银河麒麟、deepin和UOS安装ExaGear_Server_for_Ubuntu20里的包。

    安装方法:

    1. 压缩包解压后,在文件管理器里进入“ExaGear_1.2.1.1/ExaGear_Server_for_Ubuntu20/release”文件夹。
    2. 右击文件管理器的空白处,选择“在终端打开”。
    3. 在打开的终端执行以下命令:
    sudo apt install ./*.deb
    
  4. 尝试运行exagear命令,报错:

image.png

如果你这一步执行完没有报错,直接进去了,就不需要执行第5步,可直接跳到第6步。

  1. 执行以下命令破解ExaGear(如果你是华为CPU,不需要破解就能用,可跳过此步):
# 切换到root权限
sudo -i;

# 检测是否需要破解
grep ExaGear /proc/cpuinfo >/dev/null && echo '你在exagear内,请直接跳到第6步。' || { grep 0x0000000048 /sys/devices/system/cpu/cpu0/regs/identification/midr_el1 >/dev/null && echo '你用的是华为CPU,不需要破解,请直接跳到第6步。' || echo '你用的不是华为CPU,需要破解,请执行下面的命令。'; };

# 破解 ubt_x32a64_al
f='/opt/exagear/bin/ubt_x32a64_al';
mv "$f" "$f.origin";
perl -pe 's/\x{02}\x{7C}\x{18}\x{53}(?!\x{1F}\x{5C})/\x{02}\x{09}\x{80}\x{D2}/g' < "$f.origin" > "$f";
chmod +x "$f";

# 破解 ubt_x64a64_al
f='/opt/exagear/bin/ubt_x64a64_al';
mv "$f" "$f.origin";
perl -pe 's/\x{02}\x{7C}\x{18}\x{53}(?!\x{1F}\x{5C})/\x{02}\x{09}\x{80}\x{D2}/g' < "$f.origin" > "$f";
chmod +x "$f";
  1. exagear可以使用了,只需要执行exagear命令进入x86容器环境,就可以安装x86软件包了。

(截图只是功能展示,不需要执行截图中的命令。要执行的操作从6.1开始。)

image.png

image.png

不过系统语言是英文。切换语言的方法如下:

6.1. 换源

Ubuntu默认软件源下载速度很慢,所以安装软件包之前先换源:

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

# 然后下面3个命令任选一个执行,如果一个速度不满意就换另一个。下面执行 apt install 步骤的时候就能看出速度快不快。

# 网易
sudo sed -i 's@[a-z0-9.-]*\.[a-z][a-z][a-z]*/ubuntu@mirrors.163.com/ubuntu@g' /etc/apt/sources.list

# 阿里云
sudo sed -i 's@[a-z0-9.-]*\.[a-z][a-z][a-z]*/ubuntu@mirrors.aliyun.com/ubuntu@g' /etc/apt/sources.list

# 清华
sudo sed -i 's@[a-z0-9.-]*\.[a-z][a-z][a-z]*/ubuntu@mirrors.tuna.tsinghua.edu.cn/ubuntu@g' /etc/apt/sources.list

6.2. 切换语言为中文

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

# 更新软件包列表
sudo apt update;

# 安装字体和语言包
sudo apt install -y locales fonts-noto-cjk fonts-noto-cjk-extra language-pack-zh-hans;

# 选择语言
sudo dpkg-reconfigure locales;

执行sudo dpkg-reconfigure locales后,你会看到这样的界面,无需修改选项,直接确认即可。用方向键或者Tab导航到Ok上,然后按空格或者回车确认。

image.png

然后在这里选“zh_CN.UTF-8”并回车确认。

image.png

等命令执行完(需要一段时间),关掉终端再重新打开一个,命令的语言就会变成中文了。

exagear
apt

image.png

回复列表(0|隐藏机器人聊天)
帖子没有回复
添加新回复
回复需要登录