Armadilloフォーラム

Armadillo-IoT G3(Linux4.9)でのLinuxカーネルイメージをカスタマイズ時エラー

hirokazu_takahashi

2018年10月18日 17時49分

お世話になります。
Linux4.9にアップグレードしたArmadillo-IoT G3にて、
CIFS導入を目的とした、
Linuxカーネルイメージをカスタマイズを行った時、エラーになりました。

現象としては、
https://users.atmark-techno.com/armadillo-iot-g3/software
から、
initramfs_x1-v1.1.0.cpio.gz
linux-4.9-x1-at2.tar.gz
を、ダウンロード。
sudo tar xf linux-4.9-x1-at2.tar.gz
ls
initramfs_x1-v1.1.0.cpio.gz linux-4.9-x1-at2 linux-4.9-x1-at2.tar.gz
cd linux-4.9-x1-at2
sudo ln -s ../initramfs_x1-v1.1.0.cpio.gz initramfs_x1.cpio.gz

コンフィギュレーション作業で、
sudo make ARCH=arm x1_defconfig
HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
SHIPPED scripts/kconfig/zconf.tab.c
SHIPPED scripts/kconfig/zconf.lex.c
SHIPPED scripts/kconfig/zconf.hash.c
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
#
# configuration written to .config
#
その後、エラーになる、
sudo make ARCH=arm menuconfig
HOSTCC scripts/kconfig/mconf.o
In file included from scripts/kconfig/mconf.c:23:0:
scripts/kconfig/lxdialog/dialog.h:38:20: fatal error: curses.h: そのようなファイルやディレクトリはありません
#include CURSES_LOC
^
compilation terminated.
scripts/Makefile.host:124: ターゲット 'scripts/kconfig/mconf.o' のレシピで失敗しました
make[1]: *** [scripts/kconfig/mconf.o] エラー 1
Makefile:543: ターゲット 'menuconfig' のレシピで失敗しました
make: *** [menuconfig] エラー 2
'-----------------

原因と対処方法をご教授ください。

コメント

コマンドを実行しているのは、Armadillo実機でしょうか?
ATDEでしょうか?

Armadillo実機で実行していると、コンパイル時に使用するパッケージがないことにより、エラーが発生しているのかもしれません。

ATDEで実行すれば解決するのでは?

違ったらすいません。

hirokazu_takahashi

2018年10月19日 11時45分

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

コマンドを実行しているのは、Armadillo実機です。

初心者の質問で申し訳ありませんが、
>ATDEで実行すれば解決するのでは?
とは、
VMwareの仮想環境上のLinux4.9上で、実行するとの事でしょうか?
また、仮想環境で実行後、Armadillo実機への反映は、どのドキュメントを参考にすればよいのでしょうか?

> VMwareの仮想環境上のLinux4.9上で、実行するとの事でしょうか?
その認識です。

> 仮想環境で実行後、Armadillo実機への反映は、どのドキュメントを参考にすればよいのでしょうか?
まとまった手順が正確にまとまったドキュメントはないですが、下記を参考にして下さい

https://qiita.com/pocket8137/items/b18f810d813f1e34ab27

https://manual.atmark-techno.com/armadillo-iot-g3l/armadillo-iotg-g3l_p…

makeで失敗しているところから、恐らく以下の手順を実行される予定だと思います。

最終的にuImageとarmadillo_iotg_g3.dtbが作成されるので、これをArmadillo実機に移します。

$ make ARCH=arm menuconfig
$ sudo make ARCH=arm menuconfig
$ make CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm
※ 20分ぐらい待機
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LOADADDR=0x80008000 uImage
$ ls -l arch/arm/boot/uImage
$ ls -l arch/arm/boot/dts/armadillo_iotg_g3.dtb

* uImageとarmadillo_iotg_g3.dtbをUSB経由などを経由して自分のPCに入れます

* uImageとarmadillo_iotg_g3.dtbを自分のPCからArmadillo本体に移動させます。

* eMMCの第1パーティションを/mnt/ディレクトリにマウント

$ mkdir /mnt
$ mount -t vfat /dev/mmcblk2p1 /mnt

* LinuxカーネルイメージとDTBを、/mnt/ディレクトリにコピー

$ cp uImage /mnt/uImage 
$ cp armadillo_iotg_g3.dtb /mnt/armadillo_iotg_g3.dtb
$ umount /mnt

hirokazu_takahashi

2018年10月29日 18時53分

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

無事、makeでき,uImage をコピー,rebootして、
mountコマンドでのCIFS利用ができるようになりました。

ありがとうございました。