電脳羊(Android Dream)

アクセスカウンタ

zoom RSS BeagleBoard xMでFroyo ブートのための設定

<<   作成日時 : 2010/10/20 01:14   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

えっと、やっとBeagleBoard xMが届いたので、さっそくFroyoを入れてみました。

カーネルとユーザランドは、Solaさんが公開してくれているので、それを使います。
いつもありがとうございます。(^^)
http://blog.sola-dolphin-1.net/archives/2978103.html

カーネルとユーザランドは構築済みとして話を進めます。

(1)問題点
今回嵌まったのは、別のマイクロSDからのブートが出来ないこと。

付属のマイクロSDは当然問題なく、起動します。

新しいマイクロSDをフォーマットして、付属のマイクロSDからMLOとu-boot.binそして、自分でビルドしたuImageを1番目のFATパーティションに、ユーザランドを2番目のExt3パーティションに書き込んで、電源ONします。
TeraTermでシリアル接続(115200 baud)して待っていると、ポンって音がして、画面には「60」という表示がされただけで固まっています。

うーん、前にやった手順と同じなので問題ないはずなんですが
フォーマット後にまず、MLOをコピーしなければならないのは知っていたので、そのようにコピーしました。

(2)解決への道
じゃ、付属のマイクロSDを別のマイクロSDにコピーして、それでブートするかのチェック
FATでフォーマットし直した、別のマイクロSDに付属のマイクロSDの内容を吸い出してコピーしてやりました。(MLOは最初にコピー)
で電源ONすると、同じ現象で固まります。
????

(3)付属マイクロSDのチェック
付属していたマイクロSDを壊さないように、Lockを掛けてからUbuntuマシンに接続して
$ sudo fdisk /dev/sde

pコマンドでパーティションテーブルの情報を良く見ると、ん?Bootのところに*が付いてる。
え、今まで何度も構築したけど、第一パーティションをブートに指定したことなかった。
ということで、別のマイクロSD(付属のSDの内容をコピー)に差し替えて、1番目のパーティションをブータブルにしてから、xMに挿して電源ONすると、おおー起動しました。
そんなオチだったようです(T^T)

(4)手順
えっと忘れないように手順書いときます。
私の環境ですと、/dev/sdeになりますが、それぞれの環境に合わせて読み替えて下さい。

1、パーティション削除
マイクロSDをUbuntuに挿して

$ df
/dev/sde1 3858432 32 3858400 1% /media/0F4D-449E

挿したマイクロSDが/dev/sdeで認識されていることが分かります。

$ sudo fdisk /dev/sde

Command (m for help): p

Disk /dev/sde: 3959 MB, 3959422976 bytes
126 heads, 61 sectors/track, 1006 cylinders
Units = cylinders of 7686 * 512 = 3935232 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Device Boot Start End Blocks Id System
/dev/sde1 2 1007 3862528 b W95 FAT32

DISKのサイズは後で計算で使うので、ひかえておいて下さい。
初期状態でパーティションがあるので削除します。

Command (m for help): d
Selected partition 1

2、ヘッド数、セクタ数、シリンダ数の変更
ヘッド数とセクタ数は固定です。シリンダ数はDISKサイズから計算します。
ヘッド数:255
セクタ数:63
シリンダ数:DISK容量÷255÷63÷512の切り捨てた値
なので、
3959422976÷255÷63÷512=481
になります。

上級者モードで上記の値を設定します。

Command (m for help): x

Expert command (m for help): m
Command action
b move beginning of data in a partition
c change number of cylinders
d print the raw data in the partition table
e list extended partitions
f fix partition order
g create an IRIX (SGI) partition table
h change number of heads
i change the disk identifier
m print this menu
p print the partition table
q quit without saving changes
r return to main menu
s change number of sectors/track
v verify the partition table
w write table to disk and exit

Expert command (m for help): h
Number of heads (1-256, default 126): 255

Expert command (m for help): s
Number of sectors (1-63, default 61): 63
Warning: setting sector offset for DOS compatiblity

Expert command (m for help): c
Number of cylinders (1-1048576, default 1006): 481

Expert command (m for help): r

3、パーティションの作成
1番目はFATで64MB、2番目はExt3で残り容量全てを割り当てます。

3−1 FAT
プライマリパーティションの1番目に64MBを割り当てます。

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-481, default 1): 1
Last cylinder, +cylinders or +size{K,M,G} (1-481, default 481): +64M

3−2 Ext3
プライマリパーティションの2番目に残り全てを割り当てます。

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (10-481, default 10): 10
Last cylinder, +cylinders or +size{K,M,G} (10-481, default 481): 481

3−3 パーティションタイプの設定
1番目は「c」、2番目は「83」を指定します。

Command (m for help): t
Partition number (1-4): 1
Hex code (type L to list codes): c
Changed system type of partition 1 to c (W95 FAT32 (LBA))

Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 83

パーティションテーブルを確認します。
Command (m for help): p

Device Boot Start End Blocks Id System
/dev/sde1 1 9 72261 c W95 FAT32 (LBA)
/dev/sde2 10 481 3791340 83 Linux

4、ブートの設定
1番目のパーティションをブータブルに設定します。
Command (m for help): a
Partition number (1-4): 1

Command (m for help): p

Device Boot Start End Blocks Id System
/dev/sde1 * 1 9 72261 c W95 FAT32 (LBA)
/dev/sde2 10 481 3791340 83 Linux

5、パーティションテーブルの保存
設定を保存してFDISKを終了します。

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: If you have created or modified any DOS 6.x
partitions, please see the fdisk manual page for additional
information.
Syncing disks.

6、フォーマット
パーティションをフォーマットします。

1番目のパーティションをFATでフォーマット
$ sudo mkfs.vfat -c -F 32 -n Begl_Boot /dev/sde1

2番目のパーティションをExt3でフォーマット
$ sudo mkfs.ext3 -c -L Begl_Root /dev/sde2

Begl_Boot、Begl_Rootは、便宜的なラベルです。ご自由な名前をつけて下さい。

7、ファイルのコピー

7−1 カーネルのコピー
以下の順にファイルを1番目のパーティションにコピーします。
1、MLO(付属のマイクロSDのもの)
2、u-boot.bin(付属のマイクロSDのもの)
3、uImage(自分でビルドしたもの)

7−2 ユーザランドのコピー
2番目のパーティションにユーザランドをコピーします。

--archive コマンドを使うと、属性をなるべく保持した上で再帰的にコピーしてくれます。
例:
$ sudo cp --archive ./* /media/Begl_Root/

これで作業は完了です。
xMに挿して、電源を入れればマイクロSDからブートするはずです。




テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
BeagleBoard xMでFroyo ブートのための設定 電脳羊(Android Dream)/BIGLOBEウェブリブログ
文字サイズ:       閉じる