Ubuntu Weekly Recipe

第69回 GW特別企画・電源プラグ型コンピューターSheevaPlugの使い方(1):基礎編

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

セットアップ

SheevaPlug Dev Kitの内容物を簡単に紹介しておきましょう。SheevaPlugを注文すると,外装の段ボール箱に包まれた状態で,図2のようなパッケージが届きます。サイズは「分厚いCDアルバム」程度です。

図2 SheevaPlug Dev Kitのパッケージ

図2 SheevaPlug Dev Kitのパッケージ

パッケージを開けると図3のような形で,メガネ電源ケーブル・USBケーブル(JTAG-UART接続用)⁠イーサネットケーブルが入っています。

紙でできた仕切りを持ち上げた状態が図4です。赤いエアクッションに包まれているのがSheevaPlugの本体です。

図3(左) SheevaPlug Dev Kit付属品,
図4(右) SheevaPlug Dev Kitの中身

図3 SheevaPlug Dev Kit付属品 図4 SheevaPlug Dev Kitの中身

図5図6図7は,電源プラグ・イーサネットポート&USB2.0ポート・USB-UART&SDIOポートを正面にして撮影したものです。

図5(左) 電源プラグ,
図6(中央) イーサネットポート&USB2.0ポート,
図7(右) USB-UART&SDIOポート

図5 電源プラグ 図6 イーサネットポート&USB2.0ポート 図7 USB-UART&SDIOポート

なお,SDIOポートは基本的にはJTAGまわりの操作をする際に用いるもので,SDカードを挿すと半分以上はみ出しますし,通常の利用は行えません。

インストール環境の準備

SheevaPlugには,デフォルトではOSがインストールされていません。このため,⁠母艦」としてLinuxマシンを準備し,次のような手順を追ってOSをNANDフラッシュにインストールする必要があります。

  1. UARTへ接続し,uBootを操作できる状態にする
  2. 「母艦」にtftp・NFSサーバーを準備する
  3. NFS Rootのためのファイルシステムの展開
  4. NFS RootによるBoot
  5. NANDフラッシュへのOSイメージの書き込み

今回は1と2を説明します。なお,Ubuntu 9.04が動作するx86/x64マシンを「母艦」として利用することを想定しているため,他のバージョンやディストリビューションを利用している方は適宜パッケージ等を読み替えてください。基本的には,tftpとNFSサーバーを準備でき,FTDI社のUSB-Serialコンバータを利用できるLinuxマシンであれば問題なく設定が行えるはずです(やろうと思えばWindows上で動作するSFU/SUAなどでtftp・NFSサーバを設定して利用することも不可能ではないと思われますが,お勧めしません)⁠

UARTの接続

まず最初に,UART(JTAGポート)へ接続し,uBootを操作できる環境を準備します。

SheevaPlugのマニュアル類には「Linuxマシンに加えてWindows PCを準備し,Windows PCに専用のドライバをインストールして利用する」注10といったことが書いてありますが,Linuxから接続することもできます。

SheevaPlugの側面にあるUSB MiniBのポートに,付属のUSBケーブル(黒いケーブル)を接続し,母艦のUSBポートと接続してください。

SheevaPlugのJTAGポートは,実際にはFTDIのUSB-Serialコンバータを流用して実装されています。Linuxからは単にUSB-Serialの一種として扱ってやれば良いのですが,USBのDeviceIDが既知のものと異なるため,ドライバがロードされません。そこで以下のように,ftdi_sioドライバにベンダID・プロダクトIDを指定してロードしてやります。

$ sudo modprobe ftdi_sio vendor=0x9e88 product=0x9e8f

これによりUARTデバイスがUSB-Serialポート(/dev/ttyUSB0, /dev/ttyUSB1)として見えるようになります。dmesgに以下のようなメッセージが出力されるはずです注11)⁠

[40112.635911] ftdi_sio ttyUSB1: FTDI USB Serial Device converter now disconnected from ttyUSB1
[153784.308076] usb 4-1: new full speed USB device using ohci_hcd and address 9
[153784.538567] usb 4-1: configuration #1 chosen from 1 choice
[153784.540576] ftdi_sio 4-1:1.0: FTDI USB Serial Device converter detected
[153784.540612] usb 4-1: Detected FT2232C
[153784.540690] usb 4-1: FTDI USB Serial Device converter now attached to ttyUSB0
[153784.545341] ftdi_sio 4-1:1.1: FTDI USB Serial Device converter detected
[153784.545377] usb 4-1: Detected FT2232C
[153784.545430] usb 4-1: FTDI USB Serial Device converter now attached to ttyUSB1

通常のシリアルポートとして扱えるのは/dev/ttyUSB1の側です。次のようにscreenコマンドを実行して,このポートへ接続することでuBootコンソールにアクセスできるはずです。

$ screen /dev/ttyUSB1 115200

起動時には図8のような形でMarvell uBootのロゴが表示され,⁠Marvell>>」プロンプトが表示されているはずです。ここでコマンドを入力することで,uBootの設定を行えます。……が,uBootをさわる前に,まず母艦側の設定を行う必要があります。

図8 起動時に表示されるMarvell uBootのロゴ

図8 起動時に表示されるMarvell uBootのロゴ

注10
この専用ドライバには署名が行われていないので,64bitのWindows Vista環境ではインストールが行えません。
注11
厳密には,JTAGとしての機能を使うにはftdi_sio.cに手を入れたカーネルモジュールを使うべきで,このように/dev/ttyUSB0が認識されるべきではないのですが,単にシリアルコンソールとして接続する限りは問題ありません。

著者プロフィール

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

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

コメント

コメントの記入