Wiiリモコンで操作できるプレゼン・マシンの製作(1) ―― オリジナルのAndroidマシンを自作する

渡邊 賢二

●SDカードを準備する

 OMAP3系のボードはSDカードの起動に対応しており,本稿での起動もSDカードで行います.SDカードの構成を図1に示します.


図1 SDカードの構成

 SDカードの起動を行うには,先頭パーティションを決まったシリンダ・ヘッド構成でかつファイル・システムをvfat(FAT32)にする必要があります.まず,SDカードをUbuntuのパソコンに挿入し,dmesgコマンドでSDカードのデバイス・ノードを確認します.

$ dmesg | tail 


 出力されたメッセージの最終行を確認します.

[1359001.124059] sdc: sdc1


 この場合のSDカードそのもののデバイス・ノードは"/dev/sdc"です. 以後の説明では,このデバイス・ノードで記載します.

※重要:SDカードのデバイス・ノードは環境によって異なるので注意してください.

 パーティションやファイル・システムを作成する場合,SDカードをアンマウントする必要があります.Ubuntuはデフォルト設定ではSDカードを自動でマウントするため,いったんアンマウントします.

$ df -h
Filesystem サイズ 使用 残り 使用% マウント位置
(中略)
/dev/sdc1 1.9G 0 1.9G 0% /media/disk
$ sudo umount /media/disk

 次に,fdiskコマンドを実行し,パーティションを作成していきます.

$ sudo fdisk /dev/sdc

 fdiskのコマンドは,以下のように入力します.

コマンド  ( m でヘルプ ) : p

Disk  / dev/sdc : 1967 MB, 1967128576 bytes
57 heads, 56 sectors/track, 1203 cylinders
Units = シリンダ数 of 3192 * 512 = 1634304 bytes
Disk identifier : 0x00000000

デバイス Boot    Start    End    Blocks     Id    System
/dev/sdc1         1   1204   1920955+    6     FAT16

コマンド ( m でヘルプ) : d ← 既存のパーティションは削除する
Selected partition 1

コマンド ( m でヘルプ) : x  ←エキスパート・モードでシリンダとヘッドを調整する

上級者コマンド ( m でヘルプ ) : h
ヘッド数 ( 1-256, default 57 ): 255

上級者コマンド ( m でヘルプ ) : s
セクタ数 (1-63, default 56) : 63
警告: DOS 互換のためのセクタ・オフセットを設定します

上級者コマンド ( m でヘルプ ) :  c 
シリンダ数 (1-1048576, default 1203): 239  ※3

上級者コマンド ( m でヘルプ ) : r ←エキスパート・モードから抜ける

コマンド ( m でヘルプ ) : n ←パーティション1は64Mバイトで作成する
コマンド・アクション
  e 拡張
  p 基本領域 (1-4)

領域番号 (1-4 )  : 1
最初 シリンダ (1-239, default 1) : 1
Last シリンダ, +シリンダ数 or +size { K,M,G }  ( 1-239, default 239 ) : +64M

コマンド ( m でヘルプ ) : n ←パーティション2は残りのすべてを割り当てる
コマンド・アクション
  e 拡張
  p 基本領域 (1-4)
p
領域番号 (1-4) : 2
最初 シリンダ (10-239, default 10)  :
Using default value 10
Last シリンダ, +シリンダ数 or +size{ K,M,G } (10-239, default 239 ) : 
Using default value 239

コマンド (m でヘルプ): t ←パーティション・タイプをFAT32に変更する
領域番号 (1-4): 1
16進数コード ( L コマンドでコードリスト表示 ) : c
領域のシステム・タイプを 1 から c ( W95 FAT32 ( LBA ) ) に変更しました

コマンド ( m でヘルプ ) : a  ← パーティション1をブート可能にする
領域番号 (1-4): 1

コマンド (m でヘルプ) : p ← 作成したパーティションを確認する

Disk  / dev / sdc: 1967 MB, 1967128576 bytes
255 heads, 63 sectors/track, 239 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

デバイス Boot    Start    End     Blocks    Id       System
/dev/sdc1 *        1      9     72261     c    W95  FAT32 (LBA)
/dev/sdc2        10     239   1847475    83       Linux

コマンド (m でヘルプ): w ← テーブルをディスクに書き込み,終了する

※3 全体サイズ(1967128576) ÷ 255 ÷ 63 ÷ 512 (=239.156427015) を切り捨てで計算した値を指定します.

 これで二つのパーティションが作られました.パーティション1のデバイス・ノードは"/dev/sdc1",パーティション2のデバイス・ノードは"/dev/sdc2"となります.

 次に,パーティション1にvfat(FAT32)のファイル・システムを生成します.

$ sudo mkfs.vfat -F 32  /dev/sdc1 -n LABEL1

 続いて,パーティション2にext3のファイル・システムを生成します.

$ sudo mkfs.ext3 -L LABEL2 /dev/sdc2

 SDカードを抜き差しし,dfコマンドでファイル・システムが正しく生成されたことを確認しましょう.

$ df -hT
Filesystem        Type           サイズ          使用          残り        使用%            マウント位置
(中略)
/dev/sdc2             ext3            1.8G           35M         1.7G             3%       /media/LABEL2
/dev/sdc1              vfat             70M            512          70M              1%      /media/LABEL1

 次に,パーティション1にブート・ローダ(xloaderとu-boot)を格納します.通常はどちらもソースをビルドしたものを格納しますが,ここではビルド済みのバイナリをbeagleboard.org公式のGoogleプロジェクトからダウンロードすることにします.

 まず,xloarder(MLO)を格納します.

$ wget http://beagleboard.googlecode.com/files/ MLO_revc_v3
$ cp MLO_revc_v3.bin  
/media/LABEL1/MLO  ←コピー先のファイル名を必ず"MLO"にします

 続いてu-bootを格納します.

$ wget http://beagleboard.googlecode.com/files/u-boot_revc_v3.bin
$ cp u-boot_revc_v3.bin  
/media/LABEL1/u-boot.bin ←コピー先のファイル名を必ず"u-boot.bin"にします

 以上でSDカードによる起動の準備が整いました.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日