オリジナルブートアニメ

今回は完全に自己満足のためのエントリです。

最近 FT701W 絡みで、ブートアニメーションの話題が上がっていたので、私も作ってみました。

 

 

知る人ぞ知る、MSX の起動画面です。(正確には MSX2+ ですね)

MSX はパソコン少年だった頃にハマったマシンです。えぇ、私の青春です。(年がバレる^^)

欲しい人はいないと思いますが、一応、置いておきます。

FT701W の /data/local/ に置いてください。多分 root 権限は不要と思います。

 

ネットの動画からタイミングを調べたり、エミュレータで文字を表示させて切り出したりして作りました。

個人的には、この TV 風な効果が気に入ってます。

 

ドットピッチの粗いテレビに、細い文字を表示しているので、白い縦線のはずなのにエッジに色がついて見えるんですよねー。

これは opemMSX というエミュレータのエフェクトに感動して自分で真似てみたものです。

 

せっかくなので、テレビ風に変換する imagemagick のコマンドラインを紹介します。

2倍に拡大して、テレビ風エフェクトをかけます。テレビ風に見せるために、赤プレーンだけ左に 1 ドットずらして、弱い blur をかけています。

$ convert FROM.png -scale 200% \( -clone 0 -channel BG -fx 0 -channel RGB -roll -1+0 \) \( -clone 0 -channel R -fx 0 -channel RGB \) -delete 0 -compose plus -composite -resize 400%x400% -blur 1 -resize 25%x25% TO.png

元々は 320×240 の画像でアニメを作り、最後にまとめてこのエフェクトをかけて 640×480 に変換しました。

 

このアニメだとなつかしくてついつい見入ってしまって、遅い Android の起動も気にならないです。(私だけでしょうけど ^^;) 

FT701Wに外部GPSアンテナを接続

今回の FT701W ネタは趣きを変えて、ハードウェア方面から攻めてみます。

FT701W は GPS の感度がよろしくないので、試しに外部アンテナをつなげてみようと思います。

 

ということでまずは分解です。 

2ch に、開ける際に必要なツメの位置の写真や、丁寧に開け方まで書かれていたので、苦労せず開けることが出来ました。先人の方々に感謝です。

FT701Wむいちゃいました
FT701Wむいちゃいました

パッと見て、バッテリーの大きさに驚きました。上半分は右から左までバッテリーです。連続稼働時間が長いのも納得です。

さて、今回のターゲットは GPS アンテナです。上の写真では左上、本体を正面から見た場合は、カメラの右側に GPS アンテナが配置されています。

GPSアンテナ
GPSアンテナ

GPSのパッチアンテナです。だいぶ小さなアンテナですね。傷のように削った後がありますが、おそらく1つ1つ測定しながら削って微調整してるのでしょう。手間がかかってます。

これを取り外して、外部アンテナを接続してみます。

GPS のアンテナには、電源を必要としないパッシブアンテナと、電源を供給してアンテナに内蔵されたアンプで増幅して出力するアクティブアンテナというものがあるそうです。

内蔵のアンテナはパッシブアンテナですが、大抵入手できる外部アンテナは電源の供給が必要なアクティブアンテナなので、どうにかして電源を供給する必要があります。

電源を供給する方法はこちらのサイトを参考にしました。 

また、外部GPSアンテナは switch science から購入しました。 

買った後で気づいたのですが、千石電商でもケーブルが長いGPSアンテナを売っているようですね。

でその他もろもろの部品を集めて作ったのがこれ。

アンテナ線に給電
 GPSアンテナに給電

GPSアンテナがSMAコネクタなので、SMAのジャックにコイル(約90nH)とセラミックコンデンサ(10pF)をはんだづけしました。

SMAジャックは秋月で150円、セラミックコンデンサも秋月で10円、コイルは鈴商で30円でした。

赤と黒のコードは電池ボックスにつながっていて 3V を加えます。今回は実験なので本体から電源を取らず、電池で給電することにしました。

内蔵アンテナと交換した全体図がこちら。

