SDカードへのブートローダ書き込みについて

1,002 views
Skip to first unread message

igarashi

unread,
Sep 2, 2011, 8:58:22 AM9/2/11
to Android-Embedded-Japan
皆様

はじめまして、五十嵐と申します。

Pandaboardをはじめて起動させようと思っております。
そのために、sola様の情報を使っています。

その作業中にSDカードへのブートローダ書き込み等を行いますが正しく行えません。原因が解らないため、質問させていただきました。どなたかご存知の方
がおりましたら、ご教示願います。

当方の環境ならびに実施した操作を以下に示しますので、誤りをご指摘いただけますようお願い致します。また、情報不足がありましたら、ご指摘いただけれ
ば、情報追記致します。

1. 環境
Ubuntu 11.04 64bit版

2. 情報源
PandaBoard に Android ( Gingerbread ) をのせる その1
http://blog.sola-dolphin-1.net/archives/3173852.html

3. 実施した操作とその結果
上記情報の下の方に「SD カードにパーティションを作成する」があります。
その最後のコマンドでエラーが発生してしまいました。

$ sudo ./mksdcard_panda.sh /dev/mmcblk0

----- 実行結果 -----
igarashi@dynabook:~$ sudo ./mksdcard_panda.sh /dev/mmcblk0
[sudo] password for igarashi:
1024+0 記録始め
1024+0 記録終わり
1048576 バイト (1.0 MB) コピー終了, 0.396535 s, 2.6 MB/s
ディスク /dev/mmcblk0 は正常なパーティションテーブルを含んでいません
DISK SIZE - bytes
(standard_in) 1: syntax error
CYLINDERS -
sfdisk (util-linux-ng 2.17.2)
使い方: sfdisk [オプション] デバイス名...
デバイス: /dev/hda や /dev/sda の様な何か
有益なオプション:
-s [or --show-size]: パーティションサイズのリスト
-c [or --id]: パーティション ID の表示または変更
-l [or --list]: デバイス毎のパーティションリスト
-d [or --dump]: 前に同じだが、後の入力書式に沿うようにする
-i [or --increment]: シリンダ数など。0 ではなく 1 から
-uS, -uB, -uC, -uM: セクタ/ブロック/シリンダ/MB のユニットの受理/報告
-T [or --list-types]:既知のパーティションタイプのリスト
-D [or --DOS]: DOS 互換モード -- 空間が少し無駄になります
-R [or --re-read]: カーネルにパーティションテーブルを再読込みさせる
-N# : 指定番号# のパーティションのみ変更する
-n : ディスクへの実際の書込みを行わない
-O file : 上書きされるセクタをファイルに保存する
-I file : セクタをファイルから復元する
-v [or --version]: バージョンを表示する
-? [or --help]: このメッセージを表示する
危険なオプション:
-g [or --show-geometry]: カーネルのジオメトリ情報を表示する
-G [or --show-pt-geometry]: 領域テーブルから推測されるジオメトリ情報を表示する
-x [or --show-extended]: 拡張領域リストも表示する
またはそれらの記述子の入力を得る
-L [or --Linux]: Linux にそぐわなくても文句を云わない
-q [or --quiet]: 警告メッセージを抑制する
ジオメトリ検出を強制指定できます:
-C# [or --cylinders #]:使用するシリンダ数を設定する
-H# [or --heads #]: 使用するヘッド数を設定する
-S# [or --sectors #]: 使用するセクタ数を設定する
矛盾のチェックを行わないようにできます:
-f [or --force]: おかしな指定を行っても、そのまま実行します
mkfs.vfat 3.0.9 (31 Jan 2010)
/dev/mmcblk01: No such file or directory
mkfs.vfat 3.0.9 (31 Jan 2010)
/dev/mmcblk02: No such file or directory
mke2fs 1.41.14 (22-Dec-2010)
Could not stat /dev/mmcblk03 --- そのようなファイルやディレクトリはありません

The device apparently does not exist; did you specify it correctly?
igarashi@dynabook:~$
-----------------------------------

ディスクユーティリティーというツールがあるのですが、これでパーティションやフォーマットができるようなので、これで適当にブートローダや
rootfs配下のファイルをコピーしたのですが、やはりpandaboardは動きませんでした。

4. 追加質問
上記3項の後に、rootfs配下をSDカードにコピーするとの認識ですが、
手順として誤っておりましたら、ご指摘願います。

以上、よろしくお願いします。

sola

unread,
Sep 2, 2011, 9:52:34 AM9/2/11
to android-emb...@googlegroups.com
sola です。

使用している mksdcard_panda.sh を変更する必要があります。

