Назад | Перейти на главную страницу

если несколько модулей ядра могут управлять одним и тем же устройством, какое правило выбирать из них?

и pcnet32, и vmxnet могут управлять устройством.

$ 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

оба модуля ядра загружены,

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

как видите, драйвер ядра используется vmxnet. есть ли в ядре политика / алгоритм, как выбирать из кандидатов?

Короткий ответ: Выбирается первый модуль, обнаруженный ядром.

Загрузка модуля обычно выполняется / и т.д. / модули и через udev правила, описанные в /etc/udev/rules.d. Сегодня большинство дистрибутивов Linux использует udev для работы с устройствами. Между udev, modprobe и загрузчиком модуля ядра происходит довольно сложное взаимодействие, однако я думаю, что автор этот презентация очень хорошо это объясняет.

Это виртуальная машина, работающая под управлением VMWare?

pcnet32 - это более старый драйвер устройства Ethernet для vmware vmxnet - более новый драйвер устройства Ethernet для vmware

mii предназначен для драйвера соединения Ethernet

В соответствии с эта тема все, что вам нужно сделать, это указать правильный сетевой адаптер для гостя в его конфигурации.

ethernet0.virtualDev = "vmxnet"