有 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 的系统概念,运行 ARM Linux 的主机系统被成为 host system,需要运行的 x86 系统被成为 guest sytstem,首先需要先确认所使用的 ARM 设备是否满足要求:
上面的几个要求对于 ARM Chromebook 没有压力了,如果想省事可以直接使用 Crouton 安装 Ubuntu 系统使用。
这里我使用 XUbuntu 14.04 armhf 系统测试 Exagear Desktop 的效果,另外为了达到无缝运行 x86 程序的效果,ARM Linux host 系统里最好能支持 binfmt_misc,不过 Chromebook 上的 Linux kernel 一般没有自带这个,需要自己编译,可以参考我之前写的文章 [ 在Koding云平台上编译Chromebook kernel ] 自己编译 Chromebook 下的 binfmt_misc 模块。
解压缩 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 的应用程序。
如果你需要在 Chromebook 上开启 Exagear Desktop 的 binfmt_misc 支持(能更好的支持运行 需要 SUID 或者 SGID 的 x86 程序),这就需要自行编译 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 上的运行效果:
祝各位玩的开心~~~