第4章 付録A 新フラッシュメモリ適用品向けアップデートの差分の適用例
ここでは、以下のWebページからダウンロードできるパッチファイルの中から、例として hermit-at-2.1.5にパッチを適用する例を紹介します。
一連の操作はATDEのGNOME端末上で行います。また、ATDEや関連するソフトウェア(シリアル通信ソフトウェアなど)については、設定が完了している前提で説明しています。各製品の製品マニュアル、ソフトウェアマニュアルをご覧いただき、関連ソフトウェアの設定を完了してから操作を行ってください。
後でパッチを当てたことによって、実際にどのような変更が行われたのかを把握しやすくするため、ソースコードのバックアップします。
patchコマンドが失敗した場合、パッチを適用できなかった箇所を、テキストエディタで適切に修正する必要があります。
パッチを適用できなかった箇所は、「パッチが適用されるファイル名」.rej というファイルに記述されています。
図4.3「include/target/machine.h.rejの内容」とinclude/target/machine.hを見比べると、 "#define MACH_ARMADILLO410 (4636)" の行が無かった(Armadillo-410対応前のソースコードだった)ため、パッチを適用できなかったことがわかります。
4.2.3. パッチを適用できなかった箇所のソースコードの修正
パッチを適用できなかった箇所がある場合、生成されたrejファイルに記述された差分を確認し、ソースコードに適用すべきかを判断する必要があります。
hermit-at-2.1.5-sourceは、Armadillo-410対応前のソースコードです。そのため、"#define MACH_ARMADILLO410 (4636)"が存在しなくても問題はありません。したがって、include/target/machine.hを以下のように修正します。
patchコマンドが成功していたとしても、意図したとおりにソースコードが変更されているかはわかりません。そのため、パッチ適用後のソースコードが「新フラッシュメモリ適用に伴うソフトウェア変更箇所」および使用したパッチファイルの意図したとおりになっているか確認してください。
| |
---|
パッチ適用前後のソースコードの差分は、diffコマンドで確認できます。patchコマンドにより、実際のソースコードには .orig ファイルと .rej ファイルが含まれていますが、ビルドには影響しないため無視してください。
|
正しく適用されたのかどうか判断ができない場合は、ソースコードのバージョンと図4.5「パッチ適用前後のソースコードの差分」の実行結果を添付してArmadilloフォーラムへお問い合せください。
ビルド方法については、各製品の製品マニュアル、ソフトウェアマニュアルをご覧ください。
新フラッシュメモリ対応のイメージをビルドする上で、手順の追加はありません。ただし、次の点にご注意ください。
4.4.1. デフォルトコンフィギュレーションを適用してからビルドする
新フラッシュメモリ対応のイメージをビルドする際は、必ずデフォルトコンフィギュレーションを適用してからmakeを実行してください。
新フラッシュメモリ対応ではデフォルトコンフィギュレーションの変更を行っています。そのため、ソースコードの修正後、デフォルトコンフィギュレーションを適用せずにイメージをビルドすると、新フラッシュメモリ非対応のイメージが生成されてしまいます。