content
notes
2022-08-13-algae-spotted-on-river-sava.md 2023-05-01-cachebusting-in-hugo.md 2023-05-05-run-9front-in-qemu.md 2023-05-06-git-push-multiple-origins.md 2023-05-07-mount-plan9-over-network.md 2023-05-08-write-iso-usb.md 2023-05-09-catv-weechat-config.md 2023-05-10-plan9-screenshot.md 2023-05-11-fix-plan9-bootloader.md 2023-05-12-install-plan9port-linux.md 2023-05-13-download-youtube-videos.md 2023-05-14-convert-mkv.md 2023-05-15-preview-troff-man-pages.md 2023-05-16-mass-set-permission.md 2023-05-22-non-blocking-shell-exec-csharp.md 2023-05-23-extend-lua-with-custom-c.md 2023-05-23-parse-rss-with-lua.md 2023-05-24-fresh-9front-desktop.md 2023-05-25-dcss-new-player-guide.md 2023-05-25-show-xterm-colors.md 2023-05-25-tmux-sane-defaults.md 2023-05-27-cronjobs-github-with-actions.md 2023-05-27-dcss-on-4k-displays.md 2023-05-27-drawing-pixels-in-plan9.md 2023-05-28-easy-time-took-in-bash.md 2023-05-29-grep-to-less-maintain-colors.md 2023-05-31-extending-dte-editor.md 2023-06-01-ewd-manuscripts-ebook.md 2023-06-04-bulk-make-thumbnails.md 2023-06-21-presentations-with-markdown.md 2023-06-24-making-cgit-look-nicer.md 2023-06-25-alacritty-open-links-with-modifier.md 2023-06-25-development-environments-with-nix.md 2023-06-29-10gui-10-finger-multitouch-user-interface.md 2023-06-29-60s-ibm-computers-commercial.md 2023-07-10-fix-screen-tearing-on-debian-12-xorg-and-i3.md 2023-07-10-online-radio-streaming-with-mpv-from-terminal.md 2023-07-14-set-color-temperature-of-displays-on-i3.md 2023-08-01-make-b-w-svg-charts-with-matplotlib.md 2023-09-18-aws-eb-pyyaml-fix.md 2023-09-25-compile-drawterm-on-fedora-38.md 2023-11-04-using-ffmpeg-to-combine-video-side-by-side.md 2023-11-05-add-lazy-loading-to-jekyll-posts.md 2023-11-07-personal-sane-vim-defaults.md 2024-02-15-extract-lines-from-file.md 2024-02-21-dcss-online-rc-defaults.md 2024-02-23-uninstall-ollama-from-a-linux-box.md 2024-06-17-calling-assembly-functions-from-c.md 2024-06-17-sending-signals-to-c-programs.md 2024-06-19-embedding-resources-into-binary-with-c.md 2024-06-22-write-and-read-structs-to-files-in-c.md 2024-09-19-use-option-key-as-meta-macos-alactritty.md 2025-02-26-male-and-female-body-proportion-reference-images.md 2025-03-17-vim-ale-linters.md 2025-04-11-lua-performance-in-different-environments.md 2025-06-30-xfce-alt-to-win.md 2025-07-19-minimal-desktop-with-cwm-and-conky.md 2026-06-04-nvidia-driver-works-but-the-monitor-stays-black-with-no-signal.md 2026-06-08-list-uptime-history.mdposts
2011-01-13-most-likely-to-succeed-in-year-of-2011.md 2012-03-09-led-technology-not-so-eco.md 2013-10-24-wireless-sensor-networks.md 2015-11-10-software-development-pitfalls.md 2017-03-07-golang-profiling-simplified.md 2017-04-17-what-i-ve-learned-developing-ad-server.md 2017-04-21-profiling-python-web-applications-with-visual-tools.md 2017-08-11-simple-iot-application.md 2018-01-16-using-digitalocean-spaces-object-storage-with-fuse.md 2019-01-03-encoding-binary-data-into-dna-sequence.md 2019-10-14-simplifying-and-reducing-clutter.md 2019-10-19-using-sentiment-analysis-for-clickbait-detection.md 2020-03-22-simple-sse-based-pubsub-server.md 2020-03-27-create-placeholder-images-with-sharp.md 2020-03-29-the-strange-case-of-elasticsearch-allocation-failure.md 2020-03-30-my-love-and-hate-relationship-with-nodejs.md 2020-05-05-remote-work.md 2020-08-15-systemd-disable-wake-onmouse.md 2020-09-06-esp-and-micropython.md 2020-09-08-bind-warning-on-login.md 2020-09-09-digitalocean-sync.md 2021-01-24-replacing-dropbox-with-s3.md 2021-01-25-goaccess.md 2021-06-26-simple-world-clock.md 2021-07-30-from-internet-consumer-to-full-hominum-again.md 2021-08-01-linux-cheatsheet.md 2021-12-03-debian-based-riced-up-distribution-for-developers.md 2021-12-25-running-golang-application-as-pid1.md 2021-12-30-wap-mobile-web-before-the-web.md 2022-06-30-trying-out-helix-editor.md 2022-07-05-what-would-dna-sound-if-synthesized.md 2022-10-06-state-of-web-technologies-in-year-2022.md 2022-10-16-that-sound-that-machine-makes-when-struggling.md 2023-01-26-trying-to-build-a-new-kind-of-terminal-emulator.md 2023-05-16-rekindling-my-love-for-programming.md 2023-05-23-i-was-wrong-about-git-workflows.md 2023-05-31-re-inventing-task-runner-that-i-actually-used-daily.md 2023-07-01-bringing-all-of-my-projects-together-under-one-umbrella.md 2023-07-08-who-knows-what-the-world-will-look-like-tomorrow.md 2023-11-05-elitist-attitudes-are-sapping-the-fun-from-programming.md 2024-02-11-k-mer.md 2024-02-28-converting-valgrind-callgrinds-to-svg-format.md 2024-03-10-the-abysmal-state-of-linux-in-the-year-2024.md 2024-03-10-using-custom-software-with-github-actions-to-deploy-a-site.md 2024-03-14-configuration-and-plugin-hell-and-why-i-dont-use-vim-and-tmux-anymore.md 2025-04-08-embedding-game-assets-within-your-binary.md 2026-01-09-vim.md 2026-01-14-change-default-applications-on-linux.md 2026-01-15-using-address-sanitizer-with-clang.mdstatic
assets
notes
10gui-10-finger-multitouch-user-interface.jpg 10gui-10-finger-multitouch-user-interface.mp4 60s-ibm-computers-commercial.jpg 60s-ibm-computers-commercial.mp4 9front-desktop.png asm64-handout.pdf cwm.png dcss-quickstart.pdf dcss.jpg dcss_manual.pdf embedding-assets.png embedding-binary-data.tar.xz embedding-window.png female-body-proportions.jpg grep-less.png male-body-proportions.jpg plan9-pixels.png plot.svg ps1-prompt.png trigraphs.gif xterm-palette.pngposts
algae-sava
dji-algae-0.jpg dji-algae-1.jpg dji-algae-2.jpg dji-algae-3.jpg dji-algae-4.jpg dji-algae-5.jpgdfd-rice
desktop.png install-00.png install-01.png install-02.png install-03.png install-04.png install-05.png installation.svg layout.png layout.svg script.pngdna-sequence
benchmarks.csv chart-size.py chart-size.svg chart-speed.py chart-speed.svg dna-basics.jpg quote.png sample-binary-file.png sample.pnggodot-dynamic-tile-loading
example1
index.apple-touch-icon.png index.audio.worklet.js index.html index.icon.png index.js index.pck index.png index.wasmiot-application
iot-app-output.png iot-rest-example.png iot-sqlite-db.png kcachegrind.png profiling-viewer.png simple-iot-application-overview.svg simple-iot-application.zip snakeviz.pngprojects
ClassicEnhanced-v1.0.0.tar.gz ClassicEnhanced-v1.0.1.tar.gz TurtleTweaks-v0.1.tar.gz TurtleTweaks-v0.2.tar.gz TurtleTweaks-v0.3.tar.gz TurtleTweaks-v0.4.tar.gz TurtleTweaks-v0.5.1.tar.gz TurtleTweaks-v0.5.tar.gz TurtleTweaks-v0.6.tar.gz TurtleTweaks-v0.7.tar.gz abtts-v0.1.tar.gz abtts-v0.2.tar.gz abtts-v0.3.tar.gz blpconvert-v1.0.tar.gz clutch-v1.0.tar.gz jbmafp-v0.1.tar.gz jbmafp-v0.2.tar.gz jbmafp-v0.3.tar.gz lazycommit-v1.0.tar.gz makext-v1.0.tar.gz mprogress-v1.0.tar.gz newsbarge-v0.1.tar.gz oberon-v1.0.tar.gz p9tree-v1.0.tar.gz pats-v1.0.tar.gz pats.fossil rssperado-v1.0.tar.gz sm-v1.0.tar.gz sparklines-v1.0.tar.gz ttdaw-v0.1.tar.gz xmagnify-v1.0.tar.gz xmagnify.fossiltemplates
.gitkeep 404.html base.html bookmarks.html feed.xml index.html note.html page-no-title.html page.html post.html robots.txt sitemap.xml
content/notes/2026-06-04-nvidia-driver-works-but-the-monitor-stays-black-with-no-signal.md
raw
1---
2title: Nvidia driver works but the monitor stays black with No Signal error
3url: nvidia-driver-works-but-the-monitor-stays-black-with-no-signal.html
4date: 2026-06-04T16:13:13+02:00
5type: note
6draft: false
7tags: []
8---
9
10Void Linux upgrade caused monitor to show "No Signal".
11
12**Bare in mind that if you manually added the fix, the upgrade can revert your change.**
13
14> **TL;DR**
15>
16> After a Void Linux upgrade, the monitor showed **"No Signal"** even though
17> the NVIDIA driver loaded correctly and `nvidia-smi` detected the GPU. The
18> issue was that NVIDIA DRM modesetting was not enabled, causing DRM display
19> connectors (DisplayPort/HDMI) to not be exposed under `/sys/class/drm/`.
20>
21> Add the following kernel parameter to Grub config file `/etc/default/grub`.
22>
23> ```text
24> GRUB_CMDLINE_LINUX_DEFAULT="nvidia-drm.modeset=1"
25> ```
26>
27> Then regenerate the GRUB configuration and reboot.
28>
29> ```bash
30> sudo grub-mkconfig -o /boot/grub/grub.cfg
31> sudo reboot
32> ```
33
34## Symptoms
35
36- Monitor showed "No Signal"
37- NVIDIA driver loaded successfully
38- `nvidia-smi` worked and detected the RTX 3080 Ti
39- DKMS modules were built for the running kernel
40- No Nouveau module was loaded
41
42```bash
43lsmod | grep -E 'nvidia|nouveau'
44```
45
46Output:
47
48```text
49nvidia_drm
50nvidia_modeset
51nvidia
52```
53
54## Investigation
55
56The NVIDIA driver appeared healthy:
57
58```bash
59nvidia-smi
60```
61
62Output:
63
64```text
65NVIDIA GeForce RTX 3080 Ti Disp.A Off
66```
67
68The GPU was detected correctly, but no display outputs were active.
69
70Next, I inspected the DRM devices:
71
72```bash
73ls -l /sys/class/drm/
74```
75
76Output:
77
78```text
79card0
80renderD128
81version
82```
83
84Expected connector entries (such as below) were missing.
85
86```text
87card0-DP-1
88card0-DP-2
89card0-HDMI-A-1
90```
91
92This indicated that the NVIDIA DRM layer was not exposing any display connectors to the kernel.
93
94## Cause
95
96The running kernel command line was:
97
98```bash
99cat /proc/cmdline
100```
101
102Output:
103
104```text
105BOOT_IMAGE=/boot/vmlinuz-6.18.34_1 root=UUID=d41c9246-090e-47f4-af08-8ea490e6b06b ro loglevel=4
106```
107
108`nvidia-drm.modeset=1` parameter was missing after the upgrade.
109
110Without NVIDIA DRM modesetting enabled, the proprietary driver loaded
111successfully but failed to expose display connectors, causing the monitor to
112lose signal.
113
114## Fix the issue
115
116Edit `/etc/default/grub` and add `GRUB_CMDLINE_LINUX_DEFAULT="nvidia-drm.modeset=1"`.
117
118Then regenerate the GRUB configuration and reboot.
119
120```bash
121sudo grub-mkconfig -o /boot/grub/grub.cfg
122sudo reboot
123```
124
125## Notes
126
127- NVIDIA DKMS modules were correctly built for the running kernel.
128- The NVIDIA kernel modules loaded successfully.
129- `nvidia-smi` worked as expected.
130- No Nouveau modules were active.
131- The missing DRM connector entries were the key clue that pointed to a modesetting issue.
132
133This diagnosis should be considered a likely root cause until confirmed by successfully booting with `nvidia-drm.modeset=1`.