Много раз при установке FreeBSD как виртуальной ОС при её использовании в логах появлялась такая запись:
lnc0: Missed packet — no receive buffer
а в логах VMWare :
VMX|VLANCE: ethernet0 skipped 1024 time(s)
VMX|VLANCE: 254 30 24 23 26 215 11 3 2 0 0 0 0 0 0 0
VMX|VLANCE: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 436
VMX|VLANCE: ethernet0 skipped 1280 time(s)
VMX|VLANCE: 354 44 37 35 37 313 17 3 3 1 0 0 0 0 0 0
VMX|VLANCE: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 436
после гуления был найдено несколько решений:
1.РЕШЕНИЕ
предложенное неким Nuzrin Yaapar.
в файле /usr/src/sys/dev/lnc/if_lnc.c,
удалить или закомментировать вызов:
lnc_outw(sc->rdp, RINT | INEA);
в самом конце lnc_rint() функции .
После этого идем в /usr/src/sys/modules/lnc
и пересобираем модуль lnc
make install clean && rehash
после этого перезагружаемся
проверено на 6.3-RELEASE FreeBSD
2.РЕШЕНИЕ
По умолчанию VMWare использует AMD Lance Ethernet adapter. Устройство lnc0. Драйвер для него устарел. К тому же, его обещают исключить из последующих версии FreeBSD. Для замены устаревшего lnc надо использовать le. По умолчанию le не включен в GENERIC kernel и для его поддержки необходимо пересобрать ядро.
Также можно поиграться с файлом конфигурации виртуальной машины .vmx добавив в него одну строчку которая даст нам в результате вместо lnc интерфейса em который эмулирует Intel E1000
ethernet0.virtualDev=”e1000″
По теории это должно улучшить работу виртуальной машины.