我全新安装了 NixOS不带X11。
然后我跑了
nix-env -i wayland
nix-env -i sway
nix-env -i glu
nix-env -i mesa-noglu
reboot
sway
但我收到以下错误
gbm: failed to open any drive (search paths /run/opengl-driver/lib/dri)
gbm: Last dlopen error: /run/opengl-driver/lib/dri/i965_dri.so: open shared object file: No such file or directory
failed to load driver: i965
gbm: failed to open any drive (search paths /run/opengl-driver/lib/dri)
gbm: Last dlopen error: /run/opengl-driver/lib/dri/kms_swrast_dri.so: open shared object file: No such file or directory
failed to load driver: kms_swrast
gbm: failed to open any drive (search paths /run/opengl-driver/lib/dri)
gbm: Last dlopen error: /run/opengl-driver/lib/dri/swrast_dri.so: open shared object file: No such file or directory
failed to load driver: wrast
[wlc] Failed to init compositor
换句话说,我缺少一些 opengl 驱动程序,但我该如何获取它们呢?
答案1
我正在运行带有 Sway 的 NixOS,但没有 X11。我设法通过在我的configuration.nix中注释掉这一行来重新创建您的错误:
hardware.opengl.enable = true;
当我恢复线路时,Sway 按预期工作。
答案2
当您在 NixOS 上处理服务时,例如 Xorg、wayland 等,从nix-env
.相反,您需要在/etc/nixos/configuration.nix
.
当您不确定如何配置服务时,最好的起点就是 NixOS手动的。
之后,使用选项页面以获取有关配置选项的更多详细信息。例如,如果您搜索开放语言您将看到可以配置的各种选项。
不幸的是,据我所知 Wayland 不能作为 NixOS 上的服务使用。所以你可能很难让它发挥作用。
通常,依赖于包的服务会有一个选项,您可以在其中指定该包应该是什么。例如,NixOS 的 fontconfig 模块具有fonts.fonts
可以设置字体包列表的选项。这允许 fontconfig 模块正确设置字体。无论何时编写,都可以对 Wayland 模块使用类似的策略。
答案3
如前所述,安装东西(如台面)不会改变某些系统属性。在这种特殊情况下,/run/opengl-driver*
启动服务时会在 NixOS 上设置必要的符号链接display-manager
。