diff options
| -rw-r--r-- | sway/main.c | 41 | 
1 files changed, 41 insertions, 0 deletions
| diff --git a/sway/main.c b/sway/main.c index 82375e0b..6d13955c 100644 --- a/sway/main.c +++ b/sway/main.c @@ -53,6 +53,46 @@ static void wlc_log_handler(enum wlc_log_type type, const char *str) {  	}  } +void detect_raspi() { +	bool raspi = false; +	FILE *f = fopen("/sys/firmware/devicetree/base/model", "r"); +	if (!f) { +		return; +	} +	char *line; +	while(!feof(f)) { +		if (!(line = read_line(f))) { +			break; +		} +		if (strstr(line, "Raspberry Pi")) { +			raspi = true; +		} +		free(line); +	} +	fclose(f); +	FILE *g = fopen("/proc/modules", "r"); +	if (!g) { +		return; +	} +	bool vc4 = false; +	while (!feof(g)) { +		if (!(line = read_line(g))) { +			break; +		} +		if (strstr(line, "vc4")) { +			vc4 = true; +		} +		free(line); +	} +	fclose(g); +	if (!vc4 && raspi) { +		fprintf(stderr, "\x1B[1;31mWarning: You have a " +				"Raspberry Pi, but the vc4 Module is " +				"not loaded! Set 'dtoverlay=vc4-kms-v3d'" +				"in /boot/config.txt and reboot.\x1B[0m\n"); +	} +} +  void detect_proprietary() {  	FILE *f = fopen("/proc/modules", "r");  	if (!f) { @@ -366,6 +406,7 @@ int main(int argc, char **argv) {  	log_distro();  	log_env();  	detect_proprietary(); +	detect_raspi();  	input_devices = create_list(); | 
