Monorepo for Aesthetic.Computer aesthetic.computer
4
fork

Configure Feed

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

fix: wait for DRM device + console logging in ac-native kiosk

- Poll /dev/dri/card0 for up to 6s before launching (i915 init delay)
- Log to journal+console for boot debugging

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

+19 -3
+19 -3
fedac/nixos/modules/kiosk.nix
··· 25 25 ac-native-start = pkgs.writeShellScript "ac-native-start" '' 26 26 set -u 27 27 28 + echo "[ac-native-start] waiting for DRM device..." 29 + 30 + # Wait for /dev/dri/card0 (i915 needs a moment after kernel init) 31 + for i in $(seq 1 30); do 32 + [ -e /dev/dri/card0 ] && break 33 + sleep 0.2 34 + done 35 + 36 + if [ ! -e /dev/dri/card0 ]; then 37 + echo "[ac-native-start] ERROR: /dev/dri/card0 not found after 6s" 38 + ls -la /dev/dri/ 2>/dev/null || echo " /dev/dri/ does not exist" 39 + exit 1 40 + fi 41 + 42 + echo "[ac-native-start] DRM ready: $(ls /dev/dri/)" 43 + 28 44 ${write-breadcrumb} ac-native-starting \ 29 45 "binary=${ac-native}/bin/ac-native" \ 30 46 "piece=${ac-native}/share/ac-native/piece.mjs" \ 31 47 "mode=drm-direct" 32 48 33 49 # Switch to tty1 and run ac-native in DRM-direct mode. 34 - # No cage, no Wayland — ac-native owns DRM master and reads evdev directly. 35 50 chvt 1 36 51 52 + echo "[ac-native-start] launching ac-native DRM-direct" 37 53 exec "${ac-native}/bin/ac-native" \ 38 54 "${ac-native}/share/ac-native/piece.mjs" 39 55 ''; ··· 98 114 TTYVHangup = true; 99 115 TTYVTDisallocate = true; 100 116 StandardInput = "tty"; 101 - StandardOutput = "journal"; 102 - StandardError = "journal"; 117 + StandardOutput = "journal+console"; 118 + StandardError = "journal+console"; 103 119 104 120 ExecStart = "${ac-native-start}"; 105 121