外部アンテナを接続! 

ハードウェアも素人なのですが、高周波になるとそれこそド素人なのでこれでいいのかわかりませんが、とりあえず見よう見まねで試してみました。

で、結果はこんな感じになりました。

内蔵アンテナ
内蔵アンテナ

外部アンテナ
外部アンテナ 

うーん。一応、全体的に受信レベルは上がっているようですので、効果はあったようです。

ただ、劇的に改善されるのかなと思っていたんですけど、思ったよりは効果が薄かったような?? まぁ、素人が作ったからこんなものかもしれないですが。

特にナビに使う予定はないんですが、とりあえず満足しました。(^^)

FT701Wでロゴを差し替える

前回の LiveCD ですが、多くのダウンロード、多くの動作報告あり難うございました。

おかげさまで大きな問題もなく、ちゃんと動作していることがわかり安心しました。

また、シーダーとしてご協力いただいたみなさま、ありがとうございました。おかげでサーバ負荷も最低限で済みました。

シーダーが増えなかったらどうしようと思っていたのですが、私が見たときは 10 近くのシーダーの方がいらっしゃって、ちょっと感動しました。改めてお礼申し上げます。

 

さて、今回はロゴの変更です。2ch でロゴを入れ替えると言った話題があがっていたので私も試してみました。

logo.img を解析すると、前半は単純に 24bit BMP のようなので、1024×600 で適当に壁紙を作ってみました。

作成した背景
作成した背景 

横浜の赤レンガ倉庫と奥に見えるのは横浜ベイブリッジです。横浜は夜景が綺麗です。

さて、意気揚々に logo パーテーションに書きこんで再起動すると・・・

 

あちゃー。ロゴの位置が固定らしいです。 これも 2ch に書かれていたとおりです。

そこで u-boot を解析してセンタリングするようにバイナリを書き換えてみました。

 全面に表示できた
全面に表示できた!

こういう小細工はおもしろいし、大好きです(^^)

いじった u-boot のバイナリを置いておきます。元々 u-boot は GPL なので、Frontier 製のu-boot バイナリも再配布して問題ないでしょう。ソースはないですが。 

画像サイズは 1024×600 以下であれば表示できると思いますが、横幅は 4 の倍数のほうが無難だと思います。時間がなくて確認してませんが、アセンブラを読んだ感じでは BMP の1ラインごとのパディングが考慮されていなそうだったので。

u-boot や logo を書き換えるには、ロゴ画像や bootloader-centering を adb push で転送した後、以下のような感じで書き換えます。 

※書き換えるには root 権限が必要です 

# cat bootloader-centering > /dev/block/platform/mmci-omap-hs.1/by-name/bootloader
# cat ft701w.bmp > /dev/block/platform/mmci-omap-hs.1/by-name/logo

朝で時間がなく、駆け足に書いたため、乱文ですいません。。

FT701W LiveCD & OTA イメージからのリカバリ

前回公開した FT701W 用バックアップ/リストアスクリプトは、おかげさまでたくさんの動作報告をいただきました。みなさんありがとうございました。

今回はもっと手間を減らせるように FT701W 用の Live CD を作ってしまいました。

2015/5/5追記ここから

トラフィックも少ないと思われるので、ISOファイルをサーバに置きました。

2015/5/5追記ここまで

torrent での配布は初めてなので、問題があったら教えていただけるとありがたいです。

回線が細いものの、このサーバもシーダーになっているので、時間をかければダウンロードできると思います。また、ダウンロード完了後は可能なら、しばらくシーダーとして配布にご協力していただけると助かります。

さて、今回の Live CD では以下の機能追加と、修正が入っています。

  • LiveCD 化によりネットワーク設定が不要に
  • ota_package.zip からのリカバリ
  • device ID の判定見直し
  • 2GB以上4GB以下のバックアップイメージに対応

今回の目玉は、LiveCD 化と、ota_package.zip からのリカバリ機能です。

まず  Live CD の使い方です。

iso を焼いた CD or USB メモリで起動すると、以下のような画面になります。

