bc10/rowboat

SDカード boot

2010/07/06

rowboat-eclair-dsp でビルドしたファイル群を SDカードに配置し bc10 で起動するための手順です。

起動用SDカードの準備

http://code.google.com/p/rowboat/wiki/ConfigureAndBuild#Prepare_SD_card を参照して準備します。

ただし、起動に関しては bc10 独自のハードウェア仕様を理解しておく必要がありますので、予め以下の内容を読んでから作業を行ってください。
bc10/booting

起動用SDカードの作成

bc10/booting 起動用SDカード作成の手順で同じパーティション構成のものを作成しておきます。
パーティション構成はFAT32パーティションとLinuxパーティションです。
作成したSDカードを作業マシンにマウントします。(Ubuntu の場合は udev により自動でマウントされます。)
device 名を確認します。

$ mount
/dev/sda1 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
none on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
none on /dev type devtmpfs (rw,mode=0755)
none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
none on /dev/shm type tmpfs (rw,nosuid,nodev)
none on /var/run type tmpfs (rw,nosuid,mode=0755)
none on /var/lock type tmpfs (rw,noexec,nosuid,nodev)
none on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
gvfs-fuse-daemon on /home/beat/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=beat)
/dev/sdd2 on /media/LABEL2 type ext3 (rw,nosuid,nodev,uhelper=udisks)
/dev/sdd1 on /media/LABEL1 type vfat (rw,nosuid,nodev,uhelper=udisks,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,flush)

SDカードが必要なパーティション構成になっているか確認してください。

 $ sudo fdisk -l /dev/sdd

ディスク /dev/sdd: 1977 MB, 1977614336 バイト
ヘッド 255, セクタ 63, シリンダ 240
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0xfeda75ec 

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sdd1   *           1          51      409626    c  W95 FAT32 (LBA)
/dev/sdd2              52         240     1518142+  83  Linux

uImage の配置

FATパーティションに uImage をコピーします。(MLO、u-boot.bin、はすでに配置済みです。)

$ sudo cp ~/rowboat-eclair-dsp/kernel/arch/arm/boot/uImage /media/LABEL1/

rootfs の配置

ext3パーティションに android rootfs のアーカイブを展開します。

$ sudo tar jxfv out/target/product/beagleboard/rootfs.tar.bz2 --numeric-owner -C /media/LABEL2

boot.scr の作成

boot.scr を作成します。以下のページを参考にしています。
http://www.gumstix.net/wiki/index.php?title=U-Boot

boot.scr は起動時に u-boot が参照するファイルで、
これを用意しておくことで起動時にハードウェア設定などを行えます。

boot.script の作成とmkimage 実行

シリアルコンソールで u-boot のコマンドプロンプトから setenv で設定するのと同じ内容を作成しておけば、
起動時に毎回手動で設定する手間を省くことができます。
DVSDK DSP stack は物理メモリ領域 88M〜120M を使用するようになっていますので、
メモリマッピングを変えないよう設定します。

まず以下の内容の boot.script を作成します。

if fatload mmc 0 84000000 uImage
then
 echo ***** Kernel: /dev/mmcblk0p1/uImage.bin *****
fi
echo ***** RootFS: /dev/mmcblk0p2 *****
setenv bootargs 'mem=88M@0x80000000 mem=128M@0x88000000 androidboot.console=ttyS2 console=tty0 console=ttyS2,115200n8 root=/dev/mmcblk0p2 init=/init rootwait omapfb.video_mode=680x480MR-24@60'
bootm 84000000

このファイルを引数に指定して、以下のように mkimage を実行します。

$ mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n ./boot.script -d ./boot.script ./boot.scr &> /dev/null

生成された boot.scr をSDカードのFATパーティションにコピーします。

$ sudo cp boot.scr /media/LABEL1/

以上で rowboat-eclair-dsp 起動SDカードの作成は完了です。
最後に念のため sync して作業用PCからアンマウントします。

$ sync
$ sudo umount /media/LABEL1
$ sudo umount /media/LABEL2

BC::labsへの質問は、bc9-dev @ googlegroups.com までお願い致します。
トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   最終更新のRSS
Last-modified: 2010-07-08 (木) 21:54:19 (5463d)