Detect DRI nodes based on name rather than file type to handle FreeBSD which has symbolic links to the actual device node. diff -u SDL2-2.0.9.orig/src/video/kmsdrm/SDL_kmsdrmvideo.c SDL2-2.0.9/src/video/kmsdrm/SDL_kmsdrmvideo.c --- SDL2-2.0.9.orig/src/video/kmsdrm/SDL_kmsdrmvideo.c 2019-05-07 17:17:44.381776000 +0200 +++ SDL2-2.0.9/src/video/kmsdrm/SDL_kmsdrmvideo.c 2018-10-31 16:07:22.000000000 +0100 @@ -95,7 +95,7 @@ folder = opendir(KMSDRM_DRI_PATH); if (folder) { while ((res = readdir(folder))) { - if (res->d_namlen > 4 && strncmp(res->d_name, "card", 4)) { + if (res->d_type == DT_CHR) { devcount++; } }