README.TXT に手順が書かれているので、これをダブルクリックで開いて読みながら操作してください。

コマンドを打たなくてもアイコンをダブルクリックすれば、Backup, Restore, Recovery ができるようになっています。

以下、簡単に各手順を書いておきます。

バックアップ

  1. 2GB以上の空きのある microSD をFT701Wに挿入
  2. LiveCD で PC を起動し、Backup(赤い矢印)のアイコンをダブルクリック
  3. USBで FT701W を PC に接続    (FT701Wは電源ONでもOFFでもよい)
  4. バックアップが開始される。microSD の /bak/emmc-all.bin.gz に書きだされる。
  5. バックアップ後、FT701W は自動で再起動する。
  6. PC に表示されているログを確認し、7632MB まで進んでいれば成功。

リストア

  1. バックアップイメージの入った microSD をFT701Wに挿入
  2. LiveCD で PC を起動し、Restore(青い矢印)のアイコンをダブルクリック
  3. USBで FT701W を PC に接続    (FT701Wは電源ONでもOFFでもよい)
  4. リストアが開始される。
  5. リストア後、FT701W は自動で再起動する。
  6. PC に表示されているログを確認し、7632MB まで進んでいれば成功。

OTAイメージからのリカバリ

  1. 公式サイトで配布されている ota_package.zip を microSD のトップディレクトリにコピー (アップデート時と同じ)
  2. 上記 microSD をFT701Wに挿入
  3. LiveCD で PC を起動し、Recovery from OTA(緑の矢印)のアイコンをダブルクリック
  4. USBで FT701W を PC に接続    (FT701Wは電源ONでもOFFでもよい)
  5. リカバリの下準備が行われ、すぐ再起動がかかる。
  6. FT701W が再起動後、標準のアップデート画面が表示され、アップデート(リカバリ)が実施される。
  7. アップデート後、FT701W は自動で再起動する。

※注意※ リカバリを行うと、ユーザーデータは全て初期化されるのでご注意ください。
LiveCD 内の README.txt には /data は消えないと書いて有りますが、実際は消去します。

 

リカバリについてですが、K牧師さんが調査されたアップデートの方法(FT701W wiki 参照)を使わせていただいてます。

万能ではありませんが、ロゴループなどの大抵の状態からはリカバリできるはずです。

以下のようなケースではリカバリできないのでバックアップからのリストアをしてください。

  • パーテーションテーブルが壊れている or パーテーション構成が変わっている
  • recovery 用のイメージを書き換えている (今後カスタムリカバリが出た場合など)
  •  /system, /cache, /oem パーテーションのいずれかがマウントできないほど破壊されている

おそらく、OS を入れかえるなどの派手ないじり倒しをしていない限りは、リカバリできると思います。

 

FT701W用バックアップ/リストアスクリプト

だいぶ間があいてしまいましたが、ひとまず完成しました。 

今回は Linux 初心者向けにしようと試行錯誤したのですが、うまくいかない部分があって、"初級者" レベルになっています。

本当は Windows 環境の人でも簡単に実施できるように VMware で動かしたかったんですが、どうしても安定して動かせませんでした。 

以下のものを用意してください。 

  • Ubuntu 11.10 日本語版のISOイメージ (ubuntu-ja-11.10-desktop-i386.iso)
    ここ からダウンロードできます。

英語版でも機能的には問題ありません。

Ubuntu 12.04 でも動くと思いますが、確認してません。

一応念の為書いておきます。とても危険なツールです。動作保証はできませんので、自己責任でお使いください。危険を犯したくない方は、動作報告がある程度揃ってから試されることをお勧めします。

作者としては、ヒトバシラーになってくださる方大歓迎です。 

Ubuntuで起動する 

1. Ubuntu の ISO イメージを CD に書きこむ

CD の書き方は以下を参照してください。 

https://wiki.ubuntulinux.jp/UbuntuTips/Install/BurningISO 

2. 作成した CD で起動する

