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/7ed6928a390896e95ab9e73897e264c5065... 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@lists.genode.org https://lists.genode.org/listinfo/users