Merge pull request #1327 from refacto/rpifix

Detecting Raspberry PIs and advising to use correct video mode
This commit is contained in:
Drew DeVault 2017-08-14 16:35:25 -04:00 committed by GitHub
commit c31aef7ad1

View file

@ -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() { void detect_proprietary() {
FILE *f = fopen("/proc/modules", "r"); FILE *f = fopen("/proc/modules", "r");
if (!f) { if (!f) {
@ -366,6 +406,7 @@ int main(int argc, char **argv) {
log_distro(); log_distro();
log_env(); log_env();
detect_proprietary(); detect_proprietary();
detect_raspi();
input_devices = create_list(); input_devices = create_list();