From 0f22d7482b6cc177cfee08e7ab5258b064cc2cde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AB=8F=E8=A8=AA=E5=AD=90?= Date: Fri, 21 Jun 2024 17:16:20 +0900 Subject: =?UTF-8?q?OpenBSD|NetBSD:=20GPU=E6=83=85=E5=A0=B1=E3=81=AE?= =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/gpu.c | 43 +++++++++++++++++++++++++++++++++++++------ 1 file changed, 37 insertions(+), 6 deletions(-) diff --git a/src/gpu.c b/src/gpu.c index 49cba81..fa01547 100644 --- a/src/gpu.c +++ b/src/gpu.c @@ -7,12 +7,43 @@ #endif const char *display_gpu() { -#if defined(__OpenBSD__) - return run_command_s("dmesg | grep -i graphics | sed 's/^.* \"//' | " - "sed 's/\".*$//' | head -1"); -#elif defined(__NetBSD__) - return run_command_s("dmesg | grep -i graphics | sed 's/^.*: //' | " - "sed 's/ (.*$//' | head -1"); +#if defined(__OpenBSD__) || defined(__NetBSD__) + return run_command_s("dmesg | " + "if [ \"$(dmesg | grep \"radeondrm.* at pci.*\")\" ]; " + "then grep -i \"radeondrm.* at pci.*\"; " + "elif [ \"$(dmesg | grep \"inteldrm.* at pci.*\")\" ]; " + "then grep -i \"inteldrm.* at pci.*\"; " + "elif [ \"$(dmesg | grep \"amdgpu.* at pci.*\")\" ]; " + "then grep -i \"amdgpu.* at pci.*\"; " + "elif [ \"$(dmesg | grep \"agp.* at intagp.*\")\" ]; " + "then grep -i \"agp.* at intagp.*\"; " + "elif [ \"$(dmesg | grep \"intagp.* at inteldrm.*\")\" ]; " + "then grep -i \"intagp.* at inteldrm.*\"; " + "elif [ \"$(dmesg | grep \"drm.* at inteldrm.*\")\" ]; " + "then grep -i \"drm.* at inteldrm.*\"; " + "elif [ \"$(dmesg | grep \"drm.* at radeondrm.*\")\" ]; " + "then grep -i \"drm.* at radeondrm.*\"; " + "elif [ \"$(dmesg | grep \"drm.* at amdgpu.*\")\" ]; " + "then grep -i \"drm.* at amdgpu.*\"; " + "elif [ \"$(dmesg | grep \"wsdisplay.* at amdgpu.*\")\" ]; " + "then grep -i \"wsdisplay.* at amdgpu.*\"; " + "elif [ \"$(dmesg | grep \"i915drmkms.* at pci.*\")\" ]; " + "then grep -i \"i915drmkms.* at pci.*\"; " + "elif [ \"$(dmesg | grep \"nouveau.* at pci.*\")\" ]; " + "then grep -i \"nouveau.* at pci.*\"; " + "elif [ \"$(dmesg | grep \"radeon.* at pci.*\")\" ]; " + "then grep -i \"radeon.* at pci.*\"; " + "elif [ \"$(dmesg | grep \"rkdrm.* at fdt.*\")\" ]; " + "then grep -i \"rkdrm.* at fdt.*\"; " + "elif [ \"$(dmesg | grep \"sunxidrm.* at fdt.*\")\" ]; " + "then grep -i \"sunxidrm.* at fdt.*\"; " + "elif [ \"$(dmesg | grep \"tegradrm.* at fdt.*\")\" ]; " + "then grep -i \"tegradrm.* at fdt.*\"; " + "elif [ \"$(dmesg | grep \"viadrmums.* at drm.*\")\" ]; " + "then grep -i \"viadrmums.* at drm.*\"; " + "else grep -i \"graphics\"; fi | " + "sed 's/^.* \"//' | " + "sed 's/\".*$//' | head -1"); #elif defined(__FreeBSD__) || defined(__DragonFly__) return run_command_s("pciconf -lv | grep -B 4 -F \"VGA\" | " "grep -F \"device\" | sed 's/^.* device//' | " -- cgit v1.2.3