On Thu, May 07, 2020 at 11:12:34AM +0300, Efraim Flashner wrote: > I haven't tested the produced image, but the following builds without > trying to also build v86d > > (start > (if (and (and (string-suffix? "linux-gnu" %host-type) > (or (string-prefix? "x86_64" %host-type) > (string-prefix? "i686" %host-type))) > (file-exists? "/dev/fb0")) > #~(lambda () > ;; uvesafb is only supported on x86 and x86_64. > (invoke #+(file-append kmod "/bin/modprobe") > "uvesafb" > (string-append "v86d=" #$v86d "/sbin/v86d") > "mode_option=1024x768")) > #~(lambda () #t))) This way uvesafb is started unconditionally on x86_64, even when it is not needed, leading to video corruption on some boots in QEMU. I have more success with moving the file-exists check into the #~(lambda …) like the attached patch. But I’m not sure it really fixes ARM builds. I tested via qemu-system-x86_64 -m 1024 -smp 1 -enable-kvm -nic user,model=virtio-net-pci -boot menu=on,order=d -drive media=cdrom,file=/gnu/store/0cgbp4y7awk4spg49ajw077xyzk24fi0-iso9660-image and on hardware. With QEMU, uvesafb is needed if and only if nomodeset is passed as a kernel parameter. Now how to build an ARM image for QEMU? Sorry I left such a mess with uvesafb. Regards, Florian