unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Guix System for embedded systems roadmap.
@ 2020-03-15 12:39 Mathieu Othacehe
  2020-03-17  9:44 ` Ludovic Courtès
  0 siblings, 1 reply; 4+ messages in thread
From: Mathieu Othacehe @ 2020-03-15 12:39 UTC (permalink / raw)
  To: guix-devel


Hello,

At Fosdem 2020, I gave a talk about using GNU Guix as an alternative to
Yocto, focusing on cross-compiling a Guix System. Here's a status and
my personal roadmap on this topic.

* On core-updates, since commit
  d594963856690f1aacf228c8a83e406d33bc44ce, cross-compiling a bare-bones
  Guix System disk-image for Pine A64 works. This is propably true for
  other boards too.

* On the same commit, the produced disk-image weights 1.9 GiB, which is
  obviously too big. I'm working on reducing this closure size. See:
  https://issues.guix.info/issue/39941 and
  https://issues.guix.info/issue/40071.

* While cross-compilation is important, Guix also supports emulated
  compilation with --system. Producing a Guix System disk-image with
  --system is currently broken and needs to be fix. See
  https://lists.gnu.org/archive/html/guix-devel/2019-12/msg00099.html.

* Somehow related to the previous point, producing a disk-image,
  currently means spawning a virtual machine. This can be very slow, and
  using --system, we currently emulate the execution of a virtual
  machine for a foreign architecture.

  I'd like to propose an alternative mechanism which would be faster and
  not involving virtual machines. Maybe producing the disk-image in a
  container?

* Increase board support catalog, even if it's tricky because many
  boards need proprietary blobs to boot (such as Raspberry Pis). The
  effort started by Danny on wip-buildroot could be resumed.

* Finally, as we discussed during Guix Days[1], it would be nice to have
  a webservice, where you could select your board, the packages/services
  you want to install, and a disk-image, cross-compiled or not, would be
  generated for you! It implies that all the points listed above are
  solved, but it could be quite nice :)

Feedback welcome!

Thanks,

Mathieu

[1]:
http://git.savannah.gnu.org/cgit/guix/maintenance.git/tree/doc/guix-days-2020/growing-guix.org

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Guix System for embedded systems roadmap.
  2020-03-15 12:39 Guix System for embedded systems roadmap Mathieu Othacehe
@ 2020-03-17  9:44 ` Ludovic Courtès
  2020-03-17 13:08   ` Danny Milosavljevic
  0 siblings, 1 reply; 4+ messages in thread
From: Ludovic Courtès @ 2020-03-17  9:44 UTC (permalink / raw)
  To: Mathieu Othacehe; +Cc: guix-devel

Hello Mathieu,

Mathieu Othacehe <m.othacehe@gmail.com> skribis:

> At Fosdem 2020, I gave a talk about using GNU Guix as an alternative to
> Yocto, focusing on cross-compiling a Guix System. Here's a status and
> my personal roadmap on this topic.

I’m not much of an embedded person, but this looks like a great
application and it’s great to see progress being made!

> * Somehow related to the previous point, producing a disk-image,
>   currently means spawning a virtual machine. This can be very slow, and
>   using --system, we currently emulate the execution of a virtual
>   machine for a foreign architecture.
>
>   I'd like to propose an alternative mechanism which would be faster and
>   not involving virtual machines. Maybe producing the disk-image in a
>   container?

Unfortunately, I don’t think that’s possible.  The reason we resort to
VMs is that the Linux kernel doesn’t allow you, for instance, to mount a
file system without being root.  So doing things like running Parted,
mounting a file system, and populating it typically requires root
privileges.  (In some cases, there are tools like mksquashfs that can do
that from user-space, but it’s very ad-hoc.)

Thoughts?

> * Increase board support catalog, even if it's tricky because many
>   boards need proprietary blobs to boot (such as Raspberry Pis). The
>   effort started by Danny on wip-buildroot could be resumed.

Speaking of which, I’d love to get my A20 OLinuXino running Guix
System.  :-)

I checked what Buildroot had about that board, but I found the
information to be rather scattered and of varying levels of abstraction,
which made it hard to see if there was anything different from what we
do.

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Guix System for embedded systems roadmap.
  2020-03-17  9:44 ` Ludovic Courtès
@ 2020-03-17 13:08   ` Danny Milosavljevic
  2020-03-18 14:54     ` Ludovic Courtès
  0 siblings, 1 reply; 4+ messages in thread
From: Danny Milosavljevic @ 2020-03-17 13:08 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 814 bytes --]

Hi Ludo,

On Tue, 17 Mar 2020 10:44:25 +0100
Ludovic Courtès <ludo@gnu.org> wrote:

> Speaking of which, I’d love to get my A20 OLinuXino running Guix
> System.  :-)

What is the latest state of it?

I used

  guix system disk-image -s armhf-linux -e '(@ (gnu system install) a20-olinuxino-micro-installation-os)'

after editing the embedded-installation-os to hardcode /dev/vda .

And it just keeps building basic stuff, like util-linux-with-udev etc.

I think I have managed to build an actual disk image for olinuxino only once
in two years (using guix).  Just saying...

Right now, guix will keep building stuff until linux-libre, which will hang at
compilation of some net builtins.

If you want, I can check the image you already have using a serial cable on my
olinuxino micro.

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Guix System for embedded systems roadmap.
  2020-03-17 13:08   ` Danny Milosavljevic
@ 2020-03-18 14:54     ` Ludovic Courtès
  0 siblings, 0 replies; 4+ messages in thread
From: Ludovic Courtès @ 2020-03-18 14:54 UTC (permalink / raw)
  To: Danny Milosavljevic; +Cc: guix-devel

Hi!

Danny Milosavljevic <dannym@scratchpost.org> skribis:

> On Tue, 17 Mar 2020 10:44:25 +0100
> Ludovic Courtès <ludo@gnu.org> wrote:
>
>> Speaking of which, I’d love to get my A20 OLinuXino running Guix
>> System.  :-)
>
> What is the latest state of it?

On my side the latest state is: I gave up and installed Debian + Guix.
:-)

> I used
>
>   guix system disk-image -s armhf-linux -e '(@ (gnu system install) a20-olinuxino-micro-installation-os)'
>
> after editing the embedded-installation-os to hardcode /dev/vda .
>
> And it just keeps building basic stuff, like util-linux-with-udev etc.
>
> I think I have managed to build an actual disk image for olinuxino only once
> in two years (using guix).  Just saying...

I did manage to build an image some time ago, no problem there.  I used:

  (list (channel
          (name 'guix)
          (url "https://git.savannah.gnu.org/git/guix.git")
          (commit
            "d08c3e51ab62575e722aec24fba42a0cb84198cc")))

The thing wouldn’t boot, though.

Ludo’.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-03-18 14:54 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-03-15 12:39 Guix System for embedded systems roadmap Mathieu Othacehe
2020-03-17  9:44 ` Ludovic Courtès
2020-03-17 13:08   ` Danny Milosavljevic
2020-03-18 14:54     ` Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).