Armadilloフォーラム

hermitにpachを当てたが動かず→理由を知りたい

th

2018年7月20日 12時34分

【質問】
Armadillo-440の新フラッシュメモリ版において、
hermitにpachを当てたのですが、
電源をONすると「hermit > 」という表示が出てこなくなってしまいました。
その理由を知りたいです。

私の環境を以下に書きます。
【環境】
・hermit-at2.1.1
・linux-2.6.26-at14

私が行った手順を以下に書きます。
【手順】
「Armadillo-400シリーズ 新フラッシュメモリ移行ガイド」
10ページにある以下のパッチをみながら、アップデートを行いました。
・新フラッシュメモリ適用品向けアップデートの差分ダウンロード
https://download.atmark-techno.com/misc/new_flash_memory/
hermitとLinuxカーネルにパッチを当てる必要があることがわかりました。
pachを当てた手順を以下に書きます。

【pachを当てた手順】
hermitとLinuxカーネルを一度に両方変更するとわからなくなるので、
まず、hermitのみにパッチをあてました。
そしてビルドして、hermitイメージファイルを作りました。
(この段階ではLinuxカーネルは変更していません)
hermitイメージファイルを書込みました。
電源をONすると「hermit > 」という表示が出てこなくなってしまいました。

コメント

at_kojiro.yamada

2018年7月20日 16時52分

> 【質問】
> Armadillo-440の新フラッシュメモリ版において、
> hermitにpachを当てたのですが、
> 電源をONすると「hermit > 」という表示が出てこなくなってしまいました。
> その理由を知りたいです。

フラッシュメモリからブートできていないのかもしれません。

patchコマンドを実行した時のログが残っていれば添付していただけますか?
手順を書く場合は、できるだけコマンドを実行した時のログをコピー&ペーストしていただいた方が、適切なコメントが得られることが多いです。

例えば、hermit-at v2.1.5 にパッチを当てた場合は、以下のようなログになります。
この例では、FAILEDとあるように一部、パッチの適用に失敗していることがわかります。

[ATDE ~/hermit-at-2.1.5-source]$ patch -p 1 < ../new_flash_memory_hermit-at-2.x.x.patch
patching file configs/armadillo4x0_boot_defconfig
patching file configs/armadillo4x0_defconfig
patching file include/target/flash.h
patching file include/target/machine.h
Hunk #1 FAILED at 12.
1 out of 1 hunk FAILED -- saving rejects to file include/target/machine.h.rej
patching file src/target/armadillo4x0/Kconfig
patching file src/target/armadillo4x0/board.c
Hunk #2 succeeded at 370 (offset -3 lines).
Hunk #3 succeeded at 572 (offset -3 lines).
Hunk #4 succeeded at 674 (offset -3 lines).
Hunk #5 succeeded at 772 (offset -3 lines).
patching file src/target/armadillo4x0/board.h
Hunk #1 succeeded at 38 with fuzz 1 (offset -1 lines).
patching file src/target/driver/flash_amd.c
patching file src/target/driver/flash_core.c

th

2018年7月23日 21時27分

> > 【質問】
> > Armadillo-440の新フラッシュメモリ版において、
> > hermitにpachを当てたのですが、
> > 電源をONすると「hermit > 」という表示が出てこなくなってしまいました。
> > その理由を知りたいです。
>
> フラッシュメモリからブートできていないのかもしれません。
>
> patchコマンドを実行した時のログが残っていれば添付していただけますか?
> 手順を書く場合は、できるだけコマンドを実行した時のログをコピー&ペーストしていただいた方が、適切なコメントが得られることが多いです。
>
> 例えば、hermit-at v2.1.5 にパッチを当てた場合は、以下のようなログになります。
> この例では、FAILEDとあるように一部、パッチの適用に失敗していることがわかります。
>
>

> [ATDE ~/hermit-at-2.1.5-source]$ patch -p 1 < ../new_flash_memory_hermit-at-2.x.x.patch
> patching file configs/armadillo4x0_boot_defconfig
> patching file configs/armadillo4x0_defconfig
> patching file include/target/flash.h
> patching file include/target/machine.h
> Hunk #1 FAILED at 12.
> 1 out of 1 hunk FAILED -- saving rejects to file include/target/machine.h.rej
> patching file src/target/armadillo4x0/Kconfig
> patching file src/target/armadillo4x0/board.c
> Hunk #2 succeeded at 370 (offset -3 lines).
> Hunk #3 succeeded at 572 (offset -3 lines).
> Hunk #4 succeeded at 674 (offset -3 lines).
> Hunk #5 succeeded at 772 (offset -3 lines).
> patching file src/target/armadillo4x0/board.h
> Hunk #1 succeeded at 38 with fuzz 1 (offset -1 lines).
> patching file src/target/driver/flash_amd.c
> patching file src/target/driver/flash_core.c
> 