mksdcard_panda.sh の 11 行目ですが、
以下のようになっていると思います。

SIZE=`fdisk -l $DRIVE | grep Disk | awk '{print $5}'`

これを、以下のようにしてみてください。

SIZE=`fdisk -l $DRIVE | grep ディスク | awk '{print $5}'`

Ubuntu が日本語の環境の場合、「Disk」を「ディスク」に
変更する必要があります。


あと、実行ログを見てですが。


igarashi@dynabook:~$ sudo ./mksdcard_panda.sh /dev/mmcblk0

を実行しているので、
SD は /dev/mmcblk*** で認識されてるのだと思います。

この場合、
mksdcard_panda_mmc.sh
を使用してみてください。(board/pandaboard/sdcard に入ってるはずです)
こちらも 11 行目が「Disk」であれば「ディスク」に変更が必要。

2011年9月2日21:58 igarashi <m.igaras...@gmail.com>:

> --
> ---------------------------------------------------------------------
> 日本Androidの会組み込みWG
> http://www.android-group.jp/index.php?%A5%EF%A1%BC%A5%AD%A5%F3%A5%B0%A5%B0%A5%EB%A1%BC%A5%D7%2F%C1%C8%A4%DF%B9%FE%A4%DF
>
> 日本Androidの会
> http://www.android-group.jp/
> ---------------------------------------------------------------------
> このグループに投稿するには、次の宛先にメールを送信してください。
> android-emb...@googlegroups.com
> このグループから退会するには、次へメールをお送りください。
> android-embedded-...@googlegroups.com
> その他のオプションについては、次の URL からグループにアクセスしてください。
> http://groups.google.co.jp/group/android-embedded-japan?hl=ja
> ---------------------------------------------------------------------
>

koba

unread,
Sep 2, 2011, 10:47:17 AM9/2/11
to Android-Embedded-Japan
なるほど。
この手の問題を避けるために私は開発マシンには日本語環境を入れないで使っています。

なお、SDへの書き込みは十分気をつけてください。デバイス名を間違えてハードディスクを丸ごと吹っ飛ばすことがあり得ます。


igarashi

unread,
Sep 2, 2011, 11:50:09 AM9/2/11
to Android-Embedded-Japan
sola様

早速の回答頂きありがとうございます。

mksdcard_panda.sh を修正し、実験したところNGでした。
(やっぱりダメでした。本メールの最後にシェル起動、コピー操作時のログ等を詳細に説明します。)

次にmksdcard_panda_mmc.sh は当方の環境にはございませんでしたので、sdcardディレクトリを探して見たところ、以下の結果
となり、[board/pandaboard/sdcard]というディレクトリは見つかりませんでした。
本シェルは、どこからか入手可能でしょうか?

---- find結果 ----
/home/igarashi/android/gingerbread/OHA-Android-2.3_r1.0/system/extras/
tests/sdcard
/home/igarashi/android/gingerbread/OHA-Android-2.3_r1.0/system/core/
sdcard
/home/igarashi/android/gingerbread/OHA-Android-2.3_r1.0/out/target/
product/pandaboard/symbols/system/bin/sdcard
/home/igarashi/android/gingerbread/OHA-Android-2.3_r1.0/out/target/
product/pandaboard/rootfs/system/bin/sdcard
/home/igarashi/android/gingerbread/OHA-Android-2.3_r1.0/out/target/
product/pandaboard/system/bin/sdcard
/home/igarashi/android/gingerbread/OHA-Android-2.3_r1.0/out/target/
product/pandaboard/obj/EXECUTABLES/sdcard_intermediates/LINKED/sdcard
/home/igarashi/android/gingerbread/OHA-Android-2.3_r1.0/out/target/
product/pandaboard/obj/EXECUTABLES/sdcard_intermediates/sdcard
------------------------

mksdcard_panda.sh を修正し、実行した時のログを以下に示します。
---- ログ1(シェル実行時) ----
1024+0 記録始め
1024+0 記録終わり
1048576 バイト (1.0 MB) コピー終了, 0.761611 s, 1.4 MB/s
ディスク /dev/mmcblk0 は正常なパーティションテーブルを含んでいません
DISK SIZE - 3973054464 bytes
CYLINDERS - 483
現在、誰もこのディスクを使っていないかを調べます...
OK

ディスク /dev/mmcblk0: シリンダ数 483、ヘッド数 255、63 セクタ/トラック

sfdisk: エラー: セクタ 0 には msdos サインがありません
/dev/mmcblk0: 認識できないパーティション領域タイプ
古い場面:
パーティションが見つかりません
新たな場面:
ユニット = 8225280 バイトのシリンダ、1024 バイトのブロック、0 から数えます

