Depois de descobrir que o wiki do Ubuntu que estou usando está se referindo a módulos externos , foi mais fácil encontrar uma solução pelo rtfm.
Resumo dos caminhos de instalação dos módulos externos
- Os módulos externos são instalados com
modules_install
at/lib/modules/$(KERNELRELEASE)/extra/
por padrão. - Ao instalar módulos externos em outro lugar,
INSTALL_MOD_PATH
é usado para prefixar o caminho de instalação ouINSTALL_MOD_DIR
é usado para criar um novo diretório no caminho/lib/modules/$(KERNELRELEASE)
usual.
Veja o final desta resposta para uma explicação mais detalhada.
Procurando por módulos externos
Para restringir a pesquisa ao acima, estou usando locate
para imprimir caminhos contendo lib/module
e xargs
para filtrar a saída dos caminhos que não são diretórios.
Por fim, grep -v
é usado para filtrar a saída de um caminho que começa com /lib/modules/$(uname -r)/kernel
. Isso ainda deve exibir os caminhos que foram prefixados usando INSTALL_MOD_PATH
durante a instalação, por exemplo, /frodo/lib/modules/$(KERNELRELEASE)/kernel/
.
Isto obviamente não irá imprimir o caminho dos módulos que foram de alguma forma instalados em um caminho completamente estranho. Aqui está o comando:
locate --null "*lib/modules/$(uname -r)*" | xargs -r0 sh -c 'for i do [ -d "$i" ] && printf "%s\n" "$i"; done' sh {} + | grep -v "^/lib/modules/$(uname -r)/kernel\|^/lib/modules/$(uname -r)$\|^/lib/modules/$(uname -r)/build$\|^/lib/modules/$(uname -r)/initrd$"
Isso remove os caminhos da árvore da saída, o que para mim era de 4695 linhas ao usar apenas locate "*lib/modules/$(uname -r)*"
. Agora, a saída é muito menor e deve exibir somente caminhos conhecidos fora da árvore:
/frodo/lib/modules/3.12.3-031203-generic
/frodo/lib/modules/3.12.3-031203-generic/kernel
Trechos da documentação Criando módulos externos
Os detalhes abaixo são de Building External Modules
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).
=== 5. Module Installation
Modules which are included in the kernel are installed in the
directory:
/lib/modules/$(KERNELRELEASE)/kernel/
And external modules are installed in:
/lib/modules/$(KERNELRELEASE)/extra/
--- 5.1 INSTALL_MOD_PATH
Above are the default directories but as always some level of
customization is possible. A prefix can be added to the
installation path using the variable INSTALL_MOD_PATH:
$ make INSTALL_MOD_PATH=/frodo modules_install
=> Install dir: /frodo/lib/modules/$(KERNELRELEASE)/kernel/
INSTALL_MOD_PATH may be set as an ordinary shell variable or,
as shown above, can be specified on the command line when
calling "make." This has effect when installing both in-tree
and out-of-tree modules.
--- 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/