选择内核映像

选择内核映像

我正在尝试启动 HypriotOS (https://github.com/hypriot/image-builder-rpi/releases/) 来自 QEMU 的 RPi 图像

我正在使用来自https://github.com/dhruvvyas90/qemu-rpi-kernel并使用以下命令为 QEMU 准备映像https://github.com/duquesnay/prepare-hypriot-qemu

我已经测试过映像中的根分区是可安装的,并且对我来说看起来不错:

$ sudo fdisk -lu hypriotos-rpi-v1.1.3-qemu01.imgDisco hypriotos-rpi-v1.1.3-qemu01.img: 8 GiB, 8589934592 bytes, 16777216 sectores
Unidades: sectores de 1 * 512 = 512 bytes
Tamaño de sector (lógico/físico): 512 bytes / 512 bytes
Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes
Tipo de etiqueta de disco: dos
Identificador del disco: 0x00000000

Disposit.                        Inicio Comienzo    Final Sectores Tamaño Id Tipo
hypriotos-rpi-v1.1.3-qemu01.img1            2048   133119   131072    64M  c W95 FAT32 (LBA)
hypriotos-rpi-v1.1.3-qemu01.img2          133120 16777215 16644096     8G 83 Linux

$ sudo mount -o loop,offset=68157440 hypriotos-rpi-v1.1.3-qemu01.img /mnt/

$ ls /mnt/
bin  boot  dev  etc  home  lib  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

但是,当尝试使用以下参数启动时会失败:

$ export APPEND_ARGS="root=/dev/sda2 panic=1 rw loglevel=8 console=ttyAMA0,115200"

$ qemu-system-arm -cpu arm1176 -m 256 -M versatilepb -no-reboot \
    -dtb ../../qemu-rpi-kernel/versatile-pb.dtb -serial stdio -append "${APPEND_ARGS}" \
    -kernel ../../qemu-rpi-kernel/kernel-qemu-4.4.34-jessie \
    -net nic -net user,restrict=off -hda hypriotos-rpi-v1.1.3-qemu01.img

输出显示/dev/sda2在启动时检测到了它,但由于某种原因,内核一直抱怨无法挂载它:

/dev/sda2 已检测到但未安装

答案1

解决这个问题的关键是严格遵循DTB中关于DTB的说明https://github.com/dhruvvyas90/qemu-rpi-kernel#choosing-a-kernel-image

选择内核映像

该存储库包含三种类型的内核映像:

  • kernel-qemu-4.*.*-buster是最新的镜像,与 Raspbian Buster 和 Stretch 兼容。要使用这些图像,您需要此存储库中也包含的Versatile-pb.dtb 文件。除非您确定需要不同的内核,否则这些映像中的最新版本可能就是您想要的。

  • kernel-qemu-4.*.*-stretch图像与 Raspbian Stretch 和 Jessie 兼容。要使用这些图像,您需要 versatile-pb.dtb该存储库中也包含的文件。

  • kernel-qemu-4.4.*-jessie图像与 Raspbian Jessie 和 Wheezy 兼容。

  • kernel-qemu-3.10.25-wheezy是来自 xecdesign.com 的原始图像,仅与 Raspbian Wheezy 兼容。

这两条命令成功启动了镜像:

内核 4.19.50-buster:

$ qemu-system-arm -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "${APPEND_ARGS}" -kernel ../../qemu-rpi-kernel/kernel-qemu-4.19.50-buster -dtb ../../qemu-rpi-kernel/versatile-pb.dtb -net nic -net user,restrict=off -drive file=hypriotos-rpi-v1.1.3-qemu01.img,index=0,media=disk,format=raw

内核 4.4.34-杰西

$ qemu-system-arm -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "${APPEND_ARGS}" -kernel ../../qemu-rpi-kernel/kernel-qemu-4.4.34-jessie -net nic -net user,restrict=off -drive file=hypriotos-rpi-v1.1.3-qemu01.img,index=0,media=disk,format=raw

相关内容