想要试试arm板上使用selenium是不是可能,发现Firefox什么的不顶用,网上有提供的chrome的安装手顺,但是没有arm版本的对应的chromedriver,只能自己搞了。
这边介绍的方法是直接在raspberry pi上编译,编译时间在36小时左右,编译24 小时,最后的链接时间12小时
前期准备:
1. 移动硬盘可用空间10G以上,swap和代码,以及编译目录都需要放在上面
2. 关闭sdcard上的swap,sdcard上的swap比较慢,会导致emmc hung
3. 在移动硬盘上创建swap(4G以上),并启动
4. 安装打包用的软件debhelper
5. 下载代码和debian打包配置文件
路径:
修改编译代码:
1. 在移动硬盘上解压
tar xf chromium-browser_52.0.2743.116.orig.tar.xz tar xf chromium-browser_52.0.2743.116-1~deb8u1.debian.tar.xz mv debian chromium-52.0.2743.116/
2. 修改编译规则
2.1 修改文件 debian/rules, defines中添加
symbol_level=0
2.2 修改debian/control, Architecture 都改成all, 除了Package: chromium-dbg, 我们不需要chromium的debug信息
2.3 修改debian/scripts/chromium, 删除下面的内容
osse2="\ The hardware on this system lacks support for the sse2 instruction set. The upstream chromium project no longer supports this configuration. For more information, please read and possibly provide input to their bug tracking system at http://crbug.com/348761." # Check whether this system supports sse2 if test -z "$(grep sse2 /proc/cpuinfo)"; then xmessage "$nosse2" exit 1 fi
因为我们copy的debian 配置文件都是针对x86平台的, arm平台没有sse,这个就不需要了
3. 编译debian pakcage
dpkg-buildpackage
第一次编译会出现dependence的问题,按照提示的要求把缺少的包安装下,然后就继续这条命令
中间有简单的问题调整的话,请使用
fakeroot debian/rules binary
4. 36 小时左右后,就能在上级的目录中看到我们需要的packge了,dpkg -i 安装下就能使用了
总的来说,chromium的编译系统和跨平台做的挺赞的,不存在需要修改chromium代码才能编译的情况。
tips.
可以添加component=shared_library到defines里面,静态链接就会变成动态链接,好处是可以节省很多的链接时间,坏处是相应的你需要修改chromium.install文件,把shared library形式的compenent 添加进去, 同时有几个gyp文件需要修改,这些compnent没有加相应的link flag