Translate

2016年5月23日月曜日

Arduino Yunの"Guide for Windows user to upgrade the u-boot"を翻訳してみた

Arduino YunのLininoOSを最新版にするとシリアル経由によるネットワーク通信ができなくなってしまう問題が発生した。

ひょっとしてOSはあげたけどu-bootを更新していないのが問題かも..とおもい

Guide for Windows user to upgrade the u-boot
http://labs.arduino.org/Guide+for+Windows+user+to+upgrade+the+u-boot

を翻訳してみた。
以下参考にする場合は at your own risk でお願いします。

-----

Windowsユーザのためのu-bbotアップデートガイド


WindowsユーザのU-bootアップグレード


Windowsユーザであるならば、このガイドに従ってください:

- 最初に以下の手順を実施してください:
1) (micro)USBケーブルを使ってボード(microUSBポート)とPCを接続してください。
2) ボードをEthernetに接続してください

図1 → http://labs.arduino.org/dl1483?display&scale=0.1

3) Arduino IDE 1.7.8以降(もしそうでなければここからダウンロード)を起動し、メニュー File>Examples>Bridge へ進み、Sketch YunSerialTerminal をひらいてボードへアップロードしてください

図 2 → http://labs.arduino.org/dl1484?display


- 次のいずれかのリンクから最新u-bootをダウンロードしてください:
1) Arduino Yunの場合、ここをクリックしてください
2) Arduino Yun miniの場合、ここをクリックしてください

- TFTPサーバをインストールしてください:
1) Windows TFTP ユーティリティを使う場合は、ここからダウンロードできます
2) 管理者ユーザでツールをインストールしてください

図 3 → http://labs.arduino.org/dl1485?display&scale=0.7
図 4 → http://labs.arduino.org/dl1486?display&scale=0.7
図 5 → http://labs.arduino.org/dl1487?display&scale=0.7
図 6 → http://labs.arduino.org/dl1488?display&scale=0.7
 
3) TFTPユーティリティを起動し、次の図のようにセットしてください。

図7 → http://labs.arduino.org/dl1489?display&scale=0.7
図8 → http://labs.arduino.org/dl1490?display&scale=0.7

u-bootファイルのパスを選択してください:
図9 → http://labs.arduino.org/dl1495?display&scale=0.7
図10 → http://labs.arduino.org/dl1496?display&scale=0.7
 
IPアドレスをセットしてください
図11 → http://labs.arduino.org/dl1497?display&scale=0.7
 
設定完了したら、OKボタンをクリックしてください。
図12 → http://labs.arduino.org/dl1498?display&scale=0.7

4) Serverをクリックして動作を確認してください

- u-bootコンソールに入ってください
1) シリアルモニタを開いてください
2) (ボード上の)YUN RSTボタンを押し、(シリアルモニタの入力欄に)linコマンドを入力、(シリアルモニタの)送信ボタンを押してください
図13 → http://labs.arduino.org/dl1502?display&scale=0.6

3) しばらくすると以下の様なu-bootプロンプトが表示されます
ar7240>

- 入力ミスに注意しながら次のステップを実行してください:
Linino U-Bootプロンプトから、次のコマンドを実行してください:(Ethernetケーブルに接続されていることを確認してください)
setenv serverip ‹TFTPサーバのIPアドレス›; setenv ipaddr ‹Lininoボード側IPアドレス›;

以下の2行は入力例です:
ar7240>setenv serverip 192.168.60.124;
ar7240> setenv ipaddr 192.168.60.182;

図 14 → http://labs.arduino.org/dl1506?display&scale=0.6

次の例にならってTFTPサーバへpingを打って、テストしてください:
ar7240> ping 192.168.60.124

図 15 → http://labs.arduino.org/dl1505?display&scale=0.6

pingが成功したら、このガイドを継続してください。そうではない場合はネットワークやTFTPサーバ調べるかもしくはここをクリックして直接ピアツーピア接続するためのガイドに従ってください。

- Arduino Yunの場合:
tftp 0x80060000 u-boot-linino-yun.bin;

