GNU bug report logs - #41120
uvesafb service is unsupported on aarch64

Previous Next

Package: guix;

Reported by: Efraim Flashner <efraim <at> flashner.co.il>

Date: Thu, 7 May 2020 05:41:01 UTC

Severity: normal

Merged with 48393

Done: "pelzflorian (Florian Pelz)" <pelzflorian <at> pelzflorian.de>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Mathieu Othacehe <m.othacehe <at> gmail.com>
To: "pelzflorian \(Florian Pelz\)" <pelzflorian <at> pelzflorian.de>
Cc: dannym <at> scratchpost.org, ludo <at> gnu.org, janneke <at> gnu.org, Efraim Flashner <efraim <at> flashner.co.il>, 41120 <at> debbugs.gnu.org
Subject: bug#41120: uvesafb service is unsupported on aarch64
Date: Fri, 08 May 2020 11:09:03 +0200
Hello,

Thanks for working on that Florian & Efraim.

> +           (if (and (string-suffix? "linux-gnu" %host-type)
> +                    (or (string-prefix? "x86_64" %host-type)
> +                        (string-prefix? "i686" %host-type)))
> +               #~(lambda ()
> +                   ;; uvesafb is only supported on x86 and x86_64.
> +                   (or (file-exists? "/dev/fb0")
> +                       (invoke #+(file-append kmod "/bin/modprobe")
> +                               "uvesafb"
> +                               (string-append "v86d=" #$v86d "/sbin/v86d")
> +                               "mode_option=1024x768")))
> +               #~(lambda () #t)))
>           (respawn? #f)
>           (one-shot? #t))))

The issue with using %host-type at build time is that it won't support
system build with --system and --target. For instance if cross-compiling
for aarch64-linux-gnu on a x86_64 system, %host-type will be
"x86_64-..." and we will try to build v86d for aarch64.

We could maybe do something like that:

--8<---------------cut here---------------start------------->8---
(define (operating-system-hardware-specific-services)
  #~(let-system (system target)
                (cond
                 ((target-arm? system target)
                  '())
                 ((target-intel? system target)
                  (list uvesafb-shepherd-service)))))

(define (operating-system-kernel-specific-services)
  #~(let-system (system target)
                (cond
                 ((target-linux? system target)
                  linux-specific-services)
                 ((target-hurd? system target)
                  hurd-specific-services))))
--8<---------------cut here---------------end--------------->8---

This way, uvesafb-shepherd-service would be built and installed only
when producing a system targeting an Intel CPU. We could also extend
this mechanism to have kernel specific services.

That would mean, we need to dig out Ludo patch introducing
let-system[1], but I think it was almost ready.

Adding janneke, Danny and Ludo to the discussion.

WDYT?

Thanks,

Mathieu

[1]: https://lists.gnu.org/archive/html/guix-patches/2017-11/msg00274.html




This bug report was last modified 2 years and 287 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.