« SheevaPlug SDカードからの起動 | トップページ | SheevaPlug SDカードと内蔵フラッシュを疑似マルチブート »

2009年8月24日 (月)

SheevaPlug SDカードからの起動 その2

前回はrootファイルシステムのみSDカード、カーネルイメージは内蔵フラッシュという少し中途半端なところまでしかいけませんでした。
ということでリベンジです。今度こそSDカードのみで使えるようにしてみたいと思います。

  1. 内蔵フラッシュからOSを起動します。
  2. SDカードをセットし、パーティション作成します。(今回は/bootを256MB, swapを512MB, 残りを/にします。)
    # fdisk /dev/mmcblk0
    Command (m for help): o
    Command (m for help): n
    Command action p
    Partition number (1-4): 1
    First cylinder (1-2046, default 1):
    Last cylinder, +cylinders or +size{K,M,G} (1-2046, default 2046): +256M

    Command (m for help): n
    Command action p
    Partition number (1-4): 2
    First cylinder (136-2046, default 136):
    Last cylinder, +cylinders or +size{K,M,G} (136-2046, default 2046): +512M

    Command (m for help): n
    Command action p
    Partition number (1-4): 3
    First cylinder (405-2046, default 405):
    Last cylinder, +cylinders or +size{K,M,G} (405-2046, default 2046): そのまま[Enter]

    Command (m for help): t
    Partition number (1-4): 2
    Hex code (type L to list codes): 82

    Command (m for help): w
    Command (m for help): q
  3. フォーマットします。
    # mkfs -t ext2 /dev/mmcblk0p1
    # mkfs -t ext2 /dev/mmcblk0p3
    # mkswap /dev/mmcblk0p2
  4. 前々回カーネルを更新したときのsheeva-2.6.30.5-uImageを/bootになる領域にコピーします。(前回/rootで作業したため、sheeva-2.6.30.5-uImageは/rootに残っています。)
    # mount /dev/mmcblk0p1 /mnt/sdcard
    # cp -p /root/sheeva-2.6.30.5-uImage /mnt/sdcard
    # umount /mnt/sdcard
  5. rootファイルシステムをSDカードにコピーします。
    # mount /dev/mmcblk0p3 /mnt/sdcard
    # cp -ax / /mnt/sdcard
    # cp -a /dev /mnt/sdcard
    # umount /mnt/sdcard
  6. リブートしてubootに移行したあと、環境変数を設定します。
    Marvell>> set bootargs 'console=ttyS0,115200 mtdparts=orion_nand:0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs)rw root=/dev/mmcblk0p3 rootfstype=ext2 rootdelay=3'
    Marvell>> set bootcmd 'mmcinit; ext2load mmc 0:1 0x800000 /sheeva-2.6.30.5-uImage; bootm 0x800000'
  7. OSを起動します。
    Marvell>> boot
  8. OSを起動後、swapを有効にします。(2009/10/14デバイス名修正)
    # swapon /dev/mmcblk0p2
  9. swap,/bootをfstabに追加します。(2009/8/25追記)
    # mkdir /boot
    # vi /etc/fstab
    /dev/mmcblk0p2 swap  swap defaults 0 0
    /dev/mmcblk0p1 /boot ext2 defaults 0 0

今度はbootargsのmdtpartsを設定したため、OS起動時に uncorrectable error : <3>uncorrectable errorが出ません。心なしか起動も速いような感じがします。

また、bootcmdで使用しているext2loadコマンドですが、こちらによると引数は以下のような意味があるようです。

mmc インターフェイス (mmcはSDカードを指す)
0:1 デバイス番号(0~):パーティション番号(1~)  (デバイス0のパーティション1を指す)
0x800000 ロードするアドレス
/sheeva-2.6.30.5-uImage ロードするファイル名

また、Plug Wikiのこちらの記事も参考になります。

|

« SheevaPlug SDカードからの起動 | トップページ | SheevaPlug SDカードと内蔵フラッシュを疑似マルチブート »

SheevaPlug」カテゴリの記事

コメント

たびたびすみません。
ひとつお伺いしたいのですが、8番の
# swapon /dev/mmcblk0p
のところ、エラーになってしまいます。
解決は致しましたが、ご確認のほど宜しくお願いいたします。

投稿: ふりー | 2009年10月14日 (水) 02:04

ご指摘ありがとうございました。
修正しました。

投稿: xeon | 2009年10月14日 (水) 21:17

コメントを書く



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




« SheevaPlug SDカードからの起動 | トップページ | SheevaPlug SDカードと内蔵フラッシュを疑似マルチブート »