Arduino Yun Miniの場合:
tftp 0x80060000 u-boot-linino-yun-mini.bin;

以下の例は、Arduino Yunの場合です:
ar7240> tftp 0x80060000 u-boot-linino-yun.bin;

図 16 → http://labs.arduino.org/dl1507?display&scale=0.6

図16 のように正しくダウンロードできた場合のみ、フラッシュや新規u-bootコピーを削除することができます。
失敗した場合、Ethernet接続が存在するかどうか、TFTPサーバが適切な位置に存在するかどうかを確認してください。
TFTPが失敗した場合、絶対に次のコマンドをタイプしないでください!
旧u-bootの削除:
ar7240> erase 0x9f000000 +0x40000;

図17 → http://labs.arduino.org/dl1509?display&scale=0.6

次のコマンドを実行することで、新規u-bootがコピーされます:
ar7240> cp.b $fileaddr 0x9f000000 $filesize;

図18 → http://labs.arduino.org/dl1510?display&scale=0.6

おめでとうございます!新しいu-bootが準備出来ました!再起動したu-bootコマンドラインから新規カーネルイメージインストールを実行してください。

ar7240> reset

デフォルトでは、新規ブートは250kボーレート使用しています。キーコンビネーション~1 (ASCIIコード: ALT 126, 1)と ~2 (ASCIIコード: ALT 126, 2)を使って、ボーレートを115200もしくは250000baudsへ変更してください。

注意:時々最初のキャラクタが正しく認識されないことがあるので、このような場合は ~~1 もしくは ~~2 とタイプしてください。

リセットコマンドのあと、新たにu-bootプロンプトが表示されるので、u-bootコンソール内でlinコマンドをタイプしてください:

U-Boot 1.1.5-linino-g17593166-dirty (Oct  4 2015 - 02:12:32)
Linino Board (ar9331) U-boot
DRAM:  64 MB
Top of RAM usable for U-Boot at: 84000000
Reserving 218k for U-Boot at: 83fc8000
Reserving 192k for malloc() at: 83f98000
Reserving 44 Bytes for Board Info at: 83f97fd4
Reserving 36 Bytes for Global Data at: 83f97fb0
Reserving 128k for boot params() at: 83f77fb0
Stack Pointer at: 83f77f98
Now running in RAM - U-Boot at: 83fc8000
Flash Manuf Id 0xef, DeviceId0 0x40, DeviceId1 0x18
flash size 16777216, sector count = 256
Flash: 16 MB
In:    serial
Out:   serial
Err:   serial
Net:   eth0: b4:21:8a:00:00:00
eth1: b4:21:8a:00:00:01
eth0, eth1
autoboot in 4 seconds (stop with 'lin')...
linino>

次のコマンドをタイプすることで設定を確認することができます:
linino> printenv

次のように表示されなければなりません:
linino> printenv
bootargs=
bootcmd=run addboard; run addtty;run addparts; run addrootfs; bootm 0x9fEa0000
bootdelay=4
baudrate=250000
ethaddr=0xb4:0x21:0x8a:0x00:0x00:0x10
ipaddr=192.168.1.2
serverip=192.168.1.1
board=linino-yun
addboard=setenv bootargs board=${board}
console=spicons
addtty=setenv bootargs ${bootargs} console=${console}
mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env),14656k(rootfs),1280k(kernel),64k(nvram),64k(art),15936k@0x50000(firmware)
addparts=setenv bootargs ${bootargs} mtdparts=${mtdparts}
addrootfs=setenv bootargs ${bootargs} rootfstype=squashfs,jffs2 noinitrd
erase_env=erase 0x9f040000 +0x10000
dir=
lu=tftp 0x80060000 ${dir}u-boot-${board}.bin&&erase 0x9f000000 +$filesize&&cp.b $fileaddr 0x9f000000 $filesize
lf=tftp 0x80060000 ${dir}lininoIO-generic-${board}-rootfs-squashfs.bin&&erase 0x9f050000 +$filesize&&cp.b $fileaddr 0x9f050000 $filesize
lk=tftp 0x80060000 ${dir}lininoIO-generic-${board}-kernel.bin&&erase 0x9fEa0000 +$filesize&&cp.b $fileaddr 0x9fEa0000 $filesize
stdin=serial
stdout=serial
stderr=serial
ethact=eth0
Environment size: 1044/65532 bytes
linino>