デバイス ブート 始点 終点 #シリンダ #ブロック Id システム
/dev/mmcblk0p1 * 0+ 10 11- 88326 c W95 FAT32
(LBA)
/dev/mmcblk0p2 11 178 168 1349460 b W95 FAT32
/dev/mmcblk0p3 179 346 168 1349460 83 Linux
/dev/mmcblk0p4 0 - 0 0 0 空
新たなパーティションの書き込みに成功

パーティションテーブルを再読み込み中...

もし、DOS パーティションを作成または変更したならば -- たとえば /dev/foo7 、
dd(1) をつかって最初の 512 バイトをゼロにして下さい:
dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(詳細は fdisk(8)を見てください。)
mkfs.vfat 3.0.9 (31 Jan 2010)
/dev/mmcblk01: No such file or directory
mkfs.vfat 3.0.9 (31 Jan 2010)
/dev/mmcblk02: No such file or directory
mke2fs 1.41.14 (22-Dec-2010)
Could not stat /dev/mmcblk03 --- そのようなファイルやディレクトリはありません

The device apparently does not exist; did you specify it correctly?
-----------------------------------------
ここで、ディスクユーティリティを見たところ、4つのパーティションが作成されていました。
1. /dev/mmcblk0p1
 パーティションタイプ:W95FAT32(LBA)(0x0c)
 パーティションフラグ:ブート可能
 タイプ:Ext4(バージョン1.0)
 容量:90MB
 ※ここへ、MLOとu-boot.binを書き込みました。
2. /dev/mmcblk0p2
 パーティションタイプ:W95FAT32(0x0b)
 パーティションフラグ:-
 タイプ:Ext4(バージョン1.0)
 容量:1.4GB
 ※ここへ、rootfs配下を書き込みました。
3. /dev/mmcblk0p3
 パーティションタイプ:Linux(0x83)
 パーティションフラグ:-
 容量:1.4GB
 ※未使用
4. /dev/mmcblk0
 未割り当て領域