>
回答ありがとうございます。
私の環境 hermit v2.1.1にパッチを当てて動かそうとしていました。
しかし、暫定的に新フラッシュに対応しているhermitv2.4.0をダウンロードして、
私オリジナルの変更を加えました。
hermit v2.1.1に対するパッチの質問は後からさせてください。
新たな質問があります。
【質問】
Linuxカーネルにパッチを当てて動かしたいです。
私の環境:linux-2.6.26-at14
公開されているパッチを当てましたがエラーが発生しました。
下の方にパッチをあてたときのログを添付します。
どのようにエラーを回避すればよいでしょうか?
新フラッシュ対応のLinuxカーネルに対して、私のオリジナルの変更を加えていかないと動きませんか?
変更箇所が多数あるので、パッチを当てて動かしたいです。
【パッチをあてたときのログ】
patching file arch/arm/configs/armadillo400_defconfig
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file arch/arm/configs/armadillo400_defconfig.rej
patching file arch/arm/configs/armadillo400_wlan_defconfig
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file arch/arm/configs/armadillo400_wlan_defconfig.rej
patching file arch/arm/mach-mx25/Kconfig
Hunk #1 FAILED at 33.
1 out of 1 hunk FAILED -- saving rejects to file arch/arm/mach-mx25/Kconfig.rej
patching file arch/arm/mach-mx25/armadillo400.c
Hunk #1 succeeded at 188 (offset -46 lines).
Hunk #2 FAILED at 218.
Hunk #3 FAILED at 693.
Hunk #4 succeeded at 1174 with fuzz 2 (offset -103 lines).
Hunk #5 FAILED at 1224.
3 out of 5 hunks FAILED -- saving rejects to file arch/arm/mach-mx25/armadillo400.c.rej
patching file arch/arm/mach-mx25/armadillo400_gpio.c
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
3 out of 3 hunks ignored -- saving rejects to file arch/arm/mach-mx25/armadillo400_gpio.c.rej
patching file arch/arm/mach-mx25/board-armadillo400.h
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file arch/arm/mach-mx25/board-armadillo400.h.rej
patching file arch/arm/tools/mach-types
Hunk #1 FAILED at 1725.
1 out of 1 hunk FAILED -- saving rejects to file arch/arm/tools/mach-types.rej
------------ログここまで。

ログにpatch detected!とありますが、本サイトにログをのせるため、2回パッチを当てたためです。
エラーが発生しているのは
・arch/arm/mach-mx25/Kconfig
・arch/arm/tools/mach-types
です。

at_kojiro.yamada

2018年8月3日 13時52分

> 【質問】
> Linuxカーネルにパッチを当てて動かしたいです。
> 私の環境:linux-2.6.26-at14
> 公開されているパッチを当てましたがエラーが発生しました。
> 下の方にパッチをあてたときのログを添付します。
> どのようにエラーを回避すればよいでしょうか?
> 新フラッシュ対応のLinuxカーネルに対して、私のオリジナルの変更を加えていかないと動きませんか?
> 変更箇所が多数あるので、パッチを当てて動かしたいです。

変更箇所が多数あるのであれば、
新フラッシュメモリ対応済みのソースに変更箇所を反映するのが良いと考えます。

旧バージョンのソフトウェアを利用したいのであれば、
新フラッシュメモリ対応パッチを、
独自の変更を加えたソースコードに適用するのではなく、
変更前の旧バージョンのソースコードに適用してください。
# 独自の変更を加えたソースコードにパッチを適用しようとすると、パッチを適用できない箇所が増えるため、かえって手間がかかります。

旧バージョンのソフトウェアに新フラッシュメモリ対応パッチを適用した後に、
お客様の変更をソースコードに入れてください。

パッチを適用できなかった場合の対処方法と
linux-2.6.26-at14にあたるパッチは
以下のトピックで回答しましたのでご利用ください。
https://users.atmark-techno.com/comment/5764#comment-5764