yeah,we can use the latest version of qemu with these parameters :
-device virtio-gpu-pci,virgl=on,xres=1280,yres=720 -display sdl,gl=on
yeah,we can use the latest version of qemu with these parameters :
-device virtio-gpu-pci,virgl=on,xres=1280,yres=720 -display sdl,gl=on
I just switched to JetPack 4.5.1 by flashing the latest Jetson Nano image. Unfortunately this procedure is not working for me :( …
The boot logo comes up and then after sometime resets and starts over again.
Which version of JetPack do you have …?
You don’t need to use the custom DTB files provided here. Use the default DTB files that u find on the /boot folder as soon as you have flashed the sd card.
Did u get these errors ?
/root/Scrivania/Work/I9/win10arm/qemu/build/aarch64-softmmu/./qemu-system-aarch64: /usr/lib/aarch64-linux-gnu/libspice-server.so.1: version `SPICE_SERVER_0.14.2’ not found (required by /root/Scrivania/Work/I9/win10arm/qemu/build/aarch64-softmmu/./qemu-system-aarch64)
/root/Scrivania/Work/I9/win10arm/qemu/build/aarch64-softmmu/./qemu-system-aarch64: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.28’ not found (required by /root/Scrivania/Work/I9/win10arm/qemu/build/aarch64-softmmu/./qemu-system-aarch64)
I’m using ubuntu 18.04 pure and I get them. But before,I was using a frankenstein ubuntu installation,half 18.04 and half 20.04 and I didn’t get those errors. Qemu 5 was configured like this :
./configure --prefix=/usr/local --target-list=aarch64-softmmu,arm-softmmu --enable-guest-agent --enable-vnc --enable-vnc-jpeg --enable-vnc-png --enable-kvm --enable-spice --enable-sdl --enable-gtk --enable-virglrenderer --enable-opengl
So,with the 18.04 pure it needs more additional work because it uses an old version of the spice server and of the GLIBC libraries. The version of the jetpack that I’ve used before and also now is the 4.5.1 with this version of L4T :
root@ziomario-desktop:# dpkg-query --show nvidia-l4t-core
nvidia-l4t-core 32.5.1-20210219084526
root@ziomario-desktop:# ldd --version
ldd (Ubuntu GLIBC 2.27-3ubuntu1.4) 2.27
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.
To fix the glibc error while keeping ubuntu 18.04 I have installed the glibc libraries inside the folder /opt/glibc-2.33 and I created this script :
isoname1=19041.804.210128-1115.VB_RELEASE_SVC_PROD1_CLIENTMULTICOMBINED_UUP_A64FRE_NETFX_IT-IT.ISO
isoname2=Windows10_InsiderPreview_Client_ARM64_en-us_21286.VHDX
virtio=virtio-win-0.1.185.iso
GLIBC=/root/Scrivania/Work/I9/win10arm/glibc-2.33
GCONV_PATH=${GLIBC}/iconvdata LC_ALL=C \
${GLIBC}/elf/ld.so.1 --library-path \
${GLIBC}:\
${GLIBC}/math:\
${GLIBC}/elf:\
${GLIBC}/dlfcn:\
${GLIBC}/nss:\
${GLIBC}/nis:\
${GLIBC}/rt:\
${GLIBC}/resolv:\
${GLIBC}/crypt:\
${GLIBC}/nptl:\
${GLIBC}/dfp \
/root/Scrivania/Work/I9/win10arm/qemu/build/aarch64-softmmu/./qemu-system-aarch64 -M virt-2.12 -enable-kvm -cpu host -smp 2 -m 2048 -device qemu-xhci -device usb-kbd -device usb-mouse -drive file=/root/Scrivania/Work/win10arm/win10arm.qcow2,if=virtio -nic user,model=virtio -device usb-storage,drive=install -device usb-storage,drive=drivers -drive file="$isoname1",if=none,id=install,media=cdrom,readonly=on -drive file="$virtio",if=none,media=cdrom,readonly=on,id=drivers -bios /root/Scrivania/Work/I9/win10arm/QEMU_EFI.fd -device ramfb
and I ran it. Unfortunately something is broken :
root@ziomario-desktop:# ./startvm.sh
./startvm.sh: line 7: /root/Scrivania/Work/I9/win10arm/glibc-2.33/elf/ld.so.1: No such file or directory
/root/Scrivania/Work/I9/win10arm/qemu/build/aarch64-softmmu/./qemu-system-aarch64: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by /root/Scrivania/Work/I9/win10arm/qemu/build/aarch64-softmmu/./qemu-system-aarch64)
As u can see below,the file ld.so.1
is missing from within the build folder. I’ve looked for it in the whole system,but it isn’t in any place.
I believe many of the configuration options are optional. I had put them only for testing actually…
According to this link here:
https://www.kraxel.org/blog/2019/09/display-devices-in-qemu/
Only ramfb and virtio-gpu-pci works for arm
./configure --prefix=/usr/local --target-list=aarch64-softmmu,arm-softmmu => arm-softmmu not really needed
–enable-guest-agent => not needed for simple use cases I think
–enable-vnc --enable-vnc-jpeg --enable-vnc-png => not needed
–enable-kvm => this is needed ofcourse
–enable-spice => again Win10 only supports ramfb I believe
–enable-sdl and --enable-virglrenderer and --enable-opengl => needed for checking Android with qemu options- device virtio-gpu-pci,virgl=on -display sdl,gl=on
–enable-gtk => needed
Other option could be just to use the lower version qemu (not latest) which still works with higher resolution…
Just remove the --enable-spice option and it should work fine…
JFI : I am now able to run Win10 with KVM on the default NVIDIA L4T, and I am also running with an overclocked kernel at 2GHz and performance of windows is even more smooth and nice.
A few issues I saw:
The permissions of /dev/kvm need to be changed: sudo chmod 666 /dev/kvm so that all users can access.
It seems Win10/qemu is sometimes not able to do mouse capture after the login screen. Better leave the mouse captured from boot till login screen. I am not sure if this is because of the 2Hz speed that I running at as the mouse is so damn sensitive now…
I get a few warnings which I am not sure why:
qemu-system-aarch64: virtio-blk failed to set guest notifier (-11), ensure -accel kvm is set.
qemu-system-aarch64: virtio_bus_start_ioeventfd: failed. Fallback to userspace (slower).
You need to include -accel=KVM in your qemu command line…
Windows 10 also does not have driver support for virtio-gpu so hardware accelerated graphics are not supported currently … I believe there is currently development for the arm64 virtio-gpu drivers in progress but I’m not sure.
The process of building from the git sources (OE4T) didn’t work for me.
I compared the git (https://github.com/OE4T/linux-tegra-4.9) sources to the latest kernel sources from NVIDIA and took in only the kvm related changes from the git sources.
And then I built the NVIDIA sources using the nvbuild script as usual. And its working fine with the existing DTB file.
Also I made changes to the tegra_defconfig file as follows:
kernel-4.9/arch/arm64/configs$ diff tegra_defconfig tegra_defconfig.backup
61d60
< CONFIG_ARM64_ERRATUM_834220=y
1157,1168d1155
< #CONFIG_VIRTUALIZATION=y
< CONFIG_HAVE_KVM_IRQCHIP=y
< CONFIG_HAVE_KVM_IRQFD=y
< CONFIG_HAVE_KVM_IRQ_ROUTING=y
< CONFIG_HAVE_KVM_EVENTFD=y
< CONFIG_KVM_MMIO=y
< CONFIG_HAVE_KVM_MSI=y
< CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y
< CONFIG_KVM_VFIO=y
< CONFIG_HAVE_KVM_ARCH_TLB_FLUSH_ALL=y
< CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
< CONFIG_KVM_COMPAT=y
1170,1173d1156
< CONFIG_KVM_ARM_VGIC_V3_ITS=y
< CONFIG_KVM=y
< CONFIG_KVM_ARM_HOST=y
< CONFIG_KVM_ARM_PMU=y
If you want to use KVM you must use the modified KVM DTB file for your Nano.
qemu will fail to load KVM without it.
KVM will not work with the default Nvidia dtb file.
B01 variant KVM DTB : https://easyupload.io/m/dl6rb6
A02 variant KVM DTB : included with my custom image
But its working fine for me. I am not using the custom Xubuntu image, just the default L4T 4.5.1. Could you tell me how I can modify the DTB file for KVM…?
I tried the -accel option but no effect:
…/build/qemu-system-aarch64 -M virt-2.12,accel=kvm -enable-kvm -cpu host -smp 2 -m 2048 -device qemu-xhci -device usb-kbd -device usb-mouse -drive file=disk.qcow2,if=virtio -nic user,model=virtio --bios QEMU_EFI.fd -drive file=vars-template-pflash.raw,if=pflash,index=1 -device ramfb
WARNING: Image format was not specified for ‘vars-template-pflash.raw’ and probing guessed raw.
Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
Specify the ‘raw’ format explicitly to remove the restrictions.
qemu-system-aarch64: virtio-blk failed to set guest notifier (-11), ensure -accel kvm is set.
Didnt solve that warning…
Btw, would be good if you can share the AOSP image files to run android…Thanks
I tried to start win10 with these parameters :
-device virtio-gpu-pci,virgl=on,xres=1280,yres=720 -display sdl,gl=on
but Im freezed on this error :
someone of you already found it ? how you have fixed it ?
@mr.chrismitchells said : If you want to use KVM you must use the modified KVM DTB file for your Nano.
—> no if you use this : GitHub - OE4T/linux-tegra-4.9: NVIDIA downstream Linux kernel source Jetson platforms in single-repo form, derived from the L4T R32.x series BSP
Is it possible to create another image with the latest L4T and JetPack ? Thanks
Thank you. It’s great job.
Does it work on a Jetson Nano 2GB developer kit?
The B01 variant KVM DTB download link no longer works: https://easyupload.io/m/dl6rb6
Thank you very much, i would like to test it…
But it is neccessary to use X-Server? I costs so much performance from the machine… And did you have some problems with Compiling on your Jetson NANO?
@mr.chrismitchells Hello mr.chrismitchells, we used L4T R32.4.2, does it suooprt Xbuntu 20.04? and whether should we modify some dependences?
Hi I am using Jetson B01 kit, and flashed the image as said, but I am facing booting problem. After first time flashing it asked for user setup etc. but after applying changes the system rebooted and gave me below error:
Any idea what is wrong?
Very nice. Thanks for sharing this