qemu-system-arm

さて昨日の続き。
昨日は「versatileab」のエミュレーションが出きることが分かった。

今日は:

の2点が出来れば御の字かな?

既に23:00過ぎたし。

kernel準備

  • サンプルはlinux-2.6.25だったので分かりやすくlinux-2.6.28を準備。
  • Toolchainはいつもの(?)CodeSourcery

環境変数設定し、とりあえず versatile用に:

$ export ARCH=arm
$ export CROSS_COMPILE="arm-none-linux-gnueabi-"
$ make -C $KERNEL_SRC O=`pwd` versatile_defconfig

その後、調整:

$ make menuconfig

サンプルではzImageで起動していたのでまずはzImage作成

$ make zImage

新しくできたzImageに差し替えて起動

takino@delphinus-iv:~/linux-arm/Targets/versatileab-qemu$ ./boot-qemu.sh Uncompressing Linux......................................................................................... done, booting the kernel.
Linux version 2.6.28 (takino@delphinus-iv) (gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72) ) #1 Tue Feb 24 00:29:28 JST 2009

kernel差し替えOK。

VFS: Unable to mount root fs via NFS, trying floppy.
VFS: Cannot open root device "sda1" or unknown-block(2,0)
Please append a correct "root=" boot option; here are the available partitions:
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)

configは調整の必要ありということで。

ひとまず次へ。

rootfs

昨日のサンプルページ http://itpro.nikkeibp.co.jp/article/COLUMN/20080724/311461/?ST=develop&P=2

には:

  losetup -o 32256 /dev/loop1 /home/em-linux/qemu-images/
  rootfs.img
  mount -t ext2 /dev/loop1 /mnt

なんか回りくどく見えるが rootfs.img が少々特殊なイメージファイルと見るべきか。

直マウント試験:

  takino@delphinus-iv:~/qemu-arm$ sudo mount -t ext2 -o loop rootfs.img ./tmp
  [sudo] password for takino: 
  mount: wrong fs type, bad option, bad superblock on /dev/loop0,
         missing codepage or helper program, or other error
         In some cases useful info is found in syslog - try
         dmesg | tail  or so
  
takino@delphinus-iv:~/qemu-arm$

ということで、詳細は後回しとして通常のinitrdではないことがわかった。

睡魔が来たのでまた次回...