[Armadillo:03254] Re: SDカードから起動したい

Makoto Endo email@hidden
2008年 8月 12日 (火) 14:37:28 JST


nakaiさま

遠藤です。

MMC/SDからカーネルのロードはできない
のですね。

ありがとうございました。

> 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 mailing list
> email@hidden
> http://lists.atmark-techno.com/mailman/listinfo/armadillo
> 

**********************************************************
:エル・エス・アイ ジャパン(株) (LSI Japan Co., Ltd. Tokyo, Japan)
:通信事業部 技術部
:遠藤   誠                    (Makoto Endo)
:TEL    03-3404-2843     (phone  +81-3-3404-2843)
:FAX   03-3478-0576
:E-mail  email@hidden
**********************************************************





armadillo メーリングリストの案内