2009/10/02

Sheevaplug USBブート

SheevaplugでUSBメモリからブートする方法を紹介します。
○USBブート(OSのみ)
・ブート用USB作成します。
    私は8GBのUSBメモリを2つのパーティションに分割し7.5GBをext2,512MBをswapにフォーマットして作業を行いました。
  1. ファイルシステムを展開します。
  2. OSは好きなものを選んで展開してください。ここではNANDからファイルシステムをコピーします。
    # mount /dev/sda1 /mnt
    # rsync -avx // /mnt/
    # cp -ax /dev/* /mnt/dev
    # reboot

  3. 環境変数を変更してブートします。
  4. Marvell>> setenv bootargs console=ttyS0,115200 mtdparts=nand_mtd:0x400000@0x100000(uImae),0x1fb00000@0x500000(rootfs) rw root=/dev/sda1 rootdelay=10 panic=10
    Marvell>> boot

    カーネルが2.6.30系である場合はbootargs設定時に"namd_mtd"を"orion_nand"に変更してください。 また,次回からUSBブートをデフォルトにする場合はsaveenvしてください。
  5. ログインしたらswapを有効にします。
  6. # swapon /dev/sda2
  7. fstabを編集します。
  8. # vi /etc/fstab
    次を追加します。
    /dev/sda1 / ext2 errors=remount-ro 0 1
    /dev/sda2 swap swap defaults 0 0

この作業だけではカーネルはNANDから呼び出しているのでカーネルもUSBから呼び出すよう設定します。
○USBブート(カーネル込み)
・カーネルのインストール
  1. カーネルイメージとカーネルモジュールを取得します。
  2. まずNANDからブートし,ログインします。 なお,ここではカーネル2.6.30.7を使用します。
    # wget http://sheeva.with-linux.com/sheeva/2.6.30.7/sheeva-2.6.30.7-uImage
    # wget http://sheeva.with-linux.com/sheeva/2.6.30.7/sheeva-2.6.30.7-Modules.tar.gz

  3. USBメモリにカーネルをインストールします。
  4. # mount /dev/sda1 /mnt
    # cp sheeva-2.6.30.7-uImage /uImage
    # tar zxvf sheeva-2.6.30.7-Modules.tar.gz -C /mnt

  5. リブートし,U-Bootの環境変数を変更します。
  6. Marvell>> setenv bootargs console=ttyS0,115200 mtdparts=orion_nand:0x400000@0x100000(uImae),0x1fb00000@0x500000(rootfs) rw root=/dev/sda1 rootdelay=10 panic=10 init=/bin/bash
    Marvell>> setenv bootcmd 'usb start; ext2load usb 0:1 0x8000000 /uImage; bootm 0x8000000'
    Marvell>> setenv mainlineLinux yes
    Marvell>> setenv arcNumber 2097
    setenv cesvcid ULULULULULULPPULULULULULDA
    Marvell>> boot

SDカードからカーネルをブートするためにはU-Bootの改造が必要なようなのでまた今度にします。

0 件のコメント:

コメントを投稿