se houver vários módulos do kernel podem direcionar o mesmo dispositivo, qual é a regra para escolher entre eles?

1

tanto o pcnet32 quanto o vmxnet podem acionar o dispositivo.

$ lspci -k
...
02:01.0 Ethernet controller: Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rev 10)
    Subsystem: Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
    Flags: bus master, medium devsel, latency 64, IRQ 19
    I/O ports at 2000 [size=128]
    [virtual] Expansion ROM at dc400000 [disabled] [size=64K]
    Kernel driver in use: vmxnet
    Kernel modules: vmxnet, pcnet32

ambos os módulos do kernel estão carregados,

$ lsmod | grep net
pcnet32                32644  0 
vmxnet                 17696  0 
mii                     5212  1 pcnet32

como você pode ver, o driver do kernel em uso é o vmxnet. Existe alguma política / algoritmo no kernel como escolher entre os candidatos?

    
por Dyno Fu 07.03.2010 / 16:32

2 respostas

1

Resposta curta: O primeiro módulo encontrado pelo kernel é escolhido .

O carregamento de módulos é normalmente tratado por / etc / modules e por udev regras descritas em /etc/udev/rules.d . Atualmente, a maioria das distribuições do Linux usa o udev para manipulação de dispositivos. Existem interações bastante complexas entre o udev, o modprobe e o carregador de módulos do kernel, mas acho que o autor de este apresentação explica muito bem.

    
por 07.03.2010 / 16:59
0

Esta é uma máquina virtual rodando sob VMWare?

pcnet32 é um driver de dispositivo ethernet mais antigo para vmware vmxnet é o mais recente driver de dispositivo ethernet para vmware

mii é para driver de ligação ethernet

De acordo com este tópico , tudo o que você precisa fazer é especificar o dispositivo de NIC correto para o convidado em sua configuração.

ethernet0.virtualDev="vmxnet"

    
por 07.03.2010 / 17:01

Tags