
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
検出されたと表示されますが、何らかの理由でカーネルはマウントできないと文句を言い続けます。
答え1
この問題を解決する鍵は、DTB から DTB への指示に厳密に従うことです。https://github.com/dhruvvyas90/qemu-rpi-kernel#choosing-a-kernel-image
カーネルイメージの選択
リポジトリには 3 種類のカーネルイメージが含まれています。
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とのみ互換性があります。
次の2つのコマンドは画像を正常に起動しました。
カーネル 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