docs(desktop): LM Studio must not see the NVIDIA Vulkan ICD; drop its desktop entries; fish env pins Mesa/RADV

This commit is contained in:
Prad Nukala committed 2026-10-17 13:15:39 -04:00
1 parent 2d008fe1ce
commit 099e0476b3
4 files changed
+3 -24

No files matched your search

+2
View File
@@ -51,4 +51,6 @@ The RTX 5060 Ti in a USB4 enclosure (Minisforum `TBGAA`, bolt policy `iommu`) is
Session side: `conf.d/10-env.fish` sets `__EGL_VENDOR_LIBRARY_FILENAMES` (Mesa) and `VK_DRIVER_FILES` (RADV), see [fish](/shell/fish#10-envfish). niri and Umbriel both start through a fish login shell, so the compositor, Noctalia, and every app inherit them. Without them, glvnd and the Vulkan loader load the NVIDIA vendor libraries into every process, and those processes hold `/dev/nvidiactl`. Hyprland gets the same pins from `~/.config/uwsm/env-hyprland`, see [Hyprland](/desktop/hyprland#monitors). Session side: `conf.d/10-env.fish` sets `__EGL_VENDOR_LIBRARY_FILENAMES` (Mesa) and `VK_DRIVER_FILES` (RADV), see [fish](/shell/fish#10-envfish). niri and Umbriel both start through a fish login shell, so the compositor, Noctalia, and every app inherit them. Without them, glvnd and the Vulkan loader load the NVIDIA vendor libraries into every process, and those processes hold `/dev/nvidiactl`. Hyprland gets the same pins from `~/.config/uwsm/env-hyprland`, see [Hyprland](/desktop/hyprland#monitors).
Never expose `nvidia_icd.json` to LM Studio. When its engine survey reaches the eGPU through NVIDIA's Vulkan driver, the card falls off the bus (`Xid 79`) and the machine hard-resets (`reset reason … data fabric sync flood`). The survey runs when the app starts and when the `llmster` daemon starts, and any `lms` command starts that daemon. It happened twice on 2026-10-17. CUDA on the same card is stable, so select the `llama.cpp … nvidia-cuda` engine in LM Studio.
Check: `nvidia-smi` lists the card, and `fuser -v /dev/nvidia*` shows only CUDA processes. Check: `nvidia-smi` lists the card, and `fuser -v /dev/nvidia*` shows only CUDA processes.
@@ -1,18 +0,0 @@
[Desktop Entry]
# Replaces lmstudio-bin's lmstudio.desktop (hidden by lmstudio.desktop here).
# The ID matches the window app_id and the scratchpad spawn
# (`gtk-launch ai.elementlabs.lmstudio` in umbriel/rules.toml and
# omarchy-toggle-scratch). The session pins Vulkan to RADV; LM Studio's Vulkan
# backend also gets the NVIDIA ICD so it can run models on the Thunderbolt eGPU.
# The iGPU stays Vulkan device 0. Keep the env in sync with fish conf.d/10-env.fish.
Type=Application
Name=LM Studio
GenericName=Large Language Model Studio
Comment=A desktop app for exploring and running large language models locally
Exec=env VK_DRIVER_FILES=/usr/share/vulkan/icd.d/radeon_icd.json:/usr/share/vulkan/icd.d/nvidia_icd.json MESA_VK_DEVICE_SELECT=1002:1586 lm-studio %U
Icon=lmstudio-bin
Categories=Development;ArtificialIntelligence;
Terminal=false
StartupNotify=true
StartupWMClass=ai.elementlabs.lmstudio
MimeType=text/plain;
@@ -1,5 +0,0 @@
[Desktop Entry]
# Hides lmstudio-bin's entry; ai.elementlabs.lmstudio.desktop replaces it.
Type=Application
Name=LM Studio
Hidden=true