Make não compila módulos. Erro: módulos de construção, estágio 2. MODPOST 0 modules

2

Eu tenho banana pi e instalei o debian com kernel 3.19.3-bananapi de link

Então eu quero compilar um módulo, então eu baixei o kernel do kernel.org e quando eu tento compilar qualquer módulo, como por exemplo eu estou na raiz da árvore do kernel e execute sudo make M=drivers/android modules

Eu recebo erro:

Building modules, stage 2.
  MODPOST 0 modules

Aqui está a saída com a remoção de 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 -

Eu tentei alterar o GREP_OPTIONS = '- color = always' para never e auto e recebi o mesmo erro.

a saída do uname -r é 3.19.3-bananapi Meus cabeçalhos estão instalados.

A saída do 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)
    
por unixdebian11 18.04.2015 / 16:18

2 respostas

1

Se estes forem módulos externos, tente criar primeiro o kernel, depois instale usando modules_install como descrito abaixo. Certifique-se de estar construindo o caminho para o seu código fonte do kernel.

De link

--- 2.1 Command Syntax

The command to build an external module is:

  $ make -C <path_to_kernel_src> M=$PWD

The kbuild system knows that an external module is being built due to the "M=" option given in the command.

To build against the running kernel use:

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

Then to install the module(s) just built, add the target "modules_install" to the command:

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

modules_install explicado:

modules_install
Install the external module(s). The default location is /lib/modules/<kernel_release>/extra/, but a prefix may be added with INSTALL_MOD_PATH (discussed in section 5).

Se você pretende instalar o módulo em um diretório personalizado sob o diretório principal do kernel (em vez de /extra ), use INSTALL_MOD_DIR .

--- 5.2 INSTALL_MOD_DIR

External modules are by default installed to a directory under /lib/modules/$(KERNELRELEASE)/extra/, but you may wish to locate modules for a specific functionality in a separate directory. For this purpose, use INSTALL_MOD_DIR to specify an alternative name to "extra."

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

Verifique se há um /proc/config.gz na banana quando o sistema está rodando (não estará lá se não estiver). O mais provável é que exista. Copie isso para o nível superior da árvore de origem e:

make clean
gunzip -c config.gz > .config
make oldconfig

Em seguida, tente criar o módulo novamente.

    
por 18.04.2015 / 17:21