Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

[Bug] Black screen after upgrade to MagicMirror² 2.38.0 on Raspberry Pi 3 with Electron 44.4.5

未关闭
#4,287 16 条评论 3 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
43/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
活跃
技术栈
electron, javascript, node.js, raspberry-pi

调研方向

No source file is named; start with package.json, package-lock.json, and the node --run start entry point. Reproduce the Electron 44.4.5 versus 42.6.0 comparison on the Raspberry Pi under Wayland and X11, then inspect the renderer and display behavior. Done means the supported Electron version keeps the interface visible while the HTTP service remains healthy.

由索引模型根据 Issue 内容生成。

描述

bug ready (coming with next release)
Environment

System:

  • Raspberry Pi 3 Model B Plus Rev 1.3
  • Debian GNU/Linux 13 (trixie)
  • Architecture: arm64
  • Kernel: 6.18.50+rpt-rpi-v8
  • Time zone: Europe/Berlin

MagicMirror system information from the failing Electron 44.4.5 run:

[2026-10-01 19:29:40.974] [INFO]  [systeminformation]
####  System Information  ####
- MM:       version: v2.38.0; git: f138f5b6; branch: master
- SYSTEM:   manufacturer: Raspberry Pi Foundation; model: Raspberry Pi 3 Model B Plus Rev 1.3; virtual: false
- OS:       platform: linux; distro: Debian GNU/Linux; release: 13; arch: arm64; kernel: 6.18.50+rpt-rpi-v8
- VERSIONS: electron: 44.4.5; used node: 24.21.0; installed node: 24.21.0; npm: 11.19.0; pm2:
- ENV:      XDG_SESSION_TYPE: wayland; MM_CONFIG_FILE: undefined
            WAYLAND_DISPLAY:  wayland-0; DISPLAY: :0; ELECTRON_ENABLE_GPU: undefined
- RAM:      total: 905.04 MB; free: 422.97 MB; used: 482.07 MB
- OTHERS:   uptime: 899 minutes; timeZone: Europe/Berlin

Full MagicMirror commit:

f138f5b690ceab6450f55c852ac81d268363f563
Which start option are you using?

node --run start

Are you using PM2?

No

Module

None

Have you tried disabling other modules?
  • Yes
  • No
Have you searched if someone else has already reported the issue on the forum or in the issues?
  • Yes
What did you do?

I upgraded an existing working MagicMirror installation from v2.37.0 to v2.38.0.

After the upgrade, the installation contained Electron 44.4.5 as specified by MagicMirror v2.38.0.

Test A - Electron 44.4.5

I started MagicMirror normally using the existing systemd user service:

systemctl --user start magicmirror.service

The underlying start command is:

node --run start

MagicMirror starts successfully on the server side. The configuration check passes, module helpers load, and the HTTP server starts on port 8080.

The local HTTP endpoint responds successfully:

HTTP 200

However, on the monitor connected directly to the Raspberry Pi:

  • a small part of the MagicMirror interface appears very briefly,
  • the display then becomes black,
  • only the mouse pointer remains visible,
  • no Electron renderer process remains.

After about one minute:

=== ELECTRON ===
44.4.5

=== HTTP ===
HTTP 200

=== RENDERER ===
KEIN RENDERER

The MagicMirror service itself remains active.

Test B - same setup with Electron 42.6.0

Without changing MagicMirror, its configuration, the OS, the display setup or the start method, I changed only Electron:

npm install --no-save --package-lock=false [email protected]

The installed Electron version was then:

42.6.0

I restarted the same MagicMirror service:

systemctl --user restart magicmirror.service

With Electron 42.6.0:

  • the MagicMirror interface appears and remains visible,
  • the HTTP endpoint returns HTTP 200,
  • the service remains active,
  • an Electron renderer process is present.

Example renderer process:

/home/remote/MagicMirror/node_modules/electron/dist/electron --type=renderer ... --ozone-platform=wayland --disable-gpu-compositing ...

I repeated the Electron 44.4.5 test afterwards by restoring the dependency from MagicMirror v2.38.0:

npm install

This restored Electron 44.4.5 and reproduced the same black-screen behavior again:

  • interface appears only very briefly,
  • screen becomes black,
  • mouse pointer remains visible,
  • HTTP still returns 200,
  • no renderer process remains.

I then changed only Electron back to 42.6.0 and the display worked again.

Comparison
MagicMirror Electron HTTP Renderer Display
2.38.0 44.4.5 200 absent black after brief flash
2.38.0 42.6.0 200 present works normally
What did you expect to happen?

MagicMirror v2.38.0 should display the interface normally on the monitor connected to the Raspberry Pi when started with the supported Wayland start path.

What actually happened?

With Electron 44.4.5, the MagicMirror backend starts successfully, but the Electron frontend does not remain visible.

The interface flashes briefly and then the screen becomes black. Only the mouse pointer remains visible.

The HTTP server continues to respond with HTTP 200 and the MagicMirror service remains active, but no Electron --type=renderer process remains.

Changing only Electron from 44.4.5 to 42.6.0 makes the same MagicMirror v2.38.0 installation work normally again.

The only recurring Electron-related log message seen during startup was:

ERROR:media/gpu/vaapi/vaapi_wrapper.cc:1801] vaInitialize failed: unknown libva error

No kernel OOM, segmentation fault or Electron/Chromium coredump was found during the failing test.

Additional comments

The issue is reproducible by changing only the Electron version on the same MagicMirror v2.38.0 installation.

Working temporary workaround:

npm install --no-save --package-lock=false [email protected]

This does not modify package.json or package-lock.json.

I also tested node --run start:x11 with Electron 44.4.5. The screen remained completely black, so in this setup the issue was not resolved by switching from the Wayland start option to X11.

The observable A/B result is:

  • Electron 44.4.5: backend works, HTTP 200, no renderer remains, black screen.
  • Electron 42.6.0: backend works, renderer is present, interface remains visible.

I have not confirmed the underlying Electron/Chromium cause.

Network / HTTP

MagicMirror is running its HTTP server on port 8080.

During the failing Electron 44.4.5 test, the local server remained reachable:

http://127.0.0.1:8080/
HTTP 200
Participation
  • I am willing to submit a pull request for this change.
主要语言
JavaScript
星标
24.1k
派生
4.6k
平均合并
15 小时 21 分钟
30 天内合并 PR
26

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

MagicMirrorOrg/MagicMirror 的其他 Issue

查看 MagicMirrorOrg/MagicMirror 的全部 Issue

相似的 Issue

更多 JavaScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。