* Electron Version: [electron-v3.0.0-beta.5-linux-armv7l](https://github.com/electron/electron/releases/download/v3.0.0-beta.5/electron-v3.0.0-beta.5-linux-armv7l.zip)
* Operating System (Platform and Version): [debian stretch for armhf](https://dl.vamrs.com/products/rock960/images/debian/rock960_debian_stretch_desktop_armhf_20180115.tar.gz) on a 64 bit arm single board computer
* Target hardware: [rock960](https://www.96boards.org/product/rock960/)
* Last known working Electron version: none

**Expected Behavior**
Electron should be able to boot on it's default asar without crashing.

**Actual behavior**
When you boot electron on the target hardware it hangs and seems to be unable to do GPU compositing. When you disable GPU compositing, the system is able to start. Chromium 61 on the same board is able to GPU composite without issue. Just launching chromium 61 demonstrates this, but you can also see GPU rendering in action at https://get.webgl.org, for example.

**To Reproduce**
1. Get an arm 64 single board computer (we're using the rock 960)
2. Install the debian stretch for armhf (32 bit) image
3. open electron with it's default asar and watch it hang.

While we're using the rock960 (arm 64) board with the armhf build of debian stretch, we think this is reproducible on other arm64 boards running armhf. So far we've heard of this same bug reproducing with the same armhf build of debian stretch on a [Odroid XU4](https://www.hardkernel.com/main/products/prdt_info.php).

**Additional Information**
We realize that this may not be an electron bug, but rather an OS driver or other integration bug. We thought we should open this issue here in case this sounds familiar to anyone, or if there is anyone in the electron community who is able to help us further diagnose this issue.

Thank you for reading and for contributing to or maintaining the electron project! We really appreciate all your hard work, and are thankful for how great electron is for distributing node and chromium, and bringing the web platform to more places. Thanks again!

atom/app/atom_main.cc
struct Arguments {
    int argc = 0;
    wchar_t** argv = ::CommandLineToArgvW(::GetCommandLineW(), &argc);
    ~Arguments() { LocalFree(argv); }
  } arguments;
  if (!arguments.argv)
    return -1;
#ifdef _DEBUG
  
  static const char* kCI = "ELECTRON_CI";
  bool is_ci = IsEnvSet(kCI);
  if (!is_ci) {
    for (int i = 0; i < arguments.argc; ++i) {
      if (!_wcsicmp(arguments.argv[i], L"--ci")) {
        is_ci = true;
        _putenv_s(kCI, "1");  
        break;
      }
    }
  }
  if (is_ci) {