Makeはモジュールをコンパイルしません。エラー:ビルディングブロック、ステップ2。 MODPOST 0モジュール

Makeはモジュールをコンパイルしません。エラー:ビルディングブロック、ステップ2。 MODPOST 0モジュール

私はバナナパイを持っていて、カーネル3.19.3-bananapiと一緒にDebianをインストールしました。http://www.igorpecovnik.com/2014/09/07/banana-pi-debian-sd-image/

そのため、モジュールをコンパイルしたいので、kernel.orgからカーネルをダウンロードし、たとえばモジュールをコンパイルしようとすると、カーネルツリーのルートにあり、次のコマンドを実行します。sudo make M=drivers/android modules

エラーが発生します。

Building modules, stage 2.
  MODPOST 0 modules

V = 1をデバッグするときの出力です。

user1@bananapi:~/linux-3.19.3$ sudo make M=drivers/android modules V=1
test -e include/generated/autoconf.h -a -e include/config/auto.conf || (       \
        echo >&2;                                                       \
        echo >&2 "  ERROR: Kernel configuration is invalid.";           \
        echo >&2 "         include/generated/autoconf.h or include/config/auto.conf are missing.";\
        echo >&2 "         Run 'make oldconfig && make prepare' on kernel src to fix it.";      \
        echo >&2 ;                                                      \
        /bin/false)
mkdir -p drivers/android/.tmp_versions ; rm -f drivers/android/.tmp_versions/*
make -f ./scripts/Makefile.build obj=drivers/android
(cat /dev/null; ) > drivers/android/modules.order
make -f ./scripts/Makefile.modpost
  find drivers/android/.tmp_versions -name '*.mod' | xargs -r grep -h '\.ko$' | sort -u | sed 's/\.ko$/.o/' | scripts/mod/modpost   -i ./Module.symvers -I drivers/android/Module.symvers  -o drivers/android/Module.symvers -S -w  -s -T -

GREP_OPTIONS='--color=always' を never および auto に変更しようとしましたが、同じエラーが発生しました。

uname -rの出力は、3.19.3-bananapi内のヘッダーがインストールされていることです。

dpkg -l linux*の出力

user1@bananapi:~/linux-3.19.3$ dpkg -l linux\*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version      Architecture Description
+++-==============-============-============-=================================
ii  linux-dtb-3.19 2.6          armhf        Linux DTB, version 3.19.3-bananap
un  linux-firmware <none>                    (no description available)
un  linux-headers  <none>                    (no description available)
un  linux-headers- <none>                    (no description available)
ii  linux-headers- 2.6          armhf        Linux kernel headers for 3.19.3-b
un  linux-image    <none>                    (no description available)
un  linux-image-2. <none>                    (no description available)
ii  linux-image-3. 2.6          armhf        Linux kernel, version 3.19.3-bana
un  linux-kernel-h <none>                    (no description available)
un  linux-kernel-l <none>                    (no description available)
ii  linux-libc-dev 2.6          armhf        Linux support headers for userspa
un  linux-modules- <none>                    (no description available)
un  linux-sound-ba <none>                    (no description available)
ii  linux-u-boot-3 2.6          all          Uboot loader
un  linux32        <none>                    (no description available)

ベストアンサー1

外部モジュールの場合は、まずカーネルをビルドし、modules_install次の説明に従ってインストールしてください。カーネルソースコードへのパスを作成していることを確認してください。

~からhttps://www.kernel.org/doc/Documentation/kbuild/modules.txt

--- 2.1 コマンド構文

外部モジュールをビルドするコマンドは次のとおりです。

  $ make -C <path_to_kernel_src> M=$PWD

kbuildシステムは、コマンドに提供されている「M =」オプションのために外部モジュールが構築されていることを知っています。

実行中のカーネルに対してビルドするには、次のようにします。

  $ make -C /lib/modules/`uname -r`/build M=$PWD

次に、ビルドしたモジュールをインストールするには、コマンドに「modules_install」ターゲットを追加します。

  $ make -C /lib/modules/`uname -r`/build M=$PWD modules_install

modules_install説明する:

modules_install
外部モジュールを取り付けます。デフォルトの場所はですが、 /lib/modules/<kernel_release>/extra/INSTALL_MOD_PATHを使用してプレフィックスを追加できます(セクション5で説明)。


デフォルトのカーネルディレクトリ(代わりに/extra)の下のカスタムディレクトリにモジュールをインストールしたい場合INSTALL_MOD_DIR

--- 5.2 インストール_MOD_ディレクトリ

外部モジュールはデフォルトで /lib/modules/$(KERNELRELEASE)/extra/ の下のディレクトリにインストールされますが、特定の機能のモジュールは別のディレクトリにあります。これを行うには、INSTALL_MOD_DIRを使用して「extra」の代替名を指定します。

  $ make INSTALL_MOD_DIR=gandalf -C $KDIR \
         M=$PWD modules_install       
  => Install dir: /lib/modules/$(KERNELRELEASE)/gandalf/

おすすめ記事