Armadilloフォーラム

Atmark Distのアップデート時のコンパイルエラー。

m.miz

2021年7月10日 16時01分

お世話になります。

Atmark Distのアップデートで、コンパイルエラーが発生します。

本件アップデートは、
Armadillo-400シリーズの新フラッシュメモリ移行に伴い、Armadillo-410からArmadillo-411に変更するためです。

【ソフトウェア環境】
(旧)
・ユーザランド:Atmark-Dist-20170621
 vendor/board:AtmarkTechno/Armadillo-410にアプリケーションを実装。

・カーネル:linux-2.6.26-at27
 LCD,FPGA,flash用SPI実装

(新)
・ユーザランド:Atmark-Dist-20191226

・カーネル:linux-2.6.26-at31
 LCD,FPGA,flash用SPI実装

【内容】
・旧ユーザランドと新カーネルとの組み合わせでは、コンパイルエラーは起きない。
 ただし、SPI-Flash(MTD)アクセスができない。

・新ユーザランドと新カーネルとの組み合わせでは、コンパイルエラーが発生。
 エラー箇所を抜粋したログ(make_log.pdf)を添付します。

【作業手順】
 マニュアル
「Armadillo 実践開発ガイド(第2部)」(armadillo-guide-2_ja-3.0.0.pdf)
 ”7.4.5. コンフィギュレーションの保存”、”7.7. ソフトウェアアップデートへの対応”
 を参考に実施。

何卒、よろしくお願いします。

ファイル ファイルの説明
armadillo-guide-2_ja-3.0.0.pdf Armadillo 実践開発ガイド(第2部)
make_log.pdf エラー箇所抜粋ログ
コメント

at_shinya.koga

2021年7月12日 15時13分

アットマークテクノの古賀です。

以下の件ですが、ATDE3 を開発環境に使い、linux-2.6.26-at31 と Atmark-Dist-20191226 の組み合わせで確認したところ、ユーザーランドコンフィギュレーションの変更で、"Filesystem Applications" の "mount" を選択項目に追加してから make すると、同じコンパイルエラーになりました。ただし、ユーザーランドを Atmark-Dist-20170621 にした場合にも、"Filesystem Applications" の "mount" を選択項目に追加すると、同じコンパイルエラーになります。
つまり、「旧ユーザランドと新カーネルとの組み合わせ」でも、こちらの環境では、同じコンパイルエラーが発生しており、ご報告の状況と若干異なっています。

つきましては、お手元の環境について、いくつか確認させて下さい。

m.mizさん:
>Atmark Distのアップデートで、コンパイルエラーが発生します。
>
>本件アップデートは、
>Armadillo-400シリーズの新フラッシュメモリ移行に伴い、Armadillo-410からArmadillo-411に変更するためです。
>
>【ソフトウェア環境】
>(旧)
>・ユーザランド:Atmark-Dist-20170621
> vendor/board:AtmarkTechno/Armadillo-410にアプリケーションを実装。
>
>・カーネル:linux-2.6.26-at27
> LCD,FPGA,flash用SPI実装
>
>(新)
>・ユーザランド:Atmark-Dist-20191226
>
>・カーネル:linux-2.6.26-at31
> LCD,FPGA,flash用SPI実装
>
>
>
>【内容】
>・旧ユーザランドと新カーネルとの組み合わせでは、コンパイルエラーは起きない。
> ただし、SPI-Flash(MTD)アクセスができない。
>
>・新ユーザランドと新カーネルとの組み合わせでは、コンパイルエラーが発生。
> エラー箇所を抜粋したログ(make_log.pdf)を添付します。
>
>
>
>【作業手順】
> マニュアル
>「Armadillo 実践開発ガイド(第2部)」(armadillo-guide-2_ja-3.0.0.pdf)
> ”7.4.5. コンフィギュレーションの保存”、”7.7. ソフトウェアアップデートへの対応”
> を参考に実施。

以下、確認のための質問です:

1.) お使いの開発環境は、ATDE でしょうか?ATDE の場合、どのバージョンをお使いでしょうか?

2.) 「旧ユーザランドと新カーネルとの組み合わせ」でビルドしていらっしゃる開発環境と、「新ユーザランドと新カーネルとの組み合わせ」でビルドしていらっしゃる環境は、同じでしょうか?もし異なる場合は、それぞれの開発環境を教えて下さい。

3.) 「新ユーザランドと新カーネルとの組み合わせ」のビルドディレクトリにおいて make menuconfig を実行した場合、「Armadillo 実践開発ガイド(第2部)」v3.0.0 の「7.4.2. ユーザーランドコンフィギュレーションの変更」記載の手順で、「Userland Configuration」画面の「Filesystem Applications」メニュー画面を表示した時、「mount」または「umount」が選択された状態でしょうか?
- https://manual.atmark-techno.com/armadillo-guide/armadillo-guide-2_ja-3…

4.) (3) が YES の場合ですが、busybox 組込みの mount/umount コマンドを使わず、別途 mount/umount を追加していらっしゃる理由が、もし分かりましたら教えて下さい。

以上、お手数をかけますが、回答を頂けましたら幸いです。

m.miz

2021年7月12日 17時31分

お世話になります。

#インラインで失礼します。

