[Armadillo:03253] Re: SDカードから起動したい
nakai
email@hidden
2008年 8月 12日 (火) 13:36:09 JST
nakaiです。
hermitではMMC/SDドライバが入っていないため、
Kernelを該当デバイスからロードすることはできません。
# USBも同様
hdaは、IDEドライバを実装しているからブート可能になってます。
MMC/SDでは、ルートファイルシステムのみ構築可能です。
Makoto Endo さんは書きました:
> 遠藤と申します。
> Armadillo-500を使用してます。
>
> SDカードからLinuxを起動したいため、以下の手順で
> SDカードのシステムを構築したのですが、Linuxカー
> ネルがFlash(フラッシュメモリ)からロードされて
> しまいます。
> ブートローダがカーネルイメージを見つける
> ことができずにFlashからロードしているのでしょうか?
> ご教授お願いいたします。
>
>
> *手順については、以下のHPを参考にさせて頂きました。
> http://armadillo.atmark-techno.com/articles/sd-a500-embedded-course-ch7-1
>
> *使用しているSDカードは以下の物です
> SanDisk: ExtremeIII 2GB
>
> *手順
>
> 1.fdiskコマンドでSDカードに以下のパーティションを作成。
>
> Device Boot Start End Blocks Id System
> /dev/mmcblk0p1 1 978 31288 83 Linux
> /dev/mmcblk0p2 979 61264 1929152 83 Linux
>
> 2.ファイルシステムの作成
> 以下の設定で作成します。
>
> パーティション | サイズ | ファイル| システム用途
> ---------------+--------+---------+-------------
> 1 32M ext2 カーネルイメージ用
> 2 1.9G ext3 ルートファイルシステム用
> ---------------+--------+---------+-------------
>
> 2.1 カーネルイメージ用ファイルシステムの作成
>
> #mke2fs -O none /dev/mmcblk0p1
>
> 2.2 ルートファイルシステム用ファイルシステムの作成
>
> #mke2fs -j /dev/mmcblk0p2
>
>
>
> 3.ルートファイルシステムの構築
>
> #mount /dev/mmcblk0p2 /mnt
> #mkdir /mnt/work
>
> (/mnt/work にユーザランドイメージを転送)
>
> #gzip -dc romfs.img.gz > romfs.img
> # mkdir romfs
> # mount -t ext2 -o loop romfs.img romfs
> # (cd romfs; tar cf - *) | (cd /mnt; tar xf -)
> # sync
> # umount romfs
> # cd
> # umount /mnt
>
>
> 4.カーネルイメージの配置
>
> #mount /dev/mmcblk0p1 /mnt
> #mkdir /mnt/boot
>
> (/mnt/work にカーネルイメージを転送)
>
> # cd /mnt/boot
> # mv linux.bin.gz Image.gz
> # cd
> # umount /mnt
>
>
> 5.起動と設定
>
> 5.1 hermitのリコンパイル
> hermitの"setbootdevice"コマンドで、mmcblk0p1を指定できるように、
> 以下のようにソースを変更しコンパイル。その後hermitで"bootloader"に
> 書き込む。
>
> //hermit-at-1.1.9/src/target/armadillo5x0/board.c
> ------------------------------------------------------------
> static int
> setbootdevice_cmdfunc(int argc, char **argv)
> {
> /* initialize parameter: bootdevice, using default flash */
> if (!check_param("@bootdevice")) {
> char *c_argv[2] = {argv[0], "flash"};
> sethermit_param(2, c_argv, "@bootdevice");
> }
>
> if (argc > 1)
> if (strcmp(argv[1], "flash") != 0 &&
> strcmp(argv[1], "hda1") != 0 &&
> strcmp(argv[1], "hda2") != 0 &&
> strcmp(argv[1], "hda3") != 0 &&
> strcmp(argv[1], "hda4") != 0 &&
> strcmp(argv[1], "hda") != 0 &&
> strcmp(argv[1], "mmcblk0p1") != 0 )
> return -H_EINVAL;
>
> return sethermit_param(argc, argv, "@bootdevice");
> }
> ----------------------------------------------------------------
>
> 5.2 オプション設定
>
> hermit> setbootdevice mmcblk0p1
> hermit> setenv console=ttymxc0 noinitrd root=/dev/mmcblk0p2 rootdelay=2
>
> 以上です。
>
>
>
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/mailman/listinfo/armadillo
armadillo メーリングリストの案内