Ubuntu Weekly Recipe

第70回 GW特別企画・電源プラグ型コンピューターSheevaPlugの使い方(2):インストール編

この記事を読むのに必要な時間:およそ 7.5 分

NANDからのブート

ここまででNAND領域にカーネル(uImage)とルートファイルシステムを導入できたので,あとはNANDからの起動を行うだけです。……ですが,その前に,uBootのアップデートを行っておきましょう。

uBootのアップデート

SheevaPlugのNANDに格納されたuBootは,本体の出荷時期によっていくつかのバージョンがあるようです。最新版は4月9日版で,uBootの起動時に以下のような出力が得られるものです。これ以外に,4月2日版・3月19日版が存在するようです。これらの古いuBootにはいくつかの問題がありますので,お使いのものが該当する場合はアップデートを行ってください注4)⁠

U-Boot 1.1.4 (Apr  9 2009 - 12:23:12) Marvell version: 3.4.16
注4
前回の画面を見て頂くとわかる通り,筆者の所持しているSheevaPlugは3月19日版のuBootが入ったもので,再起動を繰り返しているとuImageのCRCが合わなくなる(=起動不能になる)⁠RTCを記録してくれない・まれにuBootが起動してこない,といった問題を抱えていました。

アップデートのために,まず「U-Boot」アーカイブをダウンロードして,母艦のtftp領域に「u-boot-rd88f6281Sheevaplug_400db_nand.bin」を配置します。

$ unzip SheevaPlug_U-Boot.zip
$ cd SheevaPlug_U-Boot/U-Boot\ -\ Image/
$ sudo cp u-boot-rd88f6281Sheevaplug_400db_nand.bin /var/lib/tftpboot/

NFS Rootから起動するように設定したSheevaPlug注5のuBoot上で,以下のコマンドを実行します。確認プロンプトが表示されますので「y」で答えてください。

Marvell>> bubt u-boot-rd88f6281Sheevaplug_400db_nand.bin

uBootがアップデートされると,直前に設定した各種変数の値(saveenvで保存した値)は失われます。新しいuBootが反映されるか確認するため,念のため一度筐体の電源を抜き,再起動しておいた方がよいでしょう。

注5
NFS Rootから起動するように設定することは必須ではありません。IPアドレス・TFTPサーバーのアドレスなどが指定されていればbubtコマンドは機能します。

NANDからの起動

Ubuntuのインストールが完了し,uBootのアップデートも完了したら,uBootに次のように入力し,NANDにあるuImageから起動するように指定します。

Marvell>> setenv bootcmd 'nand read.e 0x800000 0x100000 0x400000; bootm 0x800000'
Marvell>> setenv bootargs 'console=ttyS0,115200 mtdparts=nand_mtd:0x100000@0x000000(u-boot),0x400000@0x100000(uImage),0x1f800000@0x500000(rootfs)rw root=/dev/mtdblock2'
Marvell>> saveenv

あとは,⁠boot」を入力すれば,Ubuntuが起動するはずです注6)⁠コンソールにログインプロンプトが表示されたら(起動しきるまでにそれなりの時間がかかりますので,じっくり待ってください)⁠ユーザー名「root」⁠パスワードに「nosoup4u」を入力することでログインできるはずです。

注6
ここまで設定を終えてしまえば,SheevaPlugに電源を入れるたびに自動的にNANDからブートするようになります。以降はNANDから起動するためにわざわざ操作を行う必要はありません。

インストール後の初期設定

ここまでで(あるいは,ロットによっては出荷時から)Ubuntuのファイルシステムを導入し,正しくシステムが起動する状態になっています。この状態のSheevaPlugは,ほぼ通常のUbuntu Serverと同じ手順で扱える状態です。が,ルートファイルシステムとして利用できる容量が少ないことと,⁠開発者キットなので)設定がこなれていないことから,日常的な操作を行うにはさらに設定を行う必要があります。

