커널 이미지 선택

커널 이미지 선택

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.*.*-busterRaspbian 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-wheezyxecdesign.com의 원본 이미지이며 Raspbian Wheezy와만 호환됩니다.

다음 두 명령은 이미지를 성공적으로 시작했습니다.

커널 4.19.50-버스터:

$ 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

관련 정보