Loading an eGPU driver after bolt with systemd

Parent: Thunderbolt eGPU on Linux for local LLM inference · Published reference · snapshot 2026-09-08 · skill devops-linux-internals/references/linux-egpu-hotplug-boot-orchestration.md

Also known as: After=bolt.service, all-ways-egpu, daemon-reload, drop-in, egpu hot unplug nvidia, egpu systemd service, egpu-nvidia.service, egpu-switcher, install nvidia /bin/false, install-block, modprobe --ignore-install, oneshot, udev rule egpu, update-initramfs nvidia

↓ Facts as markdownall context files

Blocking the NVIDIA driver at boot and loading it once a Thunderbolt eGPU has enumerated — modprobe.d install lines versus blacklist versus softdep, a udev rule that starts the loader instead of polli

These notes link each claim to its source. Some citations identify archived research reports that are no longer hosted on this site. A published reference means the content is available; it does not certify independent review or accuracy.Read the editorial policy and follow the sources before relying on a claim.

Loading an eGPU driver after bolt with systemd

Hotplug-safe boot, late-load and safe-removal orchestration for a Thunderbolt eGPU on Linux

Core Concepts

Which mechanism

Template — `/etc/modprobe.d/nvidia-egpu-noboot.conf` (as deployed on this box)

Loading past the block — ordering matters

What the current unit does and where it is weak

Recommended shape: udev-triggered, idempotent, device-scoped

Dependent services — drop-ins

udev vs Polling

Why surprise removal of an NVIDIA GPU is unsafe

Safe-removal runbook (planned detach) — `/usr/local/sbin/egpu-nvidia-unload.sh`

Re-init Without Reboot

Tooling Landscape

Anti-patterns

  • Related references added later: egpu-reproducible-bringup-and-drift-detection-linux.md (capturing this wiring as a restorable manifest, drift verifier and restore order). [archived source: https://llms-explorer.com/sources/global-ai-hub/linux-egpu-hotplug-boot-orchestration/#anti-patterns]
  • Sources

  • Community / empirical [archived source: https://llms-explorer.com/sources/global-ai-hub/linux-egpu-hotplug-boot-orchestration/#sources]
    • Blog note, "Patching nVidia GPU driver for hot-unplug on Linux" (2018-10-28): https://lab.whitequark.org/notes/2018-10-28/patching-nvidia-gpu-driver-for-hot-unplug-on-linux/ [archived source: https://llms-explorer.com/sources/global-ai-hub/linux-egpu-hotplug-boot-orchestration/#sources]
    • jpamills, "Hotplug support for eGPU on Linux" (2017-03-18): https://jpamills.wordpress.com/2017/03/18/hotplug-support-for-egpu-on-linux/ [archived source: https://llms-explorer.com/sources/global-ai-hub/linux-egpu-hotplug-boot-orchestration/#sources]
    • raspiduino gist, RTX 50xx eGPU BAR fix (remove + rescan): https://gist.github.com/raspiduino/c3f5e8e33274fb4f1f2f3b170a755103 [archived source: https://llms-explorer.com/sources/global-ai-hub/linux-egpu-hotplug-boot-orchestration/#sources]
    • NVIDIA forum 291044 (eGPU not detected by nvidia-smi, BAR "can't assign"): https://forums.developer.nvidia.com/t/egpu-is-not-detected-by-nvidia-smi-hotplug/291044 [archived source: https://llms-explorer.com/sources/global-ai-hub/linux-egpu-hotplug-boot-orchestration/#sources]
    • NVIDIA forum 191820 (unable to reuse after reconnect; modules stuck): https://forums.developer.nvidia.com/t/unable-to-use-when-reconnect-egpu/191820 [archived source: https://llms-explorer.com/sources/global-ai-hub/linux-egpu-hotplug-boot-orchestration/#sources]
    • philmcneely/t2-egpu-linux (setpci COMMAND/BAR automation): https://github.com/philmcneely/t2-egpu-linux [archived source: https://llms-explorer.com/sources/global-ai-hub/linux-egpu-hotplug-boot-orchestration/#sources]
    • egpu-switcher: https://raw.githubusercontent.com/hertg/egpu-switcher/main/README.md [archived source: https://llms-explorer.com/sources/global-ai-hub/linux-egpu-hotplug-boot-orchestration/#sources]
    • gswitch: https://raw.githubusercontent.com/karli-sjoberg/gswitch/master/README.md [archived source: https://llms-explorer.com/sources/global-ai-hub/linux-egpu-hotplug-boot-orchestration/#sources]
    • all-ways-egpu: https://github.com/ewagner12/all-ways-egpu [archived source: https://llms-explorer.com/sources/global-ai-hub/linux-egpu-hotplug-boot-orchestration/#sources]
    • gnome-egpu (archived 2025-12-04): https://github.com/dangreco/gnome-egpu [archived source: https://llms-explorer.com/sources/global-ai-hub/linux-egpu-hotplug-boot-orchestration/#sources]
    • Rick Lamers, Plymouth + NVIDIA 580 initramfs size: https://ricklamers.io/posts/plymouth-nvidia-580-debian-13/ [archived source: https://llms-explorer.com/sources/global-ai-hub/linux-egpu-hotplug-boot-orchestration/#sources]
  • Not reachable during this pass (403/404 - claims from them were not used): Arch wiki External_GPU, freedesktop.org systemd man mirrors, gitlab.freedesktop.org bolt README, egpu.io forum thread on Wayland hot-remove. [archived source: https://llms-explorer.com/sources/global-ai-hub/linux-egpu-hotplug-boot-orchestration/#sources]
  • Children

    Frontier under this node: AMD amdgpu eGPU hot-unplug (drm hotunplug) as contrast to NVIDIA, NVIDIA Container Toolkit CDI regeneration on GPU hot-attach, bolt enrollment policies (auto/manual/iommu) and preboot ACL for present-at-boot devices, initramfs-tools framebuffer hook and NVIDIA-in-initrd trimming (FRAMEBUFFER=n, MODULES=dep), kmod precedence rules: install vs softdep vs blacklist vs module_blacklist=, pciehp surprise-removal semantics and DPC/AER on Thunderbolt tunnels, systemd device units: SYSTEMD_WANTS, BindsTo and DefaultDeviceTimeoutSec

    ← the whole tree · 3D view· how to read this page