> アットマークテクノの古賀です。
>
> 以下の件ですが、ATDE3 を開発環境に使い、linux-2.6.26-at31 と Atmark-Dist-20191226 の組み合わせで確認したところ、ユーザーランドコンフィギュレーションの変更で、"Filesystem Applications" の "mount" を選択項目に追加してから make すると、同じコンパイルエラーになりました。ただし、ユーザーランドを Atmark-Dist-20170621 にした場合にも、"Filesystem Applications" の "mount" を選択項目に追加すると、同じコンパイルエラーになります。
> つまり、「旧ユーザランドと新カーネルとの組み合わせ」でも、こちらの環境では、同じコンパイルエラーが発生しており、ご報告の状況と若干異なっています。
>
> つきましては、お手元の環境について、いくつか確認させて下さい。
>
> m.mizさん:
> >Atmark Distのアップデートで、コンパイルエラーが発生します。
> >
> >本件アップデートは、
> >Armadillo-400シリーズの新フラッシュメモリ移行に伴い、Armadillo-410からArmadillo-411に変更するためです。
> >
> >【ソフトウェア環境】
> >(旧)
> >・ユーザランド:Atmark-Dist-20170621
> > vendor/board:AtmarkTechno/Armadillo-410にアプリケーションを実装。
> >
> >・カーネル:linux-2.6.26-at27
> > LCD,FPGA,flash用SPI実装
> >
> >(新)
> >・ユーザランド:Atmark-Dist-20191226
> >
> >・カーネル:linux-2.6.26-at31
> > LCD,FPGA,flash用SPI実装
> >
> >
> >
> >【内容】
> >・旧ユーザランドと新カーネルとの組み合わせでは、コンパイルエラーは起きない。
> > ただし、SPI-Flash(MTD)アクセスができない。
> >
> >・新ユーザランドと新カーネルとの組み合わせでは、コンパイルエラーが発生。
> > エラー箇所を抜粋したログ(make_log.pdf)を添付します。
> >
> >
> >
> >【作業手順】
> > マニュアル
> >「Armadillo 実践開発ガイド(第2部)」(armadillo-guide-2_ja-3.0.0.pdf)
> > ”7.4.5. コンフィギュレーションの保存”、”7.7. ソフトウェアアップデートへの対応”
> > を参考に実施。
>
> 以下、確認のための質問です:
>
> 1.) お使いの開発環境は、ATDE でしょうか?ATDE の場合、どのバージョンをお使いでしょうか?

 同じ、ATDE3-20171115 上に

 ・Atmark-Dist-20170621(旧ユーザランド)
 ・カーネル:linux-2.6.26-at27(旧カーネル)

 ・Atmark-Dist-20191226(新ユーザランド
 ・linux-2.6.26-at31(新カーネル)

 を実装しております。

>
> 2.) 「旧ユーザランドと新カーネルとの組み合わせ」でビルドしていらっしゃる開発環境と、「新ユーザランドと新カーネルとの組み合わせ」でビルドしていらっしゃる環境は、同じでしょうか?もし異なる場合は、それぞれの開発環境を教えて下さい。

 各ユーザランド環境下で、新カーネルにシンボリックリンクを張っています。

>
> 3.) 「新ユーザランドと新カーネルとの組み合わせ」のビルドディレクトリにおいて make menuconfig を実行した場合、「Armadillo 実践開発ガイド(第2部)」v3.0.0 の「7.4.2. ユーザーランドコンフィギュレーションの変更」記載の手順で、「Userland Configuration」画面の「Filesystem Applications」メニュー画面を表示した時、「mount」または「umount」が選択された状態でしょうか?
> - https://manual.atmark-techno.com/armadillo-guide/armadillo-guide-2_ja-3…

 確認しました。
 旧ユーザランドでは、「mount」または「umount」が選択された状態です。
 新ユーザランドでは、「mount」または「umount」が未選択です。

>
> 4.) (3) が YES の場合ですが、busybox 組込みの mount/umount コマンドを使わず、別途 mount/umount を追加していらっしゃる理由が、もし分かりましたら教えて下さい。
>
 ファイルシステム(jffs2)に対応するためです。
 当時、busybox 組込みの mount/umountが、jffs2に対応していなかった記憶がございます。

>
> 以上、お手数をかけますが、回答を頂けましたら幸いです。
>

宜しくお願い致します。

at_shinya.koga

2021年7月12日 18時45分

アットマークテクノの古賀です。

m.mizさん:
>>以下の件ですが、ATDE3 を開発環境に使い、linux-2.6.26-at31 と Atmark-Dist-20191226 の組み合わせで確認したところ、ユーザーランドコンフィギュレーションの変更で、"Filesystem Applications" の "mount" を選択項目に追加してから make すると、同じコンパイルエラーになりました。ただし、ユーザーランドを Atmark-Dist-20170621 にした場合にも、"Filesystem Applications" の "mount" を選択項目に追加すると、同じコンパイルエラーになります。
>>つまり、「旧ユーザランドと新カーネルとの組み合わせ」でも、こちらの環境では、同じコンパイルエラーが発生しており、ご報告の状況と若干異なっています。
>>
>>つきましては、お手元の環境について、いくつか確認させて下さい。

>>以下、確認のための質問です:
>>
>>1.) お使いの開発環境は、ATDE でしょうか?ATDE の場合、どのバージョンをお使いでしょうか?
>
> 同じ、ATDE3-20171115 上に
>
> ・Atmark-Dist-20170621(旧ユーザランド)
> ・カーネル:linux-2.6.26-at27(旧カーネル)
>
> ・Atmark-Dist-20191226(新ユーザランド
> ・linux-2.6.26-at31(新カーネル)
>
> を実装しております。
>
>
>>
>>2.) 「旧ユーザランドと新カーネルとの組み合わせ」でビルドしていらっしゃる開発環境と、「新ユーザランドと新カーネルとの組み合わせ」でビルドしていらっしゃる環境は、同じでしょうか?もし異なる場合は、それぞれの開発環境を教えて下さい。
>
> 各ユーザランド環境下で、新カーネルにシンボリックリンクを張っています。

了解しました。とすると、こちらで確認したのと同じ環境ですので、m.miz さんの結果と、こちらでの確認結果に違いが出ている要因は、環境以外のところ(コンフィグレーションの内容など)にあるのかも知れません。

