Sheeva Plug の USB からの起動に関するページです。

起動用 USB デバイスの用意

Debian lenny tar ball for SheevaPlugの内容にしたがって起動用 USB デバイスを用意する。嵩張るし、ここによれば、デフォルトの U-Boot では USB ディスクからの起動に失敗する場合があるそうなので、USB メモリスティックを用いる。

パーティション割りとフォーマット

4GB のメモリスティックの先頭 3GB を ext3 に、残り 1GB をスワップに割り当てて、それぞれフォーマットしておく。

$ sudo fdisk /dev/sdg		←デバイス名は条件により変わる

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1       36370     2909584   83  Linux
/dev/sda2           36371       48870     1000000   82  Linux swap / Solaris

$ sudo mkfs.ext3 /dev/sdg1
$ sudo mkswap /dev/sdg2

root system の展開

SheevaPlug の NAND flash から取り出したものなり、他のディストリビューションの root イメージなりを、先ほどフォーマットした USB メモリスティックに展開する。ここでは、Debian lenny tar ball for SheevaPlugで提供されている、Debian Lenny の root system を用いた例を示す。

$ sudo mkdir /mnt/root
$ sudo mount -t ext3 /dev/sdg1 /mnt/root
$ wget http://people.debian.org/~tbm/sheevaplug/lenny/base.tar.bz2
$ sudo tar jxvf base.tar.bz2 -C /mnt/root

しかし、ここで提供されている initrd を用いた方法ではうまく起動できなかったので、http://sheeva.with-linux.com/sheeva/で提供されている kernel-2.6.30.5 を用いた。

$ sudo rm -f -r /mnt/root/boot/*
$ sudo rm -f -r /mnt/root/lib/modules/2.6.29-2-kirkwood
$ wget http://sheeva.with-linux.com/sheeva/2.6.30.5/sheeva-2.6.30.5-uImage
$ wget http://sheeva.with-linux.com/sheeva/2.6.30.5/sheeva-2.6.30.5-Modules.tar.gz
$ sudo cp -p sheeva-2.6.30.5-uImage /mnt/root/boot
$ sudo tar jxvfp sheeva-2.6.30.5-Modules.tar.gz -C /mnt/root

各種設定

ファイルシステムやネットワークなどの設定を行う。

  • /etc/fstab
    今回は、以下のように設定する。
    # <file system> <mount point>   <type>  <options>               <dump>  <pass>
    proc            /proc           proc    defaults                0       0
    /dev/sda1       /               ext3    errors=remount-ro       0       1
    #/dev/sda1      /boot           ext2    defaults                0       2
    /dev/sda2       swap            swap    defaults                0       0

確認できれば、アンマウントして、USB メモリスティックを PC から取り外す。

$ sudo umount /dev/sdg1

とりあえず起動のテストをしてみて、うまくいくようなら、sheeva-2.6.30.5-uImage を uImage にシンボリックリンクを張ればよい。

U-Boot の環境変数の設定と起動

USB から起動出来るように、U-Boot の環境変数を設定する。後々マルチブートすることを考慮に入れて、bootcmd 変数を直接書き換えることはしない。

Marvell>> setenv console_base console='ttyS0,115200 mtdparts=orion_nand:0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs) rw'
	←console変数はリブートすると勝手に初期化されるので、別変数を設定
Marvell>> setenv loadaddr 0x0800000
Marvell>> setenv bootargs_usb 'root=/dev/sda1 rootfstype=ext3 rootdelay=10'
Marvell>> setenv bootusb 'usb start; ext2load usb 0:1 $(loadaddr) /boot/$(image_name)'
Marvell>> setenv bootcmd_usb 'setenv bootargs $(console_base) $(bootargs_usb); run bootusb; bootm $(loadaddr)'
Marvell>> saveenv
Marvell>> setenv image_name sheeva-2.6.30.5-uImage		←一時的な変更
Marvell>> run bootcmd_usb

正常に起動するのが確認できたら、/boot/sheeva-2.6.30.5-uImage を /boot/uImage にシンボリックリンクを張っておく。

# cd /boot
# ln -s sheeva-2.6.30.5-uImage uImage

参考


トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-09-06 (日) 18:59:58 (3357d)