Hi,
When I try to run a scenario with "KERNEL=nova" on platform "linux", in most cases I get the following error: Error: target 'lib/ld/linux' does not exist
Does anybody know what causes this and how I can resolve this error?
(NB: I'm currently working with Genode 18.08 on Ubuntu 16.04.10)
Kind regards, Wouter van Oijen
Hello Wouter,
On Mon, Jan 28, 2019 at 01:15:16PM +0100, Wouter van Oijen wrote:
When I try to run a scenario with "KERNEL=nova" on platform "linux", in most cases I get the following error: Error: target 'lib/ld/linux' does not exist
Does anybody know what causes this and how I can resolve this error?
First I was puzzled what you meant by "on platform linux" but evidently you generated your build directory by
./tool/create_builddir linux
This variant of create_builddir creates a build directory for the _target_ platform linux only, i.e., base-linux [1]. This clearly contradicts with you running the scenario for KERNEL=nova and, thus, compiling ldso for nova only. What you need to run is following.
./tool/create_builddir x86_64 make -C build/x86_64 run/something KERNEL=nova make -C build/x86_64 run/something KERNEL=linux
Please note that an x86_64 build directory permits you to run scenarios for all x86-64 platforms, which are nova, hw, sel4, linux, and foc.
[1] The mere reason we kept "./tool/create_builddir linux" is that this is the only variant that is CPU-agnostic and automatically chooses the correct hardware target (x86_64, x86_32) for your machine.
Best regards
Hi Christian, Thanks for your response!
./tool/create_builddir linux
This variant of create_builddir creates a build directory for the _target_ platform linux only, i.e., base-linux [1]. This clearly contradicts with you running the scenario for KERNEL=nova and, thus, compiling ldso for nova only. What you need to run is following.
For a Genode newbie this may not be as clear as you think ;-)
./tool/create_builddir x86_64 make -C build/x86_64 run/something KERNEL=nova make -C build/x86_64 run/something KERNEL=linux
If that something is vbox4_ubuntu_14_04_32, this fails for me.
make -C build/x86_64 run/vbox4_ubuntu_14_04_32 KERNEL=nova => Run script does not support Qemu.
make -C build/x86_64 run/vbox4_ubuntu_14_04_32 KERNEL=linux => Platform is unsupported.
How can I determine which platforms and kernels are supported? Looking at the run files, the virtualbox scenarios require a Nova or Muen kernel, but don't support Qemu. So if I understand correctly the x86_32 and x86_64 platforms (i.e. build directories) will not work.
What I'm trying to achieve is to run a Linux image using Virtualbox as a Genode component. I'd hoped the many existing virtualbox scenarios would point me in the right direction, but I haven't been able to run them successfully yet.
Kind regards, Wouter
Hey Wouter,
On Mon, Jan 28, 2019 at 02:27:13PM +0100, Wouter van Oijen wrote:
How can I determine which platforms and kernels are supported? Looking at the run files, the virtualbox scenarios require a Nova or Muen kernel, but don't support Qemu. So if I understand correctly the x86_32 and x86_64 platforms (i.e. build directories) will not work.
Unfortunately, there's no generic way to achieve this - the spectrum of run scenarios is simply said too diverse.
What I'm trying to achieve is to run a Linux image using Virtualbox as a Genode component. I'd hoped the many existing virtualbox scenarios would point me in the right direction, but I haven't been able to run them successfully yet.
We do not support running VirtualBox on base-linux or in Qemu, therefore the assertions in the run scripts. The suggested way is to setup a test hardware for Genode/NOVA and VirtualBox. You may also delete the Qemu assertion in the run script if you dare, but no guarentees that this will produce a useful restult. I never tried nested virtualization on Linux (this way or another).
Regards