在Rock5b SBC(arm64架构Debian11)运行Flutter项目遇致命错误求助
解决Rock5b(arm64 Debian11)上Flutter启动的libGL驱动问题
在arm64架构的Rock5b单板计算机(SBC)上安装了Debian11系统和Flutter 3.3.10稳定版,flutter doctor仅提示未安装Chrome,其余检测正常。但执行flutter create sample;cd sample;flutter run时,出现libGL驱动加载失败错误,导致Flutter GPU初始化失败,应用无法启动。
环境信息
- 内核信息:
Linux rock-5b 5.10.110-34-rockchip-gca15bbe36e6c #rockchip SMP Wed Dec 7 06:54:05 UTC 2022 aarch64 GNU/Linux
- Flutter版本:
Flutter 3.3.10 • channel stable • https://github.com/flutter/flutter Framework • revision 135454af32 (4 days ago) • 2022-12-15 07:36:55 -0800 Engine • revision 3316dd8728 Tools • Dart 2.18.6 • DevTools 2.15.0
- Flutter Doctor检测结果:
Doctor summary (to see all details, run flutter doctor -v): [✓] Flutter (Channel stable, 3.3.10, on Debian GNU/Linux 11 (bullseye) 5.10.110-34-rockchip-gca15bbe36e6c, locale ja_JP.UTF-8) [✗] Chrome - develop for the web (Cannot find Chrome executable at google-chrome) ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable. [✓] Linux toolchain - develop for Linux desktop [✓] VS Code (version 1.74.1) [✓] Connected device (1 available) [✓] HTTP Host Availability ! Doctor found issues in 1 category.
错误日志
Launching lib/main.dart on Linux in debug mode... Building Linux application... libGL error: failed to create dri screen libGL error: failed to load driver: rockchip libGL error: failed to create dri screen libGL error: failed to load driver: rockchip [FATAL:flutter/shell/gpu/gpu_surface_gl_delegate.cc(57)] Check failed: gl_version_string. The GL proc resolver's glGetString(GL_VERSION) failed Error waiting for a debug connection: The log reader stopped unexpectedly, or never started. Error launching application on Linux.
解决方案
方法1:安装Rockchip官方Mali驱动
Rock5b搭载Mali GPU,Debian默认开源驱动存在兼容性问题,安装官方闭源驱动可解决:
- 获取适配Debian11 arm64的Rockchip Mali驱动包
- 解压后执行安装命令:
sudo dpkg -i mali*.deb
- 重启系统后重新运行
flutter run
方法2:强制使用软件渲染(临时方案)
若暂时无法安装官方驱动,可通过环境变量让Flutter绕过GPU驱动问题:
export LIBGL_ALWAYS_SOFTWARE=1 flutter run
或直接在启动命令前添加参数:
LIBGL_ALWAYS_SOFTWARE=1 flutter run
注意:软件渲染会降低应用性能,仅作临时测试使用
方法3:更新系统内核及Mesa库
Debian11默认Mesa版本较低,更新至新版本可提升驱动兼容性:
- 更新系统包:
sudo apt update && sudo apt upgrade -y
- 编辑
/etc/apt/sources.list,添加bullseye-backports源:deb http://deb.debian.org/debian bullseye-backports main contrib non-free - 安装更新后的Mesa驱动:
sudo apt -t bullseye-backports install libgl1-mesa-glx libgl1-mesa-dri
- 重启系统后测试Flutter应用
内容的提问来源于stack exchange,提问作者Luke Mira
相关产品推荐
相关产品推荐

