FC2カウンター FPGAの部屋 udmabufをPetaLinuxで使用する(ホストパソコンでudmabufをmake したが致命的エラー)
fc2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

udmabufをPetaLinuxで使用する(ホストパソコンでudmabufをmake したが致命的エラー)

udmabufをPetaLinuxで使用する(ホストパソコンでudmabufをmakeして、udmabuf.koをPetaLinuxにコピーしたが失敗)”の続き。

前回の make は X86 用のカーネルモジュールを生成してしまい、Ultra96 のPetaLinux に持っていったがinsmod でエラーになった。今回は、arm64 用に make を行ってみよう。なお、arm64 用のコンパイル環境は、source /tools/Xilinx/Vivado/2018.3/settings64.sh を起動することにより確保している。

arm64 用に make をするためには、
ARCH=arm64 make
とすれば良いようだ。
また、libelf-dev モジュールが必要のようなので、これをインストールする。
sudo apt install -y libelf-dev
ARCH=arm64 make

致命的エラーになってしまった。
PetaLinux_84_190416.png

エラー内容を示す。

masaaki@masaaki-H110M4-M01:~/Docker/vivado182ub16/masaaki/PetaLProj/cam_dp_183/udmabuf$ ARCH=arm64 make
make -C /lib/modules/4.15.0-47-generic/build ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- M=/home/masaaki/Docker/vivado182ub16/masaaki/PetaLProj/cam_dp_183/udmabuf modules
make[1]: ディレクトリ '/usr/src/linux-headers-4.15.0-47-generic' に入ります
  CC [M]  /home/masaaki/Docker/vivado182ub16/masaaki/PetaLProj/cam_dp_183/udmabuf/udmabuf.o
In file included from ./include/linux/types.h:6:0,
                 from ./include/linux/kobject.h:19,
                 from ./include/linux/cdev.h:5,
                 from /home/masaaki/Docker/vivado182ub16/masaaki/PetaLProj/cam_dp_183/udmabuf/udmabuf.c:31:
./include/uapi/linux/types.h:5:10: 致命的エラー: asm/types.h: そのようなファイルやディレクトリはありません
 #include <asm/types.h>
          ^~~~~~~~~~~~~
コンパイルを停止しました。
scripts/Makefile.build:339: recipe for target '/home/masaaki/Docker/vivado182ub16/masaaki/PetaLProj/cam_dp_183/udmabuf/udmabuf.o' failed
make[2]: *** [/home/masaaki/Docker/vivado182ub16/masaaki/PetaLProj/cam_dp_183/udmabuf/udmabuf.o] Error 1
Makefile:1552: recipe for target '_module_/home/masaaki/Docker/vivado182ub16/masaaki/PetaLProj/cam_dp_183/udmabuf' failed
make[1]: *** [_module_/home/masaaki/Docker/vivado182ub16/masaaki/PetaLProj/cam_dp_183/udmabuf] Error 2
make[1]: ディレクトリ '/usr/src/linux-headers-4.15.0-47-generic' から出ます
Makefile:19: recipe for target 'all' failed
make: *** [all] Error 2


次に、念の為、ARCH=arm でもやってみよう。
make clean
ARCH=arm make

やはり致命的エラーだった。
PetaLinux_85_190416.png

ログを示す。

masaaki@masaaki-H110M4-M01:~/Docker/vivado182ub16/masaaki/PetaLProj/cam_dp_183/udmabuf$ ARCH=arm make
make -C /lib/modules/4.15.0-47-generic/build ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- M=/home/masaaki/Docker/vivado182ub16/masaaki/PetaLProj/cam_dp_183/udmabuf modules
make[1]: ディレクトリ '/usr/src/linux-headers-4.15.0-47-generic' に入ります
  CC [M]  /home/masaaki/Docker/vivado182ub16/masaaki/PetaLProj/cam_dp_183/udmabuf/udmabuf.o
In file included from ./include/asm-generic/int-ll64.h:11:0,
                 from ./arch/arm/include/uapi/asm/types.h:5,
                 from ./include/uapi/linux/types.h:5,
                 from ./include/linux/types.h:6,
                 from ./include/linux/kobject.h:19,
                 from ./include/linux/cdev.h:5,
                 from /home/masaaki/Docker/vivado182ub16/masaaki/PetaLProj/cam_dp_183/udmabuf/udmabuf.c:31:
./include/uapi/asm-generic/int-ll64.h:12:10: 致命的エラー: asm/bitsperlong.h: そのようなファイルやディレクトリはありません
 #include <asm/bitsperlong.h>
          ^~~~~~~~~~~~~~~~~~~
コンパイルを停止しました。
scripts/Makefile.build:339: recipe for target '/home/masaaki/Docker/vivado182ub16/masaaki/PetaLProj/cam_dp_183/udmabuf/udmabuf.o' failed
make[2]: *** [/home/masaaki/Docker/vivado182ub16/masaaki/PetaLProj/cam_dp_183/udmabuf/udmabuf.o] Error 1
Makefile:1552: recipe for target '_module_/home/masaaki/Docker/vivado182ub16/masaaki/PetaLProj/cam_dp_183/udmabuf' failed
make[1]: *** [_module_/home/masaaki/Docker/vivado182ub16/masaaki/PetaLProj/cam_dp_183/udmabuf] Error 2
make[1]: ディレクトリ '/usr/src/linux-headers-4.15.0-47-generic' から出ます
Makefile:19: recipe for target 'all' failed
make: *** [all] Error 2


試しに、udmabuf ディレクトリをMicroSD カードの第2パーティションの rootfs の /home/root/ ディレクトリにコピーして、Ultra96 のPetaLinux 上で make してみたがエラーだった。
PetaLinux_86_190416.png

エラー内容を示す。

root@xilinx-ultra96-reva-2018_2:~/udmabuf# make
make -C /lib/modules/4.14.0-xilinx-v2018.2/build ARCH=arm64 CROSS_COMPILE= M=/home/root/udmabuf modules
make[1]: *** /lib/modules/4.14.0-xilinx-v2018.2/build: No such file or directory. Stop.
make: *** [Makefile:19: all] Error 2

  1. 2019年04月16日 05:03 |
  2. PetaLinux
  3. | トラックバック:0
  4. | コメント:2

コメント

asm-generic

asm-generic/types.h がありましたので、
ln -s asm asm-generic
としてコンパイルしています。
  1. 2021/01/03(日) 10:00:19 |
  2. URL |
  3. 藤井則夫 #-
  4. [ 編集 ]

藤井様
情報ありがとうございました。
  1. 2021/01/03(日) 12:51:00 |
  2. URL |
  3. marsee #f1oWVgn2
  4. [ 編集 ]

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/4499-32ab721a
この記事にトラックバックする(FC2ブログユーザー)