Week9
This week: Create a conf file with the qemu boot variables and their values required for jailhouse to run Thing is when you start qemu and try to run " jailhouse hardware check" , the check must be passed for jailhouse to actually run. Now this is the updated script that I used to run qemu:- qemu-system-x86_64 \ -m 1024 \ -drive file=./tmp/deploy/images/qemux86-64/agl-image-minimal-qemux86-64.ext4,discard=unmap,if=none,id=disk,format=raw \ -serial vc -serial mon:stdio -netdev user,id=net \ -kernel ./tmp/deploy/images/qemux86-64/bzImage \ -append "root=/dev/sda intel_iommu=off memmap=82M\$0x3a000000 mem=1G vga=0x305 console=ttyS0,115200n8" \ -cpu host,-kvm-pv-eoi,-kvm-pv-ipi,-kvm-asyncpf,-kvm-steal-time,-kvmclock,-invpcid,-hypervisor \ -smp 4 \ -enable-kvm \ -machine q35,kernel_irqchip=split \ -device ide-hd,drive=disk \ -device intel-iommu,intremap=on,x-buggy-eim=on \ -device intel-hda,addr=1b.0 \ -device hda-duplex \ -device e1000e,addr=2.0,netdev=net \ The above script does seem to pass the checks Feature Availability ------------------------------ ------------------ Number of CPUs > 1 ok Long mode ok x2APIC ok VT-x (VMX) ok VMX outside SMX ok VMX inside SMX missing (optional) IA32_TRUE_*_CLTS ok NMI exiting ok Preemption timer ok I/O bitmap ok MSR bitmap ok Secondary controls ok Optional CR3 interception ok Virtualize APIC access ok RDTSCP ok Unrestricted guest ok INVPCID missing (optional) XSAVES ok EPT ok 4-level page walk ok EPTP write-back ok 2M pages ok 1G pages missing (optional) INVEPT ok Single or all-context ok VM-exit save IA32_PAT ok VM-exit load IA32_PAT ok VM-exit save IA32_EFER ok VM-exit load IA32_EFER ok VM-entry load IA32_PAT ok VM-entry load IA32_EFER ok Activity state HLT ok VT-d (IOMMU #0) ok 39-bit AGAW ok 48-bit AGAW missing (optional) 2M pages ok 1G pages ok Queued invalidation ok Interrupt remapping ok Extended interrupt mode ok Check passed! This is the default qemuboot.conf file you get by default - tmp/deploy/images/qemux86-64/agl-image-minimal-qemux86-64-*.qemuboot.conf [config_bsp] deploy_dir_image = . image_link_name = agl-image-minimal-qemux86-64 image_name = agl-image-minimal-qemux86-64-20200721164637 kernel_imagetype = bzImage machine = qemux86-64 qb_audio_drv = alsa qb_audio_opt = -soundhw hda qb_cmdline_ip_slirp = ip=dhcp qb_cmdline_ip_tap = ip=192.168.7.@CLIENT@::192.168.7.@GATEWAY@:255.255.255.0 qb_cpu = -cpu qemu64,+ssse3,+sse4.1,+sse4.2,+popcnt qb_cpu_kvm = -cpu kvm64 -cpu qemu64,+ssse3,+sse4.1,+sse4.2,+popcnt qb_cpu_kvm_x86 = -cpu core2duo qb_cpu_kvm_x86-64 = -cpu kvm64 -cpu qemu64,+ssse3,+sse4.1,+sse4.2,+popcnt qb_cpu_x86 = -cpu core2duo qb_cpu_x86-64 = -cpu qemu64,+ssse3,+sse4.1,+sse4.2,+popcnt qb_default_fstype = ext4 qb_default_kernel = bzImage--5.4.43+git0+aafb8f095e_9e1b13d7f9-r0-qemux86-64-20200721164637.bin qb_drive_type = /dev/sd qb_kernel_cmdline_append = oprofile.timer=1 console=ttyS0,115200n8 quiet qb_machine = -machine q35 qb_mem = -m 2048 qb_network_device = -device virtio-net-pci,netdev=net0,mac=@MAC@ qb_opt_append = -vga vmware -show-cursor -usb -device usb-tablet -device virtio-rng-pci -vga virtio qb_serial_opt = -serial mon:stdio -serial null qb_system_name = qemu-system-x86_64 qb_system_name_x86-64 = qemu-system-x86_64 staging_bindir_native = ../../../work/x86_64-linux/qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin staging_dir_host = ../../../work/qemux86_64-agl-linux/agl-image-minimal/1.0-r0/recipe-sysroot staging_dir_native = ../../../work/qemux86_64-agl-linux/agl-image-minimal/1.0-r0/recipe-sysroot-native tune_arch = x86_64 We then add a new conf file in our meta-agl-jailhouse , sorting out the updated script wrt the QB variables and then build the recipe so that when we use runqemu , the required script runs by default The following variables need to be filled for runqemu - QB_SYSTEM_NAME:,QB_OPT_APPEND:,QB_DEFAULT_KERNEL:,QB_DEFAULT_FSTYPE:,QB_MEM:,QB_MACHINE:,QB_CPU:,QB_CPU_KVM:,QB_KERNEL_CMDLINE_APPEND:,QB_DTB:,QB_AUDIO_DRV:,QB_AUDIO_OPT:,QB_KERNEL_ROOT:,QB_NETWORK_DEVICE:, QB_TAP_OPT:,QB_SLIRP_OPT:,QB_CMDLINE_IP_SLIRP:,QB_CMDLINE_IP_TAP:,QB_ROOTFS_OPT:,QB_SERIAL_OPT:,QB_TCPSERIAL_OPT:,QB_ROOTFS_EXTRA_OPT: Ended up setting up fresh new can boards with respective rpi's and connecting them.