MINI2440でのSDカードブート
2009-08-20


禺画像]

u-boot1.3.2でのSDカードブートが出来ない問題とは本質的には関係ないと思いつつ、新しいカーネルソースを取得してビルド、SDカード書き込みでブートできましたので、おさらいも含めて書いておきます。

SDカードの諸元

USBリーダ経由でMicroSDカードをfdiskで参照したパーティションの状況です。

ディスク /dev/sdd: 2007 MB, 2007498752 バイト
ヘッド 64, セクタ 63, シリンダ 972
Units = シリンダ数 of 4032 * 512 = 2064384 バイト
Disk identifier: 0x00000000

デバイス ブート     始点        終点    ブロック   Id システム
/dev/sdd1               1         103      207616+   6  FAT16
/dev/sdd2             104         815     1435392   83  Linux
/dev/sdd3             816         972      316512   82  Linux  スワップ / Solaris

u-bootのビルド

もともと預った時点のNAND Flashの状態のu-bootを使用していますが、[URL]にある手順のとおりにソース取得、ビルド可能です。

クロス環境は一貫しておいた方が良いので、カーネルビルドも含めて正式サイトで紹介されているarm-linux-gcc-4.3.2.tgzをそのまま使っています。 以下はubootソースコードの取得状況です。

$ git clone git://repo.or.cz/u-boot-openmoko/mini2440.git
Initialized empty Git repository in /media/mini2440/uboot/mini2440/.git/
remote: Counting objects: 57585, done.
remote: Compressing objects: 100% (11111/11111), done.
remote: Total 57585 (delta 46282), reused 57433 (delta 46146)
Receiving objects: 100% (57585/57585), 24.42 MiB | 208 KiB/s, done.
Resolving deltas: 100% (46282/46282 done.
Checking out files: 100% (5232/5232), done.
$ 

続いて、コンパイル。

出来上がったubootのイメージ(u-boot.bin)のNAND領域への書き込みはsuperviviで[a]を選択して、DNWよりダウンロードする方法で可能です。 ただし、この方法での書き込みではsaveenvで設定値の保存ができませんでしたのできちんとNAND Flashの構成を考えて設定し直しが必要だと思います。 とりあえず私はバックアップしてあったイメージをNAND Flashに書き込んだ上で、カーネルとルートファイルシステムを上書きした状態にして作業を行っています。

u-bootの設定

おさらいで、u-bootの設定も確認しておきます。

MINI2440 # printenv
bootdelay=3
baudrate=115200
ethaddr=08:08:11:18:12:27
ipaddr=10.0.0.111
serverip=10.0.0.4
netmask=255.255.255.0
usbtty=cdc_acm
mtdparts=mtdparts=mini2440-nand:256k@0(u-boot),128k(env),5m(kernel),-(root)
mini2440=mini2440=0tb
bootargs_base=console=ttySAC0,115200 noinitrd
bootargs_init=init=/sbin/init
root_nand=root=/dev/mtdblock3 rootfstype=jffs2
root_mmc=root=/dev/mmcblk0p2 rootdelay=2
root_nfs=/mnt/nfs
set_root_nfs=setenv root_nfs root=/dev/nfs rw nfsroot=${serverip}:${root_nfs}
ifconfig_static=run setenv ifconfig ip=${ipaddr}:${serverip}::${netmask}:mini2440:eth0
ifconfig_dhcp=run setenv ifconfig ip=dhcp
ifconfig=ip=dhcp
set_bootargs_mmc=setenv bootargs ${bootargs_base} ${bootargs_init} ${mini2440} ${root_mmc}
set_bootargs_nand=setenv bootargs ${bootargs_base} ${bootargs_init} ${mini2440} ${root_nand}
set_bootargs_nfs=run set_root_nfs; setenv bootargs ${bootargs_base} ${bootargs_init} ${mini2440} ${root_nfs} ${ifconfig}
mtdids=nand0=mini2440-nand
bootargs=console=ttySAC0,115200 root=/dev/mmcblk0p2 init=/init rootfstype=ext3 rw mini2440=0tb rootdelay=3 nohz=off noinitrd
bootcmd=mmcinit; fatload mmc 0:1 0x32000000 uImage.bin; bootm 0x32000000
partition=nand0,0
mtddevnum=0
mtddevname=u-boot

Environment size: 1209/65532 bytes
MINI2440 #

SDブートできない状況

オリジナルの2.6.29カーネルをext3対応に拡張してビルドして、mkimageで変換したものをSDカードに書いたものでブートした状況は以下です。



続きを読む

[組込み]
[linux]
[mini2440]

コメント(全0件)
コメントをする


記事を書く
powered by ASAHIネット