第3章 Linux 3.14 への移行方法

本章では、Linux 2.6.26からLinux 3.14へ移行するための情報について記載しています。

3.1. Linux 2.6.26で動作しているArmadilloを Linux 3.14に書き換える

3.1.1. Armadilloに書き込まれているソフトウェアバージョンの確認方法

出荷状態のArmadilloは、どのバージョンのソフトウェアがプリインストールされているかわかりません。本章の手順にてソフトウェアバージョンを確認してください。

保守モードでArmadilloに電源を投入するとhermitのバージョンがコンソールに表示されます。バージョンがv2.x.xの場合は、Linux 2.6.26 で使用するブートローダが書かれており、バージョンが 3.8.0以降の場合は、Linux 3.14で使用するブートローダーが書き込まれています。

[警告]

Linux 2.6.26で動作していたArmadilloにLinux 3.14のブートローダーを書き込むと、フラッシュメモリのパーティションの差分により、 /etc/config/ が復旧できなくなります。 /etc/config/ に大切なファイルを格納している場合には、必ずバックアップしておいてください

Hermit-At v2.2.0 (armadillo4x0) compiled at 12:00:50, Jun 04 2013
hermit> 

図3.1 Hermit-At v2.2.0 (Linux 2.6.26用)


Hermit-At v3.8.0 (armadillo4x0) compiled at 12:00:00, Oct 26 2015
hermit> 

図3.2 Hermit At v3.8.0 (Linux 3.14用)


カーネルおよびユーザーランドのバージョンは、起動時ログインプロンプトが表示される直前に表示されます。atmadk-dist のバージョンがv1.45.0以降、カーネルのバージョンが 3.14.26-at4 以降となっている場合には、Linux 3.14のソフトウェアで起動しています。

atmark-dist v1.45.0 (AtmarkTechno/Armadillo-420)
Linux 3.14.26-at4 [armv5tejl arch]

armadillo420-0 login:
[ティップ]

Armadilloの起動後は、uname -aコマンドでカーネルのバージョン確認する事ができます。

[armadillo ~]# uname -a
Linux armadillo420-0 3.14.36-at4 #1 PREEMPT Mon Oct 26 12:00:00 JST 2015 armv5tejl GNU/Linux

3.1.2. フラッシュメモリのイメージを Linux 3.14 に書き換える

次の例では、Hermit-Atのtftpdlコマンドを使用しイメージを書き換える方法を示します。フラッシュメモリの書き換え方法については、他にもいくつか方法があります。別の方法は、Armadillo-400シリーズ ソフトウェアマニュアルに記載されています。

手順3.1 tftpdlによるイメージの書き換え方法

  1. ATDEにイメージをダウンロードする

    ATDEでは tftp サーバーが動作しています。Armadillo は、この tftp サーバーからイメージファイルを取得します。ATDE の tftp サーバーは、/var/lib/tftpboot に配置されたファイルを配信するように設定されています。まずは、/var/lib/tftpbootにファイルをダウンロードしてください。

    Armadillo-420を例に、イメージをダウンロードするコマンドを以下に示します。

    [ATDE ~] cd /var/lib/tftpboot
    [ATDE /var/lib/tftpboot] wget http://download.atmark-techno.com/armadillo-420/image/loader-armadillo4x0-v[version].bin
    [ATDE /var/lib/tftpboot] wget http://download.atmark-techno.com/armadillo-420/image/linux-a400-[version].bin.gz
    [ATDE /var/lib/tftpboot] wget http://download.atmark-techno.com/armadillo-420/image/romfs-a420-[version].img.gz

    イメージファイルはArmadilloサイトからダウンロードする事ができます。

  2. tftpdlでブートローダを書き込む

    次は、Armadillo を操作し、先程配置したファイルをtftpdlコマンドで、フラッシュメモリーに書き込みます。最初は、ブートローダーを書き換えます。

    hermit> tftpdl [Armadillo IPアドレス] [ATDE IPアドレス] --bootloader=loader-armadillo4x0-v[version].bin
  3. リブート

    ここで電源を再投入してください。

    [重要項目]

    ブートローダーを書き換えた後は、必ず再起動をしてください。再起動しない場合、次に書くカーネルやユーザーランドをフラッシュメモリの正しいアドレスに書き込めません。

  4. tftpdlでカーネル、ユーザーランドを書き込む

    最後にカーネルとユーザーランドのイメージファイルを、書き換えます。前の手順で書き換えた新しい Hermit になっているか、バージョン番号を確かめてください

    Hermit-At v3.8.0 (armadillo4x0) compiled at 12:00:00, Oct 26 2015
    hermit> tftpdl [Armadillo IPアドレス] [ATDE IPアドレス] --kernel=linux-a400-[version].bin.gz --userland=romfs-a420-[version].img.gz

3.2. 開発した製品をLinux 3.14へ移行する

3.2.1. Productディレクトリの移行

Linux 2.6.26で開発した製品を Linux 3.14に移行する場合は、Linux 2.6.26の開発環境 (ATDE3)で元のプロダクトの差分を抽出し、新しい Linux 3.14 の環境 (ATDE5) に作成した新しいプロダクトディレクトリに必要な修正を反映する必要があります。

  1. ATDE3 で、Armadillo-420 と MyProduct の差分を作成

  2. ATDE5 で、Armadillo-420 から MyNewProduct をコピーして作成

  3. ATDE5 で、MyNewProduct に差分を反映

  4. ATDE5 で、MyNewProduct の妥当性の検証

[ATDE3 ~]$ cd atmark-dist/vendor/AtmarkTechno/
[ATDE3 ~/atmark-dist/vendor/AtmarkTechno]$ diff -uprN [Armadillo-420] [MyProduct] > MyProduct.diff

Atmark Distのプロダクトディレクトリ(vendor/AtmarkTechno/Armadillo-420など)は、異るバージョンのカーネルでも使えるように、多くのファイルが共通化されています。しかし、どうしてもカーネルのバージョンに依存してしまうファイルもあります。そのようなファイルは、ファイル名の最後にカーネルバージョンと同じサフィックスが付けられています。

Linux 3.14 への移行作業中、もし修正するファイルにサフィックスが付いたものがある場合は、サフィックス -3.xが付いたファイルを編集してください。-3.xx は置き換えず、そのまま -3.x という文字列のまま利用してください。

過去のプロダクトが、サフィックスが付いているファイルを修正していた場合は、修正方法の妥当性を検討し、差分を反映させる必要があります。

もし 新しく vendor/AtmarkTechno/Armadillo-420 から MyProduct を派生させ、Linux 3.14 を使う場合は、-2.6.xのファイルを削除してしまっても問題ありません。

3.2.2. カーネルコンフィギュレーションの実施

カーネルコンフィギュレーションの CONFIG名は、Linux 2.6.26 とLinux 3.14で異なっている場合があります。Linux 3.14に移行する際は、Armadillo-400シリーズ ソフトウェアマニュアルを参照し、再度コンフィギュレーションを実施しなおしてください。

3.2.3. ユーザーランドコンフィギュレーションの実施

Linux 2.6.26 と Linux 3.14 では標準で選択されるアプリケーションのバージョンが異なるものがあります。特に理由が無い場合は、Linux 3.14 で選択されるアプリケーションを使用してください。また、お客様の製品で追加するアプリケーションについては、適宜追加してください。