From 1bc91e0a0949e429c96b1bc65a7222cb4797e0c9 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Tue, 24 Oct 2017 20:29:06 -0400 Subject: Merge pull request #1430 from dlrobertson/nvidia_drm nvidia: Validate the nvidia_drm module options --- sway/main.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/sway/main.c b/sway/main.c index 6d13955c..cc9147b8 100644 --- a/sway/main.c +++ b/sway/main.c @@ -135,6 +135,29 @@ void detect_proprietary() { "You need nvidia, nvidia_modeset, nvidia_uvm, and nvidia_drm." "\x1B[0m\n"); } +#ifdef __linux__ + f = fopen("/sys/module/nvidia_drm/parameters/modeset", "r"); + if (f) { + char *line = read_line(f); + if (line && strstr(line, "Y")) { + // nvidia-drm.modeset is set to 0 + fprintf(stderr, "\x1B[1;31mWarning: You must load " + "nvidia-drm with the modeset option on to use " + "the proprietary driver. Consider adding " + "nvidia-drm.modeset=1 to your kernel command line " + "parameters.\x1B[0m\n"); + } + fclose(f); + free(line); + } else { + // nvidia-drm.modeset is not set + fprintf(stderr, "\x1B[1;31mWarning: You must load " + "nvidia-drm with the modeset option on to use " + "the proprietary driver. Consider adding " + "nvidia-drm.modeset=1 to your kernel command line " + "parameters.\x1B[0m\n"); + } +#else f = fopen("/proc/cmdline", "r"); if (f) { char *line = read_line(f); @@ -146,6 +169,7 @@ void detect_proprietary() { fclose(f); free(line); } +#endif } } -- cgit v1.2.3-54-g00ecf