Linux kernel 无法使用QEMU+;启动自定义Linux内核;ArchLinux中的SeaBios

Linux kernel 无法使用QEMU+;启动自定义Linux内核;ArchLinux中的SeaBios,linux-kernel,virtualization,qemu,archlinux,Linux Kernel,Virtualization,Qemu,Archlinux,为了研究Linux内核,我在我的Arch机器上设置了一个测试环境:想法是编译一个定制内核,用QEMU虚拟化它,并在虚拟化系统中加载我的一些内核模块 问题是QEMU在从ROM引导时被卡住了,,其他什么都没有出现 确切地说,这是QEMU在运行后向我展示的内容(QEMU参数在问题的底部,下面编号列表的第三点进行了描述): 按照我的设置过程的步骤进行操作: 下载并构建5.12.7内核;完成后,我得到了linux-5.12.7/arch/x86_64/boot/bzImage文件 使用mkinitcpi

为了研究Linux内核,我在我的Arch机器上设置了一个测试环境:想法是编译一个定制内核,用QEMU虚拟化它,并在虚拟化系统中加载我的一些内核模块

问题是QEMU在从ROM引导时被卡住了,,其他什么都没有出现

确切地说,这是QEMU在运行后向我展示的内容(QEMU参数在问题的底部,下面编号列表的第三点进行了描述):

按照我的设置过程的步骤进行操作:

  • 下载并构建5.12.7内核;完成后,我得到了
    linux-5.12.7/arch/x86_64/boot/bzImage
    文件

  • 使用
    mkinitcpio
    创建ramdisk:I运行

    $mkinitcpio-g custom-initramfs.img&&lsinitcpio-a custom-initramfs.img
    ==>开始构建:5.12.7-arch1-1
    ->运行构建钩子:[base]
    ->运行构建挂钩:[udev]
    ->正在运行构建挂钩:[自动检测]
    ->正在运行构建钩子:[modconf]
    ->运行构建钩子:[块]
    ==>警告:模块xhci\u pci可能缺少固件
    ->正在运行构建挂钩:[文件系统]
    ->运行构建钩子:[键盘]
    ->运行构建挂钩:[fsck]
    ==>生成模块依赖项
    ==>创建zstd压缩initcpio映像:/home/elmazzun/repos/krn mods/build/custom-initramfs.img
    ==>图像生成成功
    =>Image:custom-initramfs.img
    ==>使用mkinitcpio 30创建
    ==>内核:5.12.7-arch1-1
    ==>大小:7.8 MiB
    ==>压缩为:zstd
    ->未压缩大小:20.22 MiB(.385比率)
    ->预计减压时间:0.044s
    ==>包含的模块:
    atkbd crc32c intel i8042 mmc_core sr_mod xhci pci renesas
    cdrom crc-itu-t jbd2 sdhci usbhid
    cqhci ext4 libps2 sdhci pci usb存储
    crc16 firewire core mbcache serio virtio_blk
    crc32c_通用firewire-sbp2 mmc_块序列_原始xhci pci
    ==>包含的二进制文件:
    blkid fsck kmod开关
    busybox fsck.ext4安装系统TMP文件
    ==>早期挂钩运行顺序:
    乌代夫
    ==>吊钩运行顺序:
    乌代夫
    ==>清理挂钩运行顺序:
    乌代夫
    
  • 这是启动QEMU的BASH脚本:

    qemu-system-x86_64\
    -启用kvm\
    -cpu主机\
    -m 1024\
    -内核linux-5.12.7/arch/x86_64/boot/bzImage\
    -initrd custom-initramfs.img\
    -追加“console=ttyS0”
    
  • 这是我构建的内核的
    .config
    内容:

  • 以下是我的测试环境的软件版本:

    • QEMU:

      $qemu-system-x86\u 64
      QEMU仿真器版本6.0.0
      
    • Arch Linux(x86_64):

      $uname-r
      5.12.7-1-1
      
    • 我正在尝试虚拟化的内核

      linux-5.12.7
      
    最后,我只需要一个运行的虚拟化Linux环境:拥有一个无磁盘的虚拟化内核会很好,因为我只需要测试一些内核模块,因此我不需要在虚拟化内核中保持持久性;现在,每次运行测试时重新启动内核还不错

    然而,我不明白为什么QEMU永远停留在从ROM启动上。

    任何帮助都将不胜感激:)

    SeaBIOS (version ArchLinux 1.14.0-1)
    
    iPXE (http://ipxe.org) 00:03.0 CA00 PCI2.10 PnP PMM+3FF913A0+3FEF13
    A0 CA00
    
    Booting from ROM...