ちなみに、コピーした時のログを以下に示します。
----
igarashi@dynabook:~/android/gingerbread/OHA-Android-2.3_r1.0/out/
target/product/pandaboard$ sudo cp -a ./MLO /media/sd
igarashi@dynabook:~/android/gingerbread/OHA-Android-2.3_r1.0/out/
target/product/pandaboard$ sudo cp -a ./u-boot.bin /media/sd
igarashi@dynabook:~/android/gingerbread/OHA-Android-2.3_r1.0/out/
target/product/pandaboard$ sudo cp -a ./rootfs/* /media/sd-datacp: 目的の
`/media/sd-data'はディレクトリではありません
igarashi@dynabook:~/android/gingerbread/OHA-Android-2.3_r1.0/out/
target/product/pandaboard$ sudo cp -a ./rootfs/* /media/sd-data
----

何点か不明点があったので、質問をさせてください。

少し先の話になりますが、SDカードへ正しく書き込み、PandaboardでAndroidを起動すると、
何もしなくても画面(当方の場合、HDMIでテレビへ接続しています)へ何か表示されますか?

u-bootからコマンドを投入するとありますが、以下のような手順になりますか?

PC側では何らかのTerminal(Winの場合、TeraTermなど)を使い、Pandaboardとシリアルケーブルで
接続する。SDカードをPandaboardへ設定し、電源ONすると、PC上のTerminalへ起動情報などが
表示される。しばらくすると、コマンド投入を促すようなコメントが出現する。
ここで、コマンド投入するとAndroidが立ち上がる。
-> もし、上記の手順がある程度正しければ、Terminalとシリアルケーブルが必要ですね。
 メジャーなTerminalがありましたら教えてください。

以上、宜しくお願い致します。


On 9月2日, 午後10:52, sola <sola.198...@gmail.com> wrote:
> sola です。
>
> 使用している mksdcard_panda.sh を変更する必要があります。
>
> mksdcard_panda.sh の 11 行目ですが、
> 以下のようになっていると思います。
>
> SIZE=`fdisk -l $DRIVE | grep Disk | awk '{print $5}'`
>
> これを、以下のようにしてみてください。
>
> SIZE=`fdisk -l $DRIVE | grep ディスク | awk '{print $5}'`
>
> Ubuntu が日本語の環境の場合、「Disk」を「ディスク」に
> 変更する必要があります。
>
> あと、実行ログを見てですが。
> igarashi@dynabook:~$ sudo ./mksdcard_panda.sh /dev/mmcblk0
>
> を実行しているので、
> SD は /dev/mmcblk*** で認識されてるのだと思います。
>
> この場合、
> mksdcard_panda_mmc.sh
> を使用してみてください。(board/pandaboard/sdcard に入ってるはずです)
> こちらも 11 行目が「Disk」であれば「ディスク」に変更が必要。
>
> 2011年9月2日21:58 igarashi <m.igarashi.ja...@gmail.com>:
> >http://www.android-group.jp/index.php?%A5%EF%A1%BC%A5%AD%A5%F3%A5%B0%...

Satoshi OTSUKA

unread,
Sep 2, 2011, 12:41:51 PM9/2/11
to android-emb...@googlegroups.com
大塚と申します。

2011年9月3日0:50 igarashi <m.igaras...@gmail.com>:


>
> mksdcard_panda.sh を修正し、実験したところNGでした。
> (やっぱりダメでした。本メールの最後にシェル起動、コピー操作時のログ等を詳細に説明します。)

mksdcard_panda.sh を修正しないで、
実行する shell の方で実行前に export LANG=C しておけばいいんじゃないですかね。

>
> 次にmksdcard_panda_mmc.sh は当方の環境にはございませんでしたので、sdcardディレクトリを探して見たところ、以下の結果
> となり、[board/pandaboard/sdcard]というディレクトリは見つかりませんでした。
> 本シェルは、どこからか入手可能でしょうか?

ここにあります。

https://github.com/sola-dolphin1/OHA-Android-2.3.4_r1.0/tree/master/board/pandaboard/sdcard

もう 2.3.4_r1 を sola さんが移植してくださっているので 2.3_r1.0 の方を使う理由はないような……

igarashi

unread,
Sep 2, 2011, 7:14:47 PM9/2/11
to Android-Embedded-Japan
koba様

コメントありがとうございます。

確かに開発環境において日本語環境は問題を誘発するだけだと私も思います。
得に不慣れな環境(環境を熟知していない状況)では、今回のような問題に対して、
自力で解決ができなくなります。
(英語環境でも今回の件は、現時点での自力では難しいとは思いますが・・・)

はい、SD書き込みには十分な注意を払って作業を進めます。
/dev配下を操作することは何度かやったことありますが、その都度、緊張して作業しています。

今後とも、宜しくお願い致します。

igarashi

unread,
Sep 2, 2011, 8:19:06 PM9/2/11
to Android-Embedded-Japan
sola様、大塚様

情報ありがとうございます。
早速、mksdcard_panda_mmc.shを取得し、実行前に export LANG=C を行い実行したところ、
正しそうなパーティション(boot, media, rootfs)が作成されました。

次にbootへMLOとu-boot.binを、rootfsへrootfsをコピーし、pandaboardへ挿入し電源ONしたところ、
残念ながら画面には何も表示されませんでした。

シリアルケーブルを購入してきます。
シリアルで接続したら何か表示されているかもしれないので・・・。


On 9月3日, 午前1:41, Satoshi OTSUKA <satoshi.ots...@gmail.com> wrote:
> 大塚と申します。
>
> 2011年9月3日0:50 igarashi <m.igarashi.ja...@gmail.com>:
>
>
>
> > mksdcard_panda.sh を修正し、実験したところNGでした。
> > (やっぱりダメでした。本メールの最後にシェル起動、コピー操作時のログ等を詳細に説明します。)
>
> mksdcard_panda.sh を修正しないで、
> 実行する shell の方で実行前に export LANG=C しておけばいいんじゃないですかね。
>
>
>
> > 次にmksdcard_panda_mmc.sh は当方の環境にはございませんでしたので、sdcardディレクトリを探して見たところ、以下の結果
> > となり、[board/pandaboard/sdcard]というディレクトリは見つかりませんでした。
> > 本シェルは、どこからか入手可能でしょうか?
>
> ここにあります。
>
> https://github.com/sola-dolphin1/OHA-Android-2.3.4_r1.0/tree/master/b...

sola

unread,
Sep 2, 2011, 11:34:20 PM9/2/11
to android-emb...@googlegroups.com
sola です。

> 次にbootへMLOとu-boot.binを、rootfsへrootfsをコピーし、pandaboardへ挿入し電源ONしたところ、
> 残念ながら画面には何も表示されませんでした。
これでは何も表示されないでしょう。

u-boot に与えるパラメータは、
http://blog.sola-dolphin-1.net/archives/3772984.html
の Android の起動のところを見ると良いです。

答えを書きましたが、何をするものなのか、
少しは自力で調べないと、後で必ず困ると思います。
mksdcard_panda.sh に関しても、
これが何をしているものなのか確認した方が良いです。

Terminal ソフトは使えるものなら何でも良いです。
メジャーなものである必要はありません。

2011年9月3日9:19 igarashi <m.igaras...@gmail.com>:

> --
> ---------------------------------------------------------------------
> 日本Androidの会組み込みWG
> http://www.android-group.jp/index.php?%A5%EF%A1%BC%A5%AD%A5%F3%A5%B0%A5%B0%A5%EB%A1%BC%A5%D7%2F%C1%C8%A4%DF%B9%FE%A4%DF
>

igarashi

unread,
Sep 6, 2011, 1:18:11 PM9/6/11
to Android-Embedded-Japan
sola様

お返事ありがとうございます。
お手数をおかけして申し訳ありませんでした。

シリアルケーブルを準備し、Terminalはpandaboardサイトに紹介されていた
minicomを使い、starting kernelの実行ログを確認することが出来ました。

ご指摘通り、具体的に何を行っているかを理解していないと、
後に問題が発生しても対応できないと思っております。
問題解決は算数、数学の関係と同様だと思っています。基礎が出来なければ
応用ができないでしょうし、新たに応用することもできないと思います。

HDMI出力、adbコマンド、その他機能の実装等、必要なものはまだまだ沢山ありますが、
pandaboardのサイトを理解しながら、必要な技術を実現させていこうと思っています。

目標を9月末までにAndroid画面表示としていたため、多くの質問をしてしまいました。
sola様はじめ、多くの方にご指導いただきとても感謝しております。

pandaboardサイトを読み始めましたので、本サイトでpandaboard(ハード面)ならびに
android(ソフト面)を理解していきます。

今後とも何卒宜しくお願い致します。



On 9月3日, 午後12:34, sola <sola.198...@gmail.com> wrote:
> sola です。
>
> > 次にbootへMLOとu-boot.binを、rootfsへrootfsをコピーし、pandaboardへ挿入し電源ONしたところ、
> > 残念ながら画面には何も表示されませんでした。
>
> これでは何も表示されないでしょう。
>
> u-boot に与えるパラメータは、http://blog.sola-dolphin-1.net/archives/3772984.html
> の Android の起動のところを見ると良いです。
>
> 答えを書きましたが、何をするものなのか、
> 少しは自力で調べないと、後で必ず困ると思います。
> mksdcard_panda.sh に関しても、
> これが何をしているものなのか確認した方が良いです。
>
> Terminal ソフトは使えるものなら何でも良いです。
> メジャーなものである必要はありません。
>
> 2011年9月3日9:19 igarashi <m.igarashi.ja...@gmail.com>:
>
>
>
>
>
>
>
> > sola様、大塚様
>
> > 情報ありがとうございます。
> > 早速、mksdcard_panda_mmc.shを取得し、実行前に export LANG=C を行い実行したところ、
> > 正しそうなパーティション(boot, media, rootfs)が作成されました。
>
> > 次にbootへMLOとu-boot.binを、rootfsへrootfsをコピーし、pandaboardへ挿入し電源ONしたところ、
> > 残念ながら画面には何も表示されませんでした。
>
> > シリアルケーブルを購入してきます。
> > シリアルで接続したら何か表示されているかもしれないので・・・。
>
> > On 9月3日, 午前1:41, Satoshi OTSUKA <satoshi.ots...@gmail.com> wrote:
> >> 大塚と申します。
>
> >> 2011年9月3日0:50 igarashi <m.igarashi.ja...@gmail.com>:
>
> >> > mksdcard_panda.sh を修正し、実験したところNGでした。
> >> > (やっぱりダメでした。本メールの最後にシェル起動、コピー操作時のログ等を詳細に説明します。)
>
> >> mksdcard_panda.sh を修正しないで、
> >> 実行する shell の方で実行前に export LANG=C しておけばいいんじゃないですかね。
>
> >> > 次にmksdcard_panda_mmc.sh は当方の環境にはございませんでしたので、sdcardディレクトリを探して見たところ、以下の結果
> >> > となり、[board/pandaboard/sdcard]というディレクトリは見つかりませんでした。
> >> > 本シェルは、どこからか入手可能でしょうか?
>
> >> ここにあります。
>
> >>https://github.com/sola-dolphin1/OHA-Android-2.3.4_r1.0/tree/master/b...
>
> >> もう 2.3.4_r1 を sola さんが移植してくださっているので 2.3_r1.0 の方を使う理由はないような……
>
> > --
> > ---------------------------------------------------------------------
> > 日本Androidの会組み込みWG
> >http://www.android-group.jp/index.php?%A5%EF%A1%BC%A5%AD%A5%F3%A5%B0%...
Reply all
Reply to author
Forward
0 new messages