Subject: [bug#29281] [PATCH] system: vm: Use linux-libre for system-disk-image.

From: [email-masked] (Ludovic Courtès)
Date: Mon, 13 Nov 2017 11:54:30 +0100

Mathieu Othacehe <[email-masked]> skribis:

>>
>> Oh, why is that?  You mean qemu-system-arm running natively on the BBB,
>> right?
>>
>
> Yes, when running qemu-system-arm you have only a limited set of available
> machines (qemu-system-arm -M help).
> BBB isn't one of them, but as there are only about 50 emulable machines, it
> will be the case for many other boards :(

So the kernel you built doesn’t boot at all in “qemu-system-arm -M virt”?

> In a future patch, I'll adapt "load-in-linux-vm" to use "-M virt" for
> qemu-system-arm because contrary to most boards,
> it works well with linux-libre, allows up to 8 CPU, virtio (see
> https://wiki.qemu.org/Documentation/Platforms/ARM) ...

OK.

> However, I don't think qemu virt machine will boot with every specific arm
> kernel a user might end up using
> on his target.

I see.

> Perhaps we should change ‘system-disk-image’ to use a more minimalistic
>> initrd since all it needs is those virtio* drivers?
>>
>
> That would be an option for the initrd, but the kernel problem above
> remains :)

Right.

I can’t think of a good solution right now.  Perhaps we could simply
hard-code ARM-specific code?

  (operating-system
    (inherit os)
    (kernel (if targeting-arm?
                linux-libre-arm
                (operating-system-kernel os)))
    ;; …
    )

In practice ‘targeting-arm?’ could be checking (%current-system) and
(%current-target-system), which is not entirely correct but good enough,
or, better yet, use that ‘let-system’ construct I sent you recently to
determine the actual target system.

Thoughts?

Ludo’.