Running seoul-disc script

Alexander Boettcher alexander.boettcher at genode-labs.com
Fri Nov 6 09:14:53 CET 2020


Hello,

On 05.11.20 17:40, Parfait Tokponnon wrote:
> Hello,
> I want to boot a guest OS from hard (rather than ram disc and I think the
> seoul-disc scenario is the best choice to start.
> When reading the following part of the script,
> 
>> <config>
>> <policy label="seoul -> VirtualDisk 0" partition="5" writeable="yes"/>
>> <policy label="rump_fs -> " partition="4" writeable="yes"/>
>> </config>
>>

> I guess it expect to locate the guest OS boot disk on partition 5,
> but I cannot figure out what would be placed on partition 4.
> assuming the script generates the Genode image disk with 3 partitions.

By default (so not changing any of the variable in the seoul-disc.run), the script expects that _you_ provide a raw guest disk image which is bootable. So, you have to setup and install it already and then make a copy of the guest installation via dd or some convertation tools from your vdi/vmdk/otherformat to a raw disk image.
Please note, that Seoul solely supports 32bit guests!

The specific policy part you quote here, is guarded by $use_part_block which is not used by the seoul-disc default setup. (The rump_fs policy part is not needed/misleading/not_required, even if you would enable $use_part_block). Using $use_part_block is not meaningful to run with Qemu, it makes only sense if you have a native test machine setup beforehand by you manually.

Please follow the following steps to test drive the script with Qemu:

1) first we need a 32bit guest. The easist way for me is to use a Genode 32bit one, e.g. I did:

- tool/create_builddir x86_32
-- edit build/x86_32/etc/build.conf
--- and change image/iso to image/disk to get an bootable disk image of a Genode 32bit scenario ready to boot (with grub etc)

- make -C build/x86_32 KERNEL=nova run/log

2) Use the 32bit disk image as our VM, e.g.

- cp build/x86_32/var/run/log.img build/x86_64/bin/seoul-disc.raw

- make -C build/x86_64 KERNEL=nova run/seoul-disc

Note: You will need following commit https://github.com/alex-ab/genode/commit/7ed6928a390896e95ab9e73897e264c5065b0d10 in order to let build vfs_import.lib.so, which was missed to be added during the transition to vfs_block somehow.

3) As output you get the boot of the 32bit Genode Guest

...

[init -> seoul] --- Booting VM ---
[init -> seoul] VM is starting with 1 vCPU
[init -> seoul] VMM: RESET device state
[init -> seoul] VMM: MessageLegacy::RESET requested
[init -> seoul] VMM: INIT done
[init -> seoul] VMM: reset CPU from c mtr_in effff
[init -> seoul] VMM: boot from disk 0
[init -> seoul] VMM: EPT violation during IDT vectoring.
[init -> seoul] Error: Block-session creation failed (ram_quota=2111488, cap_quota=5, tx_buf_size=2097152, label="VirtualDisk 1")
[init -> seoul] VMM: VESA 4f00 tag 32454256 base 60000+8000 esi 68000
[init -> seoul] VMM: 	handle_int15 eax 5300 ebx 0 ecx fffffa25 edx 0 eip 15 efl 2
[init -> seoul] VMM: VESA 4f00 tag 32454256 base 60000+8000 esi 68000
[init -> seoul] VMM: #   Bender: Hello World.
[init -> seoul] VMM: #   
                         NOVA Microhypervisor v8-ee7298b (x86_32): Nov  6 2020 08:32:20 [gcc 8.3.0] [MBI
[init -> seoul] VMM: # |   2]
[init -> seoul] VMM: #   
[init -> seoul] VMM: #   [ 0] warning: no PAT support
[init -> seoul] VMM: #   [ 0] TSC:2829480 kHz BUS:176860 kHz (measured)
[init -> seoul] VMM: #   [ 0] CORE:0:0:0 6:7:3:0 [0] Seoul VMM proudly presents this VirtualCPU.

...

I hope this helps.

Cheers,

Alex.

> How is it supposed to work?
> Please, find attached the output log as well as the script files I used.
> 
> 
> _______________________________________________
> Genode users mailing list
> users at lists.genode.org
> https://lists.genode.org/listinfo/users
> 
-- 
Alexander Boettcher
Genode Labs

https://www.genode-labs.com - https://www.genode.org

Genode Labs GmbH - Amtsgericht Dresden - HRB 28424 - Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth



More information about the users mailing list