konosubakonoakua / blog

https://konosubakonoakua.github.io/blog/
MIT License
0 stars 0 forks source link

[linux][kernel][qemu] qemu linux kernel development environment setup #50

Open konosubakonoakua opened 1 month ago

konosubakonoakua commented 1 month ago

file share

loop device

9p

samba

konosubakonoakua commented 1 month ago

raspberry pi

kernel compile

busybox + kernel

raspi aarch64 busybox kernel compiling, qemu booting ```shell # # https://www.raspberrypi.com/documentation/computers/linux_kernel.html alias makej='make -j$(nproc)' export ROOTFS=$HOME/prj/linux/busybox/busybox-1.36.1/_install export KERNEL=kernel8 #################################### # 32-bit configs export ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- IMAGE=zImage # For Raspberry Pi 1, Zero and Zero W, and for Raspberry Pi Compute Module 1: #export KERNEL=kernel && make -j$(nproc) bcmrpi_defconfig # For Raspberry Pi 2, 3, 3+ and Zero 2 W, and Raspberry Pi Compute Modules 3 and 3+: export KERNEL=kernel7 && make -j$(nproc) bcm2709_defconfig # For Raspberry Pi 4 and 400, and Raspberry Pi Compute Module 4: #export KERNEL=kernel7l && make -j$(nproc) bcm2711_defconfig make -j$(nproc) menuconfig make -j$(nproc) zImage modules dtbs #################################### #################################### # 64-bit configs export ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu- IMAGE=Image # For Raspberry Pi 3, 3+, 4, 400 and Zero 2 W, and Raspberry Pi Compute Modules 3, 3+ and 4: export KERNEL=kernel8 && make -j$(nproc) bcm2711_defconfig # For Raspberry Pi 5: #export KERNEL=kernel_2712 && make -j$(nproc) bcm2712_defconfig make -j$(nproc) menuconfig make -j$(nproc) Image modules dtbs #################################### #################################### # kernel modules install make INSTALL_MOD_PATH=$ROOTFS modules_install #################################### #################################### # busybox rm -rf $ROOTFS/boot mkdir -p $ROOTFS/boot/overlays cp -f arch/$ARCH/boot/$IMAGE $ROOTFS/boot/$KERNEL.img cp -f arch/$ARCH/boot/dts/overlays/*.dtb* arch/$ARCH/boot/dts/overlays/README $ROOTFS/boot/overlays/ ls $ROOTFS/boot/ #################################### #################################### # virtiofsd export VIRTIOFS_QUEUE_SIZE=1024 QEMU_VIRTIOFSD_SOCKET=/tmp/myfs.sock QEMU_VIRTIOFSD_CHARDEV_ID=virtiofs_chr0 export QEMU_VIRTIOFSD_TAG=myfs export VIRTIOFS_QEMU_PARAM=( -chardev socket,id=virtiofs_chr0,path=$QEMU_VIRTIOFSD_SOCKET -device vhost-user-fs-pci,queue-size=$VIRTIOFS_QUEUE_SIZE,chardev=virtiofs_chr0,tag=myfs,ats=off ) virtiofsd --socket-path=$QEMU_VIRTIOFSD_SOCKET -o source=$ROOTFS -o cache=none & #################################### #################################### # qemu # # -drive format=raw,file=2023-05-03-raspios-bullseye-arm64.img,if=none,id=hd0,cache=writeback \ # -device virtio-blk,drive=hd0,bootindex=0 \ # -netdev user,id=mynet,hostfwd=tcp::2222-:22 \ # -device virtio-net-pci,netdev=mynet \ qemu-system-aarch64 -machine virt -cpu cortex-a53 -smp 4 -m 1G \ -monitor telnet:127.0.0.1:5555,server,nowait\ -kernel "$ROOTFS/boot/$KERNEL.img" \ -append "rootfstype=virtiofs root=myfs rw panic=0 console=ttyAMA0" \ -chardev socket,id=virtiofs_chr0,path=$QEMU_VIRTIOFSD_SOCKET \ -device vhost-user-fs-pci,queue-size=$VIRTIOFS_QUEUE_SIZE,chardev=virtiofs_chr0,tag=myfs -object memory-backend-memfd,id=mem,size=4G,share=on \ -numa node,memdev=mem #################################### qemu-system-aarch64 -machine virt -cpu cortex-a53 -smp 4 -m 1G \ -monitor telnet:127.0.0.1:5555,server,nowait\ -kernel kernel.bin\ -append "rootfstype=virtiofs root=myfs rw panic=0 console=ttyAMA0" \ -chardev socket,id=virtiofs_chr0,path=/tmp/myfs.sock \ -device vhost-user-fs-pci,queue-size=1024,chardev=virtiofs_chr0,tag=myfs qemu-system-aarch64 -machine raspi3b -cpu cortex-a53 -smp 4 -m 1G \ -kernel arch/$ARCH/boot/$IMAGE \ -dtb arch/arm64/boot/dts/broadcom/bcm2710-rpi-3-b.dtb \ -initrd $ROOTFS/../rootfs.img.gz \ -append 'root=/dev/ram rdinit=/sbin/init panic=0' \ -serial stdio # -initrd $ROOTFS/../rootfs.img.gz \ # -append 'root=/dev/ram rdinit=/sbin/init panic=0 console=ttyAMA0' \ # # -monitor telnet:localhost:4322,server,nowait \ # -serial telnet:localhost:4321,server,nowait \ # & # sleep 2 # telnet localhost 4321 export ROOTFS=/home/rfe1wx/prj/linux/busybox/busybox-1.36.1/_install/ export ARCH=arm64 IMAGE=Image virtiofsd --tag=myvfs --socket-path=/tmp/myvfs.sock --shared-dir=$(pwd) --cache=auto & qemu-system-aarch64 -machine virt -cpu cortex-a53 -smp 4 -m 1G \ -kernel arch/$ARCH/boot/$IMAGE \ -append 'rootfstype=virtiofs root=myvfs rw panic=0 console=ttyAMA0' \ -chardev socket,id=myvfs0,path=/tmp/myvfs.sock \ -device vhost-user-fs-pci,queue-size=1024,chardev=myvfs0,tag=myvfs \ -object memory-backend-memfd,id=mem,size=1G,share=on \ -numa node,memdev=mem \ -serial mon:stdio \ -nographic # Ctrl+a, x to quit # cloud-hypervisor \ # --cpus boot=4 \ # --memory size=512M \ # --serial tty \ # --console off \ # --kernel kernel.bin \ # --disk path=rootfs.ext4 \ # --cmdline "keep_bootcon console=hvc0 reboot=k panic=1 pci=off root=/dev/vda rw" ````

Orange Pi

x86_64

tutorials - [build-a-kernel-initramfs-and-busybox-to-create-your-own-micro-linux](https://cylab.be/blog/320/build-a-kernel-initramfs-and-busybox-to-create-your-own-micro-linux?accept-cookies=1)
busybox + x86 ### busybox #### command ```shell find . -print0 | cpio --null -ov --format=newc | gzip -9 > ../rootfs ``` #### _install/init ```shell #!/bin/sh mount -t devtmpfs devtmpfs /dev mount -t proc none /proc mount -t sysfs none /sys cat <
konosubakonoakua commented 1 month ago

