Como eu digo quais módulos do kernel são necessários?

3

Digamos que eu tenha uma instalação padrão do Gentoo com todos os módulos (por exemplo, drivers de dispositivo) compilados. A partir deste ponto, existe uma maneira fácil de excluir os módulos não utilizados da próxima vez que eu recompilar o kernel?

    
por yanchenko 28.05.2009 / 19:57

9 respostas

3

make localmodconfig e make localyesconfig (apresentado em 2.6.32, lançado em 3 de dezembro de 2009) selecionará os módulos necessários para carregar os módulos em uso.

Mais informações .

Observe que isso não leva em conta módulos que foram carregados uma vez, mas estão atualmente descarregados. O ArchLinux tem uma coisa modprobed_db que resolve isso, eu não sei se o Gentoo tem um também.

    
por 22.03.2013 / 07:48
2

Você pode usar "lsmod" para conhecer os módulos do kernel

    
por 29.05.2009 / 12:13
2

Mostrar drivers / módulos em uso:

lspci -v
    
por 09.06.2009 / 20:39
1

Se nós entrarmos em detalhes técnicos, eu diria que você poderia simplesmente descarregar esses módulos, e então você não precisaria recompilar. No entanto, acho que você quis dizer "incluir apenas drivers no meu hardware específico". Nesse caso, eu sugeriria:

dmesg | less

dê uma olhada nisso e veja quais detalhes de hardware você pode extrapolar. Então, quando você for compilar o kernel, examine todos os componentes e veja se ele faz uma menção ao seu hardware. Após a reinicialização, verifique se todo o hardware funciona.

No archlinux, existe um script bash chamado [hwd][1] , eu suponho que funcionaria no gentoo (talvez um pouco de hacking necessário), mas ele vai te dizer sobre o que você tem sob o capô. Este é o meu computador de trabalho:

[theman@work]# hwd -s
HARDWARE DETECT ver 5.5 (simple mode)
Kernel     : 2.6.29-ARCH
CPU & Cache: Processor 0: Intel(R) Pentium(R) Dual  CPU  E2200  @ 2.20GHz 2194MHz, 1024 KB Cache
Processor 1: Intel(R) Pentium(R) Dual  CPU  E2200  @ 2.20GHz 2194MHz, 1024 KB Cache

Sound(a)   : 82801G ICH7 Family High Definition Audio Controller module: snd-hda-intel 
Video      : GeForce 8400 GS server: Xorg (vesa)  
Driver     : xf86-video-vesa   module: - 
Monitor    : Generic Monitor  H: 28.0-96.0kHz V: 50.0-75.0Hz
Mouse      : Logitech, Inc. Marble Mouse (4-button)  xtype: IMPS2 device: /dev/input/mice
HDD        : 82801GB/GR/GH ICH7 Family SATA IDE Controller module: ata_piix 
USB        : 82801G ICH7 Family USB UHCI Controller #4 module: uhci_hcd 
USB2       : 82801G ICH7 Family USB2 EHCI Controller module: ehci_hcd 

Ethernet   : RTL8139/8139C/8139C+ module: 8139too 
Network    : No wireless card

Menu       : Main menu: hwd
All        : Detect all hardwares: hwd -e
X sample   : Generate X sample: hwd -x 
    
por 28.05.2009 / 20:06
1

Eu uso o pacote discover no debian para descobrir quais módulos do kernel eu poderia carregar. Especificamente:

apt-get install discover
discover --data-path=linux/module/name|sort|uniq

Para o meu desktop dual core com um chipset nvidia, recebo:

amd74xx
emu10k1
emu10k1-gp
forcedeth
i2c-nforce2
ohci1394
sata_nv

Aqui está uma breve redação sobre detecção de hardware no linux, incluindo alguns textos sobre o uso do discover.

    
por 28.05.2009 / 20:56
1

Existe um shellscript em "Linux Kernel in a nutshell" da GKH, que faz isso por aproximação. O script pode ser baixado gratuitamente no site de livros e não tem uma mensagem de direitos autorais, então suponho que posso publicá-lo aqui.

for i in 'find /sys/ -name modalias -exec cat {} \;'; do
        /sbin/modprobe --config /dev/null --show-depends $i ;
done | rev | cut -f 1 -d '/' | rev | sort -u

A saída dos scripts é uma lista do módulo seu hardware precisa funcionar. Ele não lista os módulos necessários para fazer com que determinado software funcione, como o ipv6.so!

@Greg: se você não quer isso postado assim, eu vou removê-lo; -)

    
por 29.05.2009 / 15:17
1

Em algumas distribuições, há também uma boa ferramenta chamada hwinfo , que fornece muitas informações úteis sobre o seu hardware.

Para saber mais sobre os módulos do kernel, lspci e lsmod sempre fizeram um bom trabalho para mim.

    
por 31.05.2009 / 20:39
0

Se você está recompilando o kernel. A melhor coisa a fazer é conhecer bem o seu hardware usando o método apresentado por theman_on_osx . Liste todos os seus componentes. Você só precisa desmarcar / excluir os módulos (que não são necessários) no menu (ou seja, se você estiver recompilando-o através do make menuconfig / make xconfig).

Você também pode descarregar módulos que podem ser carregados em tempo real usando "rmmod."

    
por 29.05.2009 / 12:24
0

lspci também deve ajudá-lo.

    
por 29.05.2009 / 15:00