и 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"