building

kernel

konosubakonoakua commented 1 month ago

VM

kvm

virt-manager ```shell # Install Necessary KVM-Related Packages on a Debian-Based System: # You can use a package manager like APT on Debian-based systems. sudo apt-get install qemu-kvm libvirt-bin virt-manager # Create a Virtual Disk Image: # Here, we create a 20GB QCOW2 image called "myvm.img." qemu-img create -f qcow2 myvm.img 20G # Create a Virtual Machine: # Use virt-install to create a KVM virtual machine. Adjust the parameters as needed for your use case. # In this example, we create a VM named "myvm" with 2GB of RAM and 2 vCPUs, and we use an Ubuntu 18.04 ISO for installation. virt-install \\ --name myvm \\ --ram 2048 \\ --vcpus 2 \\ --disk path=myvm.img,size=20 \\ --os-type linux \\ --os-variant ubuntu18.04 \\ --network bridge=br0 \\ --graphics vnc \\ --console pty,target_type=serial \\ --location '' # Start the Virtual Machine: # Once the VM is created, you can start it using the following command: virsh start myvm # Connect to the VM's Console: # To connect to the VM's console and interact with it, you can use: virsh console myvm ```

cloudhypervisor

cloud-hypervisor ```shell $ ./cloud-hypervisor \ --kernel ./linux-cloud-hypervisor/arch/arm64/boot/Image \ --console off \ --serial tty \ --disk path=focal-server-cloudimg-arm64.raw \ --cmdline "console=ttyAMA0 root=/dev/vda1 rw" \ --cpus boot=4 \ --memory size=1024M \ --net "tap=,mac=,ip=,mask=" ```

