All,
After turning HugePage off, I can successfully build the tutorial solution
and boot into the virtual machine from outside the Docker instance.
However, just before being prompted to log in, the following errors appear:
Failed to locate device consumes_event
Failed to locate device emits_event
and when I try to `grep poke /proc/devices` as directed in the tutorial,
there is no output, so I don't think the kernel module is working. I
recognize the "consume" and "emit" keywords, but I'm confused
because there
are no such references in the .camkes file. I mainly want to ensure I have
a functioning kernel module to work with, so I would appreciate any
guidance you can provide.
I've tried to collect all my steps so far here:
Cheers,
Michael
On Sun, Jul 4, 2021 at 7:54 PM Kent Mcleod <kent.mcleod72(a)gmail.com> wrote:
You can turn kernel huge page support off with the
config option:
KernelHugePage. `cmake -DKernelHugePage=OFF .` in the build directory
and then rebuilding should turn it off.
On Mon, Jul 5, 2021 at 10:00 AM Michael Neises <neisesmichael(a)gmail.com>
wrote:
All,
I tried to run ./simulate outside of the Docker instance as recommended.
While that seems to solve the KVM issue, another error has taken its place.
"host doesn't support requested feature: CPUID.80000001H:EDX.pdpe1g"
If I remove the flag, the simulation will begin, but it soon dies
because "Huge page not supported by the processor." None of my
machines
(even my newest CPU which was launched in 2019) support huge pages. Am I
out of luck?
Cheers,
Michael Neises
On Tue, Jun 29, 2021 at 11:36 PM Hugo V.C. <skydivebcn(a)gmail.com> wrote:
>
> Hi all,
>
> Michael, I ran into very similar problems as you (almost same order:
VT-x, support, nested emulation,etc... ) that's why, desperated, I ended up
working via qemu/arm option but my original intention (and still I'm
interested) was to work with qemu/PC99. The option you are looking for
(running qemu inside docker container) looks interesting to me from
developers point of view (portable dev environment). I would appreciate if
you share any details of your progress here as maybe would be interesting
to write up a specific intructions for this so in the future others can
benefit.
>
> Cheers,
>
> El mié., 30 jun. 2021 5:23, Michael Neises <neisesmichael(a)gmail.com>
escribió:
>>
>> Peter and Kent,
>>
>> I did `sudo apt-get install qemu-kvm` and I got an update.
>> I can reboot and do `groups` to verify I'm in the correct group.
>> By this webpage I have that my CPU supports vt-x:
>>
https://ark.intel.com/content/www/us/en/ark/products/72164/intel-core-i5-32…
>> When I run `cat
/sys/module/kvm_intel/parameters/nested` it outputs
'Y'.
>>
>> All said, when I enter the Docker container and do:
>> sudo ./simulate --machine q35,accel=kvm,kernel-irqchip=split
--mem-size 2G
>> --extra-cpu-opts "+vmx"
--extra-qemu-args="-enable-kvm -device
>> intel-iommu,intremap=off -net nic,model=e1000 -net
>> tap,script=no,ifname=tap0"
>>
>> (or even just ./simulate with the -enable-kvm option added)
>>
>> I still get this error:
>>
>> Could not access KVM kernel module: No such file or directory
>>
>> qemu-system-x86_64: failed to initialize KVM: No such file or directory
>>
>>
>> By all rights it seems like I have KVM and it's loaded and I have the
right
>> permissions. However, if I do `groups`
from within the Docker
instance, I
>> am not part of the kvm group, and in fact
there is apparently no
visible
>> kvm group by way of `cat /etc/group |
grep kvm`- nor is there a
/dev/kvm to
>> speak of. If it's a problem with
using Docker, I can try to install the
>> dependencies natively, but I've been there before and it's difficult
to
>> maintain.
>>
>>
>> If need be, I can also go back to booting the image on its own
machine, but
>> I have really enjoyed the turnover times
that simulation allows.
>>
>>
>> Cheers,
>>
>> Michael Neises
>>
>> On Tue, Jun 29, 2021 at 9:18 PM Kent Mcleod <kent.mcleod72(a)gmail.com>
wrote:
>>
>> > On Wed, Jun 30, 2021 at 11:53 AM Michael Neises <
neisesmichael(a)gmail.com>
>> > wrote:
>> > >
>> > > Kent,
>> > >
>> > >
>> > >
>> > > I tried using those extra arguments and got the same error
regarding kvm
>> > I reported a few minutes ago:
>> > >
>> > >
>> > >
>> > > ./simulate: qemu-system-x86_64 -machine
>> > q35,accel=kvm,kernel-irqchip=split -cpu
>> >
Nehalem,+vme,+pdpe1gb,-xsave,-xsaveopt,-xsavec,-fsgsbase,-invpcid,+syscall,+lm,enforce,+vmx
>> > -nographic -serial mon:stdio -m
size=2G -enable-kvm -device
>> > intel-iommu,intremap=off -net nic,model=e1000 -net
>> > tap,script=no,ifname=tap0 -kernel images/kernel-x86_64-pc99 -initrd
>> > images/capdl-loader-image-x86_64-pc99 Could not access KVM kernel
module:
>> > No such file or directory
>> > >
>> > > qemu-system-x86_64: failed to initialize KVM: No such file or
directory
>> > >
>> >
>> > There are instructions on how to setup KVM and nested virtualization
>> > on the tutorial that I've pasted here:
>> > "Note if you are using QEMU it is important to ensure that your host
>> > machine has VT-x support and KVM
>> > (
https://www.linux-kvm.org/page/Main_Page) installed. You also need
to
>> > ensure you have enabled nested
virtulisation with KVM guests as
>> > described here (
https://www.linux-kvm.org/page/Nested_Guests)."
>> >
>> > A quick way to check if nested virtualization is enabled (and
>> > therefore supported) on your host is to run `cat
>> > /sys/module/kvm_intel/parameters/nested`. `Y` should be returned if
>> > it's enabled.
>> >
>> > It may be easier to run the image on an actual machine instead of in
>> > qemu. The images produced can be loaded by a multiboot loader such as
>> > grub or pxelinux.
>> > (
https://docs.sel4.systems/Hardware/VMware/#add-grub2-option-to-run-sel4)
>> > has an example grub config.
>> >
>> _______________________________________________
>> Devel mailing list -- devel(a)sel4.systems
>> To unsubscribe send an email to devel-leave(a)sel4.systems