Para o Debian / Ubuntu, algo como
dpkg -S *.ko | grep /lib/modules | grep -v linux-image
deve funcionar. Disclaimer: Eu sou analfabeto quando se trata de correspondência de padrões, então provavelmente há maneiras melhores de fazer isso. No meu sistema, recebo
nvidia-kernel-2.6.32-5-vserver-686-bigmem: /lib/modules/2.6.32-5-vserver-686-bigmem/nvidia/nvidia.ko
nvidia-kernel-2.6.26-2-vserver-686-bigmem: /lib/modules/2.6.26-2-vserver-686-bigmem/nvidia/nvidia.ko
nvidia-kernel-2.6.26-1-vserver-686-bigmem: /lib/modules/2.6.26-1-vserver-686-bigmem/nvidia/nvidia.ko
Isso supõe que todos os módulos instalados são conhecidos pelo sistema de empacotamento, mas isso geralmente é uma boa ideia. Pelo menos no Debian, instalar módulos do kernel como pacotes binários é geralmente possível. Esta abordagem tem a vantagem de lhe dizer em qual pacote um módulo do kernel pertence. Abordagens semelhantes devem funcionar com outras distribuições Linux que usam um sistema de gerenciamento de pacotes; ou seja, a maioria deles.
Como a localização de módulos de terceiros é semelhante aos módulos in-kernel, não é fácil distingui-los. Consultar o gerenciador de pacotes facilita as coisas. No entanto, no meu kernel atualmente em execução, no diretório /lib/modules/2.6.32-5-vserver-686-bigmem
, percebo que os módulos nvidia estão em um diretório separado dos módulos principais do kernel, ou seja, /lib/modules/2.6.32-5-vserver-686-bigmem/nvidia
vs /lib/modules/2.6.32-5-vserver-686-bigmem/kernel
. Eu não sei se esse layout é uma política do Debian ou não. A coisa mais próxima da política do kernel do Debian que eu conheço é o Manual do Kernel da Debian , mas eu não achei nada relevante lá . Obviamente, o Ubuntu não está limitado pela política do Debian em nenhum caso.