On Fri, Apr 10, 2020 at 04:38:37PM +0200, Ludovic Courtès wrote: > > + (if (member (%current-system) '("x86_64-linux" "i686-linux")) > > + ;; Load uvesafb to show installer when no KMS is available. > > + `(,(service kernel-module-loader-service-type '("uvesafb")) > > + [...] > > This is not quite correct because here ‘%current-system’ is evaluated at > the top level, when (gnu tests install) is loaded. So on my laptop, > it’s always "x86_64-linux", regardless of any ‘-s’ flags. Also, it > ignores ‘--target’. > > Can we arrange to make it unconditional? > > One way to do that (not great), would be to make it an activation > snippet: since activation snippets are written as monadic code, we can > reliably check ‘%current-system’ & ‘%current-target-system’ from there. > (For lack of a solution like .) Please consider the attached patch. I chose to go without kernel-module-loader-service (only copying its requirements field) because I do not know how to conditionally extend or start another Shepherd service from an activation snippet. I tested it on QEMU with and without nomodeset. With a previous Guix System install image, it stayed black when adding a nomodeset kernel parameter. I will test again on real hardware now, but previous testing of uvesafb-enabled installer images proved successful unlike non-uvesafb images. Feel free to adapt the patch or not include it. Or tell me to change it if there is time. Regards, Florian