u-boot1.3.2での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
もともと預った時点の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の設定も確認しておきます。
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 #
オリジナルの2.6.29カーネルをext3対応に拡張してビルドして、mkimageで変換したものをSDカードに書いたものでブートした状況は以下です。
セコメントをする