在 WSL 上 运行 时如何解决 "Graphics Device initialization failed for : es2, sw"?

How do I resolve "Graphics Device initialization failed for : es2, sw" when running on WSL?

我正在尝试设置 okta-aws-cli-assume-role,但我有一台 Windows 机器(请不要开枪!)。我认为我的问题是有一些图形组件,当我 运行 使用 Ubuntu WSL 时,它找不到合适的设备。

完整的错误是:

Graphics Device initialization failed for :  es2, sw
Error initializing QuantumRenderer: no suitable pipeline found
java.lang.RuntimeException: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found

我该怎么办?

虽然有些人可能会建议您解决此问题,但我建议您看一下 aws-sts docker 解决方案:它在引擎盖下使用无头浏览器,因此不会与图形相关的任何问题,它或多或少与平台无关。

我在使用 WSL 时遇到了完全相同的情况,所以我做了:

  • 按照自述文件
  • 中的描述创建了config.json
  • 自述文件建议创建一个 Dockerfile,但实际上我从来没有像 the template file
  • 中那样将配置参数传递给基本 docker 图像而使用它

因此,aws 令牌在 docker 容器内生成并放入安装的 $HOME/.aws 文件夹中,因此您可以轻松地从 WLS 调用 awscli

Here 是如何使 docker 与 WLS 正常工作(简而言之,WLS 中的客户端,安装在 Windows 上的服务器,带有暴露的守护进程)。

再提示一下:在生成token的时候使用--profile=default,这样就不用每次都指定awscli了。