You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在EC2 g4dn实例运行无头Chrome无法打开chrome://gpu求助

问题描述

在EC2 g4dn.xlarge实例(Ubuntu 24.04系统,Nvidia驱动560.35.03)上运行无头Google Chrome/Chromium,用于游戏串流场景。已按教程配置GPU驱动及相关依赖,执行以下命令尝试打印chrome://gpu页面的PDF:

google-chrome-stable --headless --use-gl=angle \
    --use-angle=gl-egl --use-cmd-decoder=passthrough \
    --print-to-pdf=output.pdf 'chrome://gpu'

实际生成的PDF为chrome://new-tab-page,而非预期的GPU信息页,同时输出以下错误日志:

[4175:4269:0911/053816.001929:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.DBus.Properties.Get: object_path= /org/freedesktop/UPower: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.UPower was not provided by any .service files
[4175:4269:0911/053816.002261:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.UPower.GetDisplayDevice: object_path= /org/freedesktop/UPower: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.UPower was not provided by any .service files
[4175:4269:0911/053816.002550:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.UPower.EnumerateDevices: object_path= /org/freedesktop/UPower: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.UPower was not provided by any .service files
30025 bytes written to file output.pdf
[4214:4214:0911/053819.617095:ERROR:shared_image_manager.cc(224)] SharedImageManager::ProduceSkia: Trying to Produce a Skia representation from a non-existent mailbox.
[4214:4214:0911/053819.618405:ERROR:shared_image_manager.cc(224)] SharedImageManager::ProduceSkia: Trying to Produce a Skia representation from a non-existent mailbox.

已确认nvidia-smi显示GPU驱动正常运行,更换Chromium版本问题依旧。

排查与解决方案

1. 修正命令参数顺序与URL格式

Chrome无头模式对内部URL的解析存在参数顺序依赖,需将目标URL放在所有参数最后,且避免不必要的引号包裹:

google-chrome-stable --headless --use-gl=angle \
    --use-angle=gl-egl --use-cmd-decoder=passthrough \
    --print-to-pdf=output.pdf chrome://gpu

可先通过--dump-dom验证页面是否能正确加载:

google-chrome-stable --headless --use-gl=angle \
    --use-angle=gl-egl --use-cmd-decoder=passthrough \
    --dump-dom chrome://gpu > gpu_info.html

若生成的HTML包含GPU信息,再执行PDF打印命令。

2. 消除UPower错误干扰

日志中的UPower错误是因EC2实例未安装电源管理服务,安装后可消除此类日志,便于聚焦核心问题:

sudo apt update && sudo apt install -y upower

3. 验证GPU加速实际生效状态

通过日志确认Chrome是否成功初始化GPU:

google-chrome-stable --headless --use-gl=angle \
    --use-angle=gl-egl --use-cmd-decoder=passthrough \
    --enable-logging=stderr --v=1 chrome://gpu 2>&1 | grep -i gpu

若未发现GPU初始化成功的日志,尝试以下调整:

  • 将--use-angle=gl-egl替换为--use-angle=glx,部分环境下GLX兼容性更好
  • 运行nvidia-smi -L确认GPU设备被正确识别
  • 升级Chrome至最新稳定版,确保与当前Nvidia驱动版本兼容

4. 绕过内部URL限制的替代方案

若无头模式始终无法加载chrome://gpu,可通过虚拟显示器先获取页面内容,再打印PDF:

  1. 安装虚拟显示器工具:
sudo apt install -y xvfb
  1. 启动XVFB并通过DevTools协议获取GPU页面内容:
xvfb-run -a google-chrome-stable --no-sandbox --remote-debugging-port=9222 chrome://gpu &
sleep 5
# 获取tab ID
TAB_ID=$(curl -s http://localhost:9222/json | grep -o '"id":[0-9]*' | head -n1 | cut -d: -f2)
# 保存页面HTML
curl -s http://localhost:9222/devtools/page/$TAB_ID > gpu_page.html
  1. 打印本地HTML文件为PDF:
google-chrome-stable --headless --use-gl=angle \
    --use-angle=gl-egl --use-cmd-decoder=passthrough \
    --print-to-pdf=output.pdf file://$(pwd)/gpu_page.html

5. 禁用Chrome沙箱

EC2环境下可能因权限限制导致沙箱异常,添加--no-sandbox参数尝试:

google-chrome-stable --headless --no-sandbox --use-gl=angle \
    --use-angle=gl-egl --use-cmd-decoder=passthrough \
    --print-to-pdf=output.pdf chrome://gpu

内容的提问来源于stack exchange,提问作者Qile

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 11:17:08