.github
workflows deploy.yaml
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.md
pages bookmarks.md curriculum-vitae.md projects.fossil.md.part projects.github.md.part projects.md
posts 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.md
.gitkeep
static
assets
general animation.gif first.gif github.svg mitja-felicijan-hairytales.pdf trigraphs.gif
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.png
posts
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.jpg
cv avatar.gif
dfd-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.png
dna-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.png
dna-synthesized
bison in.txt out.mp3 spectogram.png
elektron IMG_0619.jpg IMG_0620.jpg IMG_0622.jpg elektron.mp4 midi-studio.jpg
mouse in.txt out.mp3 spectogram.png
quote in.txt out.mp3 spectogram.png
taurus in.txt out.mp3 spectogram.png
symphony-no6-1st-movement.mp3 symphony-no6-1st-movement.png
do-fuse copy-benchmarks.tsv fuse-droplets.png fuse-spaces.png sqlite-benchmarks.tsv
dropbox-sync dropbox-spaces.png
esp8366-micropython boards.jpg
ewd ewd-manuscripts.epub ewd-manuscripts.mobi
go-profiling golang-profiling-cpu.pdf golang-profiling-mem.pdf
goaccess goaccess-dash-html.png goaccess-dash-term.png
godot-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.wasm
2d-player-movement.webm cellular-automata.png village-creator.png
helix-editor editor.png
iot-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.png
microsoundtrack cow.m4v
pid1 boxes.mp4 qemu.log unikernels.png unikernels.svg unikernels.webp
profile-bind-error error.jpg
python-profiling kcachegrind.png profiling-viewer.png snakeviz.png
sentiment-analysis
.ipynb_checkpoints TF Test-checkpoint.ipynb sentiment-analysis-checkpoint.ipynb
guardian-sa-title-desc-relationship.png sentiment-analysis.ipynb
simple-pubsub-server caniuse.png chrome-debugging.png clients.m4v pubsub-overview.png sse-pubsub-server.zip
state-of-web 2008-vs-2020.png compiling-vs-transpiling.png
valgrind-callgrind-svg kcachegrind.png out.c.svg out.zig.svg
vim-gdb demo.mp4
wap emulator.mp4 phones.gif
world-clock enclosure.stl hardware.jpg world-clock.jpg
yapyap hello.png pid1.jpg
zed zed-1.png zed-2.png
mitjafelicijan.pgp.pub.txt
projects 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.fossil
thumbnails glitch.png projects.xcf qwe-editor.png toy-debugger.png
.gitkeep
templates
includes .gitkeep
.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
tools fossil-projects.sh github-projects.py
.gitattributes .gitignore CNAME Makefile README.md config.yaml makext.mk shell.nix
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`.