TOPOBDN - 開発者向け情報技術ガイド > OpenBlocks A6 6.0から7.1へのアップグレード

6.0から7.1へのアップグレード


6.0ご利用中の方も、次の方法で7.1にアップグレードすることが可能です。 なおアップグレードの操作は、ほぼ新規セットアップと同じ内容になりますが、インストール済みのパッケージ情報等は引き継ぐことが可能です。

ブートローダーU-Bootの更新


A6でDebian 7.1ベースのファームウェアを利用するには、事前にブートローダーのU-Bootを更新する必要があります。

OpenBlocksでは、本体基板上のFlashROM上にLinuxカーネルと最小限のユーザーランドを結合したファームウェアファイルが書き込まれており、電源ONするとこれを読み出して実行します。 予め用途別にいくつかのパーティションに分割していますが、Debian7.1になったことに加えカーネルのバージョン変更も伴ったことで、想定していたファームウェアサイズの最大を超えてしまいました。 この対策として、ファームウェア領域のサイズを拡張したU-Bootの新バージョンを用意しました。 なおファームウェア領域拡張のかわりに、ユーザーエリア(flashcfg -s/-Sでの保存先)が縮小されています。

A6は出荷時期により2種類のU-Bootバージョンが存在し、電源ON直後にシリアルコンソールに表示される内容から判断することが出来ます。 FlashROMのパーティション割り当ては、Linux上の/proc/mtdファイルを参照することで確認することが出来ます。 以下に各バージョンのパーティション割り当てを記載します。

出荷済みバージョン1.0.2

U-Boot 1.1.4 (Jul 30 2012 - 19:54:19)
Plat'Home version: 1.0.2 (Base: Marvell version: 3.5.9)

root@obsa6:~# grep '^mtd' /proc/mtd  | while read line;do echo -ne "$line\t=>\t";
printf "%d KiB\n" 0x$(echo $line|awk '{print $2}'); done mtd0: 00090000 00004000 "uboot" => 589824 KiB ※U-Boot本体 mtd1: 00044000 00004000 "env" => 278528 KiB ※U-Boot環境変数 mtd2: 00020000 00004000 "test" => 131072 KiB ※生産用テストプログラム mtd3: 00400000 00004000 "conf" => 4194304 KiB ※flashcfg -sでの保存先 mtd4: 01d20000 00004000 "linux" => 30539776 KiB ※ファームウェア(カーネル+ユーザーランド) mtd5: 01dec000 00004000 "user" => 31375360 KiB ※flashcfg -Sでの保存先

出荷済みバージョン1.1.0

U-Boot 1.1.4 (Oct 17 2012 - 15:25:27)
Plat'Home version: 1.1.0 (Base: Marvell version: 3.5.9)

root@obsa6:~# grep '^mtd' /proc/mtd  | while read line;do echo -ne "$line\t=>\t";
printf "%d KiB\n" 0x$(echo $line|awk '{print $2}'); done mtd0: 00080000 00004000 "uboot" => 524288 KiB mtd1: 00040000 00004000 "env" => 262144 KiB mtd2: 00020000 00004000 "test" => 131072 KiB mtd3: 00400000 00004000 "conf" => 4194304 KiB mtd4: 01c5c000 00004000 "linux" => 29736960 KiB mtd5: 01dc4000 00004000 "user" => 31211520 KiB

Debian7.1用の対策適用済みのバージョン1.2.4

U-Boot 1.1.4 (May 24 2013 - 15:13:41)
Plat'Home version: 1.2.4 A6 (Base: Marvell version: 3.5.9)

root@obsa6:~# grep '^mtd' /proc/mtd  | while read line;do echo -ne "$line\t=>\t";
printf "%d KiB\n" 0x$(echo $line|awk '{print $2}'); done mtd0: 000a8000 00004000 "uboot" => 688128 KiB mtd1: 00078000 00004000 "env" => 491520 KiB mtd2: 00048000 00004000 "test" => 294912 KiB mtd3: 00428000 00004000 "conf" => 4358144 KiB mtd4: 02028000 00004000 "linux" => 33718272 KiB mtd5: 01a48000 00004000 "user" => 27557888 KiB

1.1.0のパーティション割り当てと比較すると、ファームウェア領域が4MiB増加、flashcfg -Sでの保存先が4MiB減少されています。

更新手順


注意: 本操作によって、U-Bootの更新の他、FlashROMの全領域に対して書き換え又は消去を行います。 そのため、RAMディスクモードで利用していた場合の保存内容は全て消去されます。 消去されては困るデータがある場合は、事前にバックアップを実施願います。 またU-Bootの書き換えが何らかの理由により失敗した場合、U-Bootが起動出来なくなり、それに伴いLinuxの起動も出来なくなります。 仮に失敗してしまったような場合は、サポート窓口までお問い合わせ下さい。