今回は Ubuntuを PC にインストールせず、LiveCD 上で操作を行います。 

1 台の PC で作業する場合、このページを見ながら作業できないので、以下のことだけを覚えていてください。 

  •  Ubuntuが起動したら「Ubuntuを試す」をクリック
  • マウスカーソルを一番左に移動するとアイコンが出るので、Firefox を起動させる
  • Firefox で「ぷちのいず」を検索

この3点だけです。以下は Ubuntu 上の Firefox でこのページを参照しながら作業を進めてください。 

 

下準備

1. FT701W の 「USB デバッグ」を有効にする

2. 電源の入った FT701W を USB で PC に接続

3. Ubuntu 上で Windows キーを押し、terminal[Enter] とキーボードから打ち込む。

下の画像では VMware のツールバーが映ってますが、無視してください 

Windowsキーを押して terminal と入力

4. ターミナルが起動するので、以下のコマンドを打つ

lsusb

5. lsusb の結果に ID 25d6:0001 が表示されることを確認

ID 25d6:0001を確認 

これが表示されれば、UbuntuからFT701Wが見えていることになります。

6. 以下のコマンドを実行し、スクリプトをダウンロードする。

wget https://petit-noise.net/system/files/boot-with-image
chmod +x boot-with-image

これで準備完了。

 

バックアップするときは

1. FT701W に 2GB 程度の空きがある microSD が挿入されていることを確認

2. FT701W を PC から一度外す

3. ターミナルで以下のコマンドを実行

./boot-with-image backup

スクリプトやイメージなどのダウンロードが完了すると、以下のような行が表示される

==Waiting for FT701W...
==Waiting for FT701W...
==Waiting for FT701W...
==Waiting for FT701W... 

4. FT701W を PC に接続

5. FT701W が自動的に再起動しバックアップが開始される

ターミナルの表示に変化があり、Android が起動している場合は FT701W が自動的に再起動する。以下のように表示され、自動的にバックアップが開始される。

==Waiting for FT701W...
Bus 001 Device 065: ID 25d6:0001  
FT701W adb device found!!
==Waiting for adb...
-----adb devices-----
List of devices attached 
F1B0135000000000 device
---------------------
FT701W normal device found.
==Reboot device!!
==Waiting for FT701W...
Bus 001 Device 066: ID 0451:d00f Texas Instruments, Inc. 
TI OMAP boot device found!!
using built-in 2ndstage.bin
reading ASIC ID
CHIP: 4430
IDEN: 0000000000000000000000000000000000000000
MPKH: 0000000000000000000000000000000000000000000000000000000000000000
CRC0: 9c669ad9
CRC1: 00000000
sending 2ndstage to target... f0030002
waiting for 2ndstage response...
sending image to target...
==Waiting for FT701W...
==Waiting for FT701W...
==Waiting for FT701W...
==Waiting for FT701W...
==Waiting for FT701W...
Bus 001 Device 067: ID 25d6:0001  
FT701W adb device found!!
==Waiting for adb...
-----adb devices-----
List of devices attached 
0123456789ABCDEF device
---------------------
Ramdisk FW device found.
==Starting Backup script
37 KB/s (1551 bytes in 0.040s)
==Mounting microSD card...
   ... OK
442MB available
==Starting Backup to bak
==== Backup eMMC data to bak/emmc-all.bin.gz
12/05/10 08:36:32   0% (0B)
12/05/10 08:36:34   0% (10MB)
12/05/10 08:36:40   0% (20MB)
12/05/10 08:36:42   0% (30MB)
12/05/10 08:36:46   0% (40MB)
12/05/10 08:36:50   0% (50MB)
12/05/10 08:36:56   0% (60MB)
12/05/10 08:37:00   0% (70MB) ---------省略-------- 

6. バックアップが終わると FT701W は自動的に再起動する

7. 7632MB まで進んでいれば成功

Disk Full などの際に、エラーメッセージが表示されずに終了することもあるようです。かならず、下記のように 7632MB が最後に表示されていることを確認してください。

