Linux kernel 无法使用QEMU+;启动自定义Linux内核;ArchLinux中的SeaBios
为了研究Linux内核,我在我的Arch机器上设置了一个测试环境:想法是编译一个定制内核,用QEMU虚拟化它,并在虚拟化系统中加载我的一些内核模块 问题是QEMU在从ROM引导时被卡住了,,其他什么都没有出现 确切地说,这是QEMU在运行后向我展示的内容(QEMU参数在问题的底部,下面编号列表的第三点进行了描述): 按照我的设置过程的步骤进行操作: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-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-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
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...