>>3.) 「新ユーザランドと新カーネルとの組み合わせ」のビルドディレクトリにおいて make menuconfig を実行した場合、「Armadillo 実践開発ガイド(第2部)」v3.0.0 の「7.4.2. ユーザーランドコンフィギュレーションの変更」記載の手順で、「Userland Configuration」画面の「Filesystem Applications」メニュー画面を表示した時、「mount」または「umount」が選択された状態でしょうか?
>> - https://manual.atmark-techno.com/armadillo-guide/armadillo-guide-2_ja-3…
>
> 確認しました。
> 旧ユーザランドでは、「mount」または「umount」が選択された状態です。
> 新ユーザランドでは、「mount」または「umount」が未選択です。

追加で確認ですが、「mount」と「umount」の選択状態は、それぞれどうなっているでしょうか?

>>4.) (3) が YES の場合ですが、busybox 組込みの mount/umount コマンドを使わず、別途 mount/umount を追加していらっしゃる理由が、もし分かりましたら教えて下さい。
>>
> ファイルシステム(jffs2)に対応するためです。
> 当時、busybox 組込みの mount/umountが、jffs2に対応していなかった記憶がございます。

busybox の mount は、mtdblock デバイスに対してでないと jffs をマウントできないようですね:
http://www.linux-mtd.infradead.org/faq/jffs2.html#L_mtdblock

mtdblok を使わず、mtd 直接アクセスで jffs2 フォーマットした NOR Flash をマウントする構成で使っていらした、ということなのだろうと思います。

もう一点、追加で確認させて下さい。

5.) 「旧ユーザランド」と「新ユーザランド」の各々で、make menuconfig した際、
[Vendor/Product Selection] > [Select the Product you wish to target]
の Product は、それぞれ何になっているでしょうか?

m.miz

2021年7月12日 20時07分

アットマークテクノ 古賀様

お世話になります。
ご対応ありがとうございます。

> >>3.) 「新ユーザランドと新カーネルとの組み合わせ」のビルドディレクトリにおいて make menuconfig を実行した場合、「Armadillo 実践開発ガイド(第2部)」v3.0.0 の「7.4.2. ユーザーランドコンフィギュレーションの変更」記載の手順で、「Userland Configuration」画面の「Filesystem Applications」メニュー画面を表示した時、「mount」または「umount」が選択された状態でしょうか?
> >> - https://manual.atmark-techno.com/armadillo-guide/armadillo-guide-2_ja-3…
> >
> > 確認しました。
> > 旧ユーザランドでは、「mount」または「umount」が選択された状態です。
> > 新ユーザランドでは、「mount」または「umount」が未選択です。
>
> 追加で確認ですが、「mount」と「umount」の選択状態は、それぞれどうなっているでしょうか?
>

 ともに選択しています。

> >>4.) (3) が YES の場合ですが、busybox 組込みの mount/umount コマンドを使わず、別途 mount/umount を追加していらっしゃる理由が、もし分かりましたら教えて下さい。
> >>
> > ファイルシステム(jffs2)に対応するためです。
> > 当時、busybox 組込みの mount/umountが、jffs2に対応していなかった記憶がございます。
>
> busybox の mount は、mtdblock デバイスに対してでないと jffs をマウントできないようですね:
> http://www.linux-mtd.infradead.org/faq/jffs2.html#L_mtdblock
>
> mtdblok を使わず、mtd 直接アクセスで jffs2 フォーマットした NOR Flash をマウントする構成で使っていらした、ということなのだろうと思います。
>

 はい。仰せの通りでございます。

> もう一点、追加で確認させて下さい。
>
> 5.) 「旧ユーザランド」と「新ユーザランド」の各々で、make menuconfig した際、
> [Vendor/Product Selection] > [Select the Product you wish to target]
> の Product は、それぞれ何になっているでしょうか?
>
 「旧ユーザランド」: Armadillo-410
 「新ユーザランド」: Armadillo-410
 ※「新ユーザランド」に「旧ユーザランド」の"Armadillo-410"ディレクトリをコピーした。
  「Armadillo実践開発ガイド(第2部)」 ”7.7.ソフトウェアアップデートへの対応”を参考。

以上、よろしくお願いします。

> アットマークテクノの古賀です。
>
> m.mizさん:
> >>以下の件ですが、ATDE3 を開発環境に使い、linux-2.6.26-at31 と Atmark-Dist-20191226 の組み合わせで確認したところ、ユーザーランドコンフィギュレーションの変更で、"Filesystem Applications" の "mount" を選択項目に追加してから make すると、同じコンパイルエラーになりました。ただし、ユーザーランドを Atmark-Dist-20170621 にした場合にも、"Filesystem Applications" の "mount" を選択項目に追加すると、同じコンパイルエラーになります。
> >>つまり、「旧ユーザランドと新カーネルとの組み合わせ」でも、こちらの環境では、同じコンパイルエラーが発生しており、ご報告の状況と若干異なっています。
> >>
> >>つきましては、お手元の環境について、いくつか確認させて下さい。
> …
> >>以下、確認のための質問です:
> >>
> >>1.) お使いの開発環境は、ATDE でしょうか?ATDE の場合、どのバージョンをお使いでしょうか?
> >
> > 同じ、ATDE3-20171115 上に
> >
> > ・Atmark-Dist-20170621(旧ユーザランド)
> > ・カーネル:linux-2.6.26-at27(旧カーネル)
> >
> > ・Atmark-Dist-20191226(新ユーザランド
> > ・linux-2.6.26-at31(新カーネル)
> >
> > を実装しております。
> >
> >
> >>
> >>2.) 「旧ユーザランドと新カーネルとの組み合わせ」でビルドしていらっしゃる開発環境と、「新ユーザランドと新カーネルとの組み合わせ」でビルドしていらっしゃる環境は、同じでしょうか?もし異なる場合は、それぞれの開発環境を教えて下さい。
> >
> > 各ユーザランド環境下で、新カーネルにシンボリックリンクを張っています。
>
> 了解しました。とすると、こちらで確認したのと同じ環境ですので、m.miz さんの結果と、こちらでの確認結果に違いが出ている要因は、環境以外のところ(コンフィグレーションの内容など)にあるのかも知れません。
>
> >>3.) 「新ユーザランドと新カーネルとの組み合わせ」のビルドディレクトリにおいて make menuconfig を実行した場合、「Armadillo 実践開発ガイド(第2部)」v3.0.0 の「7.4.2. ユーザーランドコンフィギュレーションの変更」記載の手順で、「Userland Configuration」画面の「Filesystem Applications」メニュー画面を表示した時、「mount」または「umount」が選択された状態でしょうか?
> >> - https://manual.atmark-techno.com/armadillo-guide/armadillo-guide-2_ja-3…
> >
> > 確認しました。
> > 旧ユーザランドでは、「mount」または「umount」が選択された状態です。
> > 新ユーザランドでは、「mount」または「umount」が未選択です。
>
> 追加で確認ですが、「mount」と「umount」の選択状態は、それぞれどうなっているでしょうか?
>
> >>4.) (3) が YES の場合ですが、busybox 組込みの mount/umount コマンドを使わず、別途 mount/umount を追加していらっしゃる理由が、もし分かりましたら教えて下さい。
> >>
> > ファイルシステム(jffs2)に対応するためです。
> > 当時、busybox 組込みの mount/umountが、jffs2に対応していなかった記憶がございます。
>
> busybox の mount は、mtdblock デバイスに対してでないと jffs をマウントできないようですね:
> http://www.linux-mtd.infradead.org/faq/jffs2.html#L_mtdblock
>
> mtdblok を使わず、mtd 直接アクセスで jffs2 フォーマットした NOR Flash をマウントする構成で使っていらした、ということなのだろうと思います。
>
> もう一点、追加で確認させて下さい。
>
> 5.) 「旧ユーザランド」と「新ユーザランド」の各々で、make menuconfig した際、
> [Vendor/Product Selection] > [Select the Product you wish to target]
> の Product は、それぞれ何になっているでしょうか?
>

at_shinya.koga

2021年7月13日 6時47分

アットマークテクノの古賀です。

m.mizさん:
>>>>3.) 「新ユーザランドと新カーネルとの組み合わせ」のビルドディレクトリにおいて make menuconfig を実行した場合、「Armadillo 実践開発ガイド(第2部)」v3.0.0 の「7.4.2. ユーザーランドコンフィギュレーションの変更」記載の手順で、「Userland Configuration」画面の「Filesystem Applications」メニュー画面を表示した時、「mount」または「umount」が選択された状態でしょうか?
>>>> - https://manual.atmark-techno.com/armadillo-guide/armadillo-guide-2_ja-3…
>>>
>>>確認しました。
>>>旧ユーザランドでは、「mount」または「umount」が選択された状態です。
>>>新ユーザランドでは、「mount」または「umount」が未選択です。
>>
>>追加で確認ですが、「mount」と「umount」の選択状態は、それぞれどうなっているでしょうか?
>>
>
>ともに選択しています。

ごめんなさい。「ともに選択」だけですと、新旧それぞれがどういう状態なのか分かりません。次のどれでしょうか?

a.) 旧ユーザランドでは、mount と umount がどちらも選択されており、新ユーザランドでは、どちらも選択されていない。

b.) 旧ユーザランドと新ユーザランド共に、mount と umount がどちらも選択されている。

c.) それ以外。

(c) の場合、「旧ユーザランド: mount 〇 umount 〇、新ユーザランド: mount × umount ×」(※'〇' は選択、'×' は未選択)のように書いて頂けますと助かります。

もし、旧ユーザランドと新ユーザランドで、mount と umount の選択状態が異なっているとしたら、旧ユーザランドに対するコンフィグレーションが新ユーザランドに引き継がれていない、ということになりますので、それが、新旧でコンパイルエラー有無に違いの出ている要因の一つかも知れませんね。

m.miz

2021年7月13日 7時47分

お世話になります。
インラインで失礼します。

> アットマークテクノの古賀です。
>
> m.mizさん:
> >>>>3.) 「新ユーザランドと新カーネルとの組み合わせ」のビルドディレクトリにおいて make menuconfig を実行した場合、「Armadillo 実践開発ガイド(第2部)」v3.0.0 の「7.4.2. ユーザーランドコンフィギュレーションの変更」記載の手順で、「Userland Configuration」画面の「Filesystem Applications」メニュー画面を表示した時、「mount」または「umount」が選択された状態でしょうか?
> >>>> - https://manual.atmark-techno.com/armadillo-guide/armadillo-guide-2_ja-3…
> >>>
> >>>確認しました。
> >>>旧ユーザランドでは、「mount」または「umount」が選択された状態です。
> >>>新ユーザランドでは、「mount」または「umount」が未選択です。
> >>
> >>追加で確認ですが、「mount」と「umount」の選択状態は、それぞれどうなっているでしょうか?
> >>
> >
> >ともに選択しています。
>
> ごめんなさい。「ともに選択」だけですと、新旧それぞれがどういう状態なのか分かりません。次のどれでしょうか?
>
> a.) 旧ユーザランドでは、mount と umount がどちらも選択されており、新ユーザランドでは、どちらも選択されていない。
>
> b.) 旧ユーザランドと新ユーザランド共に、mount と umount がどちらも選択されている。
>
> c.) それ以外。
>
> (c) の場合、「旧ユーザランド: mount 〇 umount 〇、新ユーザランド: mount × umount ×」(※'〇' は選択、'×' は未選択)のように書いて頂けますと助かります。
>
> もし、旧ユーザランドと新ユーザランドで、mount と umount の選択状態が異なっているとしたら、旧ユーザランドに対するコンフィグレーションが新ユーザランドに引き継がれていない、ということになりますので、それが、新旧でコンパイルエラー有無に違いの出ている要因の一つかも知れませんね。
>

 こちらこそ失礼しました。
 a.) 旧ユーザランドでは、mount と umount がどちらも選択されており、新ユーザランドでは、どちらも選択されていない。
 が回答になります。
 
 以上、よろしくお願いします。

at_shinya.koga

2021年7月13日 10時55分

アットマークテクノの古賀です。

m.mizさん:
>>>>追加で確認ですが、「mount」と「umount」の選択状態は、それぞれどうなっているでしょうか?
>>>
>>>ともに選択しています。
>>
>>ごめんなさい。「ともに選択」だけですと、新旧それぞれがどういう状態なのか分かりません。次のどれでしょうか?
>>
>>a.) 旧ユーザランドでは、mount と umount がどちらも選択されており、新ユーザランドでは、どちらも選択されていない。
>>
>>b.) 旧ユーザランドと新ユーザランド共に、mount と umount がどちらも選択されている。
>>
>>c.) それ以外。
>>
>>(c) の場合、「旧ユーザランド: mount 〇 umount 〇、新ユーザランド: mount × umount ×」(※'〇' は選択、'×' は未選択)のように書いて頂けますと助かります。
>>
>>もし、旧ユーザランドと新ユーザランドで、mount と umount の選択状態が異なっているとしたら、旧ユーザランドに対するコンフィグレーションが新ユーザランドに引き継がれていない、ということになりますので、それが、新旧でコンパイルエラー有無に違いの出ている要因の一つかも知れませんね。
>
>こちらこそ失礼しました。
>a.) 旧ユーザランドでは、mount と umount がどちらも選択されており、新ユーザランドでは、どちらも選択されていない。
>が回答になります。

了解しました。旧ユーザランドでコンフィグレーションを保存して新ユーザランドにコピーしたにも関わらず、コンフィグレーションが一部引き継がれていないようなのが、気になります。こちらで再現確認してみますので、差し支えなければ、旧ユーザランド(atmark-dist-2017062)の方の
vendors/AtmarkTechno/
にある Armadillo-410/ ディレクトリを、.tar.gz にして添付して頂いてもよいでしょうか?

m.mizさん(2021年7月12日 20時07分):
>>もう一点、追加で確認させて下さい。
>>
>>5.) 「旧ユーザランド」と「新ユーザランド」の各々で、make menuconfig した際、
>> [Vendor/Product Selection] >[Select the Product you wish to target]
>> の Product は、それぞれ何になっているでしょうか?
>>
>「旧ユーザランド」: Armadillo-410
>「新ユーザランド」: Armadillo-410
>※「新ユーザランド」に「旧ユーザランド」の"Armadillo-410"ディレクトリをコピーした。
> 「Armadillo実践開発ガイド(第2部)」 ”7.7.ソフトウェアアップデートへの対応”を参考。

なお、atmark-dist-20170621.tar.gz には、標準状態では
vendors/AtmarkTechno/Armadillo-410/
が存在しておりませんので、お手元の旧ユーザランドにある Armadillo-410/ ディレクトリは、以前に開発された際に、Armadillo-440/ からコピーするなどして追加されたものだという認識で合っているでしょうか?

m.miz

2021年7月13日 11時12分

お世話になります。
インラインで失礼します。

> アットマークテクノの古賀です。
>
> m.mizさん:
> >>>>追加で確認ですが、「mount」と「umount」の選択状態は、それぞれどうなっているでしょうか?
> >>>
> >>>ともに選択しています。
> >>
> >>ごめんなさい。「ともに選択」だけですと、新旧それぞれがどういう状態なのか分かりません。次のどれでしょうか?
> >>
> >>a.) 旧ユーザランドでは、mount と umount がどちらも選択されており、新ユーザランドでは、どちらも選択されていない。
> >>
> >>b.) 旧ユーザランドと新ユーザランド共に、mount と umount がどちらも選択されている。
> >>
> >>c.) それ以外。
> >>
> >>(c) の場合、「旧ユーザランド: mount 〇 umount 〇、新ユーザランド: mount × umount ×」(※'〇' は選択、'×' は未選択)のように書いて頂けますと助かります。
> >>
> >>もし、旧ユーザランドと新ユーザランドで、mount と umount の選択状態が異なっているとしたら、旧ユーザランドに対するコンフィグレーションが新ユーザランドに引き継がれていない、ということになりますので、それが、新旧でコンパイルエラー有無に違いの出ている要因の一つかも知れませんね。
> >
> >こちらこそ失礼しました。
> >a.) 旧ユーザランドでは、mount と umount がどちらも選択されており、新ユーザランドでは、どちらも選択されていない。
> >が回答になります。
>
> 了解しました。旧ユーザランドでコンフィグレーションを保存して新ユーザランドにコピーしたにも関わらず、コンフィグレーションが一部引き継がれていないようなのが、気になります。こちらで再現確認してみますので、差し支えなければ、旧ユーザランド(atmark-dist-2017062)の方の
> vendors/AtmarkTechno/
> にある Armadillo-410/ ディレクトリを、.tar.gz にして添付して頂いてもよいでしょうか?

 了解いたしました。

>
> m.mizさん(2021年7月12日 20時07分):
> >>もう一点、追加で確認させて下さい。
> >>
> >>5.) 「旧ユーザランド」と「新ユーザランド」の各々で、make menuconfig した際、
> >> [Vendor/Product Selection] >[Select the Product you wish to target]
> >> の Product は、それぞれ何になっているでしょうか?
> >>
> >「旧ユーザランド」: Armadillo-410
> >「新ユーザランド」: Armadillo-410
> >※「新ユーザランド」に「旧ユーザランド」の"Armadillo-410"ディレクトリをコピーした。
> > 「Armadillo実践開発ガイド(第2部)」 ”7.7.ソフトウェアアップデートへの対応”を参考。
>
> なお、atmark-dist-20170621.tar.gz には、標準状態では
> vendors/AtmarkTechno/Armadillo-410/
> が存在しておりませんので、お手元の旧ユーザランドにある Armadillo-410/ ディレクトリは、以前に開発された際に、Armadillo-440/ からコピーするなどして追加されたものだという認識で合っているでしょうか?

 はい。
 以前に開発したArmadillo-440/をまるごとコピーしております。

よろしくお願いします。

ファイル ファイルの説明
Armadillo-410.tar.gz vendors/AtmarkTechno/Armadillo-410/ディレクトリ 一式

at_shinya.koga

2021年7月13日 16時03分

アットマークテクノの古賀です。

m.mizさん:
>>>こちらこそ失礼しました。
>>>a.) 旧ユーザランドでは、mount と umount がどちらも選択されており、新ユーザランドでは、どちらも選択されていない。
>>>が回答になります。
>>
>>了解しました。旧ユーザランドでコンフィグレーションを保存して新ユーザランドにコピーしたにも関わらず、コンフィグレーションが一部引き継がれていないようなのが、気になります。こちらで再現確認してみますので、差し支えなければ、旧ユーザランド(atmark-dist-2017062)の方の
>> vendors/AtmarkTechno/
>>にある Armadillo-410/ ディレクトリを、.tar.gz にして添付して頂いてもよいでしょうか?
>
>了解いたしました。

有難うございます。頂いた Armadillo-410.tar.gz を、Atmark-Dist-20170621(旧ユーザランド)と linux-2.6.26-at31(新カーネル)との組み合わせに適用してビルドしましたが、やはり、コンパイルエラーします。こちらで行った手順は、次の通りです:

$ ls atmark-dist-20170621.tar.gz  linux-2.6.26-at31.tar.gz Armadillo-410.tar.gz
$ tar zxf atmark-dist-20170621.tar.gz
$ tar zxf linux-2.6.26-at31.tar.gz
$ tar Armadillo-410.tar.gz
$ cd atmark-dist-20170621
$ ln -s ../linux-2.6.26-at31 ./linux-2.6.x
$ cd vendors/AtmarkTechno
$ cp -r ../../../Armadillo-410 ./
$ cd ../..
$ make menuconfig

make menuconfig で "Vendor/Product Selection" メニューを選択して、Vendor を "AtmarkTechno"、Product を "Armadillo-410" に設定した後、Exit -> Exit -> Yes で一旦終了。
その後、再度 make menuconfig を実行し、"Kernel/Library/Defaults Selection" メニューを選択して "Customize Vendor/User Settings" を選択状態にした後、Exit -> Exit -> Yes で終了。終了後に表示されるコンフィグレーション画面で、"Filesystem Applications" メニューを選択し、"mount" と "umount" が両方選択されていることを確認。その後、Exit -> Exit -> No で終了。
それから、make を実行。

旧ユーザランドと新ユーザランドの組み合わせに対し、上記手順でビルドを試みましたが、弊社環境では、この組み合わせでもコンパイルエラーします。

>>なお、atmark-dist-20170621.tar.gz には、標準状態では
>> vendors/AtmarkTechno/Armadillo-410/
>>が存在しておりませんので、お手元の旧ユーザランドにある Armadillo-410/ ディレクトリは、以前に開発された際に、Armadillo-440/ からコピーするなどして追加されたものだという認識で合っているでしょうか?
>
>はい。
>以前に開発したArmadillo-440/をまるごとコピーしております。

追加で、二点確認させて下さい。

6.) 「旧ユーザランドと新カーネルとの組み合わせ」でお使いの、旧ユーザランドのディレクトリは、今回、新たに atmark-dist-20170621.tar.gz をダウンロードして展開されたものでしょうか?あるいは、以前に開発された時のものをお使いでしょうか?

7.) 旧ユーザランドと新ユーザランドの、user/mount/umount.c を diff -s で比較した場合、同一と報告されるでしょうか?

弊社環境では、(7) を行うと同一と報告されます。もし、お手元の環境では、旧ユーザランドと新ユーザランドとで umount.c の内容が異なる場合、それが要因ではないかと思われます。件のコンパイルエラーですが、umount.c では、umount2() が static 関数として定義されているのに対し、
/usr/arm-linux-gnueabi/include/sys/mount.h
では、umount2() を extern 宣言しているためのようです。/usr/arm-linux-gnueabi/include/sys/mount.h は、ユーザランドのディレクトリの中ではなく、開発環境(ATDE)の /usr 配下に収録されているヘッダファイルですから、新旧ユーザランドの umount.c が同一であれば、どちらにおいても同じコンパイルエラーが発生すると思うのですが、お手元の環境では、そうではないということですから、実は、旧ユーザランドの umount.c に変更が加えれられていないだろうかと思った次第です。

以上、お手数をかけますが、どうぞ宜しくお願いします。

m.miz

2021年7月13日 17時49分

古賀様

お世話になります。
ご指摘していただいた通り、user/mount/umount.c が異なっておりました。
旧ユーザランドのumount.cを使用したところ、ビルド成功しました。
ありがとうございました。

あと、引き続きになるのですが、
ビルド成功したところでイメージファイルをArmadilloに書き込み
動作確認を行いました。

起動メッセージを確認すると

armadillo-nor: Found 1 x16 devices at 0x0 in 16-bit bank
Support for command set 0002 not present
gen_probe: No supported Vendor Command Set found
m25p80 spi3.0: m25px16 (2048 Kbytes)

となり、MTDパーティションが作られません。
新フラッシュメモリ移行によるメモリマップの変更が影響しているのでしょうか?
原因や対処方法など、ありましたらご教授していただければ助かります。

Armadillo-410(旧環境のボード 正常動作)と
Armadillo-411(新環境のボード 異常動作)のブート時のログを添付いたします。

よろしくお願いします。

> アットマークテクノの古賀です。
>
> m.mizさん:
> >>>こちらこそ失礼しました。
> >>>a.) 旧ユーザランドでは、mount と umount がどちらも選択されており、新ユーザランドでは、どちらも選択されていない。
> >>>が回答になります。
> >>
> >>了解しました。旧ユーザランドでコンフィグレーションを保存して新ユーザランドにコピーしたにも関わらず、コンフィグレーションが一部引き継がれていないようなのが、気になります。こちらで再現確認してみますので、差し支えなければ、旧ユーザランド(atmark-dist-2017062)の方の
> >> vendors/AtmarkTechno/
> >>にある Armadillo-410/ ディレクトリを、.tar.gz にして添付して頂いてもよいでしょうか?
> >
> >了解いたしました。
>
> 有難うございます。頂いた Armadillo-410.tar.gz を、Atmark-Dist-20170621(旧ユーザランド)と linux-2.6.26-at31(新カーネル)との組み合わせに適用してビルドしましたが、やはり、コンパイルエラーします。こちらで行った手順は、次の通りです:
>
>

> $ ls atmark-dist-20170621.tar.gz  linux-2.6.26-at31.tar.gz Armadillo-410.tar.gz
> $ tar zxf atmark-dist-20170621.tar.gz
> $ tar zxf linux-2.6.26-at31.tar.gz
> $ tar Armadillo-410.tar.gz
> $ cd atmark-dist-20170621
> $ ln -s ../linux-2.6.26-at31 ./linux-2.6.x
> $ cd vendors/AtmarkTechno
> $ cp -r ../../../Armadillo-410 ./
> $ cd ../..
> $ make menuconfig
> 

>
> make menuconfig で "Vendor/Product Selection" メニューを選択して、Vendor を "AtmarkTechno"、Product を "Armadillo-410" に設定した後、Exit -> Exit -> Yes で一旦終了。
> その後、再度 make menuconfig を実行し、"Kernel/Library/Defaults Selection" メニューを選択して "Customize Vendor/User Settings" を選択状態にした後、Exit -> Exit -> Yes で終了。終了後に表示されるコンフィグレーション画面で、"Filesystem Applications" メニューを選択し、"mount" と "umount" が両方選択されていることを確認。その後、Exit -> Exit -> No で終了。
> それから、make を実行。
>
> 旧ユーザランドと新ユーザランドの組み合わせに対し、上記手順でビルドを試みましたが、弊社環境では、この組み合わせでもコンパイルエラーします。
>
> >>なお、atmark-dist-20170621.tar.gz には、標準状態では
> >> vendors/AtmarkTechno/Armadillo-410/
> >>が存在しておりませんので、お手元の旧ユーザランドにある Armadillo-410/ ディレクトリは、以前に開発された際に、Armadillo-440/ からコピーするなどして追加されたものだという認識で合っているでしょうか?
> >
> >はい。
> >以前に開発したArmadillo-440/をまるごとコピーしております。
>
> 追加で、二点確認させて下さい。
>
> 6.) 「旧ユーザランドと新カーネルとの組み合わせ」でお使いの、旧ユーザランドのディレクトリは、今回、新たに atmark-dist-20170621.tar.gz をダウンロードして展開されたものでしょうか?あるいは、以前に開発された時のものをお使いでしょうか?
>
> 7.) 旧ユーザランドと新ユーザランドの、user/mount/umount.c を diff -s で比較した場合、同一と報告されるでしょうか?
>
> 弊社環境では、(7) を行うと同一と報告されます。もし、お手元の環境では、旧ユーザランドと新ユーザランドとで umount.c の内容が異なる場合、それが要因ではないかと思われます。件のコンパイルエラーですが、umount.c では、umount2() が static 関数として定義されているのに対し、
> /usr/arm-linux-gnueabi/include/sys/mount.h
> では、umount2() を extern 宣言しているためのようです。/usr/arm-linux-gnueabi/include/sys/mount.h は、ユーザランドのディレクトリの中ではなく、開発環境(ATDE)の /usr 配下に収録されているヘッダファイルですから、新旧ユーザランドの umount.c が同一であれば、どちらにおいても同じコンパイルエラーが発生すると思うのですが、お手元の環境では、そうではないということですから、実は、旧ユーザランドの umount.c に変更が加えれられていないだろうかと思った次第です。
>
> 以上、お手数をかけますが、どうぞ宜しくお願いします。
>

ファイル ファイルの説明
bootlog_Armadillo410_new-flash.txt Armadillo-411(新環境のボード)ブートログ ー異常動作
bootlog_Armadillo410_old-flash.txt Armadillo-410(旧環境のボード)ブートログ ー正常動作

at_shinya.koga

2021年7月14日 14時29分

アットマークテクノの古賀です。

m.mizさん:
>ご指摘していただいた通り、user/mount/umount.c が異なっておりました。
>旧ユーザランドのumount.cを使用したところ、ビルド成功しました。
>ありがとうございました。

コンパイルエラーが解消して何よりです。安心しました。

>あと、引き続きになるのですが、
>ビルド成功したところでイメージファイルをArmadilloに書き込み
>動作確認を行いました。
>
>起動メッセージを確認すると
>:
>armadillo-nor: Found 1 x16 devices at 0x0 in 16-bit bank
>Support for command set 0002 not present
>gen_probe: No supported Vendor Command Set found
>m25p80 spi3.0: m25px16 (2048 Kbytes)
>:
>となり、MTDパーティションが作られません。
>新フラッシュメモリ移行によるメモリマップの変更が影響しているのでしょうか?
>原因や対処方法など、ありましたらご教授していただければ助かります。
>
>Armadillo-410(旧環境のボード 正常動作)と
>Armadillo-411(新環境のボード 異常動作)のブート時のログを添付いたします。

ログを拝見して、原因を調べてみたところ、新フラッシュメモリ移行に伴って必要になったコンフィグレーション項目が、お手元のビルド環境では、設定されていないためだと分かりました。menuconfig の、

 Kernel/Library/Defaults Selection
  Customize Kernel Settings

を指定した後のメニュー画面で、

 Device Drivers
  Memory Technology Device (MTD) support
   RAM/ROM/Flash chip drivers
*     Support for AMD/Fujitsu flash chips

を選択して頂けますか。これにより、ログの

>Support for command set 0002 not present

で 'not present' と言っている、command set 0002 に対する CFI Flash ドライバが組み込まれ、新フラッシュ対応となります。

m.miz

2021年7月14日 17時49分

古賀様
お世話になっております。

> を選択して頂けますか。これにより、ログの
>
> >Support for command set 0002 not present
>
> で 'not present' と言っている、command set 0002 に対する CFI Flash ドライバが組み込まれ、新フラッシュ対応となります。

 ご指摘どうり操作を行い、ドライバが組み込まれ、新フラッシュ対応となっているようです。
 ありがとうございました。

 新フラッシュ対応となり、新たな問題が発生しました。
 フラッシュのアクセス不良が発生します。
 ※ブート時のログを添付いたします。(boot_log_210714.txt)

 当プログラムコードのバグかもしれませんが、ログから見てどのようなことが考えられますでしょうか?
 
 よろしくお願いします。

> アットマークテクノの古賀です。
>
> m.mizさん:
> >ご指摘していただいた通り、user/mount/umount.c が異なっておりました。
> >旧ユーザランドのumount.cを使用したところ、ビルド成功しました。
> >ありがとうございました。
>
> コンパイルエラーが解消して何よりです。安心しました。
>
> >あと、引き続きになるのですが、
> >ビルド成功したところでイメージファイルをArmadilloに書き込み
> >動作確認を行いました。
> >
> >起動メッセージを確認すると
> >:
> >armadillo-nor: Found 1 x16 devices at 0x0 in 16-bit bank
> >Support for command set 0002 not present
> >gen_probe: No supported Vendor Command Set found
> >m25p80 spi3.0: m25px16 (2048 Kbytes)
> >:
> >となり、MTDパーティションが作られません。
> >新フラッシュメモリ移行によるメモリマップの変更が影響しているのでしょうか?
> >原因や対処方法など、ありましたらご教授していただければ助かります。
> >
> >Armadillo-410(旧環境のボード 正常動作)と
> >Armadillo-411(新環境のボード 異常動作)のブート時のログを添付いたします。
>
> ログを拝見して、原因を調べてみたところ、新フラッシュメモリ移行に伴って必要になったコンフィグレーション項目が、お手元のビルド環境では、設定されていないためだと分かりました。menuconfig の、
>
>  Kernel/Library/Defaults Selection
>   Customize Kernel Settings
>
> を指定した後のメニュー画面で、
>
>  Device Drivers
>   Memory Technology Device (MTD) support
>    RAM/ROM/Flash chip drivers
> *     Support for AMD/Fujitsu flash chips
>
> を選択して頂けますか。これにより、ログの
>
> >Support for command set 0002 not present
>
> で 'not present' と言っている、command set 0002 に対する CFI Flash ドライバが組み込まれ、新フラッシュ対応となります。

ファイル ファイルの説明
boot_log_210714.txt ブートログ(20210704)

at_shinya.koga

2021年7月14日 18時08分

アットマークテクノの古賀です。

m.mizさん:
>>を選択して頂けますか。これにより、ログの
>>
>>>Support for command set 0002 not present
>>
>>で 'not present' と言っている、command set 0002 に対する CFI Flash ドライバが組み込まれ、新フラッシュ対応となります。
>
>ご指摘どうり操作を行い、ドライバが組み込まれ、新フラッシュ対応となっているようです。
>ありがとうございました。

新フラッシュ用の CFI Flash ドライバが動作するところまでは進んだ、ということですね。

>新フラッシュ対応となり、新たな問題が発生しました。
>フラッシュのアクセス不良が発生します。
>※ブート時のログを添付いたします。(boot_log_210714.txt)
>
>当プログラムコードのバグかもしれませんが、ログから見てどのようなことが考えられますでしょうか?

ログに出ている jffs2 のエラーメッセージから
'jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at'
を拾って google 検索してみたところ、参考になるかも知れないページが、いくつかヒットしました。
これらをご覧になってみて下さいませ。Armadillo ユーザーズメーリングリストの過去記事を見ると、何らかの原因で、正常に書込みできていない可能性が高いと思われます:

・Armadillo ユーザーズメーリングリスト
 https://lists.atmark-techno.com/pipermail/armadillo/2008-February/00276…
 https://lists.atmark-techno.com/pipermail/armadillo/2008-February/threa…

・stack overflow の質問
 https://stackoverflow.com/a/16249479

以上、もし参考になりましたら幸いです。

at_mizo

2021年7月15日 9時38分

溝渕です。

> 'jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at'

jffs2のMagic(0x1985)が見つからない状態です。ファイルシステムとして不正
な状態であることを示しています。

このjffs2 filesysteはどのようにして構築しましたか?

もし旧フラッシュメモリから吸い出したデータをそのまま新フラッシュメモリ
に書き込んだのであれば正常に動作しないかもしれません。

少しjffs2のソースを見たのですが、super blockにmtdの情報(erase sizeなど)を
持っていました。

こちらで試してはいませんが、jffs2 filesystemを再構築するとmountできる
ようになりませんか?

m.miz

2021年7月15日 15時12分

溝渕様、古賀様

お世話になります。

本件につきまして、
flash_eraseallコマンドを使用してフラッシュをjffs2ファイルシステムで初期化したところ
うまく機能するようになりました。
これで作業を進めることができます。
いろいろなご助言いただき、誠にありがとうございました。

> 溝渕です。
>
> > 'jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at'
>
> jffs2のMagic(0x1985)が見つからない状態です。ファイルシステムとして不正
> な状態であることを示しています。
>
> このjffs2 filesysteはどのようにして構築しましたか?
>
> もし旧フラッシュメモリから吸い出したデータをそのまま新フラッシュメモリ
> に書き込んだのであれば正常に動作しないかもしれません。
>
> 少しjffs2のソースを見たのですが、super blockにmtdの情報(erase sizeなど)を
> 持っていました。
>
> こちらで試してはいませんが、jffs2 filesystemを再構築するとmountできる
> ようになりませんか?
>