qemu

qemu tutorial


konosubakonoakua commented 1 month ago

others

vscode

konosubakonoakua commented 1 month ago

bug,issue,patch

currently, succeed to compile and run virtiofs for kernel, but virtio-fs cannot find tag given by the cmdline arg.

log ```shell [2024-05-16T16:58:54Z INFO virtiofsd] Waiting for vhost-user socket connection... [2024-05-16T16:58:54Z INFO virtiofsd] Client connected, servicing requests qemu-system-aarch64: -device vhost-user-fs-device,queue-size=1024,chardev=myvfs0,tag=myvfs: warning: vhost-user b ackend supports VHOST_USER_PROTOCOL_F_CONFIG but QEMU does not. [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034] [ 0.000000] Linux version 6.1.77-v8+ (rfe1wx@WX8-V-0001N) (aarch64-none-linux-gnu-gcc (Arm GNU Toolchain 13.2. rel1 (Build arm-13.7)) 13.2.1 20231009, GNU ld (Arm GNU Toolchain 13.2.rel1 (Build arm-13.7)) 2.41.0.20231009) #6 SMP PREEMPT Fri May 17 00:56:55 CST 2024 [ 0.000000] random: crng init done [ 0.000000] Machine model: linux,dummy-virt [ 0.000000] efi: UEFI not found. [ 0.000000] Zone ranges: [ 0.000000] DMA [mem 0x0000000040000000-0x000000007fffffff] [ 0.000000] DMA32 empty [ 0.000000] Normal empty [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000040000000-0x000000007fffffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x000000007fffffff] [ 0.000000] cma: Reserved 8 MiB at 0x000000007e400000 [ 0.000000] psci: probing for conduit method from DT. [ 0.000000] psci: PSCIv1.1 detected in firmware. [ 0.000000] psci: Using standard PSCI v0.2 function IDs [ 0.000000] psci: Trusted OS migration not required [ 0.000000] psci: SMC Calling Convention v1.0 [ 0.000000] percpu: Embedded 29 pages/cpu s79144 r8192 d31448 u118784 [ 0.000000] Detected VIPT I-cache on CPU0 [ 0.000000] CPU features: kernel page table isolation forced ON by KASLR [ 0.000000] CPU features: detected: Kernel page table isolation (KPTI) [ 0.000000] CPU features: detected: ARM erratum 845719 [ 0.000000] alternatives: applying boot alternatives [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 258048 [ 0.000000] Kernel command line: rootfstype=virtiofs root=myfs rw panic=0 console=ttyAMA0 [ 0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes, linear) [ 0.000000] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes, linear) [ 0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off [ 0.000000] Memory: 996844K/1048576K available (11520K kernel code, 1788K rwdata, 3684K rodata, 3712K init, 10 77K bss, 43540K reserved, 8192K cma-reserved) [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 [ 0.000000] ftrace: allocating 37325 entries in 146 pages [ 0.000000] ftrace: allocated 146 pages with 3 groups [ 0.000000] trace event string verifier disabled [ 0.000000] rcu: Preemptible hierarchical RCU implementation. [ 0.000000] rcu: RCU event tracing is enabled. [ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=4. [ 0.000000] Trampoline variant of Tasks RCU enabled. [ 0.000000] Rude variant of Tasks RCU enabled. [ 0.000000] Tracing variant of Tasks RCU enabled. [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies. [ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4 [ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0 [ 0.000000] Root IRQ handler: gic_handle_irq [ 0.000000] GICv2m: range[mem 0x08020000-0x08020fff], SPI[80:143] [ 0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention. [ 0.000000] arch_timer: cp15 timer(s) running at 62.50MHz (virt). [ 0.000000] clocksource: arch_sys_counter: mask: 0x1ffffffffffffff max_cycles: 0x1cd42e208c, max_idle_ns: 8815 90405314 ns [ 0.000064] sched_clock: 57 bits at 63MHz, resolution 16ns, wraps every 4398046511096ns [ 0.006445] Console: colour dummy device 80x25 [ 0.007285] Calibrating delay loop (skipped), value calculated using timer frequency.. 125.00 BogoMIPS (lpj=25 0000) [ 0.007432] pid_max: default: 32768 minimum: 301 [ 0.008020] LSM: Security Framework initializing [ 0.010918] Mount-cache hash table entries: 2048 (order: 2, 16384 bytes, linear) [ 0.010954] Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes, linear) [ 0.022082] cgroup: Disabling memory control group subsystem [ 0.034556] cacheinfo: Unable to detect cache hierarchy for CPU 0 [ 0.039516] cblist_init_generic: Setting adjustable number of callback queues. [ 0.039533] cblist_init_generic: Setting shift to 2 and lim to 1. [ 0.039754] cblist_init_generic: Setting adjustable number of callback queues. [ 0.039761] cblist_init_generic: Setting shift to 2 and lim to 1. [ 0.040200] cblist_init_generic: Setting adjustable number of callback queues. [ 0.040208] cblist_init_generic: Setting shift to 2 and lim to 1. [ 0.041103] rcu: Hierarchical SRCU implementation. [ 0.041132] rcu: Max phase no-delay instances is 1000. [ 0.044119] EFI services will not be available. [ 0.045078] smp: Bringing up secondary CPUs ... [ 0.047405] Detected VIPT I-cache on CPU1 [ 0.047947] cacheinfo: Unable to detect cache hierarchy for CPU 1 [ 0.048207] CPU1: Booted secondary processor 0x0000000001 [0x410fd034] [ 0.051855] Detected VIPT I-cache on CPU2 [ 0.052000] cacheinfo: Unable to detect cache hierarchy for CPU 2 [ 0.052314] CPU2: Booted secondary processor 0x0000000002 [0x410fd034] [ 0.053550] Detected VIPT I-cache on CPU3 [ 0.053705] cacheinfo: Unable to detect cache hierarchy for CPU 3 [ 0.053831] CPU3: Booted secondary processor 0x0000000003 [0x410fd034] [ 0.054441] smp: Brought up 1 node, 4 CPUs [ 0.054468] SMP: Total of 4 processors activated. [ 0.054532] CPU features: detected: 32-bit EL0 Support [ 0.054544] CPU features: detected: 32-bit EL1 Support [ 0.054584] CPU features: detected: CRC32 instructions [ 0.059047] CPU: All CPU(s) started at EL1 [ 0.059172] alternatives: applying system-wide alternatives [ 0.077746] devtmpfs: initialized [ 0.084331] Enabled cp15_barrier support [ 0.084543] Enabled setend support [ 0.085308] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns [ 0.085476] futex hash table entries: 1024 (order: 4, 65536 bytes, linear) [ 0.088006] pinctrl core: initialized pinctrl subsystem [ 0.095251] DMI not present or invalid. [ 0.102137] NET: Registered PF_NETLINK/PF_ROUTE protocol family [ 0.123139] DMA: preallocated 128 KiB GFP_KERNEL pool for atomic allocations [ 0.131888] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations [ 0.132158] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations [ 0.132483] audit: initializing netlink subsys (disabled) [ 0.135135] audit: type=2000 audit(0.104:1): state=initialized audit_enabled=0 res=1 [ 0.141066] thermal_sys: Registered thermal governor 'step_wise' [ 0.141414] cpuidle: using governor menu [ 0.142326] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers. [ 0.144656] ASID allocator initialised with 32768 entries [ 0.147476] Serial: AMBA PL011 UART driver [ 0.166773] 9000000.pl011: ttyAMA0 at MMIO 0x9000000 (irq = 13, base_baud = 0) is a PL011 rev1 [ 0.183421] printk: console [ttyAMA0] enabled [ 0.191239] KASLR enabled [ 0.235550] iommu: Default domain type: Translated [ 0.235762] iommu: DMA domain TLB invalidation policy: strict mode [ 0.237203] SCSI subsystem initialized [ 0.238261] usbcore: registered new interface driver usbfs [ 0.238612] usbcore: registered new interface driver hub [ 0.238849] usbcore: registered new device driver usb [ 0.239748] pps_core: LinuxPPS API ver. 1 registered [ 0.239848] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti [ 0.240096] PTP clock support registered [ 0.250926] vgaarb: loaded [ 0.253956] clocksource: Switched to clocksource arch_sys_counter [ 0.294826] VFS: Disk quotas dquot_6.6.0 [ 0.295380] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes) [ 0.296482] FS-Cache: Loaded [ 0.297654] CacheFiles: Loaded [ 0.324139] NET: Registered PF_INET protocol family [ 0.325872] IP idents hash table entries: 16384 (order: 5, 131072 bytes, linear) [ 0.332629] tcp_listen_portaddr_hash hash table entries: 512 (order: 1, 8192 bytes, linear) [ 0.332905] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear) [ 0.333184] TCP established hash table entries: 8192 (order: 4, 65536 bytes, linear) [ 0.333487] TCP bind hash table entries: 8192 (order: 6, 262144 bytes, linear) [ 0.333848] TCP: Hash tables configured (established 8192 bind 8192) [ 0.335793] MPTCP token hash table entries: 1024 (order: 2, 24576 bytes, linear) [ 0.336351] UDP hash table entries: 512 (order: 2, 16384 bytes, linear) [ 0.336807] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear) [ 0.338590] NET: Registered PF_UNIX/PF_LOCAL protocol family [ 0.339253] PCI: CLS 0 bytes, default 64 [ 0.345166] hw perfevents: enabled with armv8_pmuv3 PMU driver, 7 counters available [ 0.346258] kvm [1]: HYP mode not available [ 0.349519] Initialise system trusted keyrings [ 0.355126] workingset: timestamp_bits=46 max_order=18 bucket_order=0 [ 0.362733] zbud: loaded [ 0.366603] fuse: init (API version 7.37) [ 0.371890] Key type asymmetric registered [ 0.372099] Asymmetric key parser 'x509' registered [ 0.374508] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247) [ 0.375955] io scheduler mq-deadline registered [ 0.376200] io scheduler kyber registered [ 0.392951] vc-mem: phys_addr:0x00000000 mem_base=0x00000000 mem_size:0x00000000(0 MiB) [ 0.394612] cacheinfo: Unable to detect cache hierarchy for CPU 0 [ 0.433056] brd: module loaded [ 0.458285] loop: module loaded [ 0.461613] Loading iSCSI transport class v2.0-870. [ 0.479555] usbcore: registered new device driver r8152-cfgselector [ 0.480203] usbcore: registered new interface driver r8152 [ 0.480620] usbcore: registered new interface driver lan78xx [ 0.480939] usbcore: registered new interface driver smsc95xx [ 0.482189] dwc_otg: version 3.00a 10-AUG-2012 (platform bus) [ 0.484459] usbcore: registered new interface driver uas [ 0.484956] usbcore: registered new interface driver usb-storage [ 0.486785] mousedev: PS/2 mouse device common for all mice [ 0.489593] sdhci: Secure Digital Host Controller Interface driver [ 0.492257] sdhci: Copyright(c) Pierre Ossman [ 0.492837] sdhci-pltfm: SDHCI platform and OF driver helper [ 0.495263] ledtrig-cpu: registered to indicate activity on CPUs [ 0.497058] hid: raw HID events driver (C) Jiri Kosina [ 0.497812] usbcore: registered new interface driver usbhid [ 0.498205] usbhid: USB HID core driver [ 0.499864] NET: Registered PF_PACKET protocol family [ 0.500499] Key type dns_resolver registered [ 0.506127] registered taskstats version 1 [ 0.506673] Loading compiled-in X.509 certificates [ 0.511253] Key type .fscrypt registered [ 0.511430] Key type fscrypt-provisioning registered [ 0.527709] of_cfs_init [ 0.529552] of_cfs_init: OK [ 0.543193] uart-pl011 9000000.pl011: no DMA platform data [ 0.547956] virtio-fs: tag not found [ 0.548910] virtio-fs: tag not found [ 0.549276] virtio-fs: tag not found [ 0.549511] List of all partitions: [ 0.550202] 0100 4096 ram0 [ 0.550288] (driver?) [ 0.550633] 0101 4096 ram1 [ 0.550647] (driver?) [ 0.550953] 0102 4096 ram2 [ 0.550964] (driver?) [ 0.551228] 0103 4096 ram3 [ 0.551238] (driver?) [ 0.552880] 0104 4096 ram4 [ 0.552894] (driver?) [ 0.555123] 0105 4096 ram5 [ 0.555187] (driver?) [ 0.555736] 0106 4096 ram6 [ 0.555781] (driver?) [ 0.555914] 0107 4096 ram7 [ 0.555924] (driver?) [ 0.556232] 0108 4096 ram8 [ 0.556241] (driver?) [ 0.556548] 0109 4096 ram9 [ 0.556558] (driver?) [ 0.556850] 010a 4096 ram10 [ 0.556861] (driver?) [ 0.557149] 010b 4096 ram11 [ 0.557158] (driver?) [ 0.557435] 010c 4096 ram12 [ 0.557445] (driver?) [ 0.557771] 010d 4096 ram13 [ 0.557783] (driver?) [ 0.558090] 010e 4096 ram14 [ 0.558100] (driver?) [ 0.558389] 010f 4096 ram15 [ 0.558400] (driver?) [ 0.558807] No filesystem could mount root, tried: [ 0.558831] virtiofs [ 0.559076] [ 0.559463] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) [ 0.561078] CPU: 2 PID: 1 Comm: swapper/0 Not tainted 6.1.77-v8+ #6 [ 0.561373] Hardware name: linux,dummy-virt (DT) [ 0.561766] Call trace: [ 0.562125] dump_backtrace.part.0+0xe8/0xf4 [ 0.562534] show_stack+0x20/0x30 [ 0.562770] dump_stack_lvl+0x64/0x80 [ 0.562991] dump_stack+0x18/0x34 [ 0.563152] panic+0x190/0x354 [ 0.563318] mount_block_root+0x228/0x248 [ 0.563470] mount_root+0x188/0x1a8 [ 0.563893] prepare_namespace+0x134/0x174 [ 0.564280] kernel_init_freeable+0x278/0x2a4 [ 0.569294] kernel_init+0x2c/0x140 [ 0.569523] ret_from_fork+0x10/0x20 [ 0.570093] SMP: stopping secondary CPUs [ 0.570716] Kernel Offset: 0x1f77c00000 from 0xffffffc008000000 [ 0.570996] PHYS_OFFSET: 0x40000000 [ 0.571181] CPU features: 0x00000,00900080,0000421b [ 0.572134] Memory Limit: none [ 0.572638] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) ]--- ```
issues & patchs - https://github.com/cloud-hypervisor/cloud-hypervisor/discussions/2719 - https://lore.kernel.org/linux-fsdevel/20231005203030.223489-1-vgoyal@redhat.com/ - https://gitlab.com/virtio-fs/virtiofsd/-/issues/128 - https://github.com/systemd/systemd-stable/pull/366/files - https://github.com/systemd/mkosi/issues/2371