AppVm/Guest with custom boot loader

Hi guys,

I’ve got a question which maybe actually be Xen specific, rather than Qubes, but hoping some of you could give useful pointers. I’d like to try out some unikernel and try it out on my Qubes machine (similarly to what mirage firewall is doing). I have the dummy no-op kernel built based on rusty hermit. It uses rusty-loader. So I have both the compiled unikernel and the loader. I can’t find a way to create a qube with those. I mean, I know how to specify the kernel via props when creating a qube, but I can’t seem to find the way to specify which loader to use.

Some quick search showed that in bare Xen this looks doable, because the guest config file has bootloader section (xm create). Does anybody have experience running non-linux,win guests under qubes?

@ddungtang Did you resolve it? I also was experimenting with rusty-hermit. I could build the kernel, then I repeated steps as for mirage-firewall but it didn’t work.
Please post how to set up the loader :slightly_smiling_face:

I haven’t. I’m studying Xen documentation atm to figure out how to proceed. I’ll share what I find.

1 Like

I tried to do it again. I have this error from /var/log/libxvirt/libxl/libxl-driver.log. What could it be?

: xc: panic: xc_dom_hvmloader.c:112: xc_dom_parse_hvm_kernel: ELF image is not 32bit: Invalid kernel
: libxl: libxl_dom.c:578:libxl__build_dom: xc_dom_parse_image failed
: libxl: libxl_create.c:1654:domcreate_rebuild_done: Domain 9:cannot (re-)build domain: -3

According to project maintainers Xen is not supported and would need to implemented in hermit.

1 Like