もしUBoot環境設定が上のリストどおりであれば、"コンソールをttyATH0へ変更して正しくbootargsを設定する(Set properly the bootargs changing the console to ttyATH0)"と呼ばれるステップへ直接すすめることができます、さもなければ次に続くステップに従い新規デフォルト環境を適してください:
linino> erase 0x9f040000 +0x10000;
Below the output on monitor:
linino> erase 0x9f040000 +0x10000;
Erase Flash from 0x9f040000 to 0x9f04ffff in Bank # 1
First 0x4 last 0x4 sector size 0x10000
   4
Erased 1 sectors

ここで、リセットします。
linino>reset;

ボードの再起動後にデフォルト環境がしようされているコンソール上に"*** Warning - bad CRC, using default environment"といったメッセージが出ます。
U-Boot 1.1.5-linino-g17593166-dirty (Oct  4 2015 - 02:12:32)
Linino Board (ar9331) U-boot
DRAM:  64 MB
Top of RAM usable for U-Boot at: 84000000
Reserving 218k for U-Boot at: 83fc8000
Reserving 192k for malloc() at: 83f98000
Reserving 44 Bytes for Board Info at: 83f97fd4
Reserving 36 Bytes for Global Data at: 83f97fb0
Reserving 128k for boot params() at: 83f77fb0
Stack Pointer at: 83f77f98
Now running in RAM - U-Boot at: 83fc8000
Flash Manuf Id 0xef, DeviceId0 0x40, DeviceId1 0x18
flash size 16777216, sector count = 256
Flash: 16 MB
*** Warning - bad CRC, using default environment
In:    serial
Out:   serial
Err:   serial
Net:   eth0: b4:21:8a:00:00:00
eth1: b4:21:8a:00:00:01
eth0, eth1
autoboot in 4 seconds (stop with 'lin')...
linino>

linコマンドをタイプして送信ボタンを押してください。

警告メッセージを避けるためには次に続くコマンドをUBootコンソール上に与えてください。
linino> saveenv

以下のように表示されます:
linino> saveenv
Saving Environment to Flash...
Protect off 9F040000 ... 9F04FFFF
Un-Protecting sectors 4..4 in bank 1
Un-Protected 1 sectors
Erasing Flash...Erase Flash from 0x9f040000 to 0x9f04ffff in Bank # 1
First 0x4 last 0x4 sector size 0x10000
   4
Erased 1 sectors
Writing to Flash... write addr: 9f040000
done
Protecting sectors 4..4 in bank 1
Protected 1 sectors
linino>

コンソールをttyATH0に変更する適切なbootargsをセットしてください:
linino> setenv console ttyATH0,250000
linino> saveenv

以下のように表示されます:
linino> setenv console ttyATH0,250000
linino> saveenv
Saving Environment to Flash...
Protect off 9F040000 ... 9F04FFFF
Un-Protecting sectors 4..4 in bank 1
Un-Protected 1 sectors
Erasing Flash...Erase Flash from 0x9f040000 to 0x9f04ffff in Bank # 1
First 0x4 last 0x4 sector size 0x10000                                                                                                                                 4
Erased 1 sectors
Writing to Flash... write addr: 9f040000
done
Protecting sectors 4..4 in bank 1
Protected 1 sectors

最期にコマンドライン上にresetとタイプしてください:
linino> reset

これでu-bootがアップグレード完了です。

-------

0 件のコメント:

既存アプリケーションをK8s上でコンテナ化して動かす場合の設計注意事項メモ

既存アプリをK8sなどのコンテナにして動かすには、どこを注意すればいいか..ちょっと調べたときの注意事項をメモにした。   1. The Twelve Factors (日本語訳からの転記) コードベース   バージョン管理されている1つのコードベースと複数のデプロイ 依存関係 ...