aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2017-10-24 20:29:06 -0400
committerGitHub <noreply@github.com>2017-10-24 20:29:06 -0400
commitd75ee3f9ce1e7143375252cc86aeccbbc752599b (patch)
tree4210724a73677c96984ab11c63a91a8aa2bb5f18
parent5551bf92a90e77ee4d0dc14bb4d2fe043be85c66 (diff)
parent88d042ec498b0edf480d36f737da93160b2c9a2c (diff)
Merge pull request #1430 from dlrobertson/nvidia_drm
nvidia: Validate the nvidia_drm module options
-rw-r--r--sway/main.c24
1 files changed, 24 insertions, 0 deletions
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
}
}