Skip to content

Instantly share code, notes, and snippets.

@kjunichi
Last active December 20, 2015 03:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kjunichi/6067532 to your computer and use it in GitHub Desktop.
Save kjunichi/6067532 to your computer and use it in GitHub Desktop.

QEMUでRaspberry Piを動かす

なんらかのqemu向けのカーネルが必要な模様

Raspberry Piで動いているSDカードのカーネルだと動かない。 また、ファイルシステムもext4だとNG?

ext4には対応していた?

Assertion failed: (QTAILQ_EMPTY(&s->queue)), function lsi_soft_reset, file hw/scsi/lsi53c895a.c, line 351.
Abort trap: 6

次の一手

どうやら先頭32KはRaspberry Piのブートローダー?のコードが追加されて kernel.imgは出来ている模様

dd if=kernel.img bs=1k skip=32 of=Image

ブートローダ入りの場合

/bootが各ディストリビューション向けのvfat領域がマウントされる模様

インストールイメージを動かしたいわけではない

カーネルイメージは/bootのkernel.imgでダメなのか?

帰ってすぐに試したい

qemu-system-arm -kernel kernel.img -cpu arm1176 -m 512 -M versatilepb -no-reboot -serial stdio -append "root=/dev/mmcblk0p6" -hda 20130722.img 

学んだこと

/bootはvfat領域

Raspberry Piはvfat領域しか読めないってこと liloみたいにMBRに書き込むとかしないでOKで。 /bootにkernel.imgを置いてリブートするだけのお手軽さ

つまり、ブートローダが導入される以前のSDカードの場合

  • そいつをPCに挿入。
  • vfatな領域が見えるので、kernel.imgをコピー 
  • cmdline.txtよりroot=/dev/ の箇所をメモ。
  • umountしてからddで吸出し、.imgファイルを作成
  • rootのメモをもとにQEMUの引数を指定

cmdline.txt

cat cmdline.txt                                        
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1
 root=/dev/mmcblk0p6 rootfstype=ext4 elevator=deadline rootwait

関連Gist

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment