Armadilloフォーラム

Linuxカーネルのビルドエラーに関して

y-miu

2022年3月12日 4時50分

お世話になります。三浦と申します。
「Armadillo-810製品マニュアル」の「11.1. Linux カーネル/ユーザーランドをビルドする」を参照し、以下実施しました。

【実施内容】
1. ディストリビューション(atmark-dist-20191226.tar.gz)をダウンロードし、解凍する。
2. カーネル(linux-3.4-at27.tar.gz)をダウンロードし、解凍する。
3. 1.の解凍先に、2.へのシンボリックリンクを作成する。
4. atmark-dist-20191226ディレクトリに入り、コンフィグレーション実施。
5. Vendor には "AtmarkTechno" を選択し、AtmarkTechno Products には "Armadillo-810" を選択。"Default all settings(lose changes)"に移動して"Y"キーを押下し、確定する。
6. make を実行する。

【実施結果】
添付のエラーが発生し、ビルド正常に完了しませんでした。

対応方法をご教示いただきたく、宜しくお願い致します。

ファイル ファイルの説明
キャプチャ.PNG
コメント

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

三浦さん:
>「Armadillo-810製品マニュアル」の「11.1. Linux カーネル/ユーザーランドをビルドする」を参照し、以下実施しました。
>
>【実施内容】
>1. ディストリビューション(atmark-dist-20191226.tar.gz)をダウンロードし、解凍する。
>2. カーネル(linux-3.4-at27.tar.gz)をダウンロードし、解凍する。
>3. 1.の解凍先に、2.へのシンボリックリンクを作成する。
>4. atmark-dist-20191226ディレクトリに入り、コンフィグレーション実施。
>5. Vendor には "AtmarkTechno" を選択し、AtmarkTechno Products には "Armadillo-810" を選択。"Default all settings(lose changes)"に移動して"Y"キーを押下し、確定する。
>6. make を実行する。
>
>【実施結果】
>添付のエラーが発生し、ビルド正常に完了しませんでした。
>
>対応方法をご教示いただきたく、宜しくお願い致します。

添付して頂いた画面キャプチャのエラーメッセージを見ましたが、不思議なエラーが出ています。

$ make
make ARCH=m68knommu CROSS_COMPILE=m68k-elf- -C linux-3.x || exit 1
make[1]: ディレクトリ '/home/atmark/linux-3.4-at27' に入ります
Makefile:327: /home/atmark/linux-3.4-at27/scripts/Kbuild.include: そのようなファイルやディレクトリはありません
...

make のクロスビルド設定が、ARM ではなく m68k になっているのが、そもそもおかしいですし、
 linux-3.4-at27/scripts/Kbuild.include
が存在しないというエラーが出ているの不可思議です。このファイルは、linux-3.4-at27.tar.gz に収録されており、アーカイブを展開した時点で存在しているはずだからです。

アーカイブが壊れているかも知れませんので、再度、ダウンロードからやり直してみて、linux-3.4-at27.tar.gz を展開した後、

$ ls /home/atmark/linux-3.4-at27/scripts/Kbuild.include

を実行して、Kbuild.include が存在するかどうか確認していて下さい。
ところで、アーカイブは、ATDE5 にどうやってダウンロードされたでしょうか?

古賀様

ご返信ありがとうございます。

> make のクロスビルド設定が、ARM ではなく m68k になっているのが、そもそもおかしいですし、
>  linux-3.4-at27/scripts/Kbuild.include
> が存在しないというエラーが出ているの不可思議です。このファイルは、linux-3.4-at27.tar.gz に収録されており、アーカイブを展開した時点で存在しているはずだからです。
>
> アーカイブが壊れているかも知れませんので、再度、ダウンロードからやり直してみて、linux-3.4-at27.tar.gz を展開した後、
>

> $ ls /home/atmark/linux-3.4-at27/scripts/Kbuild.include
> 

> を実行して、Kbuild.include が存在するかどうか確認していて下さい。

アーカイブをダウンロードし直して再度展開し、ビルド実行できました(ご指摘の通り、アーカイブが壊れていたのかもしれません)。
しかし添付エラーが出て、ビルド完了することができませんでした。

> ところで、アーカイブは、ATDE5 にどうやってダウンロードされたでしょうか?
以下リンク先よりダウンロードしたと記憶しています。
https://armadillo.atmark-techno.com/resources/software/atmark-dist
https://armadillo.atmark-techno.com/resources/software/armadillo-810/li…

以上、宜しくお願い致します。

ファイル ファイルの説明
log_220321.txt

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

三浦さん:
>>アーカイブが壊れているかも知れませんので、再度、ダウンロードからやり直してみて、linux-3.4-at27.tar.gz を展開した後、

$ ls /home/atmark/linux-3.4-at27/scripts/Kbuild.include

>>を実行して、Kbuild.include が存在するかどうか確認していて下さい。
>
>アーカイブをダウンロードし直して再度展開し、ビルド実行できました(ご指摘の通り、アーカイブが壊れていたのかもしれません)。
>しかし添付エラーが出て、ビルド完了することができませんでした。

添付のエラーログから末尾部分を引用します。scripts/kconfig/zconf.tab.c を生成してコンパイルする時にエラーするようですね。

scripts/kconfig/lex.zconf.c:1924:1: error: expected identifier or ‘(’ before ‘}’ token
In file included from scripts/kconfig/zconf.tab.c:2166:0:
scripts/kconfig/lex.zconf.c:286:13: warning: ‘zconfensure_buffer_stack’ used but never defined [enabled by default]
scripts/kconfig/lex.zconf.c:245:15: warning: ‘yy_buffer_stack_max’ defined but not used [-Wunused-variable]
make[5]: *** [scripts/kconfig/zconf.tab.o] エラー 1
make[4]: *** [silentoldconfig] エラー 2
make[3]: *** [include/autoconf.h] エラー 2
make[3]: ディレクトリ `/home/atmark/atmark-dist-20191226/user/busybox/busybox-1.20.2' から出ます
make[2]: *** [build] エラー 2
make[2]: ディレクトリ `/home/atmark/atmark-dist-20191226/user/busybox' から出ます
make[1]: *** [all] エラー 2
make[1]: ディレクトリ `/home/atmark/atmark-dist-20191226/user' から出ます
make: *** [subdirs] エラー 1

ダウンロードし直したアーカイブも壊れているかも知れませんので、md5sum を使い、二つのアーカイブの MD5 チェックサム値を採取してみて下さい:

$ md5sum linux-3.4-at27.tar.gz
$ md5sum atmark-dist-20191226.tar.gz

これらのアーカイブの MD5 チェックサム値を記載したファイルは、各々のダウンロードページにリンクがあります。今回のようなビルドエラーが出た場合は、ダウンロードしたアーカイブの MD5 チェックサム値を md5sum コマンドで採取して、内容が合っているかどうか確認してみて下さいませ:
 https://armadillo.atmark-techno.com/resources/software/armadillo-810/li…
 https://armadillo.atmark-techno.com/resources/software/armadillo-810/us…
上の二つのアーカイブの MD5 チェックサム値は、次の通りです:
 40cbf18f3a173510de8ef348da0402ba linux-3.4-at27.tar.gz
 433993ff7d41cca82d8defccfce3d5f8 atmark-dist-20191226.tar.gz

>>ところで、アーカイブは、ATDE5 にどうやってダウンロードされたでしょうか?
>
>以下リンク先よりダウンロードしたと記憶しています。
>https://armadillo.atmark-techno.com/resources/software/atmark-dist
>https://armadillo.atmark-techno.com/resources/software/armadillo-810/li…

こちらにあるリンク先は、それぞれ以下の通りですが、この URL が指すアーカイブを、どうやって ATDE5 にダウンロードされたのか、ということをお聞きしたい次第です:
 https://armadillo.atmark-techno.com/files/downloads/armadillo-810/sourc…
 https://armadillo.atmark-techno.com/files/downloads/armadillo-810/sourc…
ATDE5 上で wget を使ってダウンロードするのが最も簡単ですが、それ以外の方法をお使いになったのであれば、どういう方法でダウンロードされたのかを教えて下さいませ。

古賀様

お世話になっております。

> ダウンロードし直したアーカイブも壊れているかも知れませんので、md5sum を使い、二つのアーカイブの MD5 チェックサム値を採取してみて下さい:
>

> $ md5sum linux-3.4-at27.tar.gz
> $ md5sum atmark-dist-20191226.tar.gz
> 

> これらのアーカイブの MD5 チェックサム値を記載したファイルは、各々のダウンロードページにリンクがあります。今回のようなビルドエラーが出た場合は、ダウンロードしたアーカイブの MD5 チェックサム値を md5sum コマンドで採取して、内容が合っているかどうか確認してみて下さいませ:
>  https://armadillo.atmark-techno.com/resources/software/armadillo-810/li…
>  https://armadillo.atmark-techno.com/resources/software/armadillo-810/us…
> 上の二つのアーカイブの MD5 チェックサム値は、次の通りです:
>  40cbf18f3a173510de8ef348da0402ba linux-3.4-at27.tar.gz
>  433993ff7d41cca82d8defccfce3d5f8 atmark-dist-20191226.tar.gz
>
上記確認しましたが、チェックサム値は正しいようです。

> >>ところで、アーカイブは、ATDE5 にどうやってダウンロードされたでしょうか?
> >
> >以下リンク先よりダウンロードしたと記憶しています。
> >https://armadillo.atmark-techno.com/resources/software/atmark-dist
> >https://armadillo.atmark-techno.com/resources/software/armadillo-810/li…
>
> こちらにあるリンク先は、それぞれ以下の通りですが、この URL が指すアーカイブを、どうやって ATDE5 にダウンロードされたのか、ということをお聞きしたい次第です:
>  https://armadillo.atmark-techno.com/files/downloads/armadillo-810/sourc…
>  https://armadillo.atmark-techno.com/files/downloads/armadillo-810/sourc…
> ATDE5 上で wget を使ってダウンロードするのが最も簡単ですが、それ以外の方法をお使いになったのであれば、どういう方法でダウンロードされたのかを教えて下さいませ。

ウェブブラウザー(Epiphany)よりサイトにアクセスしてダウンロードし、そのファイルをホームディレクトリに移動させてから展開しました。
wgetより再ダウンロードし、再度同様の作業を実施したところ、問題なくビルド完了しました。

大変お手数をおかけしました、どうもありがとうございました。