Monorepo for Aesthetic.Computer aesthetic.computer
4
fork

Configure Feed

Select the types of activity you want to include in your feed.

ac-native: dump full DRM diagnostics on display failure

When no display is found, dump /dev/dri contents, PCI GPU devices,
and dmesg DRM/i915 lines to both console (30s visible) and USB log.
This will tell us exactly why the Yoga 11e GPU isn't probing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

+14 -1
+14 -1
fedac/native/src/ac-native.c
··· 1878 1878 } 1879 1879 if (!display) { 1880 1880 fprintf(stderr, "[ac-native] FATAL: No display\n"); 1881 - if (getpid() == 1) { sleep(5); reboot(LINUX_REBOOT_CMD_POWER_OFF); } 1881 + // Dump device diagnostics for debugging 1882 + fprintf(stderr, "[ac-native] /dev/dri contents:\n"); 1883 + system("ls -la /dev/dri/ 2>&1 || echo ' /dev/dri does not exist'"); 1884 + fprintf(stderr, "[ac-native] /dev/fb contents:\n"); 1885 + system("ls -la /dev/fb* 2>&1 || echo ' no framebuffer devices'"); 1886 + fprintf(stderr, "[ac-native] PCI GPU devices:\n"); 1887 + system("cat /sys/bus/pci/devices/*/class 2>/dev/null | grep -c 0x03 || echo ' 0'"); 1888 + system("for d in /sys/bus/pci/devices/*; do c=$(cat $d/class 2>/dev/null); [ \"${c#0x03}\" != \"$c\" ] && echo \" $(basename $d) $c $(cat $d/vendor $d/device 2>/dev/null)\"; done"); 1889 + fprintf(stderr, "[ac-native] dmesg DRM/i915:\n"); 1890 + system("dmesg 2>/dev/null | grep -i 'drm\\|i915\\|display\\|error' | tail -20"); 1891 + // Write diagnostics to USB too 1892 + system("cat /proc/cmdline >> /mnt/usb/ac-init.log 2>/dev/null"); 1893 + system("dmesg 2>/dev/null | grep -i 'drm\\|i915\\|display' >> /mnt/usb/ac-init.log 2>/dev/null"); 1894 + if (getpid() == 1) { sleep(30); reboot(LINUX_REBOOT_CMD_POWER_OFF); } 1882 1895 return 1; 1883 1896 } 1884 1897