Hello,
On 09/14/2017 07:59 PM, Sven Anderson wrote:
>
> BTW: I started the image (created with plain "make") with this grub entry:
>
> menuentry "Muen" {
> multiboot /muen.img
> }
>
> but when I start it like that, the keyboard (Lenovo T450s) doesn't
> really work. If I enter "ps" after a while I get a long list of "pppppp"
> and "ssssssss". Can I fix that with an additional grub config?
Muen system images are built for a specific hardware platform using XML
hardware descriptions. See also the toolchain document [1] which
explains the build process in detail. You can find the currently
included hardware specs in the policy/hardware/ directory.
The reason for the behavior you are seeing is that the default hardware
description used for building the image is for Bochs which specifies a
processor speed of 50 MHz. When running this image on hardware the
timing will be off so that is why you see key bounce when typing.
So in order to run a Muen system on the Lenovo T450s you will have to
create a hardware (and platform) description. We have a tool you can run
under Linux on the target hardware for the purpose of generating a
hardware description, see [2]. Once you have the XML file you could copy
it to policy/hardware/lenovo-t450s.xml.
As a next step you also need to provide a platform description. I would
guess that simply copying T440s one should be fine:
$ cp policy/platform/lenovo-t440s.xml policy/platform/lenovo-t450s.xml
Finally you can build an image for the T450s like so:
$ make HARDWARE=hardware/lenovo-t450s.xml SYSTEM=xml/demo_system.xml iso
> And in general: I want to use muen as a hypervisor for a mirageOS
> unikernel, thanks to your solo5 integration. What is the best
> development environment for this situation. Can I also run the unikernel
> in the emulator? Is there a way to run the whole thing in a vm itself,
> like kvm or virtualbox, with nested VMs? (Or is that what bochs is
> actually doing?)
Currently, nested virtualization is not a stable option because KVM
cannot run Muen reliably. Solo5/MirageOS unikernels that do not require
hardware access can be executed using Bochs. As Solo5 support has not
yet been merged into Muen devel you need to switch to the devel-mirage
branch.
Except for a few minor adjustments the description given in [3] should
still be valid. Since the solo5 and ocaml-freestanding patches have been
merged there is no need to pin these two MirageOS packages to the
codelabs-ch repositories. The third pin is still required though, see
also [4],[5].
Hope the hints and references are helpful and get you started.
Regards,
Adrian
[1] -
https://muen.codelabs.ch/muen-toolchain.pdf
[2] -
https://git.codelabs.ch/?p=muen/mugenhwcfg.git
[3] -
https://github.com/Solo5/solo5/pull/190#issue-221060023
[4] -
https://github.com/Solo5/solo5/issues/217
[5] -
https://github.com/Solo5/solo5/issues/194