現在のU-Bootバージョンの確認


シリアルコンソールを接続し、電源ONして下さい。 起動直後にバージョン情報が表示されますので、1.0.2又は1.1.0であることを確認し、この情報を必ず控えておいて下さい。

インストール済みパッケージの一覧を保存


# cd /root
# dpkg --get-selections > dpkg.list

既存環境のバックアップ


ボリュームラベルに「DEB_CONFIG」を設定したUSBメモリ等を接続して実行します。実行後は、USBメモリを取り外してください。

# flashcfg -B

U-Bootの更新に必要なパッケージの追加


# apt-get update
# apt-get install mtd-utils

A6用U-Boot 1.2.4へのアップグレードキットをダウンロード (注意:md5sumの結果が一致していることを確認)


# cd /root
# wget ftp://ftp.plathome.co.jp/pub/OBSA6/wheezy/3.2.40-0/a6_uboot_upgrade124_
kit.tar.gz # wget ftp://ftp.plathome.co.jp/pub/OBSA6/wheezy/3.2.40-0/a6_uboot_upgrade124_
kit.tar.gz.md5 # md5sum -c a6_uboot_upgrade124_kit.tar.gz.md5 a6_uboot_upgrade124_kit.tar.gz: OK

展開と実行


# tar xvzf a6_uboot_upgrade124_kit.tar.gz
# cd a6_uboot_upgrade124_kit
# ./update_a6_uboot.sh
Update u-boot to 1.2.4. (previous version checksum: c5)
erase u-boot area...done.
erase u-boot env area...done.
erase test program area...done.
erase linux conf area...done.
erase linux user area...done.
update u-boot...done.
update test program...done.

Please reboot the openblocks and install debian7 firmware.

バージョンの自動判定を行い、U-Boot及びテストプログラムの書き換え、環境変数やflashcfgの保存先を消去、Debian6ベースファームウェアの再書き込み(U-Boot 1.0.2の場合のみ)を実施します。

FlashROMでBadBlockが発生している場合、unknown u-boot versionと表示される場合があります。 この時は、次のように現在のバージョンを指定して実行します。

# ./update_a6_uboot.sh -u 1.1.0
※ unknown u-boot versionと表示された場合のみ。バージョンは適宜変更。

実行が完了したら、再起動を実施します。

# e2label /dev/sda1 "" ※ストレージ併用モードの場合のみ
# reboot

以上でU-Bootの更新が終了しました。 次に、ファームウェアを更新します。

ネットワークの暫定的な設定


ファームウェアファイルをダウンロードするため、暫定的にネットワーク設定を実施します。

# dhclient eth0

または

# ifconfig eth0 192.168.0.10 netmask 255.255.255.0 broascast 192.168.0.255
# route add default gw 192.168.0.1
# echo "nameserver 192.168.0.1" > /etc/resolv.conf

IPアドレス等は適宜読み替えてください。

バージョン7.1のファームウェアをダウンロード


FTPサーバより、ファームウェアファイルをダウンロードします。

# cd /root
# wget ftp://ftp.plathome.co.jp/pub/OBSA6/wheezy/3.2.40-0/uImage.initrd.obsa6

ファームウェアの書き込みと再起動


ダウンロードした、ファームウェアファイルを書き込み、再起動します。再起動後、7.1環境で動作し始めます。

# flashcfg -f uImage.initrd.obsa6
# reboot

必要に応じて、ストレージ併用モードの設定を行う ※ストレージ併用モードの場合のみ

環境のバージョンが変わるため、初期化を行います。

# mke2fs -j -L DEBIAN /dev/sda1
# reboot

ネットワーク設定を行う

ユーザーズガイドを参考に、ネットワークの設定を改めて実施してください。

保存したパッケージ一覧から、パッケージのインストール内容を復元

最初に保存した、インストール済みパッケージの一覧から、インストール内容を復元します。 バックアップに使用したUSBメモリを接続し、以下の操作を実施してください。 (USBメモリは、操作の直前に接続します。起動時に接続を行っていると、7.1環境に対して、6.0のバックアップデータを復元しようと試みます。)

# mount LABEL=DEB_CONFIG /mnt
# tar xvzf /mnt/userland.tgz ./root/dpkg.list
# umount /mnt

USBメモリを取り外します。

# apt-get update
# apt-get install dselect
# dselect update
# dpkg --set-selections < ./root/dpkg.list
# apt-get dselect-upgrade

バックアップから、各種設定情報を復元

バックアップに使用したUSBメモリには、/.rw 以下をアーカイブした userland.tgz が保存されています。利用されていた各種ソフトウェアの設定ファイルもすべて含まれていますので、必要なファイルを取り出し、再度設定を実施してください。





目次に戻る

ページの先頭へ戻る