ここからは,初期設定の手順を紹介します。

時計合わせ・タイムゾーンの設定

設定の最初に,時刻合わせを行いましょう。SheevaPlugの出荷時点では内蔵クロックに2009/01で始まる日付が投入されており,日付の再設定を行うまでは日時がズレたままになってしまうはずです注7)⁠

時計合わせのための設定は,二段階に分けて行います。はじめに,uBoot側でdateコマンドを用い,RTCの日付を大まかに合わせます。

注7
これもやはり初回ロット特有の問題で,現在入手できるものでは問題ないかもしれません。
Marvell>> date 0501134309
Date: 2009-05-01 (Friday)    Time: 13:43:00
Marvell>> saveenc

dateコマンドのフォーマットは,⁠MMDDhhmmyy」です。たとえば,2009年5月2日 12:34であれば,⁠0502123409」となります。ただし,ここで設定する時刻は,UTCにしておく方が無難です。日本時間から9時間引いた値をセットしてください。実際の時間が2009年5月2日 12:34ならUTCでは03:34ですので,セットすべきは「0502033409」です。ここでセットする時刻は,⁠大まかなもの」⁠日常生活で支障のない程度に「合っている」時計の時刻)で構いません。

この状態でSheevaPlugをブートし,Ubuntu上でNTPパッケージを導入し,ntpqコマンドで動作を確認します。

# apt-get install ntp
# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*europium.canoni 193.79.237.14    2 u  560 1024  377  254.328    4.202   4.745

これによりntpdが起動時に実行され,⁠きちんとした」時刻がセットされるようになります。ただしこのままではUTCのまま(日本時間から9時間ずれたまま)ですので,以下のコマンドでタイムゾーンを日本にセットしてください。

# dpkg-reconfigure tzdata

Current default timezone: 'Asia/Tokyo'
Local time is now:      Sat May  9 01:27:34 JST 2009.
Universal Time is now:  Fri May  8 16:27:34 UTC 2009.

メニューが表示されますので,Asia => Tokyo と選択することで,タイムゾーンが日本にセットされます。例のように,⁠Current default timezone: 'Asia/Tokyo'」が出力されることを確認してください。

著者プロフィール

吉田史(よしだふみひと)

Ubuntu Japanese Team Member株式会社創夢所属。システム管理を中心にWindows/PC Unixを併用している。Ubuntu Japanese Teamではパッケージサーバの管理や翻訳などの作業を担当。

コメント

  • 誤字の件

    ご迷惑をおかけいたしまして,申し訳ございませんでした。
    ご指摘のとおり,「?p」ではなく「-p」が正しい引数の書き方でした。

    本文もあわせて修正させていただきました。
    今後とも本連載をよろしくお願いいたします。

    Commented : #3  gihyo.jp編集部 (2009/10/23, 15:17)

  • コマンドの確認をお願いします。

    たびたびすみません。
    その後、いろいろと試行錯誤・確認をしていたところ、掲載記事内にあるコマンドに誤字と思われる箇所を発見しました。

    uImageとルートファイルシステムを書き込み
    uImageの書き込み
    # cd /
    # /usr/sbin/flash_eraseall -j /dev/mtd1
    # /usr/sbin/nandwrite ?p /dev/mtd1 /uImage.sheeva.040309

    3行目のnandwriteの引数が「?」ではなく、「-」だと思われますが、いかがでしょうか?
    ご確認のほど宜しくお願いいたします。

    Commented : #2  ふりー (2009/10/22, 00:22)

  • 第70回 GW特別企画・電源プラグ型コンピューターSheevaPlugの使い方(2):インストール編

    いつも助かっております。
    ここまではうまくインストールできたのですが、その後u-bootが起動しません。
    おそらくu-bootの設定だろうと思うのですが、ご助言いただければと思います。
    よろしくお願いいたします。

    Commented : #1  ふりー (2009/10/20, 16:41)

コメントの記入