使用Exagear Desktop在ARM Chromebook上运行x86程序
关于 Exagear Desktop
有 ARM Chromebook 使用经验的朋友们应该都知道 ARM Chromebook 在可折腾性上要比 x86 的 Chromebook 要差上不少,最主要一个原因就是在 Crouton 下的 ARM Linux 无法运行很多流行的 x86 应用程序。
之前我写过一篇在 Raspberry Pi 上运行 x86 Sopcast 程序的文章,这个主要是使用 QEMU 的用户模式实现在 ARM Linux 上运行 x86 的应用程序,但这种方式的主要问题是 QEMU 的性能比较差。一个比较好的消息是国外的 Eltechs 公司推出的 Exgear Desktop 软件宣称可以在 ARM Linux 上以接近 x86 原生的性能运行 x86 Linux 程序,综合性能是 QEMU 的 5 倍。这样对于我的三星 ARM Chromebook 来说可是相当有用的,因此考虑买一个授权(你没看错,Exagear Desktop
是收费软件,根据设备不同需要 20-30 美元)看看实际效果。
有关 Exagear Desktop
的介绍可以参考 Eltechs 的介绍页面:
http://eltechs.com/product/exagear-desktop/
花了 30 美元购买 Exagear Desktop
之后 Eltechs 会将软件下载方式及授权文件以邮件方式发过来,通过 Google Drive 下载安装。
安装 Exagear Desktop
安装之前可以了解下 Exagear Desktop
的系统概念,运行 ARM Linux 的主机系统被称为 host system
,需要运行的 x86 系统被称为 guest system
,首先需要先确认所使用的 ARM 设备是否满足要求:
- ARMv6 或 ARMv7 CPU;
- 512MB 或更多的内存;
- Ubuntu 12.04 14.04 或者 Debian 之类的系统
上面的几个要求对于 ARM Chromebook 没有压力了,如果想省事可以直接使用 Crouton 安装 Ubuntu 系统使用。这里我使用 XUbuntu 14.04 armhf 系统测试 Exagear Desktop
的效果。
解压缩 Exagear Desktop
的安装包,可以看到类似这些文件:
chronos@localhost ~ $ ls exagear/ eltechs_exagear_desktop_1.1_guide.pdf exagear-guest-debian-7-wine2g_3_all.deb exagear-mem2g_2254-1_armhf.deb exagear_2254-1_armhf.deb exagear-guest-ubuntu-1204lts_9_all.deb install-exagear.sh exagear-guest-debian-7_3_all.deb exagear-guest-ubuntu-1404lts_1_all.deb README
Exagear Desktop
提供了 Debian 7、Ubuntu 12.04、Ubuntu 14.04 等几种不同的 x86 系统,一般按照 user guide PDF 文件的介绍运行 install-exagear.sh
脚本就可以自动完成安装,中间会提示你安装哪种类型的 x86 guest 系统,选择之后会自动通过网络加载安装 x86 的应用包。
安装完成之后运行 exagear-ls
命令可以查看已经安装的客户机系统,直接运行 exagear
命令就可以进入 x86 客户系统,进行 x86 环境之后可以直接运行或安装 x86 的应用程序。
关于 binfmt_misc
Eltechs 建议为了达到无缝运行 x86 程序的效果(特别是能更好的支持运行 需要 SUID 或者 SGID 的 x86 程序),ARM Linux host 系统里最好能支持 binfmt_misc
。
不过 Chromebook 上的 Linux kernel 一般没有自带这个,需要自己编译,可以参考我之前写的文章 在Koding云平台上编译Chromebook kernel 自己编译 Chromebook 下的 binfmt_misc
模块。
另外由于 binfmt_misc
没有默认在 Chromebook kernel 中,这样即使加载手工 binfmt_misc
模块之后也是没有 /proc/sys/fs/binfmt_misc
目录的,你需要在 Crouton 等 ARM Linux host 系统中创建 /var/binfmt_misc
目录,这样 Exagear Desktop
服务在启动时才可以自动挂载并启用 binfmt_misc
支持(具体可以参考 /etc/init.d/exagear
服务脚本)。
另外我在 /etc/init.d/exagear
服务脚本里加了一条自动加载 binfmt_misc
模块的处理(Chromebook 的 Crouton 上仍然需要自行编译并安装到系统模块目录中):
[ -d /sys/module/binfmt_misc ] || modprobe binfmt_misc
总结
最后从我最近简单的测试情况来看,Exagear Desktop
对于 x86 程序的兼容性做的还是不错的,平常用的 Sublime Text、Skype 之类的软件可以正常运行,TeamViewer 用起来似乎也无碍,虽然我最想用的 Visual Studio Code 还是运行不了有点遗憾。实际 x86 程序的运行速度也是比较接近 ARM 程序的体验呢。
最后放张 Sublime Text 在我的三星 ARM Chromebook 上的运行效果:
祝各位玩的开心~~~
andeaker:
2016年01月07日 星期四 02:38下午
不能运行VS.net?那它能运行需要DX支持的游戏么?我登陆他的官网,貌似这个软件一年多都没更新了
admin:
2016年01月07日 星期四 02:46下午
这个是为了在ARM Linux系统上支持运行x86 Linux程序,不是用来跑Windows exe的,
部分支持以WINE方式运行Windows程序,WINE方式运行.net的程序可能可以,
想拿来装VS.net写代码编译程序或者玩DX的Windows游戏估计还不太现实,
软件本身11月份还更新了1.2版本的
Unee Wang:
2016年01月25日 星期一 02:03下午
原来还要刷一个Linux
admin:
2016年01月25日 星期一 03:02下午
装个crouton不是很方便嘛