« SheevaPlug カーネル更新 | トップページ | SheevaPlug SDカードからの起動 その2 »

2009年8月24日 (月)

SheevaPlug SDカードからの起動

一度更新したubootですが、SDカードからの起動に対応していないため、対応版に更新します。 本来はこのあたりを参考にubootのパッチ当てと再コンパイルが必要なのですが、Windowsマシンで作業しているため、「Hisao's blog」さんがこちらで公開されているコンパイル済みのバイナリを使用させていただきます。 手順としては以下の通りです。

  1. 上記で公開されているコンパイル済みのバイナリをダウンロードし、u-boot-rd88f6281Sheevaplug_400db_nand-sd.binにリネームします。
  2. 前回と同じようにtftpd32のCurrent Directoryで設定したディレクトリにコピーします。
  3. 前回と同じようにXPマシンとクロスケーブルで接続して起動し、IPアドレスを設定します。
  4. ubootを更新します。
    Marvell>> bubt u-boot-rd88f6281Sheevaplug_400db_nand-sd.bin
    Using egiga0 device
    TFTP from server 192.168.2.222; our IP address is 192.168.2.10
    Filename 'u-boot-rd88f6281Sheevaplug_400db_nand-sd.bin'.
    Load address: 0x2000000
    Loading: #################################################################
             ###########################
    done
    Bytes transferred = 470920 (72f88 hex)

    **Warning**
    If U-Boot Endiannes is going to change (LE->BE or BE->LE), Then Env parameters should be overriden..
    Override Env parameters? (y/n) n  ← nを入力
    Erase 0 - 655360 ...
    Copy to Nand Flash...
    done
  5. 再起動します。
    Marvell>> reset
  6. 再度ubootに入りバージョンを確認します。(ビルド日付が2009/8/22になっているはずです。)
    Marvell>> version
    U-Boot 1.1.4 (Aug 22 2009 - 11:36:42) Marvell version: 3.4.16
  7. 内蔵フラッシュからOSを起動します。
    Marvell>> boot

ubootが更新できたら、内蔵フラッシュのファイルをSDカードにコピーし、SDカードからブートできるようにします。

  1. SDカード(私の場合は4GBを使用)をスロットに差し込みます。
  2. SDカードを認識しているか/var/log/messagesを確認します。(mmcblk0が認識されているはずです。)
  3. SDカードにパーティションを作成します。
    # fdisk /dev/mmcblk0
  4. 私の場合は、/で2GB, swapで512MB, 残りをWeb serverコンテンツ用(/www)にしました。
  5. SDカードをフォーマットします。
    # mkfs -t ext2 /dev/mmcblk0p1
    # mkfs -t ext2 /dev/mmcblk0p3
    # mkswap /dev/mmcblk0p2
  6. SDカードをマウントして内蔵のフラッシュメモリの内容をコピーします。
    # mkdir /mnt/sdcard
    # mount /dev/mmcblk0p1 /mnt/sdcard
    # cp -ax / /mnt/sdcard
    # cp -a /dev /mnt/sdcard
  7. リブートしてubootに入ります。
  8. bootargsを変更し、SDカードからブートします。
    Marvell>> setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p1
    Marvell>> boot
  9. OS起動後、dfで/の容量を確認します。
  10. swapを有効にします。
    swapon /dev/mmcblk0p2
  11. /dev/mmcblk0p3を/wwwにマウントするようにします。
    # mkdir /www
    # vi /etc/fstab
    /dev/mmcblk0p3 /www ext2 rw 1 1
  12. swapをfstabに追加します。(2009/8/25追記)
    # vi /etc/fstab
    /dev/mmcblk0p2 swap  swap defaults 0 0
  13. リブートして確認します。(ubootに入った後、bootargsを15の通りに設定してからbootして下さい。そのままbootすると内蔵のフラッシュメモリからbootします。)

これでSDカードからブートできるようになりました。SDカードからのブートをメインにする場合は、bootargsを変更後、saveenvで保存して下さい。
なお、起動時に uncorrectable error : <3>uncorrectable errorなどが表示されるようです。もう少し修正が必要なのかもしれません。

2009/08/24 追記
どうやら、この設定ではカーネルイメージは内蔵フラッシュから読み込んでいるようです。(bootcmdがnand readのままのため) 出直してきます...

|

« SheevaPlug カーネル更新 | トップページ | SheevaPlug SDカードからの起動 その2 »

SheevaPlug」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




« SheevaPlug カーネル更新 | トップページ | SheevaPlug SDカードからの起動 その2 »