登录
注册
node.js 学习社区
在ARM(树莓派)上使用Electron,构建Chrome + Node合一的系统界面

水泥工

2015-07-05 11:18

小弟终于注册成功了

总监内定、钦点了要使用Electron做实验,在这里记录一下过程。


首先,请让本水泥介绍一下Electron,如果已经了解请跳过。

Electron (官网) 原名“Atom Shell”,是来自Github(似乎官方)的一个项目,如果你了解nw(node-webkit)那你一定就了解了Electron,如果不知道,想必你应该听说过一个叫做Atom的代码编辑器,

没错 Atom Shell就是用来实现Atom的框架啦(I'm your father) 。

Electron本身内置了一个(node)V8和一个叫做libchromiumcontent的东西,这两个东西合起来就可以驱动一个本地应用程序了,实现了界面用HTML5来做,业务用node来做的理想状态。

在这里说一下libchromiumcontent,chrome和chromium大家都是知道的,我大Google为了让chromium可以被广泛利用,很好心的把Chromium做成了一个库 叫CEF(Chromium Embedded Framework),然而使用和编译起来需要依赖大概几亿吨的库,配置也非常恐怖,于是Electron的大神们把这一切集成到一个叫做libchromiumcontent的库里,供后人使用。

(以上是自己的理解,很可能是错误的)


之所以写这篇文章是因为我们已经被Chrome和Chromium的交叉编译坑了很久,而就在即将放弃的时候ATOM-SHELL忽然支持了ARM编译,于是记录在这里。



编译:

如果你拥有一个树莓派 或者任何支持硬浮点(eabihf)的ARM开发板(最好是CortexA7+),可以试一试给你的屏幕增加一个HTML5的界面来玩。


请确保你的磁盘空间大于10G (最好20G+),还有一个较大的SWAP(比如1G-2G+)和RAM(2G+),如果在VM里进行LINK,可能会遇到各种内存问题,请像本屌一样进行要饭操作以增加内存。

首先clone最新的electron下来:


git clone https://github.com/atom/electron.git


之后可以


cd electron

./script/bootstrap.py -v --target_arch=arm


或者去掉-v如果你觉得很烦躁

这里的target_arch决定了所有事情,感谢electron维护者 这一切都变得非常简单啦。


之后运行


./script/build.py



根据你的机器配置,等待时间不同,我们使用了一个VPS来做这件事情,大概3-7分钟左右。


./script/create-dist.py


在这之后,会在你的工作目录产生dist文件夹和内容,里面就有一个zip啦。

这个ZIP可以解压缩到你的目标主板上,登录到树莓派上面

运行


ldd electron



来看一看你的目标主板是否存在这些依赖库,之后要一个一个补全到板子上(后续会给完整的库连接,挖坑)


其中比较重要的是一个叫做libnotify的库,这个库要找ARM版本放上去。



最后运行之前请确定你的系统有udev,这至关重要!如果你使用buildroot构建系统,默认可能是mdev,那么很不幸,你需要重新编译rootfs啦。。


最后,你就可以按照electron官方的文档开始开发HTML5+node应用啦,接上屏幕玩一玩吧~


附:文档

https://github.com/atom/electron/tree/master/docs




回复 · 1

  • 你好 , 按照你的安装步骤, 我出现了如下问题, 我应该怎么解决 , 新手~

    fatal: unable to access 'https://chromium.googlesource.com/chromium/tools/depot_tools.git/': Failed to connect to chromium.googlesource.com port 443: Connection timed out

    Clone of 'https://chromium.googlesource.com/chromium/tools/depot_tools.git' into submodule path 'vendor/depot_tools' failed

    None


    0

发表回复

你可以在回复中 @ 其他人