O QEMU pode emular o cartão SD do Linux, mas não do OSX

1

Versão resumida

Estou tentando emular um RaspberryPi diretamente do cartão SD (usando os mesmos comandos apresentados). # 159668 "> aqui do MacOSX. Estou usando o QEMU.

No entanto, as partições no meu cartão SD não são reconhecidas corretamente : quando eu uso o arquivo * .img, o QEMU detecta as partições. Isso não acontece quando eu uso o cartão SD. Como o MacOSX não pode montar o ext4 nativamente, tentei instalar o osxfuse e o fusível-ext2. Agora eu posso montar meu sistema de arquivos ext4 sem problemas usando:

$ mount -t fuse-ext2 /dev/disk2s5 /mnt/sda5

Executando o QEMU, eu tento especificar o sistema de arquivos com rootfstype=fuse-ext2 , mas o QEMU ainda não detecta as partições. Na verdade, seja o que for que eu coloquei neste campo rootfstype , recebo o mesmo erro:

VFS: Cannot open root device "sda5" or unknown-block(8,5): error -6
Please append a correct "root=" boot option; here are the available partitions:
0b00         1048575 sr0  driver: sr
1f00           65536 mtdblock0  (driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(8,5)
CPU: 0 PID: 1 Comm: swapper Not tainted 3.10.26+ #2

Mais detalhes

Usando o seguinte comando, posso emular minha imagem Pi ( *.img ) com êxito (tanto do Arch Linux quanto do MacOSX :

$ qemu-system-arm -kernel path/to/kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "console=ttyAMA0 root=/dev/sda5 rootfstype=ext4 rw" -hda /path/to/ArchLinuxARM-2014.06-rpi.img

Eu posso emular meu sistema Pi do cartão SD quando eu executo o QEMU a partir do Arch Linux (como descrito em este link ):

$ qemu-system-arm -kernel /path/to/kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "console=ttyAMA0 root=/dev/sda5 rootfstype=ext4 rw" -hda /dev/sdd

Onde / dev / sdd é meu cartão SD reconhecido pelo Arch Linux. Então eu tento executar o mesmo de MacOSX , da seguinte forma:

$ qemu-system-arm -kernel path/to/kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "console=ttyAMA0 root=/dev/sda5 rootfstype=fuse-ext2 rw" -hda /dev/disk2

(Observe que eu usei "fuse-ext2", que é um terceiro no MacOSX).

Desta vez partições não são detectadas e eu recebo o erro copiado acima.

Executando o arquivo *.img em vez do cartão SD, três partições são detectadas: sda1 , sda2 , sda5 .

    
por JonesV 01.10.2014 / 23:43

2 respostas

1

O erro é dizer que o seu cartão SD não está sendo visto ou está sendo apresentado incorretamente, então este não é um problema partição .

Verifique seu comando QEMU para a instância do sdcard e tente novamente.

    
por 02.10.2014 / 02:19
1

Eu tenho o mesmo plano que você para usar o QEMU para emular o sistema do cartão SD no OS X. Além disso, encontrei o mesmo problema com você e me deparo com a mesma situação.

Até que encontrei este documento . No 3.6.6.3 Mac OS X, não há opções para discos rígidos.

‘/dev/cdrom’ is an alias to the first CDROM.

Currently there is no specific code to handle removable media, so it is better to use the change or eject monitor commands to change or eject media.

Acho que é por isso que sempre falhamos em emular o sistema do cartão SD.

    
por 18.02.2015 / 13:52