12/05/10 08:20:49   99% (7620MB)
12/05/10 08:20:50   99% (7630MB)
12/05/10 08:20:50   100% (7632MB) 

 

バックアップファイルは microSD の /bak/emmc-all.bin.gz というファイルに書き出されます。

8GB のイメージを全部コピーするため、バックアップには 30 分程度かかります。その間、PC がサスペンドしないようにしてください。

軽度の圧縮を行っているため、microSD に 8GB の空きは不要ですが、使っている状況によっては 2GB の空きでは足りないかもしれません。私が試したところでは、1GB 程度で済みました。

もし、4., 5. でエラーが出た場合は、FT701W電源スイッチを 10 秒以上押して完全に電源を切り、USB を一度抜き、もう一度挿しなおしてみてください。

 

リストアするときは

1. FT701W にバックアップイメージが入った microSD が挿入されていることを確認

2. FT701W を PC からはずす

3. ターミナルで以下のコマンドを実行

./boot-with-image restore

スクリプトやイメージなどのダウンロードが完了すると、以下のような行が表示される

==Waiting for FT701W...
==Waiting for FT701W...
==Waiting for FT701W...
==Waiting for FT701W... 

4. FT701W を PC に接続

5. FT701W が自動的に再起動しバックアップが開始される

ターミナルの表示に変化があり、Android が起動している場合は FT701W が自動的に再起動する。

以下のように表示され、自動的にリストアが開始される。

==Waiting for FT701W...
Bus 001 Device 054: ID 0451:d00f Texas Instruments, Inc. 
TI OMAP boot device found!!
using built-in 2ndstage.bin
reading ASIC ID
CHIP: 4430
IDEN: 0000000000000000000000000000000000000000
MPKH: 0000000000000000000000000000000000000000000000000000000000000000
CRC0: 9c669ad9
CRC1: 00000000
sending 2ndstage to target... f0030002
waiting for 2ndstage response...
sending image to target...
==Waiting for FT701W...
==Waiting for FT701W...
==Waiting for FT701W...
==Waiting for FT701W...
==Waiting for FT701W...
Bus 001 Device 055: ID 25d6:0001  
FT701W adb device found!!
==Waiting for adb...
-----adb devices-----
List of devices attached 
0123456789ABCDEF device
---------------------
Ramdisk FW device found.
==Starting Restore script
30 KB/s (1264 bytes in 0.039s)
==Mounting microSD card...
   ... OK
==Starting Restore bak to eMMC
12/05/10 08:03:52   0% (0B)
12/05/10 08:03:54   0% (10MB)
12/05/10 08:03:55   0% (20MB)
12/05/10 08:03:56   0% (30MB)
12/05/10 08:03:58   0% (40MB)
12/05/10 08:04:00   0% (50MB)
12/05/10 08:04:02   0% (60MB)
12/05/10 08:04:04   0% (70MB)
--------省略--------
12/05/10 08:20:43   99% (7570MB)
12/05/10 08:20:44   99% (7580MB)
12/05/10 08:20:45   99% (7590MB)
12/05/10 08:20:46   99% (7600MB)
12/05/10 08:20:47   99% (7610MB)
12/05/10 08:20:49   99% (7620MB)
12/05/10 08:20:50   99% (7630MB)
12/05/10 08:20:50   100% (7632MB)
==Unmount microSD...
==Done.
==Reboot FT701W

6. リストアが終わると FT701W は自動的に再起動する 

私の環境ではリストアは 15 分程度でした。

圧縮を行う分、バックアップの方が時間がかかってます。また、microSD が書き込み速度が遅い物であるのも原因の1つかもしれません。

7. ターミナルの出力に Error や Fatal などの文字が出力されていなければ成功

 

LiveCD ではない環境での注意事項

boot-with-image では、以下のファイルを書き換えます。ご注意ください。

  • ~/.android/adb_usb.ini
  • /etc/udev/rules.d/51-android.rules

また、スクリプト中で sudo を使っているため、パスワード入力を促されますので、パスワードを入力してください。