OpenBlocks IoTファミリのBX1を、工場出荷時の状態に戻す手順(ファクトリーリセットという)を調べたので、自分の作業用にメモする。
シリアル接続
BX1とWindows端末を、USB-UART変換ケーブルで接続し、シリアル通信ができるTeraTermなどのターミナルソフトでコンソールにログインする。ボーレートやデータビットの設定は下図の通り。
Wi-Fiの設定
BX1のWi-Fiには、Client Mode(既存Wi-Fiネットワークに接続)と AP Mode(BX1自体がアクセスポイントになる)がある。一般のWi-Fiルータと同じだ。
工場出荷時のファームウェアをダウンロードしたいので、Client Modeでインターネットに接続する。
パスフレーズをPSKで暗号化
wpa_passphrase [SSID] [パスフレーズ]
network={
ssid="[SSID]"
#psk="[パスフレーズ]"
psk=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
}
ネットワークの設定
上述のSSIDと暗号化キーを設定する。
auto wlan0
iface wlan0 inet dhcp
wpa-ssid [SSID]
wpa-psk XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
wpa-ap-scan 1
wpa-key_mgmt WPA-PSK
wpa-proto WPA RSN
wpa-pairwise CCMP TKIP
wpa-group CCMP TKIP
NICの再起動
ifdown wlan0 && ifup wlan0
ファームウェアのダウンロード
ぷらっとホーム社のサイトに、Intel Edison の最新カーネルに対応するファームウェアのイメージデータがあるのでダウンロードする。
cd /root
wget http://ftp.plathome.co.jp/pub/BX1/wheezy/3.10.17-17/bx1_userland_web1.0.14-1.tgz
なお、どのBX1のバージョンをダウンロードすれば良いかは、Web UI の出力で確認する。
curl -sL localhost:880 | grep Version
RAMディスクモードで起動
BX1には、ストレージを使わないRAMディスクモードと、ストレージを使うストレージ併用モードがある。
df
コマンドの表示で、/.rw
にマウントされているのが、/dev/mmcblk0p10
ならストレージモード、tmpfs
ならRAMディスクモードということになる。
e2label /dev/mmcblk0p10 ""
reboot
リブート後は root
/root
でログインする。
ファームウェアを置くパーティションをフォーマット
yes | mkfs -t ext4 -L DEBIAN /dev/mmcblk0p10
sync
工場出荷イメージの展開
3分ほど掛かる。
mount /dev/mmcblk0p10 /mnt
tar zxf /root/bx1_userland_web1.0.14-1.tgz -C /mnt 2> /dev/null
umount /mnt
rm -f /root/bx1_userland_web1.0.14-1.tgz
ストレージ併用モードで起動
e2label /dev/mmcblk0p10 DEBIAN
reboot
Wi-Fiに接続できない場合
Debian GNU/Linux からWi-Fi接続できない場合、Intel Edison の組み込みLinuxである Yocto Linux から接続する。
PCとシリアル接続し、次の操作を行う。
- 電源を落とした状態にする
- INITスイッチを押しながら電源スイッチを押し続け、LEDが一瞬点滅したら電源スイッチを離す
******* PSH loader *******
PCM page cache size = 192 KB
Cache Constraint = 0 Pages
Arming IPC driver ..
Adding page store pool ..
PagestoreAddr(IMR Start Address) = 0x04899000
pageStoreSize(IMR Size) = 0x00080000
*** Ready to receive application ***
と表示されたら、スペースキーを連打し、bootプロンプトになったら、次のコマンドを入力。
boot > run bootYocto
デフォルトの低消費電力モードではシリアルコンソールの1文字目を取りこぼす場合があるため、シリアル通信の電源を常時ONにする。
echo on > /sys/devices/pci0000:00/0000:00:04.3/power/control
既存Wi-Fiに接続する。
wpa_passphrase [SSID] [パスフレーズ] > /etc/wpa_supplicant/wpa_supplicant.conf
wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf &
udhcpc -i wlan0